Compare commits
39 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
89f6beb337 | ||
![]() |
c42cf88d26 | ||
![]() |
29153eeb59 | ||
![]() |
10e260bbcc | ||
![]() |
5885261a60 | ||
![]() |
4ad08f699d | ||
![]() |
6e2aafcb4f | ||
![]() |
c14a514b5e | ||
![]() |
0d8a2d87fc | ||
![]() |
29c0fa7add | ||
![]() |
483684f729 | ||
![]() |
9b9911660e | ||
![]() |
018dc3e3f8 | ||
![]() |
5810ccd5a8 | ||
![]() |
c9cbc6a43c | ||
![]() |
74377c7dd8 | ||
![]() |
da13b53bbd | ||
![]() |
7837a9cd83 | ||
![]() |
8e59fddcc5 | ||
![]() |
00f73db305 | ||
![]() |
5ce6dd0e9e | ||
![]() |
cc5ff53177 | ||
![]() |
fbbaf79080 | ||
![]() |
b4c6386686 | ||
![]() |
b8178bdf2b | ||
![]() |
893ca1ed81 | ||
![]() |
1231351d29 | ||
![]() |
24415dc4ad | ||
![]() |
42b860b90e | ||
![]() |
05ef84a30b | ||
![]() |
133493ecb8 | ||
67063a6190 | |||
222d240bd7 | |||
![]() |
acb22b28da | ||
![]() |
1054b127c4 | ||
![]() |
4261b729f1 | ||
ea83d7c29c | |||
![]() |
273fa133ed | ||
![]() |
0379a03adc |
1
.gitignore
vendored
@ -2,6 +2,7 @@
|
||||
node_modules
|
||||
/dist
|
||||
.hbuilderx
|
||||
unpackage
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
|
67
App.vue
@ -8,9 +8,10 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
// #ifdef APP-PLUS
|
||||
var jpushModule = uni.requireNativePlugin("JG-JPush");
|
||||
// #endif import {
|
||||
// #ifdef APP-PLUS
|
||||
let jpushModule = uni.requireNativePlugin("JG-JPush");
|
||||
// #endif
|
||||
import {
|
||||
checkLogin
|
||||
} from "./libs/login";
|
||||
import {
|
||||
@ -21,7 +22,13 @@
|
||||
history
|
||||
} from '@/api/public.js'
|
||||
import Routine from './libs/routine.js';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
audioTeam: []
|
||||
}
|
||||
},
|
||||
globalData: {
|
||||
spid: 0,
|
||||
code: 0,
|
||||
@ -118,11 +125,12 @@
|
||||
// #endif
|
||||
that.getConfigData()
|
||||
|
||||
|
||||
//#ifdef APP-PLUS
|
||||
|
||||
|
||||
jpushModule.setLoggerEnable(true);
|
||||
jpushModule.initJPushService()
|
||||
jpushModule.addConnectEventListener(result=>{
|
||||
jpushModule.addConnectEventListener(result => {
|
||||
let connectEnable = result.connectEnable
|
||||
// console.log("jpush连接", connectEnable)
|
||||
})
|
||||
@ -151,6 +159,17 @@
|
||||
let extras = result.extras
|
||||
|
||||
console.log("通知", result)
|
||||
|
||||
if (result.extras.type == 'ORDER_CREATE') {
|
||||
if (this.audioTeam.length > 0) {
|
||||
this.audioTeam.push(result.extras.type);
|
||||
} else {
|
||||
this.audio()
|
||||
this.audioTeam.push(result.extras.type);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// 点击事件
|
||||
if (notificationEventType == 'notificationOpened') {
|
||||
uni.navigateTo({
|
||||
@ -200,11 +219,43 @@
|
||||
// #endif
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 语音播报
|
||||
*
|
||||
*
|
||||
*/
|
||||
async audio() {
|
||||
const innerAudioContext = uni.createInnerAudioContext();
|
||||
innerAudioContext.autoplay = true;
|
||||
innerAudioContext.src = `/static/audio/order.mp3`;
|
||||
innerAudioContext.onPlay(() => {
|
||||
console.log('开始播放')
|
||||
});
|
||||
innerAudioContext.onEnded(() => {
|
||||
console.log('语音播报结束')
|
||||
innerAudioContext.destroy() //销毁
|
||||
if (this.audioTeam.length > 1) {
|
||||
this.audioTeam.splice(0, 1);
|
||||
console.log('队列中');
|
||||
this.audio()
|
||||
} else {
|
||||
console.log('队列为零');
|
||||
this.audioTeam = []
|
||||
}
|
||||
});
|
||||
innerAudioContext.onError(() => {
|
||||
console.log('语音播报失败')
|
||||
innerAudioContext.destroy() // 销毁
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
// 微信分享;
|
||||
setOpenShare: function(data) {
|
||||
let that = this;
|
||||
let href = location.href;
|
||||
href = href.indexOf("?") === -1 ? href + "?spid=" + this.globalData.uid : href + "&spid=" + this.globalData
|
||||
href = href.indexOf("?") === -1 ? href + "?spid=" + this.globalData.uid : href + "&spid=" + this
|
||||
.globalData
|
||||
.uid;
|
||||
if (that.$wechat.isWeixin()) {
|
||||
let configAppMessage = {
|
||||
@ -213,7 +264,8 @@
|
||||
link: href,
|
||||
imgUrl: data.share_pic
|
||||
};
|
||||
that.$wechat.wechatEvevt(["updateAppMessageShareData", "updateTimelineShareData"], configAppMessage);
|
||||
that.$wechat.wechatEvevt(["updateAppMessageShareData", "updateTimelineShareData"],
|
||||
configAppMessage);
|
||||
}
|
||||
},
|
||||
// 获取配置
|
||||
@ -289,6 +341,7 @@
|
||||
@import 'static/css/base.css';
|
||||
@import 'static/iconfont/iconfont.css';
|
||||
@import 'static/iconfont/iconlihai.css';
|
||||
@import 'static/iconfont/icontan.css';
|
||||
@import 'static/css/style.scss';
|
||||
|
||||
view {
|
||||
|
28
api/admin.js
@ -15,6 +15,7 @@ import request from "@/utils/request.js";
|
||||
export function getStatisticsInfo() {
|
||||
return request.get("admin/order/statistics", {}, { login: true });
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单月统计
|
||||
*/
|
||||
@ -33,6 +34,18 @@ export function getAdminOrderList(where) {
|
||||
export function setAdminOrderPrice(merId, id, data) {
|
||||
return request.post("admin/" + merId + "/price/" + id, data, { login: true });
|
||||
}
|
||||
/**
|
||||
* 同意先货后款
|
||||
*/
|
||||
export function postconfirm(merId, data) {
|
||||
return request.post("admin/" + merId + "/confirm" , data, { login: true });
|
||||
}
|
||||
/**
|
||||
* 先货后款订单结算
|
||||
*/
|
||||
export function postsettle(merId, data) {
|
||||
return request.post("admin/" + merId + "/settle" , data, { login: true });
|
||||
}
|
||||
/**
|
||||
* 订单备注
|
||||
*/
|
||||
@ -211,3 +224,18 @@ export function setRefundMark(merId, orderId, data) {
|
||||
export function orderCancellation(merId, id) {
|
||||
return request.post(`admin/${merId}/verify/${id}`);
|
||||
}
|
||||
/**
|
||||
* 去核销
|
||||
* @param object data
|
||||
*/
|
||||
export function purchaseOrder(where, merId) {
|
||||
return request.get(`admin/${merId}/purchaseOrder`, where, { login: true });
|
||||
}
|
||||
|
||||
/**
|
||||
* 商家物流取件二维码
|
||||
* @param object data
|
||||
*/
|
||||
export function logisticsCode(id) {
|
||||
return request.get(`order/logistics_code/${id}`);
|
||||
}
|
18
api/api.js
@ -269,3 +269,21 @@ export function ajcaptchaCheck(data) {
|
||||
noAuth: true
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取所在的地区数据
|
||||
* @param {Object} data
|
||||
*/
|
||||
export function village(data) {
|
||||
return request.get('v2/system/geo/lst', data, { noAuth: true });
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所在的村队数据
|
||||
* @param {Object} data
|
||||
*/
|
||||
export function brigade(data) {
|
||||
return request.get('v2/system/brigade', data, { noAuth: true });
|
||||
}
|
@ -107,7 +107,7 @@ export function orderDel(id) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单详情
|
||||
* 已付款订单详情
|
||||
* @param string uni
|
||||
*/
|
||||
export function getOrderDetail(uni) {
|
||||
@ -115,11 +115,11 @@ export function getOrderDetail(uni) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单详情
|
||||
* 未付款订单详情
|
||||
* @param string uni
|
||||
*/
|
||||
export function groupOrderDetail(uni) {
|
||||
return request.get('order/group_order_detail/' + uni);
|
||||
export function groupOrderDetail(uni,product_type) {
|
||||
return request.get('order/group_order_detail/' + uni+'?product_type=' + product_type);
|
||||
}
|
||||
|
||||
// 支付状态订单
|
||||
|
@ -13,7 +13,12 @@ import request from "@/utils/request.js";
|
||||
* 获取商品详情
|
||||
*/
|
||||
export const getProductDetailsAPI = (data) => request.get('micro/product_details', data)
|
||||
|
||||
/**
|
||||
* 线下导入
|
||||
*/
|
||||
export function postImport(merid,data) {
|
||||
return request.post(`server/${merid}/product/stockIn`, data);
|
||||
}
|
||||
/**
|
||||
* 获取商户基本信息 http://127.0.0.1:8324/api/store/merchant/info?id=4
|
||||
*/
|
||||
|
43
api/release.js
Normal file
@ -0,0 +1,43 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import request from "@/utils/request.js";
|
||||
|
||||
/**
|
||||
* 获取发布管理转售商品列表
|
||||
* @param numType boolean true 购物车数量,false=购物车产品数量
|
||||
*/
|
||||
export function getResale(data) {
|
||||
return request.get("community/resale/lst", data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除发布管理转售商品
|
||||
* @param object ids
|
||||
*/
|
||||
export function getResaledelete(id) {
|
||||
return request.post('community/resale/delete/'+ id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用户是否同意转售商品折扣价
|
||||
* @param object ids
|
||||
*/
|
||||
export function getResalecheck(id,data) {
|
||||
return request.post('community/resale/check/'+ id,data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取转售商品详情
|
||||
* @param object ids
|
||||
*/
|
||||
export function getResaleid(id) {
|
||||
return request.get('community/resale/' + id);
|
||||
}
|
10
api/sale.js
Normal file
@ -0,0 +1,10 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import request from "@/utils/request.js";
|
88
api/trading-floor.js
Normal file
@ -0,0 +1,88 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import request from "@/utils/request.js";
|
||||
|
||||
|
||||
/**
|
||||
* 调货列表
|
||||
*
|
||||
*/
|
||||
export function getCommunityList(data) {
|
||||
return request.get('community/lst', data, {
|
||||
noAuth: true
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 商品详情
|
||||
*
|
||||
*/
|
||||
export function getCommunityshow(data) {
|
||||
|
||||
return request.get('community/show/' + data, {}, {
|
||||
noAuth: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 可转售的订单列表
|
||||
*
|
||||
*/
|
||||
export function getCommunitygetOrderList(data) {
|
||||
return request.get('community/product/lst', data, {
|
||||
noAuth: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起转售
|
||||
*
|
||||
*/
|
||||
export function getCommunitycreate(data) {
|
||||
return request.post(`community/create`, data, {
|
||||
login: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改转售
|
||||
*
|
||||
*/
|
||||
export function getCommunityUpdate(data) {
|
||||
return request.post(`community/update`, data, {
|
||||
login: true
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 加入购物车
|
||||
*
|
||||
*/
|
||||
export function getCommunityaddCart(data) {
|
||||
return request.post('community/addCart', data, {
|
||||
noAuth: true
|
||||
});
|
||||
}
|
||||
|
||||
//商品宝贝详情
|
||||
|
||||
export function getProductDetail(id) {
|
||||
return request.get('store/product/detail/' + id,
|
||||
);
|
||||
}
|
||||
//获取转售商品详情
|
||||
export function getresaleDetail(id) {
|
||||
return request.get('community/resale/' + id,
|
||||
);
|
||||
}
|
||||
|
||||
//编辑转售商品
|
||||
export function getresaleEdit(id,data) {
|
||||
return request.post('community/resale/edit/' + id,data
|
||||
);
|
||||
}
|
@ -708,3 +708,7 @@ export function hasServiceApi(id) {
|
||||
export function getBankInfo() {
|
||||
return request.get(`user/extract/history_bank`)
|
||||
}
|
||||
// 商户账单管理
|
||||
export function getBillDetil() {
|
||||
return request.get(`mer/financial_record`)
|
||||
}
|
@ -8,7 +8,7 @@
|
||||
<text class='iconfont icon-ditu' :class='active==index?"t-color":""'></text>
|
||||
<view class='address'>
|
||||
<view class='name' :class='active==index?"t-color":""'>{{item.real_name}}<text class='phone'>{{item.phone}}</text></view>
|
||||
<view class='line1'>{{item.province}}{{item.city}}{{item.district}}{{item.street || ''}}{{item.detail}}</view>
|
||||
<view class='line1'>{{item.province}}{{item.city}}{{item.district}}{{item.street || ''}}{{item.brigade}}{{item.detail}}</view>
|
||||
</view>
|
||||
<text class='iconfont icon-complete' :class='active==index?"t-color":""'></text>
|
||||
</view>
|
||||
|
@ -36,7 +36,7 @@
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import {getAddressList} from '@/api/user.js';
|
||||
import { getCityV2 } from '@/api/api.js';
|
||||
import { getCityV2,village } from '@/api/api.js';
|
||||
import { mapGetters } from "vuex";
|
||||
const CACHE_ADDRESS = {};
|
||||
export default {
|
||||
@ -87,25 +87,74 @@
|
||||
this.loadAddress(0)
|
||||
},
|
||||
methods: {
|
||||
change(pid,index){
|
||||
change(pid){
|
||||
if(this.selectedIndex == index) return;
|
||||
if(pid === -1){
|
||||
pid = this.selectedArr.length ? this.selectedArr[this.selectedArr.length -1].id : 0;
|
||||
}
|
||||
console.log(index)
|
||||
this.selectedIndex = index;
|
||||
this.loadAddress(pid);
|
||||
},
|
||||
loadAddress(pid){
|
||||
loadAddress(pid,type){
|
||||
if(CACHE_ADDRESS[pid]){
|
||||
this.addressList = CACHE_ADDRESS[pid];
|
||||
return ;
|
||||
}
|
||||
this.is_loading = true;
|
||||
getCityV2(pid).then(res=>{
|
||||
// getCityV2(pid).then(res=>{
|
||||
|
||||
// this.is_loading = false;
|
||||
// CACHE_ADDRESS[pid] = res.data;
|
||||
// this.addressList = res.data;
|
||||
// })
|
||||
|
||||
if(type=='province'){
|
||||
|
||||
village({province_code:pid}).then(res=>{
|
||||
this.is_loading = false;
|
||||
CACHE_ADDRESS[pid] = res.data;
|
||||
this.addressList = res.data;
|
||||
|
||||
})
|
||||
}else if(type=='city'){
|
||||
village({city_code:pid}).then(res=>{
|
||||
this.is_loading = false;
|
||||
CACHE_ADDRESS[pid] = res.data;
|
||||
this.addressList = res.data;
|
||||
|
||||
})
|
||||
}else if(type=='area'){
|
||||
village({area_code:pid}).then(res=>{
|
||||
if(res.data.length>0){
|
||||
this.is_loading = false;
|
||||
CACHE_ADDRESS[pid] = res.data;
|
||||
this.addressList = res.data;
|
||||
}else{
|
||||
this.$emit('submit', [...this.selectedArr]);
|
||||
this.$emit('changeClose');
|
||||
}
|
||||
})
|
||||
}else if(type=='street'){
|
||||
village({street_code:pid}).then(res=>{
|
||||
if(res.data.length>0){
|
||||
this.is_loading = false;
|
||||
CACHE_ADDRESS[pid] = res.data;
|
||||
this.addressList = res.data;
|
||||
}else{
|
||||
this.$emit('submit', [...this.selectedArr]);
|
||||
this.$emit('changeClose');
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
village().then(res=>{
|
||||
this.is_loading = false;
|
||||
CACHE_ADDRESS[pid] = res.data;
|
||||
this.addressList = res.data;
|
||||
})
|
||||
}
|
||||
|
||||
this.goTop()
|
||||
},
|
||||
selected(item){
|
||||
@ -114,17 +163,49 @@
|
||||
this.selectedArr.splice(this.selectedIndex + 1,999)
|
||||
this.selectedArr[this.selectedIndex] = item;
|
||||
this.selectedIndex = -1;
|
||||
}else if(!item.parent_id){
|
||||
}
|
||||
|
||||
// else if(!item.parent_id){
|
||||
// this.selectedArr = [item];
|
||||
// }else{
|
||||
// this.selectedArr.push(item);
|
||||
// }
|
||||
else if(!item.id){
|
||||
this.selectedArr = [item];
|
||||
}else{
|
||||
|
||||
if(this.selectedArr.length>4){
|
||||
let arry=[]
|
||||
arry.push(item)
|
||||
this.selectedArr=arry
|
||||
}else{
|
||||
this.selectedArr.push(item);
|
||||
}
|
||||
if(item.snum){
|
||||
this.loadAddress(item.id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(item.type=="province"){
|
||||
|
||||
this.loadAddress(item.code,"province");
|
||||
|
||||
}else if(item.type=="city"){
|
||||
this.loadAddress(item.code,"city");
|
||||
}else if(item.type=="area"){
|
||||
this.loadAddress(item.code,"area");
|
||||
}else if(item.type=="street"){
|
||||
this.loadAddress(item.code,"street");
|
||||
} else {
|
||||
this.$emit('submit', [...this.selectedArr]);
|
||||
this.$emit('changeClose');
|
||||
}
|
||||
|
||||
// if(item.snum){
|
||||
// this.loadAddress(item.id);
|
||||
// } else {
|
||||
// this.$emit('submit', [...this.selectedArr]);
|
||||
// this.$emit('changeClose');
|
||||
// }
|
||||
this.goTop()
|
||||
},
|
||||
close: function() {
|
||||
|
128
components/cx-navTitle.vue
Normal file
@ -0,0 +1,128 @@
|
||||
<template>
|
||||
<!-- tab选项卡滑动切换 -->
|
||||
<view class="my-tab" ref="myTabRef">
|
||||
<view class="my-tab-item" v-for="(item, index) in tabs" :ref="`tab${item.name}Ref`"
|
||||
:class="{ active: item.name === activeItem }" :key="index">
|
||||
<view class="my-tab-text" ref="tabName" @click="tabClick(item,index)">
|
||||
<view class="name">{{ item.label }}</view>
|
||||
<view class="xian" v-if='isshow'></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/*
|
||||
tabs -- 传入标签名 array类型 : tabs: [{name: "tabOne",label: "全部"},{...}]
|
||||
activeItem -- 默认第一个class名 string
|
||||
@tabClick -- 自定义点击事件 回传用到 做逻辑判断
|
||||
标签大小、默认颜色、选中颜色,下边框线等样式,已在css中注释,请根据注释修改即可
|
||||
*/
|
||||
export default {
|
||||
name: "cx-navTitle",
|
||||
props: {
|
||||
tabs: { //所有标签名
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
activeItem: { //默认第一个 选中的class类名
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
show: {
|
||||
type: Boolean,
|
||||
default: ''
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isshow: true,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
||||
this.isshow = this.show
|
||||
},
|
||||
methods: {
|
||||
// tab点击
|
||||
tabClick(item, index) {
|
||||
this.$emit('tabClick', item) //回传数据
|
||||
// 触发滑动方法
|
||||
this.scrollLeftTo(item.name);
|
||||
},
|
||||
// 滑动
|
||||
scrollLeftTo(name) {
|
||||
const ref = `tab${name}Ref`;
|
||||
// 获取myTabRef的DOM元素,即类名为my-tab的标签
|
||||
const nav = this.$refs.myTabRef.$el;
|
||||
// 获取当前点击的某一个tab的的DOM元素,即类名为my-tab-item的标签
|
||||
const title = this.$refs[ref][0].$el;
|
||||
// 计算位移偏差
|
||||
const to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;
|
||||
nav.scrollLeft = to;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.my-tab {
|
||||
width: 720rpx;
|
||||
margin: 0 auto;
|
||||
// height:80rpx;
|
||||
// background: #ffffff;
|
||||
// line-height:80rpx;
|
||||
// border:1px solid red;
|
||||
display: flex;
|
||||
overflow-x: scroll;
|
||||
padding-right: 0rpx;
|
||||
scroll-behavior: smooth; //平稳的滑动效果
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang-SC-Heavy;
|
||||
|
||||
.my-tab-item {
|
||||
padding: 20rpx 35rpx; //标签上下左右距离 -- 在这里改
|
||||
color: #707070; //标签默认颜色 -- 在这里改
|
||||
// height: 0rpx;
|
||||
text-align: center;
|
||||
flex: 1 0 auto;
|
||||
|
||||
&.active {
|
||||
color: #333333; //标签选中颜色 -- 在这里改
|
||||
font-family: PingFang-SC-Heavy;
|
||||
font-weight: 600;
|
||||
position: relative;
|
||||
|
||||
.my-tab-text {
|
||||
.xian {
|
||||
position: relative;
|
||||
top: 0rpx; //下边框线和标签距离 -- 在这里改
|
||||
z-index: 8;
|
||||
width: 26px;
|
||||
margin: 0 auto;
|
||||
border: 1rpx solid #F84221; //标签底部下边框线 -- 在这里改
|
||||
border-radius: 50rpx;
|
||||
padding: 0rpx 30rpx;
|
||||
opacity: 0.6; //下边框线透明度 -- 在这里改
|
||||
}
|
||||
|
||||
.name {
|
||||
position: relative;
|
||||
z-index: 9;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
color: #F84221;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 隐藏滚动条
|
||||
::-webkit-scrollbar {
|
||||
height: 0;
|
||||
width: 0;
|
||||
color: transparent;
|
||||
}
|
||||
</style>
|
448
components/e-select/e-select.vue
Normal file
@ -0,0 +1,448 @@
|
||||
<template>
|
||||
<view
|
||||
class="e-stat__select"
|
||||
:style="{ width: width, minWidth: minWidth }">
|
||||
<!-- 主体区域 -->
|
||||
<view class="e-select-main">
|
||||
<view
|
||||
class="e-select"
|
||||
:class="{ 'e-select-disabled': disabled }">
|
||||
<view
|
||||
class="e-select__input-box"
|
||||
@click="toggleSelector">
|
||||
<!-- 微信小程序input组件在部分安卓机型上会出现文字重影,placeholder抖动问题,2019年时微信小程序就有这个问题,一直没修复,估计短时间内也别指望修复了 -->
|
||||
<input
|
||||
class="e-select__input-text"
|
||||
:placeholder="placeholder"
|
||||
v-model="currentData"
|
||||
@input="filter"
|
||||
v-if="search && !disabled" />
|
||||
<view
|
||||
class="e-select__input-text"
|
||||
v-else>
|
||||
{{ currentData || currentData === 0 ? currentData : placeholder }}
|
||||
</view>
|
||||
<!-- 用一个更大的盒子包裹图标,便于点击 -->
|
||||
<view
|
||||
class="e-select-icon"
|
||||
@click.stop="clearVal"
|
||||
v-if="currentData && clear && !disabled">
|
||||
<uni-icons
|
||||
type="clear"
|
||||
color="#e1e1e1"
|
||||
size="18"></uni-icons>
|
||||
</view>
|
||||
<view
|
||||
class="e-select-icon"
|
||||
@click.stop="toggleSelector"
|
||||
v-else>
|
||||
<uni-icons
|
||||
size="14"
|
||||
color="#999"
|
||||
type="top"
|
||||
class="arrowAnimation"
|
||||
:class="showSelector ? 'top' : 'bottom'"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 全屏遮罩-->
|
||||
<view
|
||||
class="e-select--mask"
|
||||
v-if="showSelector"
|
||||
@click="toggleSelector" />
|
||||
<!-- 选项列表 这里用v-show是因为微信小程序会报警告 [Component] slot "" is not found,v-if会导致开发工具不能正确识别到slot -->
|
||||
<!-- https://developers.weixin.qq.com/community/minihome/doc/000c8295730700d1cd7c81b9656c00 -->
|
||||
<view
|
||||
class="e-select__selector"
|
||||
v-show="showSelector">
|
||||
<!-- 三角小箭头 -->
|
||||
<view class="e-popper__arrow"></view>
|
||||
<scroll-view
|
||||
scroll-y="true"
|
||||
:scroll-top="scrollTop"
|
||||
class="e-select__selector-scroll"
|
||||
:scroll-into-view="scrollToId"
|
||||
:scroll-with-animation="scrollWithAnimation"
|
||||
v-if="showSelector">
|
||||
<view
|
||||
class="e-select__selector-empty"
|
||||
v-if="currentOptions.length === 0">
|
||||
<text>{{ emptyTips }}</text>
|
||||
</view>
|
||||
<!-- 非空,渲染选项列表 -->
|
||||
<view
|
||||
v-else
|
||||
class="e-select__selector-item"
|
||||
:class="[
|
||||
{ highlight: currentData == item[props.text] },
|
||||
{
|
||||
'e-select__selector-item-disabled': item[props.disabled],
|
||||
},
|
||||
]"
|
||||
v-for="(item, index) in currentOptions"
|
||||
:key="index"
|
||||
@click="change(item, index)">
|
||||
<text>{{ item[props.text] }}</text>
|
||||
<view
|
||||
id="scrollToId"
|
||||
v-if="currentData == item[props.text]"></view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<slot />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'e-select',
|
||||
data() {
|
||||
return {
|
||||
// 是否显示下拉选择列表
|
||||
showSelector: false,
|
||||
// 当前选项
|
||||
currentOptions: [],
|
||||
// 当前值
|
||||
currentData: '',
|
||||
// 旧的滚动高度
|
||||
oldScrollTop: 0,
|
||||
// 最新的滚动高度
|
||||
scrollTop: 0,
|
||||
// 滚动至的id
|
||||
scrollToId: '',
|
||||
// 滚动动画
|
||||
scrollWithAnimation: false,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
// 选项列表
|
||||
options: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
},
|
||||
},
|
||||
// 配置选项
|
||||
props: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {
|
||||
text: 'text',
|
||||
value: 'value',
|
||||
disabled: 'disabled',
|
||||
};
|
||||
},
|
||||
},
|
||||
// vue2 v-model传值方式
|
||||
value: {
|
||||
type: [String, Number],
|
||||
default: '',
|
||||
},
|
||||
// vue3 v-model传值方式
|
||||
modelValue: {
|
||||
type: [String, Number],
|
||||
default: '',
|
||||
},
|
||||
// 占位
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '请选择',
|
||||
},
|
||||
// 宽度
|
||||
width: {
|
||||
type: String,
|
||||
default: '100%',
|
||||
},
|
||||
// 最小宽度
|
||||
minWidth: {
|
||||
type: String,
|
||||
default: '120rpx',
|
||||
},
|
||||
// 空值占位
|
||||
emptyTips: {
|
||||
type: String,
|
||||
default: '暂无选项',
|
||||
},
|
||||
// 是否可清除
|
||||
clear: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
// 是否禁用
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
// 开启搜索
|
||||
search: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
// 搜索开启滚动动画
|
||||
animation: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
options: {
|
||||
handler() {
|
||||
this.currentOptions = this.options;
|
||||
this.initData();
|
||||
},
|
||||
immediate: true,
|
||||
deep: true,
|
||||
},
|
||||
modelValue: {
|
||||
handler() {
|
||||
this.initData();
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
value: {
|
||||
handler() {
|
||||
this.initData();
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
/** 处理数据,此函数用于兼容vue2 vue3 */
|
||||
initData() {
|
||||
this.currentData = '';
|
||||
// vue2
|
||||
if (this.value || this.value === 0) {
|
||||
for (let item of this.options) {
|
||||
if (item[this.props.value] === this.value) {
|
||||
this.currentData = item[this.props.text];
|
||||
this.$emit('getText', this.currentData);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
// vue3
|
||||
if (this.modelValue || this.modelValue === 0) {
|
||||
for (let item of this.options) {
|
||||
if (item[this.props.value] === this.modelValue) {
|
||||
this.currentData = item[this.props.text];
|
||||
this.$emit('getText', this.currentData);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
/** 过滤选项列表,会自动回到顶部 */
|
||||
filter() {
|
||||
this.$emit('getText', this.currentData);
|
||||
if (this.currentData) {
|
||||
this.currentOptions = this.options.filter((item) => {
|
||||
return item[this.props.text].indexOf(this.currentData) > -1;
|
||||
});
|
||||
} else {
|
||||
this.currentOptions = this.options;
|
||||
}
|
||||
// scrollTop变化,才能触发滚动顶部
|
||||
this.scrollTop = 1;
|
||||
this.$nextTick(() => {
|
||||
this.scrollTop = 0;
|
||||
});
|
||||
},
|
||||
/** 改变值 */
|
||||
change(item, index) {
|
||||
if (item[this.props.disabled]) return;
|
||||
const data = {
|
||||
...item,
|
||||
index,
|
||||
};
|
||||
this.$emit('change', data);
|
||||
this.emit(data);
|
||||
this.toggleSelector();
|
||||
},
|
||||
/** 传递父组件值 */
|
||||
emit(item) {
|
||||
this.$emit('input', item[this.props.value]);
|
||||
this.$emit('update:modelValue', item[this.props.value]);
|
||||
},
|
||||
/** 清空值 */
|
||||
clearVal() {
|
||||
this.$emit('change', 'clear');
|
||||
this.$emit('input', '');
|
||||
this.$emit('update:modelValue', '');
|
||||
},
|
||||
/** 切换下拉显示 */
|
||||
toggleSelector() {
|
||||
if (this.disabled) return;
|
||||
this.showSelector = !this.showSelector;
|
||||
if (this.showSelector) {
|
||||
this.currentOptions = this.options;
|
||||
// scrollToId变化,才能触发scroll-to-view的滚动
|
||||
this.scrollToId = '';
|
||||
this.$nextTick(() => {
|
||||
this.scrollToId = 'scrollToId';
|
||||
// 设计理念:只在filter时触发滚动动画,因为每次打开就触发,用户体验不好
|
||||
if (this.animation) {
|
||||
setTimeout(() => {
|
||||
// 开启滚动动画
|
||||
this.scrollWithAnimation = true;
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 关闭时关闭动画
|
||||
this.scrollWithAnimation = false;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.e-stat__select {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
.e-select-main {
|
||||
width: 100%;
|
||||
}
|
||||
.e-select-disabled {
|
||||
background-color: #f5f7fa;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.e-select {
|
||||
font-size: 14px;
|
||||
box-sizing: border-box;
|
||||
border-radius: 4px;
|
||||
padding: 0 5px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
user-select: none;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
border: 1px solid #dcdfe6;
|
||||
border-bottom: solid 1px #dddddd;
|
||||
.e-select__input-box {
|
||||
width: 100%;
|
||||
min-height: 34px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
.e-select-icon {
|
||||
width: 50px;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.arrowAnimation {
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
.top {
|
||||
transform: rotateZ(0deg);
|
||||
}
|
||||
.bottom {
|
||||
transform: rotateZ(180deg);
|
||||
}
|
||||
.e-select__input-text {
|
||||
color: #303030;
|
||||
padding-left: 7px;
|
||||
width: 100%;
|
||||
color: #333;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
.e-select__input-placeholder {
|
||||
padding-left: 7px;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
.e-select--mask {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 999;
|
||||
}
|
||||
.e-select__selector {
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
top: calc(100% + 12px);
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
z-index: 999;
|
||||
padding: 4px 4px;
|
||||
transition: all 2s;
|
||||
.e-popper__arrow,
|
||||
.e-popper__arrow::after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
left: 50%;
|
||||
border-color: transparent;
|
||||
border-style: solid;
|
||||
border-width: 6px;
|
||||
}
|
||||
.e-popper__arrow {
|
||||
filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
|
||||
top: -6px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
margin-right: 3px;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: #ebeef5;
|
||||
}
|
||||
.e-popper__arrow::after {
|
||||
content: ' ';
|
||||
top: 1px;
|
||||
margin-left: -6px;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.e-select__selector-scroll {
|
||||
max-height: 200px;
|
||||
box-sizing: border-box;
|
||||
.e-select__selector-empty,
|
||||
.e-select__selector-item {
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
line-height: 34px;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
.e-select__selector-item:hover {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
.e-select__selector-empty:last-child,
|
||||
.e-select__selector-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.e-select__selector-item-disabled {
|
||||
color: #b1b1b1;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.highlight {
|
||||
color: #409eff;
|
||||
font-weight: bold;
|
||||
background-color: #f5f7fa;
|
||||
border-radius: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -10,25 +10,41 @@
|
||||
<view class='item presell_item'>
|
||||
<view class="acea-row row-between-wrapper">
|
||||
<view class='pictrue' @click="jumpCon(item)">
|
||||
<image :src='(item.cart_info.productAttr && item.cart_info.productAttr.image) || item.cart_info.product.image' ></image>
|
||||
<image
|
||||
:src='(item.cart_info.productAttr && item.cart_info.productAttr.image) || item.cart_info.product.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class='text'>
|
||||
<view class='acea-row row-between-wrapper'>
|
||||
<view class='name line1' style="width: 360rpx;"><text class="event_name event_bg">预售</text>{{item.cart_info.product.store_name}}</view>
|
||||
<view class='num'><text class="p-color">¥{{item.cart_info.productPresellAttr.presell_price}}</text><br/>x {{item.product_num}}</view>
|
||||
<view class='name line1' style="width: 360rpx;"><text
|
||||
class="event_name event_bg">预售</text>{{item.cart_info.product.store_name}}
|
||||
</view>
|
||||
<view class='attr line1' v-if="item.cart_info.productAttr.sku" style="margin-top: 0;">{{item.cart_info.productAttr.sku}}</view>
|
||||
<view v-if="evaluate === 0 || evaluate === 10 || evaluate === 11" class="event_ship event_color">发货时间:
|
||||
<view class='num'><text
|
||||
class="p-color">¥{{item.cart_info.productPresellAttr.presell_price}}</text><br />x
|
||||
{{item.product_num}}</view>
|
||||
</view>
|
||||
<view class='attr line1' v-if="item.cart_info.productAttr.sku" style="margin-top: 0;">
|
||||
{{item.cart_info.productAttr.sku}}</view>
|
||||
<view v-if="evaluate === 0 || evaluate === 10 || evaluate === 11"
|
||||
class="event_ship event_color">发货时间:
|
||||
<!--全款预售-->
|
||||
<text v-if="item.cart_info.productPresell.presell_type === 1">{{ item.cart_info.productPresell.delivery_type === 1 ? '支付成功后' : '预售结束后' }}{{ item.cart_info.productPresell.delivery_day }}天内</text>
|
||||
<text
|
||||
v-if="item.cart_info.productPresell.presell_type === 1">{{ item.cart_info.productPresell.delivery_type === 1 ? '支付成功后' : '预售结束后' }}{{ item.cart_info.productPresell.delivery_day }}天内</text>
|
||||
<!--定金预售-->
|
||||
<text v-if="item.cart_info.productPresell.presell_type === 2">{{ item.cart_info.productPresell.delivery_type === 1 ? '支付尾款后' : '预售结束后' }}{{ item.cart_info.productPresell.delivery_day }}天内</text>
|
||||
<text
|
||||
v-if="item.cart_info.productPresell.presell_type === 2">{{ item.cart_info.productPresell.delivery_type === 1 ? '支付尾款后' : '预售结束后' }}{{ item.cart_info.productPresell.delivery_day }}天内</text>
|
||||
</view>
|
||||
<view class="right-btn-box event_box">
|
||||
<view class="btn-item" v-if="item.is_refund ==0 && (evaluate != 10 && evaluate != 11) && orderData.refund_status || item.refund_num > 0" @click.stop="refund(item)">申请退款</view>
|
||||
<view class="btn-item err" v-if="item.is_refund ==1">退款中 x {{item.product_num - item.refund_num}}</view>
|
||||
<view class='btn-item err' v-if="item.is_refund >1">已退款 x {{item.product_num - item.refund_num}}</view>
|
||||
<view class='btn-item' v-if='item.is_reply==0 && evaluate==2 && item.is_refund==0' @click.stop="evaluateTap(item.order_product_id,orderId)">去评价</view>
|
||||
|
||||
<view class="btn-item"
|
||||
v-if="(item.is_refund ==0 && (evaluate != 10 && evaluate != 11) && orderData.refund_status || item.refund_num > 0)&&evaluate>=0 && evaluate != 1&& evaluate == 2"
|
||||
@click.stop="refund(item)">申请退款</view>
|
||||
<view class="btn-item err" v-if="item.is_refund ==1">退款中 x
|
||||
{{item.product_num - item.refund_num}}</view>
|
||||
<view class='btn-item err' v-if="item.is_refund >1">已退款 x
|
||||
{{item.product_num - item.refund_num}}</view>
|
||||
<view class='btn-item' v-if='item.is_reply==0 && evaluate==2 && item.is_refund==0'
|
||||
@click.stop="evaluateTap(item.order_product_id,orderId)">去评价</view>
|
||||
<view class='btn-item on' v-else-if="item.is_reply==1 && evaluate==2">已评价</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -37,44 +53,68 @@
|
||||
<view v-if="orderData.status >= 10" class="event_progress">
|
||||
<view class="progress_list">
|
||||
<view class="progress_name">阶段一: 买家已付款</view>
|
||||
<view class="progress_price">商品定金 <text class="align_right">¥{{ orderData.pay_price }}</text></view>
|
||||
<view class="progress_pay">定金实付款<text class="align_right t-color">¥{{ orderData.pay_price }}</text></view>
|
||||
<view class="progress_price">商品定金 <text
|
||||
class="align_right">¥{{ orderData.pay_price }}</text></view>
|
||||
<view class="progress_pay">定金实付款<text
|
||||
class="align_right t-color">¥{{ orderData.pay_price }}</text></view>
|
||||
</view>
|
||||
<view class="progress_list">
|
||||
<view class="progress_name">阶段二:
|
||||
<text v-if="orderData.status == 10 && orderData.presellOrder.activeStatus == 0">未开始</text>
|
||||
<text v-if="orderData.status == 10 && orderData.presellOrder.activeStatus == 1">等待买家付尾款</text>
|
||||
<text v-if="orderData.status == 11 || orderData.presellOrder.activeStatus == 2">交易已关闭</text>
|
||||
<text
|
||||
v-if="orderData.status == 10 && orderData.presellOrder.activeStatus == 0">未开始</text>
|
||||
<text
|
||||
v-if="orderData.status == 10 && orderData.presellOrder.activeStatus == 1">等待买家付尾款</text>
|
||||
<text
|
||||
v-if="orderData.status == 11 || orderData.presellOrder.activeStatus == 2">交易已关闭</text>
|
||||
</view>
|
||||
<view class="progress_price">商品尾款 <text class="align_right">¥{{ orderData.presellOrder.pay_price }}</text></view>
|
||||
<view class="progress_pay">尾款需付款<text class="align_right t-color">¥{{ orderData.presellOrder.pay_price }}</text></view>
|
||||
<view class="progress_price">商品尾款 <text
|
||||
class="align_right">¥{{ orderData.presellOrder.pay_price }}</text></view>
|
||||
<view class="progress_pay">尾款需付款<text
|
||||
class="align_right t-color">¥{{ orderData.presellOrder.pay_price }}</text></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class='item'>
|
||||
|
||||
<view class="acea-row row-between-wrapper">
|
||||
<view class='pictrue' @click="jumpCon(item)">
|
||||
<image :src='(item.cart_info.productAttr && item.cart_info.productAttr.image) || item.cart_info.product.image' ></image>
|
||||
<image
|
||||
:src='(item.cart_info.productAttr && item.cart_info.productAttr.image) || item.cart_info.product.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class='text'>
|
||||
<view class='acea-row row-between-wrapper'>
|
||||
<view class='name line1'><text v-if="item.product_type != 0 && item.product_type != 10" :class="'font_bg-red type'+item.product_type">{{item.product_type == 1 ? "秒杀" : item.product_type == 2 ? "预售" : item.product_type == 3 ? "助力" : item.product_type == 4 ? "拼团" : ""}}</text>{{item.cart_info.product.store_name}}</view>
|
||||
<view class='name line1'><text v-if="item.product_type != 0 && item.product_type != 10"
|
||||
:class="'font_bg-red type'+item.product_type">{{item.product_type == 1 ? "秒杀" : item.product_type == 2 ? "预售" : item.product_type == 3 ? "助力" : item.product_type == 4 ? "拼团" : ""}}</text>{{item.cart_info.product.store_name}}
|
||||
</view>
|
||||
<view class='num'>x {{item.product_num}}</view>
|
||||
</view>
|
||||
<view class='attr line1' v-if="item.cart_info.productAttr.sku">{{item.cart_info.productAttr.sku}}</view>
|
||||
<view class='money p-color' v-if="item.cart_info.product_type ==3">¥{{item.cart_info.productAssistAttr.assist_price}}</view>
|
||||
<view class='money p-color' v-else-if="item.cart_info.product_type ==4">¥{{item.cart_info.activeSku.active_price}}</view>
|
||||
<view class='attr line1' v-if="item.cart_info.productAttr.sku">
|
||||
{{item.cart_info.productAttr.sku}}</view>
|
||||
<view class='money p-color' v-if="item.cart_info.product_type ==3">
|
||||
¥{{item.cart_info.productAssistAttr.assist_price}}</view>
|
||||
<view class='money p-color' v-else-if="item.cart_info.product_type ==4">
|
||||
¥{{item.cart_info.activeSku.active_price}}</view>
|
||||
<view class='money acea-row row-middle' v-else>
|
||||
<text>¥{{item.cart_info.productAttr.price}}</text>
|
||||
<image v-if="item.cart_info.productAttr.show_svip_price" class="svip-img" src="/static/images/svip.png"></image>
|
||||
<image v-if="item.cart_info.productAttr.show_svip_price" class="svip-img"
|
||||
src="/static/images/svip.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="right-btn-box">
|
||||
<view class="btn-item err" v-if="item.is_refund ==1">退款中 x {{item.product_num - item.refund_num}}</view>
|
||||
<view class='btn-item err' v-if="item.is_refund >1">已退款 x {{item.product_num - item.refund_num}}</view>
|
||||
<view class="btn-item" v-if="item.is_refund ==0 && evaluate!=9 && orderData.refund_status || item.refund_num > 0" @click.stop="refund(item)">申请退款</view>
|
||||
<view class='btn-item' v-if='item.is_reply==0 && evaluate==2 && item.refund_num > 0' @click.stop="evaluateTap(item.order_product_id,orderId)">去评价</view>
|
||||
<view class="btn-item err" v-if="item.is_refund ==1">退款中 x
|
||||
{{item.product_num - item.refund_num}}</view>
|
||||
<view class='btn-item err' v-if="item.is_refund >1">已退款 x {{item.product_num - item.refund_num}}
|
||||
</view>
|
||||
|
||||
<view class="btn-item"
|
||||
v-if="(item.is_refund ==0 && (evaluate != 10 && evaluate != 11) && orderData.refund_status || item.refund_num > 0)&& evaluate != 1&&evaluate !=4&& evaluate!=3 || evaluate==2 ||activityType==98"
|
||||
@click.stop="refund(item)">申请退款</view>
|
||||
<view class='btn-item'
|
||||
v-if='item.is_reply==0 && evaluate!=2&& evaluate!=3 && item.refund_num > 0'
|
||||
@click.stop="evaluateTap(item.order_product_id,orderId)">去评价</view>
|
||||
<view class='btn-item on' v-else-if="item.is_reply==1 && evaluate==2">已评价</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -93,10 +133,18 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import { openOrderRefundSubscribe } from '@/utils/SubscribeMessage.js';
|
||||
import { goShopDetail } from '@/libs/order.js'
|
||||
import { initiateAssistApi } from '@/api/activity.js';
|
||||
import { mapGetters } from "vuex";
|
||||
import {
|
||||
openOrderRefundSubscribe
|
||||
} from '@/utils/SubscribeMessage.js';
|
||||
import {
|
||||
goShopDetail
|
||||
} from '@/libs/order.js'
|
||||
import {
|
||||
initiateAssistApi
|
||||
} from '@/api/activity.js';
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
export default {
|
||||
props: {
|
||||
evaluate: {
|
||||
@ -131,14 +179,14 @@
|
||||
computed: mapGetters(['viewColor']),
|
||||
data() {
|
||||
return {
|
||||
totalNmu:'',
|
||||
totalNmu: '',
|
||||
isTimePay: false, //是否到支付时间
|
||||
};
|
||||
},
|
||||
watch:{
|
||||
cartInfo:function(nVal,oVal){
|
||||
watch: {
|
||||
cartInfo: function(nVal, oVal) {
|
||||
let num = 0
|
||||
nVal.forEach((item,index)=>{
|
||||
nVal.forEach((item, index) => {
|
||||
num += item.cart_num
|
||||
})
|
||||
this.totalNmu = num
|
||||
@ -149,25 +197,28 @@
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
evaluateTap:function(unique,orderId){
|
||||
evaluateTap: function(unique, orderId) {
|
||||
uni.navigateTo({
|
||||
url:`/pages/users/goods_comment_con/index?uni=${unique}&order_id=${orderId}`
|
||||
url: `/pages/users/goods_comment_con/index?uni=${unique}&order_id=${orderId}`
|
||||
})
|
||||
},
|
||||
// 判断是否到支付尾款时间
|
||||
isPayBalance(){
|
||||
isPayBalance() {
|
||||
let that = this;
|
||||
if(that.orderData.status === 10){
|
||||
if(new Date() < new Date(that.orderData.presellOrder.final_start_time)){
|
||||
if (that.orderData.status === 10) {
|
||||
if (new Date() < new Date(that.orderData.presellOrder.final_start_time)) {
|
||||
that.isTimePay = false; //未开始
|
||||
}else if((new Date() >= new Date(that.orderData.presellOrder.final_start_time)) && (new Date() <= new Date(that.orderData.presellOrder.final_start_time)) ){
|
||||
} else if ((new Date() >= new Date(that.orderData.presellOrder.final_start_time)) && (new Date() <=
|
||||
new Date(that.orderData.presellOrder.final_start_time))) {
|
||||
that.isTimePay = true; //立即支付
|
||||
}
|
||||
}
|
||||
},
|
||||
jumpCon:function(item){
|
||||
if(item.product_type == 4)item.activity_id = item.cart_info && item.cart_info.activeSku.product_group_id
|
||||
if(item.product_type == 3)item.activity_id = item.cart_info && item.cart_info.productAssistAttr.product_assist_id
|
||||
jumpCon: function(item) {
|
||||
if (item.product_type == 4) item.activity_id = item.cart_info && item.cart_info.activeSku
|
||||
.product_group_id
|
||||
if (item.product_type == 3) item.activity_id = item.cart_info && item.cart_info.productAssistAttr
|
||||
.product_assist_id
|
||||
goShopDetail(item).then(res => {
|
||||
initiateAssistApi(item.activity_id).then(res => {
|
||||
let id = res.data.product_assist_set_id;
|
||||
@ -184,17 +235,21 @@
|
||||
})
|
||||
},
|
||||
// 退款
|
||||
refund(item){
|
||||
refund(item) {
|
||||
// #ifdef MP
|
||||
openOrderRefundSubscribe().then(() => {
|
||||
uni.hideLoading();
|
||||
if(this.evaluate == 0 || this.evaluate == 9 || this.orderData.is_virtual == 1){
|
||||
if (this.evaluate == 0 || this.evaluate == 9 || this.orderData.is_virtual == 1) {
|
||||
uni.navigateTo({
|
||||
url:'/pages/users/refund/confirm?order_id='+this.orderId+'&type=1'+'&ids='+item.order_product_id+'&refund_type=1&order_type='+this.orderData.order_type
|
||||
url: '/pages/users/refund/confirm?order_id=' + this.orderId + '&type=1' +
|
||||
'&ids=' + item.order_product_id + '&refund_type=1&order_type=' + this
|
||||
.orderData.order_type
|
||||
})
|
||||
}else{
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url:'/pages/users/refund/select?order_id='+this.orderId+'&type=1&order_type='+this.orderData.order_type+'&ids='+item.order_product_id
|
||||
url: '/pages/users/refund/select?order_id=' + this.orderId +
|
||||
'&type=1&order_type=' + this.orderData.order_type + '&ids=' + item
|
||||
.order_product_id
|
||||
})
|
||||
}
|
||||
}).catch(() => {
|
||||
@ -202,13 +257,15 @@
|
||||
})
|
||||
// #endif
|
||||
// #ifdef H5 || APP-PLUS
|
||||
if(this.evaluate == 0 || this.evaluate == 9 || this.orderData.is_virtual == 1){
|
||||
if (this.evaluate == 0 || this.evaluate == 9 || this.orderData.is_virtual == 1) {
|
||||
uni.navigateTo({
|
||||
url:'/pages/users/refund/confirm?order_id='+this.orderId+'&type=1'+'&ids='+item.order_product_id+'&refund_type=1&order_type='+this.orderData.order_type
|
||||
url: '/pages/users/refund/confirm?order_id=' + this.orderId + '&type=1' + '&ids=' + item
|
||||
.order_product_id + '&refund_type=1&order_type=' + this.orderData.order_type
|
||||
})
|
||||
}else{
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url:'/pages/users/refund/select?order_id='+this.orderId+'&type=1&order_type='+this.orderData.order_type+'&ids='+item.order_product_id
|
||||
url: '/pages/users/refund/select?order_id=' + this.orderId + '&type=1&order_type=' + this
|
||||
.orderData.order_type + '&ids=' + item.order_product_id
|
||||
})
|
||||
}
|
||||
// #endif
|
||||
@ -221,22 +278,27 @@
|
||||
.orderGoods {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.p-color {
|
||||
color: var(--view-priceColor);
|
||||
}
|
||||
.t-color{
|
||||
|
||||
.t-color {
|
||||
color: var(--view-theme);
|
||||
}
|
||||
.svip-img{
|
||||
|
||||
.svip-img {
|
||||
width: 65rpx;
|
||||
height: 28rpx;
|
||||
margin: 4rpx 0 0 4rpx;
|
||||
}
|
||||
.title{
|
||||
|
||||
.title {
|
||||
height: 86rpx;
|
||||
position: relative;
|
||||
padding: 0 30rpx;
|
||||
&::after{
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
width: 750rpx;
|
||||
border-bottom: 2rpx dotted #D8D8D8;
|
||||
@ -244,60 +306,73 @@
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
.item-status{
|
||||
|
||||
.item-status {
|
||||
color: #999999;
|
||||
font-size: 30rpx;
|
||||
&.status0{
|
||||
|
||||
&.status0 {
|
||||
color: #2291F8;
|
||||
}
|
||||
}
|
||||
.item-date{
|
||||
|
||||
.item-date {
|
||||
color: #666666;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
.right-btn-box{
|
||||
|
||||
.right-btn-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
&.event_box{
|
||||
|
||||
&.event_box {
|
||||
position: static;
|
||||
}
|
||||
.btn-item{
|
||||
|
||||
.btn-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width:140rpx;
|
||||
height:46rpx;
|
||||
width: 140rpx;
|
||||
height: 46rpx;
|
||||
margin-left: 10rpx;
|
||||
border:1px solid rgba(187,187,187,1);
|
||||
border-radius:23rpx;
|
||||
border: 1px solid rgba(187, 187, 187, 1);
|
||||
border-radius: 23rpx;
|
||||
font-size: 24rpx;
|
||||
color: #282828;
|
||||
&.on{
|
||||
background:rgba(220,220,220,1);
|
||||
border-color: rgba(220,220,220,1);
|
||||
|
||||
&.on {
|
||||
background: rgba(220, 220, 220, 1);
|
||||
border-color: rgba(220, 220, 220, 1);
|
||||
}
|
||||
&.err{
|
||||
background:rgba(247,247,247,1);
|
||||
border-color: rgba(247,247,247,1);
|
||||
|
||||
&.err {
|
||||
background: rgba(247, 247, 247, 1);
|
||||
border-color: rgba(247, 247, 247, 1);
|
||||
color: #AAAAAA;
|
||||
}
|
||||
}
|
||||
}
|
||||
.event_bg{
|
||||
|
||||
.event_bg {
|
||||
background: #FF7F00;
|
||||
}
|
||||
.event_color{
|
||||
|
||||
.event_color {
|
||||
color: #FF7F00;
|
||||
}
|
||||
.presell_item{
|
||||
|
||||
.presell_item {
|
||||
height: auto;
|
||||
padding-bottom: 15rpx;
|
||||
}
|
||||
.event_progress{
|
||||
|
||||
.event_progress {
|
||||
margin-top: 20rpx;
|
||||
background: #fff;
|
||||
|
||||
.progress_name {
|
||||
padding-left: 30rpx;
|
||||
height: 60rpx;
|
||||
@ -306,7 +381,8 @@
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
color: var(--view-theme);
|
||||
&::before{
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 5rpx;
|
||||
@ -317,23 +393,27 @@
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
.align_right{
|
||||
|
||||
.align_right {
|
||||
float: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
.progress_price{
|
||||
|
||||
.progress_price {
|
||||
padding: 20rpx 30rpx;
|
||||
color: #999999;
|
||||
font-size: 22rpx;
|
||||
}
|
||||
.progress_pay{
|
||||
|
||||
.progress_pay {
|
||||
padding: 25rpx 30rpx;
|
||||
background: var(--view-minorColor);
|
||||
font-size: 26rpx;
|
||||
color: #282828;
|
||||
}
|
||||
}
|
||||
.event_name{
|
||||
|
||||
.event_name {
|
||||
display: inline-block;
|
||||
margin-right: 9rpx;
|
||||
color: #fff;
|
||||
@ -343,12 +423,14 @@
|
||||
text-align: center;
|
||||
border-radius: 6rpx;
|
||||
}
|
||||
.event_ship{
|
||||
|
||||
.event_ship {
|
||||
font-size: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.goodWrapper.item1{
|
||||
&::after{
|
||||
|
||||
.goodWrapper.item1 {
|
||||
&::after {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 750rpx;
|
||||
|
@ -78,6 +78,7 @@
|
||||
});
|
||||
},
|
||||
goPay: function(number, paytype) {
|
||||
console.log(this.payMode);
|
||||
if (this.isCall) {
|
||||
return this.$emit('onChangeFun', {
|
||||
action: 'payCheck',
|
||||
@ -98,6 +99,7 @@
|
||||
// #endif
|
||||
} else if (paytype == 'balance') {
|
||||
type = 'balance';
|
||||
console.log('123');
|
||||
}else if(paytype == 'alipay'){
|
||||
// #ifndef MP
|
||||
type = 'alipay';
|
||||
@ -105,6 +107,9 @@
|
||||
// #ifdef MP
|
||||
type = 'alipayQr';
|
||||
// #endif
|
||||
}else if(paytype =='creditBuy'){
|
||||
console.log('123123');
|
||||
type='creditBuy'
|
||||
}
|
||||
if (!that.order_id) return that.$util.Tips({
|
||||
title: '请选择要支付的订单'
|
||||
@ -375,7 +380,7 @@
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
background-color: #fff;
|
||||
padding-bottom: 60rpx;
|
||||
z-index: 99;
|
||||
z-index: 99999;
|
||||
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
|
621
components/realselist/realselist.vue
Normal file
@ -0,0 +1,621 @@
|
||||
<template>
|
||||
<view class="containers" :style="viewColor">
|
||||
<view class="header">
|
||||
|
||||
<view class="search">
|
||||
<text class="iconfont icon-xiazai5"></text>
|
||||
<input type="text" placeholder="请输入商品名称" v-model="searchVal" @input="setValue" confirm-type="search"
|
||||
@confirm="searchBut()" placeholder-class='placeholder'>
|
||||
</view>
|
||||
|
||||
<view class="iconclose" @click="close">
|
||||
X
|
||||
</view>
|
||||
</view>
|
||||
<view class="main">
|
||||
<scroll-view scroll-y="true" @touchmove.stop>
|
||||
<block>
|
||||
<view v-if="bought.length" @touchmove="onTouchmove" id="goods" class="goods">
|
||||
<view class="picTxt acea-row" v-for="(item, i) in bought" :key="i">
|
||||
<view class="checkbox">
|
||||
<text @click.stop="goodsCheck(item)" v-if="item.check"
|
||||
class="iconfont icon-xuanzhong1"></text>
|
||||
<text @click.stop="goodsCheck(item)" v-else
|
||||
:class="checkedArr.length >=5 ? 'disabled': ''"
|
||||
class="iconfont icon-weixuanzhong"></text>
|
||||
</view>
|
||||
<view class='pictrue'>
|
||||
<image :src='item.image'></image>
|
||||
</view>
|
||||
|
||||
<view class='text'>
|
||||
<view class='line2 name'>{{item.store_name}}</view>
|
||||
|
||||
|
||||
<view class="picTxt_one" v-if="item.attrValue.length>0">
|
||||
<picker class="slecte" v-if="item.attrValue.length>1"
|
||||
@change="bindPickerChange($event,item.attrValue,i)" :value="index"
|
||||
:range="item.attrValue" :range-key="'sku'">
|
||||
<view class="uni-input">{{item.attrValue[index].sku}}</view>
|
||||
</picker>
|
||||
|
||||
<view class="" style="margin-top: 10rpx;">
|
||||
库存:{{item.attrValue[index].stock}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
<view class="picTxt_price">
|
||||
<view class="price">
|
||||
<span>委托价格</span>
|
||||
<input type="text" :value="item.price" placeholder="输入出售价格"
|
||||
@input="producrprice($event,i,item)" adjust-position=""
|
||||
placeholder-style="color: #CCCCCC;" />
|
||||
</view>
|
||||
<view class="price_num">
|
||||
<span>委托数量</span>
|
||||
<subtractive v-if='item.number==0' style="margin-top: 10rpx;margin-left: 20rpx;"
|
||||
class="step" :min="1" :max="item.attrValue[index].stock" :value="peicenumber"
|
||||
:isMax="true" :isMin="true" index="11" @eventChange="numberChange($event,i)">
|
||||
</subtractive>
|
||||
|
||||
<subtractive v-else style="margin-top: 10rpx;margin-left: 20rpx;" class="step"
|
||||
:min="1" :max="item.attrValue[index].stock" :value="item.number" :isMax="true"
|
||||
:isMin="true" index="11" @increment="incrementTotal($event,i,item)"
|
||||
@eventChange="numberChange($event,i)"></subtractive>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="empty">
|
||||
<image src="/static/images/no_thing.png"></image>
|
||||
<text>暂无内容哦~</text>
|
||||
</view>
|
||||
</block>
|
||||
</scroll-view>
|
||||
<view class="foot_bar">
|
||||
<button class="confirm_btn" @click="submit">确定({{checkedArr.length}})</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Loading from '@/components/Loading/index.vue';
|
||||
import subtractive from '@/components/subtractive/subtractive.vue';
|
||||
|
||||
import {
|
||||
getCommunitygetOrderList
|
||||
} from "@/api/trading-floor";
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
export default {
|
||||
props: {
|
||||
checkedObj: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
computed: mapGetters(['viewColor']),
|
||||
components: {
|
||||
Loading,
|
||||
subtractive
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isActive: 0,
|
||||
loadedb: false,
|
||||
loadingb: false,
|
||||
loadedc: false,
|
||||
loadingc: false,
|
||||
loadeds: false,
|
||||
loadings: false,
|
||||
whereb: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
keyword: '',
|
||||
},
|
||||
peicenumber: 0,
|
||||
|
||||
searchVal: "",
|
||||
checked: [],
|
||||
list: [],
|
||||
|
||||
bought: [],
|
||||
|
||||
checkedArr: [],
|
||||
aryys: [],
|
||||
// picker下拉数据源
|
||||
storageCustomList: [{
|
||||
CustGoodsCode: "TEST001",
|
||||
CustGoodsName: "测试货主001",
|
||||
IfBoxId: 0,
|
||||
IfProductId: 0,
|
||||
}, {
|
||||
CustGoodsCode: "TEST002",
|
||||
CustGoodsName: "测试货主002",
|
||||
IfBoxId: 0,
|
||||
IfProductId: 0,
|
||||
}, {
|
||||
CustGoodsCode: "TEST003",
|
||||
CustGoodsName: "测试货主003",
|
||||
IfBoxId: 0,
|
||||
IfProductId: 0,
|
||||
}],
|
||||
index: 0,
|
||||
pickerData: '请选择',
|
||||
itstock: '',
|
||||
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
checkedObj: {
|
||||
handler(n) {
|
||||
|
||||
this.checkedArr = n
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.checkedArr = this.checkedObj
|
||||
this.aryys = this.checkedObj
|
||||
this.getBounht();
|
||||
},
|
||||
methods: {
|
||||
//价格
|
||||
producrprice(e, i, item) {
|
||||
this.bought[i].price = e.detail.value
|
||||
this.$set(item, 'check', false);
|
||||
for (let i in this.checkedArr) {
|
||||
if (this.checkedArr[i].product_id == item.product_id) {
|
||||
this.checkedArr.splice(i, 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
incrementTotal(e, i, item) {
|
||||
this.$set(item, 'check', false);
|
||||
for (let i in this.checkedArr) {
|
||||
if (this.checkedArr[i].product_id == item.product_id) {
|
||||
this.checkedArr.splice(i, 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
// picker修改事件
|
||||
bindPickerChange: function(e, storage, num) {
|
||||
this.bought[num].attrValue[this.index].sku = storage[e.detail.value].sku
|
||||
this.bought[num].attrValue[this.index].stock = storage[e.detail.value].stock
|
||||
this.bought[num].product_attr_unique = storage[e.detail.value].unique
|
||||
this.pickerData = storage[this.index] // 这里就是选中的对象
|
||||
|
||||
if (this.bought[num].attrValue[this.index].stock == 0) {
|
||||
this.$util.Tips({
|
||||
title: '库存不足'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 点击关闭按钮
|
||||
close() {
|
||||
this.$emit('close');
|
||||
},
|
||||
numberChange(data, i) {
|
||||
this.peicenumber = data.number;
|
||||
this.bought[i].number = data.number
|
||||
|
||||
},
|
||||
|
||||
tabs(index) {
|
||||
this.isActive = index
|
||||
this.$set(this.whereb, 'keyword', '');
|
||||
this.searchVal = ''
|
||||
this.searchBut()
|
||||
},
|
||||
onTouchmove(e) {
|
||||
if (this.loadendb) return;
|
||||
if (this.loadingb) return;
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
query.select('#goods').boundingClientRect(data => {
|
||||
if (data.bottom < 1500 && data.top < 0) {
|
||||
this.getBounht();
|
||||
}
|
||||
}).exec();
|
||||
|
||||
// 模拟触底刷新
|
||||
},
|
||||
|
||||
|
||||
setValue: function(event) {
|
||||
this.$set(this.whereb, 'keyword', event.detail.value);
|
||||
if (!event.detail.value) {
|
||||
this.whereb.page = 1
|
||||
this.loadedb = false
|
||||
this.getBounht()
|
||||
}
|
||||
|
||||
},
|
||||
searchBut() {
|
||||
this.bought = []
|
||||
this.whereb.page = 1
|
||||
this.loadedb = false
|
||||
this.getBounht()
|
||||
},
|
||||
getBounht() {
|
||||
var that = this;
|
||||
// console.log('1111111', that.loadingb, that.loadedb)
|
||||
if (that.loadingb || that.loadedb) return;
|
||||
that.loadingb = true;
|
||||
|
||||
getCommunitygetOrderList(that.whereb).then(
|
||||
res => {
|
||||
that.loadingb = false;
|
||||
that.loadedb = res.data.list.length < that.whereb.limit;
|
||||
that.bought.push.apply(that.bought, res.data.list);
|
||||
that.whereb.page = that.whereb.page + 1;
|
||||
that.getInitchecked(that.bought);
|
||||
},
|
||||
error => {
|
||||
that.$util.Tips({
|
||||
title: error.msg
|
||||
})
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
/*获取初始化选中的数据*/
|
||||
getInitchecked(arr) {
|
||||
let that = this;
|
||||
arr.forEach((item, index) => {
|
||||
that.$set(item, 'check', false);
|
||||
that.checkedArr.forEach((val, i) => {
|
||||
if (item.product_id == val.product_id) {
|
||||
that.$set(item, 'check', true);
|
||||
that.$set(item, 'number', val.number);
|
||||
that.$set(item, 'price', val.price);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
/*已选中的商品打钩*/
|
||||
getCheckedGoods() {
|
||||
this.checked = []
|
||||
this.checkedArr.forEach((item, index) => {
|
||||
this.checkedArr.push(item)
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
/*点击选中与否*/
|
||||
goodsCheck(item) {
|
||||
this.$set(item, 'check', !item.check);
|
||||
if (item.check) {
|
||||
if (this.peicenumber == 0) {
|
||||
item.number = 1
|
||||
}
|
||||
if (!item.product_attr_unique) {
|
||||
item.product_attr_unique = item.attrValue[0].unique
|
||||
}
|
||||
this.checkedArr.push(item)
|
||||
this.arrayUnique(this.checkedArr, 'product_id')
|
||||
} else {
|
||||
this.checkedArr.splice(this.checkedArr.findIndex(itemn => ((itemn.product_id == item.product_id))), 1)
|
||||
|
||||
}
|
||||
},
|
||||
//去重
|
||||
arrayUnique(arr, name) {
|
||||
let hash = {}
|
||||
const result = arr.reduce((acc, cru, index) => {
|
||||
if (!hash[cru[name]]) {
|
||||
hash[cru[name]] = {
|
||||
index: acc.length
|
||||
}
|
||||
acc.push(cru)
|
||||
} else {
|
||||
console.log(acc, hash[cru[name]])
|
||||
acc.splice(hash[cru[name]]['index'], 1, cru)
|
||||
}
|
||||
|
||||
|
||||
return acc;
|
||||
|
||||
}, [])
|
||||
this.checkedArr = result
|
||||
|
||||
|
||||
},
|
||||
/*确定提交*/
|
||||
submit() {
|
||||
|
||||
this.$emit('getProduct', this.checkedArr);
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.containers {
|
||||
background: #ffffff;
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
padding: 40rpx 0;
|
||||
position: relative;
|
||||
|
||||
.header {
|
||||
position: relative;
|
||||
padding: 0 30rpx;
|
||||
|
||||
.title {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
|
||||
text {
|
||||
position: relative;
|
||||
margin: 0 50rpx;
|
||||
color: #999999;
|
||||
font-size: 30rpx;
|
||||
|
||||
&.on {
|
||||
color: #333333;
|
||||
font-weight: bold;
|
||||
font-size: 34rpx;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 40rpx;
|
||||
height: 5rpx;
|
||||
background: var(--view-theme);
|
||||
position: absolute;
|
||||
bottom: -10rpx;
|
||||
left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.iconclose {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
line-height: 44rpx;
|
||||
border: 2rpx solid #fff;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: -150rpx;
|
||||
right: 30rpx;
|
||||
}
|
||||
|
||||
.search {
|
||||
margin-top: 44rpx;
|
||||
background: #F5F5F5;
|
||||
border-radius: 30rpx;
|
||||
padding: 12rpx 30rpx 12rpx 66rpx;
|
||||
position: relative;
|
||||
|
||||
.iconfont {
|
||||
font-size: 24rpx;
|
||||
color: #939393;
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
left: 30rpx;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
color: #999999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.sub_title {
|
||||
color: #282828;
|
||||
font-size: 26rpx;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
color: #8A8A8A;
|
||||
font-size: 28rpx;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
scroll-view {
|
||||
height: 650rpx;
|
||||
}
|
||||
|
||||
.main {
|
||||
height: 650rpx;
|
||||
margin: 40rpx 0 80rpx;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.picTxt {
|
||||
width: 100%;
|
||||
padding: 25rpx 0;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
border-top: 2rpx solid #E7E6E4;
|
||||
|
||||
.picTxt_one {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.picTxt_one {
|
||||
display: flex;
|
||||
margin-top: 20rpx;
|
||||
|
||||
|
||||
.slecte {
|
||||
margin-right: 30rpx;
|
||||
width: 280rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #959595;
|
||||
background-color: #E7E6E4;
|
||||
border-radius: 10rpx 10rpx 10rpx 10rpx;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.picTxt_price {
|
||||
display: flex;
|
||||
margin-top: 37rpx;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
|
||||
.price {
|
||||
display: flex;
|
||||
margin-right: 15rpx;
|
||||
|
||||
input {
|
||||
width: 210rpx;
|
||||
text-align: center;
|
||||
height: 70rpx;
|
||||
background: #F5F5F5;
|
||||
border-radius: 7rpx 7rpx 7rpx 7rpx;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
|
||||
margin-left: 20rpx;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.price_num {
|
||||
display: flex;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
margin-right: 30rpx;
|
||||
|
||||
.iconfont {
|
||||
font-size: 38rpx;
|
||||
color: #CCCCCC;
|
||||
}
|
||||
|
||||
.icon-xuanzhong1 {
|
||||
color: var(--view-theme);
|
||||
}
|
||||
|
||||
.disabled {
|
||||
pointer-events: none;
|
||||
cursor: default;
|
||||
opacity: 0.3;
|
||||
}
|
||||
}
|
||||
|
||||
.pictrue {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 430rpx;
|
||||
margin-left: 30rpx;
|
||||
font-size: 28rpx;
|
||||
color: #282828;
|
||||
position: relative;
|
||||
height: 160rpx;
|
||||
|
||||
.name {
|
||||
color: #282828;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.money {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
color: var(--view-priceColor);
|
||||
font-size: 22rpx;
|
||||
font-weight: bold;
|
||||
|
||||
text {
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.foot_bar {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
// bottom: 54px;
|
||||
left: 0;
|
||||
padding: 20rpx 0;
|
||||
z-index: 5;
|
||||
|
||||
.confirm_btn {
|
||||
width: 710rpx;
|
||||
height: 86rpx;
|
||||
line-height: 86rpx;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
background: var(--view-theme);
|
||||
border-radius: 43rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.empty {
|
||||
margin: 130rpx 0 150rpx;
|
||||
text-align: center;
|
||||
|
||||
image,
|
||||
uni-image {
|
||||
display: inline-block;
|
||||
width: 414rpx;
|
||||
height: 305rpx;
|
||||
}
|
||||
|
||||
text {
|
||||
display: block;
|
||||
color: #999999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
190
components/release/release.vue
Normal file
@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<view class="mark" v-if="isShow" @click="close">
|
||||
|
||||
<view class="release">
|
||||
<view class="release_content" v-for="(item,i) in list" :key="i" @click="navigtion(item)">
|
||||
<view class="release_content_left">
|
||||
<view :class="i==1?'release_imga':'release_img'">
|
||||
<image :src="item.img" mode="aspectFit"></image>
|
||||
</view>
|
||||
|
||||
<view class="title">
|
||||
<view class="title1">
|
||||
{{item.title1}}
|
||||
</view>
|
||||
<view class="title2">
|
||||
{{item.title2}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="release_content_right ">
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="release_close" @click="close">
|
||||
<image src="@/static/images/trad-close.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
navigateTo
|
||||
} from '../../libs/uniApi'
|
||||
export default {
|
||||
props: {
|
||||
isShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 子组件接收一个布尔类型的bottom,如果为true则弹窗则在页面的底部,false为默认居中显示
|
||||
bottom: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
list: [{
|
||||
img: require('@/static/images/season.png'),
|
||||
title1: '发布调货商品',
|
||||
title2: '镇街店铺快捷调货',
|
||||
},
|
||||
{
|
||||
img: require('@/static/images/discounts.png'),
|
||||
title1: '发布打折商品',
|
||||
title2: '发布店铺打折商品',
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
navigtion(item) {
|
||||
|
||||
if (item.title1 =='发布调货商品') {
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/transfer_goods/index'
|
||||
})
|
||||
} else {
|
||||
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/adddiscounts/index'
|
||||
})
|
||||
}
|
||||
},
|
||||
close() {
|
||||
this.$emit('close')
|
||||
},
|
||||
cancel() {
|
||||
this.$emit('cancel')
|
||||
},
|
||||
confirm() {
|
||||
this.$emit('confirm')
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.mark {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.release {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
.release_content {
|
||||
width: 694rpx;
|
||||
height: 137rpx;
|
||||
background: #FCF3EE;
|
||||
border-radius: 14rpx 14rpx 14rpx 14rpx;
|
||||
opacity: 1;
|
||||
margin-bottom: 21rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 26rpx;
|
||||
|
||||
.release_content_left {
|
||||
display: flex;
|
||||
|
||||
}
|
||||
|
||||
.release_content_right {
|
||||
height: 137rpx;
|
||||
line-height: 137rpx;
|
||||
|
||||
}
|
||||
|
||||
.release_img {
|
||||
width: 111rpx;
|
||||
height: 96rpx;
|
||||
margin-top: 21rpx;
|
||||
margin-right: 19rpx;
|
||||
|
||||
|
||||
image {
|
||||
width: 111rpx;
|
||||
height: 96rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.release_imga {
|
||||
|
||||
width: 76rpx;
|
||||
height: 113rpx;
|
||||
|
||||
margin-top: 5rpx;
|
||||
margin-right: 50rpx;
|
||||
|
||||
image {
|
||||
width: 76rpx;
|
||||
height: 113rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-top: 23rpx;
|
||||
}
|
||||
|
||||
.title1 {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.title2 {
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #666666;
|
||||
margin-top: 11rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.release_close {
|
||||
width: 248rpx;
|
||||
height: 248rpx;
|
||||
margin: 0 auto;
|
||||
|
||||
image {
|
||||
width: 248rpx;
|
||||
height: 248rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
621
components/shoppinglist/shoppinglist.vue
Normal file
@ -0,0 +1,621 @@
|
||||
<template>
|
||||
<view class="containers" :style="viewColor">
|
||||
<view class="header">
|
||||
|
||||
<view class="search">
|
||||
<text class="iconfont icon-xiazai5"></text>
|
||||
<input type="text" placeholder="请输入商品名称" v-model="searchVal" @input="setValue" confirm-type="search"
|
||||
@confirm="searchBut()" placeholder-class='placeholder'>
|
||||
</view>
|
||||
|
||||
<view class="iconclose" @click="close">
|
||||
X
|
||||
</view>
|
||||
</view>
|
||||
<view class="main">
|
||||
<scroll-view scroll-y="true" @touchmove.stop>
|
||||
<block>
|
||||
<view v-if="bought.length" @touchmove="onTouchmove" id="goods" class="goods">
|
||||
<view class="picTxt acea-row" v-for="(item, i) in bought" :key="i">
|
||||
<view class="checkbox">
|
||||
<text @click.stop="goodsCheck(item)" v-if="item.check"
|
||||
class="iconfont icon-xuanzhong1"></text>
|
||||
<text @click.stop="goodsCheck(item)" v-else
|
||||
:class="checkedArr.length >=5 ? 'disabled': ''"
|
||||
class="iconfont icon-weixuanzhong"></text>
|
||||
</view>
|
||||
<view class='pictrue'>
|
||||
<image :src='item.image'></image>
|
||||
</view>
|
||||
|
||||
<view class='text'>
|
||||
<view class='line2 name'>{{item.store_name}}</view>
|
||||
|
||||
|
||||
<view class="picTxt_one" v-if="item.attrValue.length>0">
|
||||
<picker class="slecte" v-if="item.attrValue.length>1"
|
||||
@change="bindPickerChange($event,item.attrValue,i)" :value="index"
|
||||
:range="item.attrValue" :range-key="'sku'">
|
||||
<view class="uni-input">{{item.attrValue[index].sku}}</view>
|
||||
</picker>
|
||||
|
||||
<view class="" style="margin-top: 10rpx;">
|
||||
库存:{{item.attrValue[index].stock}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
<view class="picTxt_price">
|
||||
<view class="price">
|
||||
<span>出售价格</span>
|
||||
<input type="text" :value="item.price" placeholder="输入出售价格"
|
||||
@input="producrprice($event,i,item)" adjust-position=""
|
||||
placeholder-style="color: #CCCCCC;" />
|
||||
</view>
|
||||
<view class="price_num">
|
||||
<span>出售数量</span>
|
||||
<subtractive v-if='item.number==0' style="margin-top: 10rpx;margin-left: 20rpx;"
|
||||
class="step" :min="1" :max="item.attrValue[index].stock" :value="peicenumber"
|
||||
:isMax="true" :isMin="true" index="11" @eventChange="numberChange($event,i)">
|
||||
</subtractive>
|
||||
|
||||
<subtractive v-else style="margin-top: 10rpx;margin-left: 20rpx;" class="step"
|
||||
:min="1" :max="item.attrValue[index].stock" :value="item.number" :isMax="true"
|
||||
:isMin="true" index="11" @increment="incrementTotal($event,i,item)"
|
||||
@eventChange="numberChange($event,i)"></subtractive>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="empty">
|
||||
<image src="/static/images/no_thing.png"></image>
|
||||
<text>暂无内容哦~</text>
|
||||
</view>
|
||||
</block>
|
||||
</scroll-view>
|
||||
<view class="foot_bar">
|
||||
<button class="confirm_btn" @click="submit">确定({{checkedArr.length}})</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Loading from '@/components/Loading/index.vue';
|
||||
import subtractive from '@/components/subtractive/subtractive.vue';
|
||||
|
||||
import {
|
||||
getCommunitygetOrderList
|
||||
} from "@/api/trading-floor";
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
export default {
|
||||
props: {
|
||||
checkedObj: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
computed: mapGetters(['viewColor']),
|
||||
components: {
|
||||
Loading,
|
||||
subtractive
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isActive: 0,
|
||||
loadedb: false,
|
||||
loadingb: false,
|
||||
loadedc: false,
|
||||
loadingc: false,
|
||||
loadeds: false,
|
||||
loadings: false,
|
||||
whereb: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
keyword: '',
|
||||
},
|
||||
peicenumber: 0,
|
||||
|
||||
searchVal: "",
|
||||
checked: [],
|
||||
list: [],
|
||||
|
||||
bought: [],
|
||||
|
||||
checkedArr: [],
|
||||
aryys: [],
|
||||
// picker下拉数据源
|
||||
storageCustomList: [{
|
||||
CustGoodsCode: "TEST001",
|
||||
CustGoodsName: "测试货主001",
|
||||
IfBoxId: 0,
|
||||
IfProductId: 0,
|
||||
}, {
|
||||
CustGoodsCode: "TEST002",
|
||||
CustGoodsName: "测试货主002",
|
||||
IfBoxId: 0,
|
||||
IfProductId: 0,
|
||||
}, {
|
||||
CustGoodsCode: "TEST003",
|
||||
CustGoodsName: "测试货主003",
|
||||
IfBoxId: 0,
|
||||
IfProductId: 0,
|
||||
}],
|
||||
index: 0,
|
||||
pickerData: '请选择',
|
||||
itstock: '',
|
||||
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
checkedObj: {
|
||||
handler(n) {
|
||||
|
||||
this.checkedArr = n
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.checkedArr = this.checkedObj
|
||||
this.aryys = this.checkedObj
|
||||
this.getBounht();
|
||||
},
|
||||
methods: {
|
||||
//价格
|
||||
producrprice(e, i, item) {
|
||||
this.bought[i].price = e.detail.value
|
||||
this.$set(item, 'check', false);
|
||||
for (let i in this.checkedArr) {
|
||||
if (this.checkedArr[i].product_id == item.product_id) {
|
||||
this.checkedArr.splice(i, 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
incrementTotal(e, i, item) {
|
||||
this.$set(item, 'check', false);
|
||||
for (let i in this.checkedArr) {
|
||||
if (this.checkedArr[i].product_id == item.product_id) {
|
||||
this.checkedArr.splice(i, 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
// picker修改事件
|
||||
bindPickerChange: function(e, storage, num) {
|
||||
this.bought[num].attrValue[this.index].sku = storage[e.detail.value].sku
|
||||
this.bought[num].attrValue[this.index].stock = storage[e.detail.value].stock
|
||||
this.bought[num].product_attr_unique = storage[e.detail.value].unique
|
||||
this.pickerData = storage[this.index] // 这里就是选中的对象
|
||||
|
||||
if (this.bought[num].attrValue[this.index].stock == 0) {
|
||||
this.$util.Tips({
|
||||
title: '库存不足'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 点击关闭按钮
|
||||
close() {
|
||||
this.$emit('close');
|
||||
},
|
||||
numberChange(data, i) {
|
||||
this.peicenumber = data.number;
|
||||
this.bought[i].number = data.number
|
||||
|
||||
},
|
||||
|
||||
tabs(index) {
|
||||
this.isActive = index
|
||||
this.$set(this.whereb, 'keyword', '');
|
||||
this.searchVal = ''
|
||||
this.searchBut()
|
||||
},
|
||||
onTouchmove(e) {
|
||||
if (this.loadendb) return;
|
||||
if (this.loadingb) return;
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
query.select('#goods').boundingClientRect(data => {
|
||||
if (data.bottom < 1500 && data.top < 0) {
|
||||
this.getBounht();
|
||||
}
|
||||
}).exec();
|
||||
|
||||
// 模拟触底刷新
|
||||
},
|
||||
|
||||
|
||||
setValue: function(event) {
|
||||
this.$set(this.whereb, 'keyword', event.detail.value);
|
||||
if (!event.detail.value) {
|
||||
this.whereb.page = 1
|
||||
this.loadedb = false
|
||||
this.getBounht()
|
||||
}
|
||||
|
||||
},
|
||||
searchBut() {
|
||||
this.bought = []
|
||||
this.whereb.page = 1
|
||||
this.loadedb = false
|
||||
this.getBounht()
|
||||
},
|
||||
getBounht() {
|
||||
var that = this;
|
||||
// console.log('1111111', that.loadingb, that.loadedb)
|
||||
if (that.loadingb || that.loadedb) return;
|
||||
that.loadingb = true;
|
||||
|
||||
getCommunitygetOrderList(that.whereb).then(
|
||||
res => {
|
||||
that.loadingb = false;
|
||||
that.loadedb = res.data.list.length < that.whereb.limit;
|
||||
that.bought.push.apply(that.bought, res.data.list);
|
||||
that.whereb.page = that.whereb.page + 1;
|
||||
that.getInitchecked(that.bought);
|
||||
},
|
||||
error => {
|
||||
that.$util.Tips({
|
||||
title: error.msg
|
||||
})
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
/*获取初始化选中的数据*/
|
||||
getInitchecked(arr) {
|
||||
let that = this;
|
||||
arr.forEach((item, index) => {
|
||||
that.$set(item, 'check', false);
|
||||
that.checkedArr.forEach((val, i) => {
|
||||
if (item.product_id == val.product_id) {
|
||||
that.$set(item, 'check', true);
|
||||
that.$set(item, 'number', val.number);
|
||||
that.$set(item, 'price', val.price);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
/*已选中的商品打钩*/
|
||||
getCheckedGoods() {
|
||||
this.checked = []
|
||||
this.checkedArr.forEach((item, index) => {
|
||||
this.checkedArr.push(item)
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
/*点击选中与否*/
|
||||
goodsCheck(item) {
|
||||
this.$set(item, 'check', !item.check);
|
||||
if (item.check) {
|
||||
if (this.peicenumber == 0) {
|
||||
item.number = 1
|
||||
}
|
||||
if (!item.product_attr_unique) {
|
||||
item.product_attr_unique = item.attrValue[0].unique
|
||||
}
|
||||
this.checkedArr.push(item)
|
||||
this.arrayUnique(this.checkedArr, 'product_id')
|
||||
} else {
|
||||
this.checkedArr.splice(this.checkedArr.findIndex(itemn => ((itemn.product_id == item.product_id))), 1)
|
||||
|
||||
}
|
||||
},
|
||||
//去重
|
||||
arrayUnique(arr, name) {
|
||||
let hash = {}
|
||||
const result = arr.reduce((acc, cru, index) => {
|
||||
if (!hash[cru[name]]) {
|
||||
hash[cru[name]] = {
|
||||
index: acc.length
|
||||
}
|
||||
acc.push(cru)
|
||||
} else {
|
||||
console.log(acc, hash[cru[name]])
|
||||
acc.splice(hash[cru[name]]['index'], 1, cru)
|
||||
}
|
||||
|
||||
|
||||
return acc;
|
||||
|
||||
}, [])
|
||||
this.checkedArr = result
|
||||
|
||||
|
||||
},
|
||||
/*确定提交*/
|
||||
submit() {
|
||||
|
||||
this.$emit('getProduct', this.checkedArr);
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.containers {
|
||||
background: #ffffff;
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
padding: 40rpx 0;
|
||||
position: relative;
|
||||
|
||||
.header {
|
||||
position: relative;
|
||||
padding: 0 30rpx;
|
||||
|
||||
.title {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
|
||||
text {
|
||||
position: relative;
|
||||
margin: 0 50rpx;
|
||||
color: #999999;
|
||||
font-size: 30rpx;
|
||||
|
||||
&.on {
|
||||
color: #333333;
|
||||
font-weight: bold;
|
||||
font-size: 34rpx;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 40rpx;
|
||||
height: 5rpx;
|
||||
background: var(--view-theme);
|
||||
position: absolute;
|
||||
bottom: -10rpx;
|
||||
left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.iconclose {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
line-height: 44rpx;
|
||||
border: 2rpx solid #fff;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: -150rpx;
|
||||
right: 30rpx;
|
||||
}
|
||||
|
||||
.search {
|
||||
margin-top: 44rpx;
|
||||
background: #F5F5F5;
|
||||
border-radius: 30rpx;
|
||||
padding: 12rpx 30rpx 12rpx 66rpx;
|
||||
position: relative;
|
||||
|
||||
.iconfont {
|
||||
font-size: 24rpx;
|
||||
color: #939393;
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
left: 30rpx;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
color: #999999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.sub_title {
|
||||
color: #282828;
|
||||
font-size: 26rpx;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
color: #8A8A8A;
|
||||
font-size: 28rpx;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
scroll-view {
|
||||
height: 650rpx;
|
||||
}
|
||||
|
||||
.main {
|
||||
height: 650rpx;
|
||||
margin: 40rpx 0 80rpx;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.picTxt {
|
||||
width: 100%;
|
||||
padding: 25rpx 0;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
border-top: 2rpx solid #E7E6E4;
|
||||
|
||||
.picTxt_one {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.picTxt_one {
|
||||
display: flex;
|
||||
margin-top: 20rpx;
|
||||
|
||||
|
||||
.slecte {
|
||||
margin-right: 30rpx;
|
||||
width: 280rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #959595;
|
||||
background-color: #E7E6E4;
|
||||
border-radius: 10rpx 10rpx 10rpx 10rpx;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.picTxt_price {
|
||||
display: flex;
|
||||
margin-top: 37rpx;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
|
||||
.price {
|
||||
display: flex;
|
||||
margin-right: 15rpx;
|
||||
|
||||
input {
|
||||
width: 210rpx;
|
||||
text-align: center;
|
||||
height: 70rpx;
|
||||
background: #F5F5F5;
|
||||
border-radius: 7rpx 7rpx 7rpx 7rpx;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
|
||||
margin-left: 20rpx;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.price_num {
|
||||
display: flex;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
margin-right: 30rpx;
|
||||
|
||||
.iconfont {
|
||||
font-size: 38rpx;
|
||||
color: #CCCCCC;
|
||||
}
|
||||
|
||||
.icon-xuanzhong1 {
|
||||
color: var(--view-theme);
|
||||
}
|
||||
|
||||
.disabled {
|
||||
pointer-events: none;
|
||||
cursor: default;
|
||||
opacity: 0.3;
|
||||
}
|
||||
}
|
||||
|
||||
.pictrue {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 430rpx;
|
||||
margin-left: 30rpx;
|
||||
font-size: 28rpx;
|
||||
color: #282828;
|
||||
position: relative;
|
||||
height: 160rpx;
|
||||
|
||||
.name {
|
||||
color: #282828;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.money {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
color: var(--view-priceColor);
|
||||
font-size: 22rpx;
|
||||
font-weight: bold;
|
||||
|
||||
text {
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.foot_bar {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
// bottom: 54px;
|
||||
left: 0;
|
||||
padding: 20rpx 0;
|
||||
z-index: 5;
|
||||
|
||||
.confirm_btn {
|
||||
width: 710rpx;
|
||||
height: 86rpx;
|
||||
line-height: 86rpx;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
background: var(--view-theme);
|
||||
border-radius: 43rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.empty {
|
||||
margin: 130rpx 0 150rpx;
|
||||
text-align: center;
|
||||
|
||||
image,
|
||||
uni-image {
|
||||
display: inline-block;
|
||||
width: 414rpx;
|
||||
height: 305rpx;
|
||||
}
|
||||
|
||||
text {
|
||||
display: block;
|
||||
color: #999999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
209
components/subtractive/subtractive.vue
Normal file
@ -0,0 +1,209 @@
|
||||
<template>
|
||||
<view class="uni-numbox">
|
||||
<!-- -部分 -->
|
||||
<view class="uni-numbox-minus" @click="_calcValue('subtract')">
|
||||
<text :class="minDisabled?'uni-numbox-disabled': ''">-</text>
|
||||
</view>
|
||||
<!-- 中间输入数值部分 -->
|
||||
<input class="uni-numbox-value" type="number" :disabled="disabled" :value="inputValue" @blur="_onBlur">
|
||||
<!-- + 部分 -->
|
||||
<view class="uni-numbox-plus" @click="_calcValue('add')">
|
||||
<text :class="maxDisabled?'uni-numbox-disabled': ''">+</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'uni-number-box',
|
||||
props: {
|
||||
// isMax 是否有上限设置
|
||||
isMax: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// isMin 是否有下限设置
|
||||
isMin: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// index 唯一值,如果一个页面有多个数量增减组件时,起到唯一的作用
|
||||
index: {
|
||||
type: String,
|
||||
default: 0
|
||||
},
|
||||
// value 是数值
|
||||
value: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
// min 最小值
|
||||
min: {
|
||||
type: Number,
|
||||
default: -Infinity
|
||||
},
|
||||
// max 最大值
|
||||
max: {
|
||||
type: Number,
|
||||
default: Infinity
|
||||
},
|
||||
// step 步长
|
||||
step: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
// disabled 是否禁用
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
inputValue: this.value,
|
||||
minDisabled: false,
|
||||
maxDisabled: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.maxDisabled = this.isMax;
|
||||
this.minDisabled = this.isMin;
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
inputValue(number) {
|
||||
const data = {
|
||||
number: number,
|
||||
index: this.index
|
||||
}
|
||||
this.$emit('eventChange', data);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
_calcValue(type) {
|
||||
const scale = this._getDecimalScale();
|
||||
let value = this.inputValue * scale;
|
||||
let newValue = 0;
|
||||
let step = this.step * scale;
|
||||
|
||||
if (type === 'subtract') {
|
||||
newValue = value - step;
|
||||
if (newValue <= this.min) {
|
||||
this.minDisabled = true;
|
||||
}
|
||||
if (newValue < this.min) {
|
||||
newValue = this.min
|
||||
}
|
||||
if (newValue < this.max && this.maxDisabled === true) {
|
||||
this.maxDisabled = false;
|
||||
}
|
||||
} else if (type === 'add') {
|
||||
newValue = value + step;
|
||||
if (newValue >= this.max) {
|
||||
this.maxDisabled = true;
|
||||
}
|
||||
if (newValue > this.max) {
|
||||
newValue = this.max
|
||||
}
|
||||
if (newValue > this.min && this.minDisabled === true) {
|
||||
this.minDisabled = false;
|
||||
}
|
||||
}
|
||||
if (newValue === value) {
|
||||
return;
|
||||
}
|
||||
this.inputValue = newValue / scale;
|
||||
this.$emit('increment',this.inputValue)
|
||||
},
|
||||
_getDecimalScale() {
|
||||
let scale = 1;
|
||||
// 浮点型
|
||||
if (~~this.step !== this.step) {
|
||||
scale = Math.pow(10, (this.step + '').split('.')[1].length);
|
||||
}
|
||||
return scale;
|
||||
},
|
||||
_onBlur(event) {
|
||||
let value = event.detail.value;
|
||||
if (!value) {
|
||||
this.inputValue = 0;
|
||||
return
|
||||
}
|
||||
value = +value;
|
||||
if (value > this.max) {
|
||||
value = this.max;
|
||||
} else if (value < this.min) {
|
||||
value = this.min
|
||||
}
|
||||
|
||||
this.inputValue = value
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.uni-numbox {
|
||||
/* position:absolute; */
|
||||
/* left: 30upx;
|
||||
bottom: 0; */
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
width: 200upx;
|
||||
height: 50upx;
|
||||
/* background:#f5f5f5; */
|
||||
}
|
||||
|
||||
.uni-numbox-minus {
|
||||
background: #EEEEEE !important;
|
||||
|
||||
color: #909399 !important;
|
||||
}
|
||||
|
||||
.uni-numbox-minus,
|
||||
.uni-numbox-plus {
|
||||
margin: 0;
|
||||
width: 53rpx;
|
||||
height: 53rpx;
|
||||
background-color: #F84221;
|
||||
opacity: 1;
|
||||
line-height: 53rpx;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
color: #fff;
|
||||
font-size: 40upx;
|
||||
}
|
||||
|
||||
.uni-numbox-minus .yticon,
|
||||
.uni-numbox-plus .yticon {
|
||||
font-size: 36upx;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.uni-numbox-minus {
|
||||
/* border-right: none;
|
||||
border-top-left-radius: 6upx;
|
||||
border-bottom-left-radius: 6upx; */
|
||||
}
|
||||
|
||||
.uni-numbox-plus {
|
||||
/* border-left: none;
|
||||
border-top-right-radius: 6upx;
|
||||
border-bottom-right-radius: 6upx; */
|
||||
}
|
||||
|
||||
.uni-numbox-value {
|
||||
position: relative;
|
||||
/* background-color: #f5f5f5; */
|
||||
width: 90upx;
|
||||
height: 50upx;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
font-size: 30upx;
|
||||
}
|
||||
|
||||
.uni-numbox-disabled.yticon {
|
||||
color: #d6d6d6;
|
||||
}
|
||||
</style>
|
261
components/villageTeam/villageTeam.vue
Normal file
@ -0,0 +1,261 @@
|
||||
<template>
|
||||
<view :style="viewColor">
|
||||
<view class="address-window" :class="display==true?'on':''">
|
||||
<view class='title'>请选择所在村队<text class='iconfont icon-guanbi' @tap='close'></text></view>
|
||||
<view class="address-count">
|
||||
<view class="address-selected">
|
||||
<view v-for="(item,index) in selectedArr" :key="index" class="selected-list" :class="{active:index === selectedIndex}" @click="change(item.parent_id, index)">
|
||||
{{item.name}}
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</view>
|
||||
<view class="selected-list" :class="{active:-1 === selectedIndex}" v-if="showMore" @click="change(-1, -1)">
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
请选择
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view scroll-y="true" :scroll-top="scrollTop" class="address-list" @scroll="scroll">
|
||||
<view v-for="(item,index) in addressList" :key="index" class="list" :class="{active:item.id === activeId}" @click="selected(item)">
|
||||
<text class="item-name">{{item.name}}</text>
|
||||
<text v-if="item.id === activeId" class="iconfont icon-duihao2"></text>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
<view class='mask' catchtouchmove="true" :hidden='display==false' @tap='close'></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import {getAddressList} from '@/api/user.js';
|
||||
import {brigade } from '@/api/api.js';
|
||||
import { mapGetters } from "vuex";
|
||||
const CACHE_ADDRESS = {};
|
||||
export default {
|
||||
props: {
|
||||
display: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
address: Array,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
active: 0,
|
||||
//地址列表
|
||||
addressList: [],
|
||||
selectedArr: [],
|
||||
selectedIndex: -1,
|
||||
is_loading: false,
|
||||
old: { scrollTop: 0 },
|
||||
scrollTop: 0
|
||||
};
|
||||
},
|
||||
computed:{
|
||||
...mapGetters(['viewColor']),
|
||||
activeId(){
|
||||
return this.selectedIndex == -1 ? 0 : this.selectedArr[this.selectedIndex].id
|
||||
},
|
||||
showMore(){
|
||||
return this.selectedArr.length ? this.selectedArr[this.selectedArr.length - 1].snum > 0 : true
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
address(n){
|
||||
this.selectedArr = n ? [...n] : []
|
||||
},
|
||||
display(n){
|
||||
if(!n) {
|
||||
this.addressList = [];
|
||||
this.selectedArr = this.address ? [...this.address] : [];
|
||||
this.selectedIndex = -1;
|
||||
this.is_loading = false;
|
||||
}else{
|
||||
this.loadAddress()
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.loadAddress()
|
||||
},
|
||||
methods: {
|
||||
change(pid,index){
|
||||
if(this.selectedIndex == index) return;
|
||||
if(pid === -1){
|
||||
pid = this.selectedArr.length ? this.selectedArr[this.selectedArr.length -1].id : 0;
|
||||
}
|
||||
console.log(index)
|
||||
this.selectedIndex = index;
|
||||
this.loadAddress();
|
||||
},
|
||||
loadAddress(pid){
|
||||
if(CACHE_ADDRESS[pid]){
|
||||
this.addressList = CACHE_ADDRESS[pid];
|
||||
return ;
|
||||
}
|
||||
this.is_loading = true;
|
||||
brigade(pid).then(res=>{
|
||||
console.log(res.data)
|
||||
this.is_loading = false;
|
||||
CACHE_ADDRESS[pid] = res.data;
|
||||
this.addressList = res.data;
|
||||
})
|
||||
this.goTop()
|
||||
},
|
||||
selected(item){
|
||||
if(this.is_loading) return;
|
||||
if(this.selectedIndex > -1){
|
||||
this.selectedArr.splice(this.selectedIndex + 1,999)
|
||||
this.selectedArr[this.selectedIndex] = item;
|
||||
this.selectedIndex = -1;
|
||||
}else if(!item.parent_id){
|
||||
this.selectedArr = [item];
|
||||
}else{
|
||||
this.selectedArr.push(item);
|
||||
}
|
||||
if(item.snum){
|
||||
this.loadAddress(item.id);
|
||||
} else {
|
||||
this.$emit('submit', [...this.selectedArr]);
|
||||
this.$emit('changeClose');
|
||||
}
|
||||
this.goTop()
|
||||
},
|
||||
close: function() {
|
||||
this.$emit('changeClose');
|
||||
},
|
||||
scroll : function(e) {
|
||||
this.old.scrollTop = e.detail.scrollTop
|
||||
},
|
||||
goTop: function(e) {
|
||||
this.scrollTop = this.old.scrollTop
|
||||
this.$nextTick(() => {
|
||||
this.scrollTop = 0
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.address-window {
|
||||
background-color: #fff;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 101;
|
||||
border-radius: 30rpx 30rpx 0 0;
|
||||
transform: translate3d(0, 100%, 0);
|
||||
transition: all .3s cubic-bezier(.25, .5, .5, .9);
|
||||
}
|
||||
.address-window.on {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.address-window .title {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
height: 123rpx;
|
||||
line-height: 123rpx;
|
||||
position: relative;
|
||||
}
|
||||
.address-window .title .iconfont {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
color: #8a8a8a;
|
||||
font-size: 35rpx;
|
||||
}
|
||||
.address-count{
|
||||
.address-selected{
|
||||
padding: 0 30rpx;
|
||||
margin-top: 10rpx;
|
||||
position: relative;
|
||||
padding-bottom: 20rpx;
|
||||
border-bottom: 2rpx solid #f7f7f7;
|
||||
}
|
||||
.selected-list{
|
||||
font-size: 26rpx;
|
||||
color: #282828;
|
||||
line-height: 50rpx;
|
||||
padding-bottom: 10rpx;
|
||||
padding-left: 60rpx;
|
||||
position: relative;
|
||||
&.active{
|
||||
color: #e28d54;
|
||||
}
|
||||
&:before,&:after{
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
}
|
||||
&:before{
|
||||
width: 4rpx;
|
||||
height: 100%;
|
||||
background-color: var(--view-theme);
|
||||
top: 0;
|
||||
left: 10rpx;
|
||||
}
|
||||
&:after{
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
background: var(--view-theme);
|
||||
border-radius: 100%;
|
||||
left: 6rpx;
|
||||
top: 50%;
|
||||
margin-top: -8rpx;
|
||||
}
|
||||
&:first-child,&:last-child{
|
||||
&:before{
|
||||
height: 50%;
|
||||
}
|
||||
}
|
||||
&:first-child{
|
||||
&:before{
|
||||
top: auto;
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
.iconfont{
|
||||
font-size: 20rpx;
|
||||
float: right;
|
||||
color: #dddddd;
|
||||
}
|
||||
}
|
||||
scroll-view{
|
||||
height: 550rpx;
|
||||
}
|
||||
.address-list{
|
||||
padding: 0 30rpx;
|
||||
margin-top: 20rpx;
|
||||
box-sizing: border-box;
|
||||
.list{
|
||||
.iconfont{
|
||||
float: right;
|
||||
color: #ddd;
|
||||
font-size: 22rpx;
|
||||
}
|
||||
.item-name{
|
||||
display: inline-block;
|
||||
line-height: 50rpx;
|
||||
margin-bottom: 20rpx;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
&.active{
|
||||
color: #e28d54;
|
||||
.iconfont{
|
||||
color: #e28d54;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -9,9 +9,11 @@
|
||||
<view class="iconfont icon-weizhi"></view>
|
||||
<view class="town_name">{{street}}</view>
|
||||
</view>
|
||||
|
||||
<navigator url="/pages/chat/customer_list/index?type=0" hover-class="none">
|
||||
<view class="iconfont icon-xiaoxi" style="color:#fff;"></view>
|
||||
</navigator>
|
||||
|
||||
</view>
|
||||
<!-- 搜索栏 -->
|
||||
<navigator url="/pages/columnGoods/goods_search/index" hover-class="none" class="search_content flex_a_c_j_sb">
|
||||
|
@ -12,6 +12,8 @@ if (process.env.NODE_ENV === "development") {
|
||||
// httpApi = 'https://shop.lihaink.cn' // 生产
|
||||
httpApi = "https://crmeb-test.shop.lihaink.cn"
|
||||
// httpApi = "http://192.168.0.222"
|
||||
// httpApi = "http://192.168.0.108:8325"
|
||||
// httpApi = 'http://192.168.0.108:8325'
|
||||
// #ifdef MP-WEIXIN
|
||||
httpApiTwo = "https://nk.lihaink.cn"
|
||||
httpApiThree = 'http://ceshi-oa.lihaink.cn'
|
||||
@ -22,7 +24,7 @@ if (process.env.NODE_ENV === "development") {
|
||||
// httpApiThree = 'baseUrlTest' // h5跨域配置
|
||||
// #endif
|
||||
} else if (process.env.NODE_ENV === 'production') {
|
||||
// httpApi = 'https://shop.lihaink.cn' // 生产
|
||||
httpApi = 'https://shop.lihaink.cn' // 生产
|
||||
httpApi = "https://crmeb-test.shop.lihaink.cn"
|
||||
httpApiTwo = 'https://nk.lihaink.cn' // 生产
|
||||
httpApiThree = 'http://ceshi-oa.lihaink.cn' //生产
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"name" : "CRMEB",
|
||||
"name" : "惠农生活",
|
||||
"appid" : "__UNI__3A527D1",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.15",
|
||||
"versionCode" : 138,
|
||||
"versionName" : "1.0.18",
|
||||
"versionCode" : 142,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
@ -26,7 +26,8 @@
|
||||
"Camera" : {},
|
||||
"Geolocation" : {},
|
||||
"Payment" : {},
|
||||
"Share" : {}
|
||||
"Share" : {},
|
||||
"OAuth" : {}
|
||||
},
|
||||
"safearea" : {
|
||||
"bottom" : {
|
||||
@ -111,9 +112,7 @@
|
||||
"__platform__" : [ "ios", "android" ]
|
||||
}
|
||||
},
|
||||
"oauth" : {
|
||||
"apple" : {}
|
||||
},
|
||||
"oauth" : {},
|
||||
"ad" : {}
|
||||
},
|
||||
"icons" : {
|
||||
|
16
package.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "e-select",
|
||||
"name": "e-select下拉选择器",
|
||||
"displayName": "e-select下拉选择器",
|
||||
"version": "1.0.7",
|
||||
"description": "select下拉选择器,支持vue2、vue3,支持搜索过滤,支持滚动动画,内置插槽可用于搭配分页组件",
|
||||
"keywords": [
|
||||
"下拉选择框"
|
||||
],
|
||||
"dcloudext": {
|
||||
"category": [
|
||||
"前端组件",
|
||||
"通用组件"
|
||||
]
|
||||
}
|
||||
}
|
174
pages.json
@ -1,5 +1,6 @@
|
||||
{
|
||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
"pages": [
|
||||
//pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
@ -166,7 +167,7 @@
|
||||
"pages": [{
|
||||
"path": "gather/select_warehouse",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarTitleText": "入库管理",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
}, {
|
||||
@ -193,16 +194,16 @@
|
||||
}, {
|
||||
"path": "supply_chain/supplier",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarBackgroundColor": "#e93323"
|
||||
// "navigationStyle": "custom"
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarBackgroundColor": "#e93323",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "supply_chain/merchant",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarTitleText": "商品",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
@ -227,11 +228,9 @@
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "teach_video/teach_video",
|
||||
"style" :
|
||||
{
|
||||
}, {
|
||||
"path": "teach_video/teach_video",
|
||||
"style": {
|
||||
"navigationBarTitleText": "教学视频",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationStyle": "custom"
|
||||
@ -249,12 +248,24 @@
|
||||
"navigationBarTitleText": "忘记密码"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "online_warehousing/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "采购订单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "user_setting/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "设置"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "supply_procurement/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供货采购"
|
||||
}
|
||||
},
|
||||
//协议,关于
|
||||
{
|
||||
"path": "user_about/index",
|
||||
@ -381,7 +392,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "gather_list/index" ,
|
||||
"path": "gather_list/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现流水"
|
||||
}
|
||||
@ -474,6 +485,18 @@
|
||||
"navigationBarTitleText": "我的订单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "order_list/indexCopy",
|
||||
"style": {
|
||||
"navigationBarTitleText": "采购订单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "order_list/order",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的订单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "order_list/search",
|
||||
"style": {
|
||||
@ -656,14 +679,124 @@
|
||||
}
|
||||
}, {
|
||||
"path": "embody/embody",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提现",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "payment/payment",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "trading_hall/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "交易大厅",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pages/releaseManagement",
|
||||
"name": "releaseManagement",
|
||||
"pages": [{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "发布管理",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "details/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "发起委托",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}]
|
||||
},
|
||||
{
|
||||
"root": "pages/commissionedSales",
|
||||
"name": "commissionedSales",
|
||||
"pages": [{
|
||||
"path": "index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "委托销售",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "initiateDelegation/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "发起委托",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "addDelegation/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "新增委托",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "receivedCommission/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收到委托",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "delegation_details/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "委托销售详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pages/trading_hall",
|
||||
"name": "trading_hall",
|
||||
"pages": [
|
||||
|
||||
{
|
||||
"path": "transfer_goods/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "新增调货",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "adddiscounts/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "新增打折",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "product_details/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品详情",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"root": "pages/store",
|
||||
"name": "store",
|
||||
@ -822,6 +955,12 @@
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "order/monitor",
|
||||
"style": {
|
||||
"navigationBarTitleText": "订单监控",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -949,7 +1088,7 @@
|
||||
"path": "plant_release/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "内容发布",
|
||||
"enablePullDownRefresh":true
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -1028,12 +1167,16 @@
|
||||
"path": "goods_search/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "搜索商品"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "goods_search_con/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "搜索商品"
|
||||
"navigationBarTitleText": "搜索商品",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -1209,10 +1352,11 @@
|
||||
"path": "nvueSwiper/index",
|
||||
//#endif
|
||||
"style": {
|
||||
"navigationBarTitleText": "社区短视频",
|
||||
"navigationBarTitleText": "社区视频",
|
||||
"navigationStyle": "custom",
|
||||
"app-plus": {
|
||||
"titleNView": false,
|
||||
|
||||
"bounce": "none"
|
||||
}
|
||||
}
|
||||
|
@ -2,30 +2,36 @@
|
||||
<view>
|
||||
<view class="order-index" ref="container">
|
||||
<view class="header acea-row">
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=1&merId=${mer_id}`" hover-class="none">
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=1&merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">{{ census.unpaid }}</view>
|
||||
<view>待付款</view>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=2&merId=${mer_id}`" hover-class="none">
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=2&merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">{{ census.unshipped }}</view>
|
||||
<view>待发货</view>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=3&merId=${mer_id}`" hover-class="none">
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=3&merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">{{ census.untake }}</view>
|
||||
<view>待收货</view>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=4&merId=${mer_id}`" hover-class="none">
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=4&merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">{{ census.unevaluate }}</view>
|
||||
<view>待评价</view>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=6&merId=${mer_id}`" hover-class="none">
|
||||
<navigator class="item" :url="`/pages/admin/orderList/index?types=6&merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">{{ census.refund }}</view>
|
||||
<view>退款</view>
|
||||
</navigator>
|
||||
</view>
|
||||
<view class="wrapper">
|
||||
<view class="title">
|
||||
<span class="iconfont icon-shujutongji"></span>数据统计
|
||||
<image src="@/static/images/sjtj.png" mode="widthFix" style="width:40rpx;translate: 0 10rpx;">
|
||||
</image>数据统计
|
||||
</view>
|
||||
<view class="list acea-row" v-if="orderData">
|
||||
<navigator class="item" :url="`/pages/admin/statistics/index?type=price&time=today&merId=${mer_id}`"
|
||||
@ -33,7 +39,8 @@
|
||||
<view class="num">{{ orderData.today.payPrice }}</view>
|
||||
<view>今日成交额</view>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/admin/statistics/index?type=price&time=yesterday&merId=${mer_id}`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/admin/statistics/index?type=price&time=yesterday&merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">{{ orderData.yesterday.payPrice }}</view>
|
||||
<view>昨日成交额</view>
|
||||
@ -48,7 +55,8 @@
|
||||
<view class="num">{{ orderData.today.orderNum}}</view>
|
||||
<view>今日订单数</view>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/admin/statistics/index?type=order&time=yesterday&merId=${mer_id}`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/admin/statistics/index?type=order&time=yesterday&merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">{{ orderData.yesterday.orderNum }}</view>
|
||||
<view>昨日订单数</view>
|
||||
@ -62,7 +70,8 @@
|
||||
</view>
|
||||
<view class="public-wrapper">
|
||||
<view class="title">
|
||||
<span class="iconfont icon-xiangxishuju"></span>详细数据
|
||||
<image src="@/static/images/xxsj.png" mode="widthFix" style="width:40rpx;translate: 0 10rpx;">
|
||||
</image>详细数据
|
||||
</view>
|
||||
<view class="nav acea-row row-between-wrapper">
|
||||
<view class="data">日期</view>
|
||||
@ -77,13 +86,83 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="public_footer" v-if="this.type_id == 12">
|
||||
|
||||
<view class="footer_bon">
|
||||
<view class="footer_top public-wrapper ">
|
||||
<image src="@/static/images/ddjk.png" mode="widthFix" style="width:40rpx;"></image>订单监控
|
||||
</view>
|
||||
|
||||
<view v-for="(item,index) in OrderList" :key="index">
|
||||
|
||||
|
||||
<view class="" v-for="(val, key) in item.orderProduct">
|
||||
<view class="bon_top" :key="key" @click="toDetail(item)">
|
||||
<view class="public_img">
|
||||
<image class="public_img" :src="val.cart_info.product.image" mode=""></image>
|
||||
</view>
|
||||
<view>
|
||||
<view class="text_top">
|
||||
<view class="text">
|
||||
{{ val.cart_info.product.store_name }}
|
||||
</view>
|
||||
<view class="monry">
|
||||
¥{{ val.total_price }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="text_order">
|
||||
订单号: {{ item.order_sn }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bon_bon" :key="key" @click="toDetail(item)">
|
||||
<view class="order">
|
||||
采购数量
|
||||
<view class="txt">
|
||||
{{ val.product_num }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="order"
|
||||
style="border-left: 1px solid #999999;border-right: 1px solid #999999;">
|
||||
已售数量
|
||||
<view class="txt">
|
||||
{{ val.sales_volume }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="order">
|
||||
库存数量
|
||||
<view class="txt">
|
||||
{{ val.product_num - val.sales_volume }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<button v-if="this.type_id == 12" class="footer-bnt" @click="navigator()">查看更多 ></button>
|
||||
<!-- <view class="public-wrapper">
|
||||
<navigator class="item" :url="`/pages/admin/order/monitor?merId=${mer_id}`"
|
||||
hover-class="none">
|
||||
<view class="num">订单监控</view>
|
||||
</navigator>
|
||||
</view> -->
|
||||
<Loading :loaded="loaded" :loading="loading"></Loading>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getStatisticsInfo, getStatisticsMonth, orderStatistics, orderPrice } from "@/api/admin";
|
||||
import {
|
||||
getStatisticsInfo,
|
||||
getStatisticsMonth,
|
||||
orderStatistics,
|
||||
orderPrice,
|
||||
purchaseOrder
|
||||
} from "@/api/admin";
|
||||
import Loading from '@/components/Loading/index.vue'
|
||||
export default {
|
||||
name: 'adminOrder',
|
||||
@ -99,22 +178,28 @@
|
||||
month: {}
|
||||
},
|
||||
list: [],
|
||||
OrderList: [], //订单数组
|
||||
where: {
|
||||
page: 1,
|
||||
limit: 15,
|
||||
limit: 10,
|
||||
status: 1,
|
||||
keyword: '',
|
||||
product_type: ''
|
||||
},
|
||||
loaded: false,
|
||||
loading: false,
|
||||
mer_id: '',
|
||||
type_id: '', //店铺类型
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.type_id = options.type_id
|
||||
this.where.product_type = options.product_type ?? 0
|
||||
this.mer_id = options.mer_id
|
||||
options.product_type ? uni.setStorageSync("PRODUCT_TYPE", 98) : uni.removeStorageSync("PRODUCT_TYPE");
|
||||
this.getOrderStatistics(this.mer_id);
|
||||
this.getList(this.mer_id)
|
||||
this.purchaseOrderList(this.mer_id)
|
||||
},
|
||||
methods: {
|
||||
getIndex: function() {
|
||||
@ -151,7 +236,9 @@
|
||||
},
|
||||
getOrderStatistics: function(mer_id) {
|
||||
let that = this;
|
||||
const data = { product_type: this.where.product_type }
|
||||
const data = {
|
||||
product_type: this.where.product_type
|
||||
}
|
||||
console.log('data', data);
|
||||
orderStatistics(mer_id, data).then(
|
||||
res => {
|
||||
@ -164,6 +251,24 @@
|
||||
})
|
||||
}
|
||||
);
|
||||
},
|
||||
toDetail(item) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/admin/orderDetail/index?id=${item.order_id}&mer_id=${item.mer_id}`
|
||||
})
|
||||
},
|
||||
navigator() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/admin/order/monitor?merId=${this.mer_id}`
|
||||
})
|
||||
},
|
||||
purchaseOrderList(mer_id) {
|
||||
this.where.limit = 2
|
||||
purchaseOrder(this.where, mer_id).then(res => {
|
||||
console.log(res);
|
||||
this.OrderList = res.data
|
||||
console.log(this.OrderList);
|
||||
})
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
@ -172,7 +277,7 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.popupn {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
@ -201,6 +306,14 @@
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.supervisory_img {
|
||||
display: inline-block;
|
||||
width: 500rpx;
|
||||
height: 500rpx;
|
||||
background-color: red;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
@ -228,7 +341,7 @@
|
||||
|
||||
/*订单首页*/
|
||||
.order-index .header {
|
||||
background-image: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/beijing2.png");
|
||||
background: url("@/static/images/beijin.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
width: 100%;
|
||||
height: 280upx;
|
||||
@ -307,6 +420,14 @@
|
||||
background-color: #fff;
|
||||
border-radius: 10upx;
|
||||
padding-top: 25upx;
|
||||
|
||||
.item {
|
||||
.num {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.public-wrapper .nav {
|
||||
@ -340,9 +461,118 @@
|
||||
border-bottom: 1px solid #f7f7f7;
|
||||
height: 70upx;
|
||||
font-size: 24upx;
|
||||
|
||||
}
|
||||
|
||||
.public-wrapper .conter .item .turnover {
|
||||
color: #d84242;
|
||||
}
|
||||
|
||||
.public_footer {
|
||||
width: 90vw;
|
||||
margin: auto;
|
||||
|
||||
.footer_top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 16px 0 16px 25rpx;
|
||||
|
||||
.jk_img {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
overflow: hidden;
|
||||
// border: 1px solid red;
|
||||
border-radius: 40px;
|
||||
|
||||
image {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
margin-right: 5px;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.footer_bon {
|
||||
width: 100%;
|
||||
border-radius: 8px;
|
||||
background-color: #fff;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.bon_top {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
||||
.public_img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
.text_top {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
margin: 3px 0 3px 3px;
|
||||
|
||||
.text {
|
||||
width: 140px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.monry {
|
||||
margin-left: 10px;
|
||||
color: #F84221;
|
||||
}
|
||||
}
|
||||
|
||||
.text_order {
|
||||
width: 200px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
margin-left: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.bon_bon {
|
||||
width: 90%;
|
||||
height: 66px;
|
||||
background: #F5F5F5;
|
||||
border-radius: 4px 4px 4px 4px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
margin: auto;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 5px;
|
||||
|
||||
.order {
|
||||
width: 120px;
|
||||
|
||||
.txt {
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.footer-bnt {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 15px;
|
||||
margin: auto;
|
||||
line-height: 40px;
|
||||
border: 1px solid #CCCCCC;
|
||||
background-color: #f5f5f5;
|
||||
color: #999999;
|
||||
font-size: 13px
|
||||
}
|
||||
</style>
|
663
pages/admin/order/monitor.vue
Normal file
@ -0,0 +1,663 @@
|
||||
<template>
|
||||
<view class="pos-order-list" ref="container">
|
||||
<view class="top-header">
|
||||
<view class="search">
|
||||
<view class="search-content acea-row row-middle">
|
||||
<text class="iconfont icon-sousuo"></text>
|
||||
<input v-model="where.keyword" confirm-type="search" placeholder="请输收货人手机号或订单号搜索" class="input"
|
||||
@confirm="handleSearch" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="pubilc_footer">
|
||||
<view class="footer_bon" v-for="(item,index) in list" :key="index">
|
||||
<view class="" v-for="(val, key) in item.orderProduct">
|
||||
<view class="bon_top" :key="key" @click="toDetail(item)">
|
||||
<view class="public_img">
|
||||
<image class="public_img" :src="val.cart_info.product.image" mode=""></image>
|
||||
</view>
|
||||
<view>
|
||||
<view class="text_top">
|
||||
<view class="text">
|
||||
{{ val.cart_info.product.store_name }}
|
||||
</view>
|
||||
<view class="monry">
|
||||
¥{{ val.total_price }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="text_order">
|
||||
订单号: {{ item.order_sn }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bon_bon" :key="key" @click="toDetail(item)">
|
||||
<view class="order">
|
||||
采购数量
|
||||
<view class="txt">
|
||||
{{ val.product_num }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="order" style="border-left: 1px solid #999999;border-right: 1px solid #999999;">
|
||||
已售数量
|
||||
<view class="txt">
|
||||
{{ val.sales_volume }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="order">
|
||||
库存数量
|
||||
<view class="txt">
|
||||
{{ val.product_num - val.sales_volume }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<Loading :loaded="loaded" :loading="loading"></Loading>
|
||||
<view v-if="!loading && list.length <= 0" class="nothing">
|
||||
<image src="/static/images/no_thing.png" mode="widthFix"></image>
|
||||
<view class="nothing_text">暂无订单~</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
purchaseOrder
|
||||
} from "@/api/admin";
|
||||
import Loading from '@/components/Loading/index'
|
||||
export default {
|
||||
name: "AdminOrderList",
|
||||
components: {
|
||||
Loading
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
current: "",
|
||||
change: false,
|
||||
refundMark: false,
|
||||
types: 1,
|
||||
where: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
status: 1,
|
||||
keyword: '',
|
||||
product_type: ''
|
||||
},
|
||||
list: [],
|
||||
loaded: false,
|
||||
loading: false,
|
||||
refundInfo: {},
|
||||
orderInfo: {},
|
||||
status: "",
|
||||
merId: ''
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
"$route.params.types": function(newVal) {
|
||||
let that = this;
|
||||
if (newVal != undefined) {
|
||||
that.where.status = newVal;
|
||||
that.init();
|
||||
}
|
||||
},
|
||||
types: function() {
|
||||
this.getIndex();
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.where.product_type = uni.getStorageSync("PRODUCT_TYPE") ?? ""
|
||||
this.current = "";
|
||||
this.merId = option.merId;
|
||||
this.getIndex();
|
||||
},
|
||||
methods: {
|
||||
handleSearch() {
|
||||
this.loaded = false;
|
||||
this.where.page = 1;
|
||||
this.list = [];
|
||||
this.getIndex();
|
||||
},
|
||||
// 获取数据
|
||||
getIndex() {
|
||||
let that = this;
|
||||
if (that.loading || that.loaded) return;
|
||||
that.loading = true;
|
||||
purchaseOrder(that.where, that.merId).then(
|
||||
res => {
|
||||
that.loading = false;
|
||||
that.loaded = res.data.length < that.where.limit;
|
||||
that.list.push.apply(that.list, res.data);
|
||||
that.where.page = that.where.page + 1;
|
||||
},
|
||||
err => {
|
||||
that.$util.Tips({
|
||||
title: err
|
||||
});
|
||||
}
|
||||
);
|
||||
},
|
||||
// 初始化
|
||||
init: function() {
|
||||
this.list = [];
|
||||
this.where.page = 1;
|
||||
this.loaded = false;
|
||||
this.loading = false;
|
||||
this.getIndex();
|
||||
this.current = "";
|
||||
},
|
||||
toDetail(item) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/admin/orderDetail/index?id=${item.order_id}&mer_id=${item.mer_id}`
|
||||
})
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.getIndex()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.pos-order-list .top-header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.pos-order-list .nav {
|
||||
// width: 100%;
|
||||
height: 96upx;
|
||||
font-size: 30upx;
|
||||
color: #282828;
|
||||
width: 690rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.pos-order-list .nav .item {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
color: #333333;
|
||||
max-width: 160rpx;
|
||||
margin-right: 50rpx;
|
||||
line-height: 96upx;
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.pos-order-list .nav .item.on {
|
||||
color: #2291f8;
|
||||
}
|
||||
|
||||
.pos-order-list .list {
|
||||
margin-top: 100upx;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item {
|
||||
background-color: #fff;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .item-status {
|
||||
position: absolute;
|
||||
top: 14rpx;
|
||||
right: 20rpx;
|
||||
|
||||
.iconfont {
|
||||
font-size: 98rpx;
|
||||
color: #CCCCCC;
|
||||
|
||||
&.on {
|
||||
color: #FFE3BC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pos-order-list .list .item~.item {
|
||||
margin-top: 24upx;
|
||||
}
|
||||
|
||||
.pos-order-list .list .activity_type {
|
||||
display: inline-block;
|
||||
color: #E93323;
|
||||
font-size: 20rpx;
|
||||
text-align: center;
|
||||
border-radius: 5rpx;
|
||||
padding: 0 4rpx;
|
||||
line-height: 28rpx;
|
||||
margin-right: 8rpx;
|
||||
border: 1rpx solid #E93323;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .order-num {
|
||||
height: 124upx;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 30upx;
|
||||
font-weight: bold;
|
||||
color: #282828;
|
||||
padding: 0 30upx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .order-status {
|
||||
color: #ff9600;
|
||||
position: absolute;
|
||||
top: 24rpx;
|
||||
right: 20rpx;
|
||||
text-align: right;
|
||||
width: 160rpx;
|
||||
font-weight: normal;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .order-num .time {
|
||||
font-size: 26upx;
|
||||
font-weight: normal;
|
||||
color: #999;
|
||||
margin-top: -40upx;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation {
|
||||
padding: 20upx 30upx 20upx 0;
|
||||
margin: 30upx 0 0 30upx;
|
||||
border-top: 1rpx solid #EEEEEE;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .more {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .icon-gengduo {
|
||||
font-size: 50upx;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .order .arrow {
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 11upx solid transparent;
|
||||
border-right: 11upx solid transparent;
|
||||
border-top: 20upx solid #e5e5e5;
|
||||
position: absolute;
|
||||
left: 15upx;
|
||||
bottom: -18upx;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .order .arrow:before {
|
||||
content: '';
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 7upx solid transparent;
|
||||
border-right: 7upx solid transparent;
|
||||
border-top: 20upx solid #fff;
|
||||
position: absolute;
|
||||
left: -7upx;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .order {
|
||||
width: 200upx;
|
||||
background-color: #fff;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 10upx;
|
||||
position: absolute;
|
||||
top: -100upx;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .order .items {
|
||||
height: 77upx;
|
||||
line-height: 77upx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .order .items~.items {
|
||||
border-top: 1px solid #f5f5f5;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .bnt {
|
||||
font-size: 28upx;
|
||||
color: #5c5c5c;
|
||||
width: 170upx;
|
||||
height: 60upx;
|
||||
border-radius: 30upx;
|
||||
border: 1px solid #bbb;
|
||||
text-align: center;
|
||||
line-height: 60upx;
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .bnt_color {
|
||||
border: none;
|
||||
color: #fff;
|
||||
background: linear-gradient(90deg, #2291F8 0%, #1CD1DC 100%);
|
||||
}
|
||||
|
||||
.pos-order-list .list .item .operation .bnt~.bnt {
|
||||
margin-left: 14upx;
|
||||
}
|
||||
|
||||
.pos-order-goods {
|
||||
padding: 0 30upx;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods {
|
||||
padding-top: 20rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods~.goods {
|
||||
border-top: 1px dashed #e5e5e5;
|
||||
}
|
||||
|
||||
.pos-order-goods .cancellate {
|
||||
font-size: 24rpx;
|
||||
float: right;
|
||||
margin-top: 10rpx;
|
||||
|
||||
text {
|
||||
margin-left: 26rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.pos-order-goods .cancelled {
|
||||
color: #FF9600;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .uncancell {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .picTxt {
|
||||
width: 515upx;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .picTxt .pictrue {
|
||||
width: 130upx;
|
||||
height: 130upx;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .picTxt .pictrue image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 6upx;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .picTxt .text {
|
||||
flex-direction: column;
|
||||
width: 365upx;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .picTxt .text .info {
|
||||
font-size: 28upx;
|
||||
color: #282828;
|
||||
|
||||
&.refund-info {
|
||||
width: 460upx;
|
||||
}
|
||||
}
|
||||
|
||||
.refund-y-money {
|
||||
margin-top: 16rpx;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .picTxt .text .attr {
|
||||
margin-top: 5rpx;
|
||||
font-size: 24upx;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .money {
|
||||
width: 164upx;
|
||||
text-align: right;
|
||||
font-size: 28upx;
|
||||
|
||||
&.refund-money {
|
||||
width: auto;
|
||||
position: relative;
|
||||
top: -50rpx;
|
||||
|
||||
.num {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.refund-num {
|
||||
font-size: 24rpx;
|
||||
color: #282828;
|
||||
}
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .money .x-money {
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .money .num {
|
||||
color: #ff9600;
|
||||
margin: 5upx 0;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .money .y-money {
|
||||
color: #999;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.pos-order-goods .goods .refund_num {
|
||||
display: inline-block;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
.public-total {
|
||||
font-size: 28upx;
|
||||
color: #282828;
|
||||
height: 92upx;
|
||||
line-height: 92upx;
|
||||
text-align: right;
|
||||
padding: 0 30upx;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.public-total .money {
|
||||
color: #ff4c3c;
|
||||
}
|
||||
|
||||
.nothing {
|
||||
margin-top: 200rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nothing_text {
|
||||
margin-top: 20rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.priceChange {
|
||||
position: fixed;
|
||||
width: 580upx;
|
||||
background-color: #fff;
|
||||
border-radius: 10upx;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -290upx;
|
||||
margin-top: -335upx;
|
||||
z-index: 666;
|
||||
transition: all 0.3s ease-in-out 0s;
|
||||
transform: scale(0);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.priceChange.on {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.priceChange .priceTitle {
|
||||
background: url("~@/static/images/pricetitle.jpg") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
width: 100%;
|
||||
height: 160upx;
|
||||
border-radius: 10upx 10upx 0 0;
|
||||
text-align: center;
|
||||
font-size: 40upx;
|
||||
color: #fff;
|
||||
line-height: 160upx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.priceChange .priceTitle .iconfont {
|
||||
position: absolute;
|
||||
font-size: 40upx;
|
||||
right: 26upx;
|
||||
top: 23upx;
|
||||
width: 40upx;
|
||||
height: 40upx;
|
||||
line-height: 40upx;
|
||||
}
|
||||
|
||||
.priceChange .listChange {
|
||||
padding: 0 40upx;
|
||||
}
|
||||
|
||||
.priceChange .listChange textarea {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.priceChange .listChange .item {
|
||||
height: 103upx;
|
||||
border-bottom: 1px solid #e3e3e3;
|
||||
font-size: 32upx;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.priceChange .modify {
|
||||
font-size: 32upx;
|
||||
color: #fff;
|
||||
width: 490upx;
|
||||
height: 90upx;
|
||||
text-align: center;
|
||||
line-height: 90upx;
|
||||
border-radius: 45upx;
|
||||
background-color: #2291f8;
|
||||
margin: 53upx auto;
|
||||
}
|
||||
|
||||
.priceChange .listChange textarea {
|
||||
border: 1px solid #eee;
|
||||
width: 100%;
|
||||
height: 200upx;
|
||||
margin-top: 50upx;
|
||||
border-radius: 10upx;
|
||||
color: #333;
|
||||
padding: 20upx;
|
||||
}
|
||||
|
||||
.search {
|
||||
padding: 17rpx 30rpx;
|
||||
|
||||
.search-content {
|
||||
width: 100%;
|
||||
height: 60rpx;
|
||||
padding: 0 30rpx;
|
||||
border-radius: 30rpx;
|
||||
background-color: #F5F5F5;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
margin-right: 10rpx;
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.input-placeholder {
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.input {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.pubilc_footer {
|
||||
margin-top: 50px;
|
||||
|
||||
.footer_bon {
|
||||
width: 100%;
|
||||
border-radius: 8px;
|
||||
background-color: #fff;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.bon_top {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
||||
.public_img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
.text_top {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
margin: 3px 0 3px 3px;
|
||||
|
||||
.text {
|
||||
width: 180px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.monry {
|
||||
margin-left: 20px;
|
||||
color: #F84221;
|
||||
}
|
||||
}
|
||||
|
||||
.text_order {
|
||||
width: 200px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
margin-left: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.bon_bon {
|
||||
width: 90%;
|
||||
height: 66px;
|
||||
background: #F5F5F5;
|
||||
border-radius: 4px 4px 4px 4px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
margin: auto;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 5px;
|
||||
|
||||
.order {
|
||||
width: 120px;
|
||||
|
||||
.txt {
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -86,7 +86,7 @@
|
||||
</view>
|
||||
<view class="item acea-row row-between">
|
||||
<view>支付方式:</view>
|
||||
<view class="conter">{{ orderInfo.pay_type == 0 ? "余额支付" : (orderInfo.pay_type == 1 || orderInfo.pay_type == 2 || orderInfo.pay_type == 3) ? "微信支付" : "支付宝支付" }}</view>
|
||||
<view class="conter">{{ orderInfo.pay_type == 0 ? "余额支付" : (orderInfo.pay_type == 1 || orderInfo.pay_type == 2 || orderInfo.pay_type == 3) ? "微信支付" : "先货后款" }}</view>
|
||||
</view>
|
||||
<view class="item acea-row row-between">
|
||||
<view>买家留言:</view>
|
||||
@ -148,6 +148,12 @@
|
||||
<view style="height:120upx;"></view>
|
||||
<view class="footer acea-row row-right row-middle" v-if="goname != 'looks'">
|
||||
<view class="more"></view>
|
||||
<view class="bnt cancel" v-if="orderInfo.pay_type == 8 && orderInfo.status == 12" @click="tongyi(order_id,1)">
|
||||
同意
|
||||
</view>
|
||||
<view class="bnt cancel" v-if="orderInfo.pay_type == 8 && orderInfo.status == 12" @click="tongyi(order_id,2)">
|
||||
拒绝
|
||||
</view>
|
||||
<view class="bnt cancel" @click="modify('0')" v-if="orderInfo.paid == 0">
|
||||
一键改价
|
||||
</view>
|
||||
@ -158,11 +164,24 @@
|
||||
<view class="bnt cancel" v-if="orderInfo.pay_type === 'offline' && orderInfo.paid === 0" @click="offlinePay">
|
||||
确认付款
|
||||
</view>
|
||||
<navigator class="bnt delivery" v-if="orderInfo.paid == 1 && orderInfo.status == 0 && orderInfo.order_type == 0" :url="'/pages/admin/delivery/index?id='+orderInfo.order_id+'&merId='+mer_id">去发货</navigator>
|
||||
|
||||
<view class="bnt delivery" @click="toPostagequ(orderInfo)" v-if="orderInfo.status == 0&&orderInfo.activity_type==0">
|
||||
收件码
|
||||
</view>
|
||||
<navigator class="bnt delivery" v-if="orderInfo.paid == 1 && orderInfo.status == 0 && orderInfo.order_type == 0&&orderInfo.activity_type==98" :url="'/pages/admin/delivery/index?id='+orderInfo.order_id+'&merId='+mer_id">去发货</navigator>
|
||||
<view class="bnt delivery" v-if="orderInfo.paid == 1 && (orderInfo.status == 0 || orderInfo.status == 9) && orderInfo.order_type == 1" @click="goCancellation">去核销</view>
|
||||
</view>
|
||||
<PriceChange :change="change" :orderInfo="orderInfo" v-on:closechange="changeclose($event)" v-on:savePrice="savePrice"
|
||||
:status="status"></PriceChange>
|
||||
<u-popup :show="popUpShow" mode="center" :closeOnClickOverlay="true" round="12" @close="popUpClose">
|
||||
<view style="text-align: center;margin-top: 30rpx;">
|
||||
请把二维码展示给取货人员
|
||||
</view>
|
||||
<view style="padding: 28.07rpx;">
|
||||
<image :src="payCodeUrl" style="width:400rpx;height: 400rpx;"></image>
|
||||
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
@ -185,7 +204,9 @@
|
||||
setAdminOrderRemark,
|
||||
setOfflinePay,
|
||||
setOrderRefund,
|
||||
orderCancellation
|
||||
orderCancellation,
|
||||
logisticsCode,
|
||||
postconfirm
|
||||
} from "@/api/admin";
|
||||
import { isMoney } from '@/utils/validate.js'
|
||||
import { HTTP_REQUEST_URL } from '@/config/app';
|
||||
@ -211,7 +232,10 @@
|
||||
payType: "",
|
||||
types: "",
|
||||
clickNum: 1,
|
||||
goname:''
|
||||
|
||||
goname:'',
|
||||
popUpShow: false,
|
||||
payCodeUrl:''
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
@ -225,12 +249,12 @@
|
||||
},
|
||||
onLoad: function(option) {
|
||||
let self = this
|
||||
this.order_id = option.id
|
||||
this.mer_id = option.mer_id
|
||||
this.goname = option.goname
|
||||
this.getIndex();
|
||||
self.order_id = option.id
|
||||
self.mer_id = option.mer_id
|
||||
self.goname = option.goname
|
||||
self.getIndex();
|
||||
// #ifdef H5
|
||||
this.$nextTick(function() {
|
||||
self.$nextTick(function() {
|
||||
var clipboard = new ClipboardJS('.copy-data');
|
||||
// var copybtn = document.getElementsByClassName("copy-data");
|
||||
// var clipboard = new Clipboard(copybtn);
|
||||
@ -249,6 +273,42 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
//收件码
|
||||
toPostagequ(item){
|
||||
this.popUpShow = true
|
||||
logisticsCode(item.order_id).then(res => {
|
||||
|
||||
if (res.status == 200) {
|
||||
this.payCodeUrl = res.data.qrcode
|
||||
}
|
||||
})
|
||||
},
|
||||
// 关闭二维码弹窗
|
||||
popUpClose() {
|
||||
this.popUpShow = false
|
||||
|
||||
},
|
||||
//同意先货后款订单
|
||||
tongyi(id,number){
|
||||
let data={
|
||||
id:id,
|
||||
type:number
|
||||
}
|
||||
if(number == 1){
|
||||
this.$nextTick(()=>{
|
||||
uni.navigateTo({
|
||||
url:`/pages/admin/orderList/index?types=1&merId=${this.mer_id}`
|
||||
})
|
||||
})
|
||||
}else if(number == 2){
|
||||
uni.navigateTo({
|
||||
url:`/pages/admin/orderList/index?types=1&merId=${this.mer_id}`
|
||||
})
|
||||
}
|
||||
postconfirm(this.mer_id,data).then(res=>{
|
||||
})
|
||||
},
|
||||
more: function() {
|
||||
this.order = !this.order;
|
||||
},
|
||||
|
@ -45,7 +45,8 @@
|
||||
退款单号:{{ item.refund_order_sn }}
|
||||
<text class="time">申请时间:{{ item.create_time }}</text>
|
||||
</view>
|
||||
<view class="pos-order-goods" v-for="(val, key) in item.refundProduct" :key="key" @click="toRefundDetail(item)">
|
||||
<view class="pos-order-goods" v-for="(val, key) in item.refundProduct" :key="key"
|
||||
@click="toRefundDetail(item)">
|
||||
<view class="goods acea-row row-between-wrapper">
|
||||
<view class="picTxt acea-row row-between-wrapper">
|
||||
<view class="pictrue">
|
||||
@ -80,9 +81,11 @@
|
||||
<view class="acea-row row-middle">
|
||||
<view class="bnt" @click="refundModify(item, 1)">订单备注</view>
|
||||
<navigator class="bnt bnt_color" v-if="item.status == 0"
|
||||
:url="'/pages/admin/orderRefund/index?id='+item.refund_order_id+'&merId='+merId">立即退款</navigator>
|
||||
:url="'/pages/admin/orderRefund/index?id='+item.refund_order_id+'&merId='+merId">立即退款
|
||||
</navigator>
|
||||
<navigator class="bnt" v-if="item.status == 2"
|
||||
:url="'/pages/users/goods_logistics/index?refundId='+item.refund_order_id+'&merId='+merId">查看物流
|
||||
:url="'/pages/users/goods_logistics/index?refundId='+item.refund_order_id+'&merId='+merId">
|
||||
查看物流
|
||||
</navigator>
|
||||
<view class="bnt bnt_color" v-if="item.status == 2" @tap='confirmOrder(item)'>确认收货</view>
|
||||
</view>
|
||||
@ -100,7 +103,8 @@
|
||||
<text class="order-status"
|
||||
v-if="item.refunding != 0 && where.status != 1">{{item.refunding==1 ? '退款中' : item.refunding==2 ? '部分退款' : '全部退款'}}</text>
|
||||
</view>
|
||||
<view class="pos-order-goods" v-for="(val, key) in item.orderProduct" :key="key" @click="toDetail(item)">
|
||||
<view class="pos-order-goods" v-for="(val, key) in item.orderProduct" :key="key"
|
||||
@click="toDetail(item)">
|
||||
<view class="goods">
|
||||
<view class="acea-row row-between-wrapper">
|
||||
<view class="picTxt acea-row row-between-wrapper">
|
||||
@ -130,24 +134,49 @@
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="public-total">
|
||||
<view class="public-total" v-if="item.pay_type !== 8">
|
||||
共{{ item.total_num }}件商品,
|
||||
<span v-if="where.status <= 1">应</span>
|
||||
<span v-else>已</span>
|
||||
支付
|
||||
<span class="money">¥{{ item.pay_price }}</span> (邮费 ¥{{ item.pay_postage}})
|
||||
<span class="money" style="margin-right: 30rpx;">¥{{ item.pay_price }}</span> (邮费
|
||||
¥{{ item.pay_postage}})
|
||||
</view>
|
||||
<view class="public-total" v-else>
|
||||
先货后款
|
||||
<span v-if="where.status <= 1">应</span>
|
||||
<span v-else>已</span>
|
||||
支付
|
||||
<span class="money" style="margin-right: 30rpx;">¥0.00</span> (邮费 ¥{{ item.pay_postage}})
|
||||
</view>
|
||||
<view class="public-total" v-if="item.pay_type == 8 ">
|
||||
共{{item.total_num}}件商品,结算周期到期后付款¥{{ item.pay_price }}
|
||||
</view>
|
||||
<view class="operation acea-row row-between-wrapper">
|
||||
<view class="more">
|
||||
</view>
|
||||
<view class="acea-row row-middle">
|
||||
<view class="bnt" @click="modify(item, 0)" v-if="where.status == 1 && item.activity_type != 2">
|
||||
<view class="bnt" v-if="item.pay_type == 8 && item.status == 12"
|
||||
@click="tongyi(item.group_order_id,1)">
|
||||
同意
|
||||
</view>
|
||||
<view class="bnt" v-if="item.pay_type == 8 && item.status == 12 "
|
||||
@click="tongyi(item.group_order_id,2)">
|
||||
拒绝
|
||||
</view>
|
||||
<view class="bnt" @click="modify(item, 0)"
|
||||
v-if="item.pay_type !=8 && item.paid !=1 &&!(item.status ==2 && item.pau_type==8) ">
|
||||
一键改价
|
||||
</view>
|
||||
<view class="bnt" @click="modify(item, 1)">订单备注</view>
|
||||
<view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0" @click="toPostage(item)">去发货
|
||||
<view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0&&item.activity_type==98"
|
||||
@click="toPostage(item)">去发货
|
||||
</view>
|
||||
<view class="bnt bnt_color" v-if="(where.status == 2 && item.order_type == 1) || where.is_verify == 1"
|
||||
<view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0&&item.activity_type==0"
|
||||
@click="toPostagequ(item)">收件码
|
||||
</view>
|
||||
<view class="bnt bnt_color"
|
||||
v-if="(where.status == 2 && item.order_type == 1) || where.is_verify == 1"
|
||||
@click="toDetail(item)">去核销</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -175,6 +204,16 @@
|
||||
</view>
|
||||
<view class="mask" @touchmove.prevent v-show="refundMark === true"></view>
|
||||
</view>
|
||||
<u-popup :show="popUpShow" mode="center" :closeOnClickOverlay="true" round="12" @close="popUpClose">
|
||||
<view style="text-align: center;margin-top: 30rpx;">
|
||||
请把二维码展示给取货人员
|
||||
</view>
|
||||
<view style="padding: 28.07rpx;">
|
||||
<image :src="payCodeUrl" style="width:400rpx;height: 400rpx;"></image>
|
||||
|
||||
</view>
|
||||
</u-popup>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -196,11 +235,16 @@
|
||||
setOfflinePay,
|
||||
setOrderRefund,
|
||||
refundOrderReceive,
|
||||
setRefundMark
|
||||
setRefundMark,
|
||||
postconfirm,
|
||||
logisticsCode
|
||||
} from "@/api/admin";
|
||||
|
||||
import Loading from '@/components/Loading/index'
|
||||
import PriceChange from '@/components/PriceChange/index'
|
||||
import { isMoney } from '@/utils/validate.js'
|
||||
import {
|
||||
isMoney
|
||||
} from '@/utils/validate.js'
|
||||
export default {
|
||||
name: "AdminOrderList",
|
||||
components: {
|
||||
@ -226,7 +270,10 @@
|
||||
refundInfo: {},
|
||||
orderInfo: {},
|
||||
status: "",
|
||||
merId: ''
|
||||
codeShow: false,
|
||||
merId: '',
|
||||
popUpShow: false,
|
||||
payCodeUrl: ''
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
@ -249,9 +296,35 @@
|
||||
this.getIndex();
|
||||
},
|
||||
methods: {
|
||||
// 关闭二维码弹窗
|
||||
popUpClose() {
|
||||
this.popUpShow = false
|
||||
|
||||
},
|
||||
//同意先货后款订单
|
||||
tongyi(id, number) {
|
||||
let data = {
|
||||
id: id,
|
||||
type: number
|
||||
}
|
||||
if (number == 1) {
|
||||
this.$nextTick(() => {
|
||||
this.where.status = 2;
|
||||
delete this.where.is_verify;
|
||||
this.init();
|
||||
})
|
||||
} else if (number == 2) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/admin/orderList/index?types=1&merId=${this.merId}`
|
||||
})
|
||||
}
|
||||
postconfirm(this.merId, data).then(res => {
|
||||
// console.log(res);
|
||||
})
|
||||
},
|
||||
handleSearch() {
|
||||
this.loaded = false;
|
||||
this.where.page = 1;
|
||||
this.where.page = 3;
|
||||
this.list = [];
|
||||
this.getIndex();
|
||||
},
|
||||
@ -265,11 +338,14 @@
|
||||
res => {
|
||||
that.loading = false;
|
||||
that.loaded = res.data.list.length < that.where.limit;
|
||||
|
||||
that.list.push.apply(that.list, res.data.list);
|
||||
that.where.page = that.where.page + 1;
|
||||
},
|
||||
err => {
|
||||
that.$util.Tips({ title: err });
|
||||
that.$util.Tips({
|
||||
title: err
|
||||
});
|
||||
}
|
||||
);
|
||||
} else {
|
||||
@ -279,9 +355,14 @@
|
||||
that.loaded = res.data.list.length < that.where.limit;
|
||||
that.list.push.apply(that.list, res.data.list);
|
||||
that.where.page = that.where.page + 1;
|
||||
console.log(that.list)
|
||||
|
||||
// console.log(that.list);
|
||||
},
|
||||
err => {
|
||||
that.$util.Tips({ title: err });
|
||||
that.$util.Tips({
|
||||
title: err
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -328,7 +409,9 @@
|
||||
title: '请输入备注'
|
||||
})
|
||||
}
|
||||
setRefundMark(that.merId, that.refundInfo.refund_order_id, { mer_mark: that.refundInfo.mer_mark }).then(
|
||||
setRefundMark(that.merId, that.refundInfo.refund_order_id, {
|
||||
mer_mark: that.refundInfo.mer_mark
|
||||
}).then(
|
||||
res => {
|
||||
that.refundMark = false;
|
||||
this.$util.Tips({
|
||||
@ -371,6 +454,16 @@
|
||||
}
|
||||
})
|
||||
},
|
||||
//收件码
|
||||
toPostagequ(item) {
|
||||
this.popUpShow = true
|
||||
logisticsCode(item.order_id).then(res => {
|
||||
|
||||
if (res.status == 200) {
|
||||
this.payCodeUrl = res.data.qrcode
|
||||
}
|
||||
})
|
||||
},
|
||||
toPostage(item) {
|
||||
let that = this;
|
||||
if (item.refunding != 0) {
|
||||
@ -382,6 +475,7 @@
|
||||
uni.navigateTo({
|
||||
url: `/pages/admin/delivery/index?id=${item.order_id}&merId=${that.merId}`
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -406,7 +500,9 @@
|
||||
let id = that.orderInfo.order_id;
|
||||
if (that.status == 0) {
|
||||
if (!isMoney(opt.orderInfo.pay_postage || opt.orderInfo.total_price)) {
|
||||
return that.$util.Tips({ title: '请输入正确的金额' });
|
||||
return that.$util.Tips({
|
||||
title: '请输入正确的金额'
|
||||
});
|
||||
}
|
||||
data.pay_price = price;
|
||||
setAdminOrderPrice(this.merId, id, parmas).then(
|
||||
@ -432,7 +528,9 @@
|
||||
title: '请输入备注'
|
||||
})
|
||||
}
|
||||
setAdminOrderRemark(this.merId, id, { remark: remark }).then(
|
||||
setAdminOrderRemark(this.merId, id, {
|
||||
remark: remark
|
||||
}).then(
|
||||
res => {
|
||||
that.change = false;
|
||||
this.$util.Tips({
|
||||
@ -443,7 +541,9 @@
|
||||
},
|
||||
err => {
|
||||
that.change = false;
|
||||
that.$util.Tips({ title: err });
|
||||
that.$util.Tips({
|
||||
title: err
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -631,7 +731,7 @@
|
||||
.pos-order-list .list .item .operation .bnt {
|
||||
font-size: 28upx;
|
||||
color: #5c5c5c;
|
||||
width: 170upx;
|
||||
width: 160upx;
|
||||
height: 60upx;
|
||||
border-radius: 30upx;
|
||||
border: 1px solid #bbb;
|
||||
|
@ -158,9 +158,9 @@
|
||||
} else {
|
||||
this.$set(this, 'searchValue', event);
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.focus = true
|
||||
})
|
||||
// this.$nextTick(() => {
|
||||
// this.focus = true
|
||||
// })
|
||||
this.searchBut()
|
||||
},
|
||||
setValue: function(event) {
|
||||
|
@ -2,11 +2,9 @@
|
||||
<view :style="viewColor">
|
||||
<view class='productList'>
|
||||
<view class='search acea-row row-between-wrapper'>
|
||||
<!--#ifdef H5-->
|
||||
<view class="back" @click='set_where(1)'>
|
||||
<view class="iconfont icon-xiangzuo"></view>
|
||||
</view>
|
||||
<!--#endif-->
|
||||
<view class='input acea-row row-between-wrapper'><text class='iconfont icon-sousuo'></text>
|
||||
<input placeholder='搜索商品名称' placeholder-class='placeholder' confirm-type='search' name="search"
|
||||
:value='where.keyword' @confirm="searchSubmit" @input="inputChange"></input>
|
||||
@ -22,7 +20,7 @@
|
||||
<view class="tab-item" :class="{on:tabIndex==2}" @click="tabIndex = 2">店铺</view>
|
||||
</view>
|
||||
<block v-if="tabIndex==1">
|
||||
<view class='nav acea-row row-middle'>
|
||||
<view class='nav acea-row row-middle' >
|
||||
<view class='item' @click="downStatus = !downStatus"
|
||||
:class="{'t-color':downKey>0 && firstKey == 0}">
|
||||
{{downMenu[downKey].title}}
|
||||
@ -413,7 +411,7 @@
|
||||
}
|
||||
}
|
||||
});
|
||||
this.mTop = this.hide_mer_status == 0 ? '238rpx' : '170rpx'
|
||||
this.mTop = this.hide_mer_status == 0 ? '308rpx' : '170rpx'
|
||||
},
|
||||
computed: {
|
||||
shopTab: function() {
|
||||
@ -897,12 +895,13 @@
|
||||
|
||||
.productList .search {
|
||||
width: 100%;
|
||||
height: 86rpx;
|
||||
height: 170rpx;
|
||||
padding: 0 20rpx;
|
||||
box-sizing: border-box;
|
||||
// box-sizing: border-box;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
top: 0rpx;
|
||||
padding-top: 60rpx;
|
||||
z-index: 9;
|
||||
background-color: var(--view-theme);
|
||||
|
||||
@ -966,7 +965,7 @@
|
||||
z-index: 9;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
top: 70rpx;
|
||||
width: 100%;
|
||||
margin-top: 86rpx;
|
||||
background-color: var(--view-theme);
|
||||
@ -1040,6 +1039,7 @@
|
||||
|
||||
.productList .list {
|
||||
padding: 0 20rpx;
|
||||
|
||||
}
|
||||
|
||||
.productList .list.on {
|
||||
@ -1075,6 +1075,7 @@
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 345rpx;
|
||||
|
||||
}
|
||||
|
||||
.productList .list .item .pictrue.on {
|
||||
@ -1417,7 +1418,8 @@
|
||||
}
|
||||
|
||||
.store-wrapper {
|
||||
margin-top: 240rpx;
|
||||
margin-top: 310rpx;
|
||||
|
||||
border-top: 1px solid #F6F6F6;
|
||||
|
||||
.star-box {
|
||||
|
422
pages/commissionedSales/addDelegation/index.vue
Normal file
@ -0,0 +1,422 @@
|
||||
<template>
|
||||
|
||||
<!-- #ifdef APP || H5 -->
|
||||
<view>
|
||||
<!-- #endif -->
|
||||
<form @submit="formSubmit" report-submit='true'>
|
||||
<view class="release_content">
|
||||
|
||||
|
||||
<view class="release_item">
|
||||
<view class="release_item-one">
|
||||
<view class="item-one">
|
||||
被委托商家
|
||||
</view>
|
||||
<e-select v-model="value1" :options="options1" placeholder="选择选项"></e-select>
|
||||
</view>
|
||||
<view class="release_item-one">
|
||||
<view class="item-one">
|
||||
委托周期
|
||||
</view>
|
||||
<view class="" @click="calendar">
|
||||
|
||||
<input type="number" v-model="date" />
|
||||
</view>
|
||||
<!-- <e-select v-model="value1" :options="options1" placeholder="选择选项"></e-select> -->
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view class='name'><text class="iconfont icon-baobeilianjie"></text>添加产品({{productList.length}})
|
||||
</view>
|
||||
<view class="select">
|
||||
<view class="select_count" @click.stop="addProduct">
|
||||
<text v-if="productList.length == 0" class="text">选择产品</text>
|
||||
<view v-else class="text">
|
||||
<image class="image" v-for="(item,index) in productList" :key="index"
|
||||
:src="item.image || (item.spu && item.spu.image)"></image>
|
||||
</view>
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content_center-one" v-for="(item,i) in productList" :key="i">
|
||||
<view class="center-one">
|
||||
<view class="center-one-img">
|
||||
<image :src="item.image" mode=""></image>
|
||||
</view>
|
||||
<view class="center-one-txt">
|
||||
<view class="one-txta">
|
||||
{{item.store_name}}
|
||||
</view>
|
||||
<view class="one-txtb">
|
||||
<view class="">
|
||||
委托价:¥<span>{{item.price}}</span>
|
||||
</view>
|
||||
<view class="">
|
||||
数量:{{item.number}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<button class="release_btn button" form-type="submit">发布</button>
|
||||
</view>
|
||||
</form>
|
||||
|
||||
<uni-calendar ref="calendar" :date="info.date" :insert="info.insert" :lunar="info.lunar"
|
||||
:startDate="info.startDate" :endDate="info.endDate" :range="info.range" @confirm="confirm"
|
||||
:showMonth="info.showMonth" @close="close" />
|
||||
|
||||
|
||||
<!-- 提到的宝贝弹窗 -->
|
||||
<uni-popup ref="associated" type="bottom">
|
||||
<associated @close="close" @getProduct="getProduct" :checkedObj="productList"></associated>
|
||||
</uni-popup>
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import associated from '@/components/realselist/realselist.vue';
|
||||
import eselect from '@/components/e-select/e-select.vue';
|
||||
// import {} from '@/api/sale.js'
|
||||
export default {
|
||||
components: {
|
||||
associated,
|
||||
eselect
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
value1: 1,
|
||||
value2: "",
|
||||
options1: [{
|
||||
text: "Shenzhen1",
|
||||
value: 1
|
||||
}, {
|
||||
|
||||
text: "Shenzhen2",
|
||||
value: 2
|
||||
}, {
|
||||
|
||||
|
||||
text: "Shenzhen3",
|
||||
value: 3
|
||||
}],
|
||||
date: 1,
|
||||
productList: [],
|
||||
info: {
|
||||
startDate: '',
|
||||
endDate: '',
|
||||
lunar: false,
|
||||
range: true,
|
||||
insert: false,
|
||||
selected: [],
|
||||
showMonth: false
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
|
||||
},
|
||||
|
||||
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
// 日历确定
|
||||
confirm(e) {
|
||||
|
||||
let self = this
|
||||
if (e.range.after && e.range.before) {
|
||||
let star = new Date(e.range.after).getTime()
|
||||
let stop = new Date(e.range.before).getTime()
|
||||
let arr = stop - star
|
||||
this.date = Math.floor(arr / (24 * 3600 * 1000));
|
||||
// console.log(days)
|
||||
if(this.date<0){
|
||||
this.date=this.date*-1
|
||||
}
|
||||
}
|
||||
},
|
||||
calendar() {
|
||||
this.$refs.calendar.open()
|
||||
},
|
||||
//关闭商品弹窗
|
||||
close() {
|
||||
this.$refs.associated.close()
|
||||
},
|
||||
//打开商品弹窗
|
||||
addProduct() {
|
||||
this.$refs.associated.open()
|
||||
},
|
||||
//获取商品信息
|
||||
getProduct(data) {
|
||||
console.log(data)
|
||||
},
|
||||
//提交
|
||||
formSubmit(e) {
|
||||
console.log(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
page {
|
||||
background: #F5F5F5;
|
||||
}
|
||||
|
||||
|
||||
.release_content {
|
||||
|
||||
padding: 0 28rpx;
|
||||
margin-top: 28rpx;
|
||||
|
||||
.content_center-one {
|
||||
display: flex;
|
||||
|
||||
|
||||
.center-one {
|
||||
margin-top: 32rpx;
|
||||
margin-bottom: 32rpx;
|
||||
display: flex;
|
||||
|
||||
.center-one-img {
|
||||
width: 154rpx;
|
||||
height: 154rpx;
|
||||
margin-right: 21rpx;
|
||||
|
||||
image {
|
||||
width: 154rpx;
|
||||
height: 154rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.center-one-txt {
|
||||
.one-txta {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.one-txtb {
|
||||
display: flex;
|
||||
margin-top: 28rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
|
||||
span {
|
||||
color: #F84221;
|
||||
margin-right: 30rpx;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.release_item {
|
||||
background: #ffffff;
|
||||
padding: 0 30rpx;
|
||||
border-radius: 10rpx;
|
||||
padding-top: 20rpx;
|
||||
|
||||
.release_item-one {
|
||||
.item-one {
|
||||
margin-top: 32rpx;
|
||||
margin-bottom: 20rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.photo_count {
|
||||
padding: 30rpx 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/deep/.loading-img {
|
||||
width: 180rpx;
|
||||
height: 180rpx;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
|
||||
.input_photo .pictrue {
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
.videoHover {
|
||||
width: 180rpx;
|
||||
height: 180rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 10;
|
||||
|
||||
>view {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
background: #000000;
|
||||
border-radius: 50rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.iconfont {
|
||||
color: #ffffff;
|
||||
font-size: 21rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.video-text {
|
||||
display: block;
|
||||
width: 180rpx;
|
||||
text-align: center;
|
||||
color: #ffffff;
|
||||
font-size: 18rpx;
|
||||
z-index: 13;
|
||||
position: absolute;
|
||||
bottom: 20rpx;
|
||||
}
|
||||
|
||||
video {
|
||||
width: 180rpx;
|
||||
height: 180rpx;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.input_photo .add {
|
||||
background: #f6f6f6;
|
||||
color: #666666;
|
||||
|
||||
.iconfont {
|
||||
font-size: 50rpx;
|
||||
}
|
||||
|
||||
.text {
|
||||
margin-top: 20rpx;
|
||||
font-size: 27rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.textarea textarea {
|
||||
font-size: 28rpx;
|
||||
padding-bottom: 38rpx;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
height: 400rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.textarea .placeholder {
|
||||
color: #BBBBBB;
|
||||
}
|
||||
|
||||
.release_item .item {
|
||||
height: 106rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
position: relative;
|
||||
font-size: 30rpx;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.name {
|
||||
color: #333333;
|
||||
|
||||
.iconfont {
|
||||
margin-right: 10rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.select {
|
||||
color: #bbbbbb;
|
||||
|
||||
.select_count {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.text {
|
||||
margin-right: 15rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.image,
|
||||
image,
|
||||
uni-image {
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
margin-right: 5rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.text_name {
|
||||
color: var(--view-theme);
|
||||
padding: 5rpx 12rpx;
|
||||
background: var(--view-minorColor);
|
||||
border-radius: 23rpx;
|
||||
font-size: 24rpx;
|
||||
margin-right: 10rpx;
|
||||
|
||||
.icon {
|
||||
color: var(--view-theme);
|
||||
font-weight: bold;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin: 0 10rpx;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-size: 16rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
width: 694rpx;
|
||||
height: 84rpx;
|
||||
line-height: 84rpx;
|
||||
text-align: center;
|
||||
background: linear-gradient(84deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 42px 42px 42px 42px;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.release_btn {
|
||||
margin-top: 100rpx;
|
||||
}
|
||||
</style>
|
337
pages/commissionedSales/delegation_details/index.vue
Normal file
@ -0,0 +1,337 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="content_top">
|
||||
<view class="content_top-one">
|
||||
<image src="@/static/images/dong.gif" mode="aspectFill"></image>
|
||||
</view>
|
||||
<view class="content_top-two">
|
||||
<view class="top-two-one">
|
||||
待评价
|
||||
</view>
|
||||
<view class="top-two-two">
|
||||
2020-07-07 14:14:14
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content_center">
|
||||
<view class="content_center-one">
|
||||
<view class="center-one">
|
||||
<view class="center-one-img">
|
||||
<image src="../../annex/static/left.png" mode=""></image>
|
||||
</view>
|
||||
<view class="center-one-txt">
|
||||
<view class="one-txta">
|
||||
良品铺子肉松饼1000g/箱 面...
|
||||
</view>
|
||||
<view class="one-txtb">
|
||||
<view class="">
|
||||
委托价:¥<span>34.90</span>
|
||||
</view>
|
||||
<view class="">
|
||||
数量:100个
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content_center-one">
|
||||
<view class="center-one">
|
||||
<view class="center-one-img">
|
||||
<image src="../../annex/static/left.png" mode=""></image>
|
||||
</view>
|
||||
<view class="center-one-txt">
|
||||
<view class="one-txta">
|
||||
良品铺子肉松饼1000g/箱 面...
|
||||
</view>
|
||||
<view class="one-txtb">
|
||||
<view class="">
|
||||
委托价:¥<span>34.90</span>
|
||||
</view>
|
||||
<view class="">
|
||||
数量:100个
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content_center-two">
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
委托方:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
被委托方:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
委托周期:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
结算周期:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
结算利息:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
状态:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
是否结束委托:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
<view class="center-two">
|
||||
<view class="center-twoa">
|
||||
拒绝原因:
|
||||
</view>
|
||||
<view class="center-twob">
|
||||
通滩镇镇街店铺通滩镇镇街店铺通滩镇镇街店铺通滩镇镇街店铺通滩镇镇街店铺通滩镇镇街店铺
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content_bootm">
|
||||
<view class="content_bootm_txt">
|
||||
查看TA提到的宝贝(2)
|
||||
</view>
|
||||
|
||||
|
||||
<view class="content_bootm_one">
|
||||
<view class="bootm_oneimg">
|
||||
<image src="@/static/images/bg2.png" mode=""></image>
|
||||
</view>
|
||||
<view class="">
|
||||
良品铺子肉松饼1000g/箱 面包糕...
|
||||
</view>
|
||||
</view>
|
||||
<view class="content_bootm_one">
|
||||
<view class="bootm_oneimg">
|
||||
<image src="@/static/images/bg2.png" mode=""></image>
|
||||
</view>
|
||||
<view class="">
|
||||
良品铺子肉松饼1000g/箱 面包糕...
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<button class="release_btn button" form-type="submit">发布</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {} from '@/api/sale.js'
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.content_top {
|
||||
height: 151rpx;
|
||||
background: linear-gradient(84deg, #2352FA 0%, #6497FF 100%);
|
||||
display: flex;
|
||||
padding-top: 21rpx;
|
||||
|
||||
.content_top-one {
|
||||
width: 107rpx;
|
||||
height: 107rpx;
|
||||
margin-left: 28rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content_top-two {
|
||||
margin-left: 25rpx;
|
||||
|
||||
.top-two-one {
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
|
||||
.top-two-two {
|
||||
font-size: 28rpx;
|
||||
font-family: SF Pro Display-Light, SF Pro Display;
|
||||
font-weight: 300;
|
||||
color: #FFFFFF;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.content_center {
|
||||
|
||||
background: #FFFFFF;
|
||||
border-radius: 14px 14px 14px 14px;
|
||||
margin: 28rpx 28rpx;
|
||||
|
||||
.content_center-one {
|
||||
display: flex;
|
||||
padding: 0 28rpx;
|
||||
|
||||
.center-one {
|
||||
margin-top: 32rpx;
|
||||
margin-bottom: 32rpx;
|
||||
display: flex;
|
||||
|
||||
.center-one-img {
|
||||
width: 154rpx;
|
||||
height: 154rpx;
|
||||
margin-right: 21rpx;
|
||||
|
||||
image {
|
||||
width: 154rpx;
|
||||
height: 154rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.center-one-txt {
|
||||
.one-txta {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.one-txtb {
|
||||
display: flex;
|
||||
margin-top: 28rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
|
||||
span {
|
||||
color: #F84221;
|
||||
margin-right: 30rpx;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.content_center-two {
|
||||
padding: 0 28rpx;
|
||||
padding-bottom: 2rpx;
|
||||
|
||||
.center-two {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 32rpx;
|
||||
margin-bottom: 32rpx;
|
||||
|
||||
.center-twoa {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.center-twob {
|
||||
width: 360rpx;
|
||||
text-align: right;
|
||||
border: 1px solid;
|
||||
word-wrap: break-word;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.content_bootm {
|
||||
|
||||
margin-bottom: 150rpx;
|
||||
|
||||
.content_bootm_txt {
|
||||
margin-top: 42rpx;
|
||||
padding-left: 28rpx;
|
||||
}
|
||||
|
||||
.content_bootm_one {
|
||||
height: 112rpx;
|
||||
line-height: 112rpx;
|
||||
background: #FFFFFF;
|
||||
display: flex;
|
||||
margin-top: 21rpx;
|
||||
|
||||
.bootm_oneimg {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
margin: auto 0;
|
||||
margin-left: 28rpx;
|
||||
margin-right: 21rpx;
|
||||
|
||||
image {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
width: 694rpx;
|
||||
height: 84rpx;
|
||||
line-height: 84rpx;
|
||||
text-align: center;
|
||||
background: linear-gradient(84deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 42px 42px 42px 42px;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -347rpx;
|
||||
position: fixed;
|
||||
bottom: 100rpx;
|
||||
}
|
||||
</style>
|
164
pages/commissionedSales/index/index.vue
Normal file
@ -0,0 +1,164 @@
|
||||
<template>
|
||||
<view class="select_warehouse">
|
||||
<view class="wrapper flex_a_c_j_sb">
|
||||
<block v-for="item in goodsData" :key="item.name">
|
||||
<view class="select_item" @click="navigato(item.type)"
|
||||
:style="{'background-image': `url(${item.src})`}">
|
||||
<view class="select_itemimga" v-if='item.type==1'>
|
||||
<image :src="item.img" mode=""></image>
|
||||
</view>
|
||||
<view class="select_itemimgb" v-else>
|
||||
<image :src="item.img" mode=""></image>
|
||||
</view>
|
||||
<view class="title">
|
||||
<view class="titlea">
|
||||
{{ item.name }}
|
||||
</view>
|
||||
<view class="titleb">
|
||||
{{ item.name1 }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
goodsData: [{
|
||||
name: '我发起的',
|
||||
name1: '委托销售商品',
|
||||
type: 1,
|
||||
src: require('@/static/images/wtbg1.png'),
|
||||
img: require('@/static/images/wtt1.png')
|
||||
},
|
||||
{
|
||||
name: '我收到的',
|
||||
name1: '帮助销售商品',
|
||||
type: 2,
|
||||
src: require('@/static/images/wtbg2.png'),
|
||||
img: require('@/static/images/wtt2.png')
|
||||
}
|
||||
],
|
||||
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
navigato(type) {
|
||||
if (type === 1) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/commissionedSales/initiateDelegation/index`
|
||||
});
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: `/pages/commissionedSales/receivedCommission/index`
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.select_warehouse {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
width: 694.74rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.goods-wrapper {
|
||||
.item {
|
||||
display: flex;
|
||||
height: 175.44rpx;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
margin-top: 21.05rpx;
|
||||
border-radius: 8px;
|
||||
padding: 12px;
|
||||
|
||||
.l_cont {
|
||||
image {
|
||||
width: 133.33rpx;
|
||||
height: 133.33rpx;
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.r_cont {
|
||||
margin-left: 17.54rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.select_item {
|
||||
width: 336rpx;
|
||||
height: 161rpx;
|
||||
border-radius: 8px;
|
||||
background-color: #eee;
|
||||
|
||||
display: flex;
|
||||
color: #fff;
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
.select_itemimga {
|
||||
width: 59rpx;
|
||||
height: 63rpx;
|
||||
margin-top: 49rpx;
|
||||
margin-left: 42rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.select_itemimgb {
|
||||
width: 75rpx;
|
||||
height: 65rpx;
|
||||
margin-top: 49rpx;
|
||||
margin-left: 42rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-left: 23rpx;
|
||||
margin-top: 37rpx;
|
||||
|
||||
.titlea {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.titleb {
|
||||
margin-top: 5rpx;
|
||||
font-size: 25rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
888
pages/commissionedSales/initiateDelegation/index.vue
Normal file
@ -0,0 +1,888 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
|
||||
<view class="content_top">
|
||||
<!--选项卡滑动切换-->
|
||||
<cxNavTitle :tabs="tabs" :activeItem="activeItem" @tabClick="tabClick" :show='false'></cxNavTitle>
|
||||
</view>
|
||||
<!-- 审核通过 打折的拒绝、同意功能 ,调货不需要功能 -->
|
||||
<view class="content-content" v-for="(item,i) in list" :key="i">
|
||||
|
||||
<view class="content-one">
|
||||
<view class="content-one-img">
|
||||
<image src="@/static/images/bg2.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="content-one-txt">
|
||||
<view class="one-txt-a">
|
||||
{{item.content}}
|
||||
</view>
|
||||
<view class="one-txt-b">
|
||||
委托周期:{{item.day}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<view class="content-two_one" v-if="item.type==1">
|
||||
|
||||
<view class="content-two-edita" @click="soldEdit">
|
||||
待处理
|
||||
</view>
|
||||
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a">
|
||||
处理
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b" @click="detail">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-two_oneq" v-if="item.type==2">
|
||||
|
||||
|
||||
<view class="content-two-editb" @click="accepted">
|
||||
已接受
|
||||
</view>
|
||||
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a" @click="closingorder">
|
||||
结束委托
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-two_one" v-if="item.type==3">
|
||||
|
||||
|
||||
<view class="content-two-editc" @click="declined">
|
||||
已拒绝
|
||||
</view>
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a">
|
||||
删除
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-two_one" v-if="item.type==4">
|
||||
|
||||
|
||||
<view class="content-two-editd" @click="soldEdit">
|
||||
已完成
|
||||
</view>
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a">
|
||||
删除
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="adddelegation" @click="addDelegation">
|
||||
|
||||
<view class="adddelegation-one">
|
||||
<image src="@/static/images/delegation.png" mode=""></image>
|
||||
</view>
|
||||
<view class="adddelegation-two">
|
||||
新增委托
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="orderList.length == 0 && this.where.page > 1">
|
||||
<emptyPage title="暂无订单~"></emptyPage>
|
||||
</view>
|
||||
<uni-popup ref="bindmobile" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bg">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a">
|
||||
委托申请处理
|
||||
</view>
|
||||
<view class="bg-content-b">
|
||||
结算周期: <span>30天</span>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
利息比例: <span>0.05%</span>
|
||||
</view>
|
||||
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="cancellation">
|
||||
拒绝
|
||||
</view>
|
||||
<view class="determine">
|
||||
接受
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup ref="bindmobile1" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bga">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a">
|
||||
确定结束委托?
|
||||
</view>
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="cancellation">
|
||||
取消
|
||||
</view>
|
||||
<view class="determine">
|
||||
确定
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup ref="bindmobile2" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bg">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a" style="margin-left: 207rpx;">
|
||||
结束委托申请处理
|
||||
</view>
|
||||
<view class="bg-content-b">
|
||||
结算周期: <span>30天</span>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
利息比例: <span>0.05%</span>
|
||||
</view>
|
||||
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="cancellation">
|
||||
拒绝
|
||||
</view>
|
||||
<view class="determine">
|
||||
接受
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup ref="bindmobile3" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bgb">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a" style="margin-left: 207rpx;">
|
||||
结束委托申请处理
|
||||
</view>
|
||||
<view class="bg-content-b">
|
||||
结算周期: <span>30天</span>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
利息比例: <span>0.05%</span>
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
|
||||
拒绝原因:
|
||||
<view class="" style="margin-top: 21rpx;">
|
||||
|
||||
<textarea value="" placeholder="输入拒绝原因" class="bg-content_textarea" />
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="determine">
|
||||
接受
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import cxNavTitle from '@/components/cx-navTitle.vue'
|
||||
import emptyPage from '@/components/emptyPage.vue';
|
||||
import {} from '@/api/sale.js'
|
||||
export default {
|
||||
components: {
|
||||
cxNavTitle,
|
||||
emptyPage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeItem: "tabOne",
|
||||
tabTitle: "",
|
||||
orderList: [],
|
||||
where: {
|
||||
page: 1,
|
||||
limit: 10
|
||||
},
|
||||
tabs: [{
|
||||
name: "tabOne",
|
||||
label: '待处理',
|
||||
type: '1'
|
||||
},
|
||||
{
|
||||
name: "tabTwo",
|
||||
label: '已接受',
|
||||
type: '2'
|
||||
},
|
||||
{
|
||||
name: "tabThree",
|
||||
label: '已拒绝',
|
||||
type: '3'
|
||||
},
|
||||
|
||||
],
|
||||
list: [{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 1
|
||||
|
||||
},
|
||||
{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 2
|
||||
|
||||
},
|
||||
{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 3
|
||||
|
||||
},
|
||||
{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 4
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.tabTitle = this.tabs[0].name
|
||||
//有时进入页面需要获取默认的第一个标签做逻辑判断 -- 如下:
|
||||
// console.log(this.tabs[0])
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
nav(item) {
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/commissionedSales/delegation_details/index'
|
||||
// })
|
||||
},
|
||||
|
||||
//选择
|
||||
tabClick(e) { //点击获取当前标签数据
|
||||
this.activeItem = e.name; //当前class类名
|
||||
this.tabTitle = e.name; //当前选的标签名
|
||||
},
|
||||
//新增委托
|
||||
addDelegation(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/commissionedSales/addDelegation/index'
|
||||
})
|
||||
},
|
||||
//管理弹窗
|
||||
close() {
|
||||
this.$refs.bindmobile.close()
|
||||
this.$refs.bindmobile1.close()
|
||||
this.$refs.bindmobile2.close()
|
||||
this.$refs.bindmobile3.close()
|
||||
},
|
||||
//详情
|
||||
|
||||
detail() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/commissionedSales/delegation_details/index'
|
||||
})
|
||||
},
|
||||
// 待处理
|
||||
soldEdit() {
|
||||
|
||||
this.$refs.bindmobile.open()
|
||||
},
|
||||
//已接受
|
||||
accepted() {
|
||||
this.$refs.bindmobile1.open()
|
||||
},
|
||||
//结束委托
|
||||
closingorder() {
|
||||
this.$refs.bindmobile3.open()
|
||||
},
|
||||
// 已拒绝
|
||||
declined() {
|
||||
this.$refs.bindmobile2.open()
|
||||
},
|
||||
|
||||
// 审核未通过 编辑
|
||||
auditEdit() {
|
||||
|
||||
},
|
||||
//审核通过 拒绝
|
||||
passDelete() {
|
||||
|
||||
},
|
||||
//审核通过 同意
|
||||
passagree() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
.content_top {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.adddelegation {
|
||||
width: 694rpx;
|
||||
height: 95rpx;
|
||||
|
||||
|
||||
background: linear-gradient(276deg, #F98649 0%, #F34E45 100%);
|
||||
box-shadow: 0 5rpx 11rpx 2rpx rgba(136, 20, 7, 0.3);
|
||||
border-radius: 47rpx 47rpx 47rpx 47rpx;
|
||||
opacity: 1;
|
||||
display: flex;
|
||||
position: fixed;
|
||||
position: absolute;
|
||||
bottom: 84rpx;
|
||||
left: 50%;
|
||||
margin-left: -347rpx;
|
||||
|
||||
.adddelegation-one {
|
||||
width: 50rpx;
|
||||
margin-right: 30rpx;
|
||||
height: 50rpx;
|
||||
margin-left: 242rpx;
|
||||
|
||||
margin-top: 21rpx;
|
||||
|
||||
image {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.adddelegation-two {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
margin-top: 25rpx;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.content_top {
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.content-content {
|
||||
|
||||
margin-top: 21rpx;
|
||||
background: #FFFFFF;
|
||||
padding: 0 28rpx;
|
||||
padding-top: 28rpx;
|
||||
background: #FFFFFF;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
|
||||
.content-one {
|
||||
display: flex;
|
||||
|
||||
padding-bottom: 23rpx;
|
||||
|
||||
.content-one-img {
|
||||
width: 148rpx;
|
||||
height: 148rpx;
|
||||
margin-right: 28rpx;
|
||||
border: 1px solid;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content-one-txt {
|
||||
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.one-txt-b {
|
||||
display: flex;
|
||||
margin-top: 30rpx;
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: SF Pro Display-Medium, SF Pro Display;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-right: 74rpx;
|
||||
}
|
||||
|
||||
.txt-b-b {
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.content-two_oneq {
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
text-align: right;
|
||||
|
||||
.content-two-edita {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editb {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #FE9A10;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editc {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #20A162;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editd {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #999999;
|
||||
|
||||
}
|
||||
|
||||
.contentgn {
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 47rpx;
|
||||
|
||||
.contentgn_a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #F84221;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 0px;
|
||||
height: 30rpx;
|
||||
opacity: 1;
|
||||
|
||||
margin-top: 10rpx;
|
||||
border: 2rpx solid #CCCCCC;
|
||||
|
||||
}
|
||||
|
||||
.contentgn_b {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.content-two_one {
|
||||
|
||||
|
||||
|
||||
text-align: right;
|
||||
|
||||
.content-two-edita {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editb {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #FE9A10;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editc {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #20A162;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editd {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #999999;
|
||||
|
||||
}
|
||||
|
||||
.contentgn {
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 47rpx;
|
||||
|
||||
.contentgn_a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #F84221;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 1px;
|
||||
height: 30rpx;
|
||||
opacity: 1;
|
||||
margin-top: 8rpx;
|
||||
background-color: #cccccc;
|
||||
|
||||
}
|
||||
|
||||
.contentgn_b {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.entrust {
|
||||
|
||||
|
||||
.entrust_close {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
z-index: 99999;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.entrust_bg {
|
||||
width: 694rpx;
|
||||
height: 676rpx;
|
||||
background: url('@/static/images/wtbg3.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
|
||||
.entrust_bg-content {
|
||||
position: absolute;
|
||||
top: 284rpx;
|
||||
|
||||
.bg-content-a {
|
||||
margin-left: 242rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.bg-content-b {
|
||||
margin-left: 35rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 32rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-content-c {
|
||||
margin-left: 35rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 32rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.entrust_bga_btn {
|
||||
display: flex;
|
||||
margin-top: 53rpx;
|
||||
|
||||
.cancellation {
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 121rpx;
|
||||
margin-right: 49rpx;
|
||||
}
|
||||
|
||||
.determine {
|
||||
width: 249rpx;
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 47rpx 47rpx 47rpx 47rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.entrust_bga {
|
||||
width: 694rpx;
|
||||
height: 520rpx;
|
||||
background: url('@/static/images/wtbg4.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
|
||||
.entrust_bg-content {
|
||||
position: absolute;
|
||||
top: 284rpx;
|
||||
|
||||
.bg-content-a {
|
||||
margin-left: 242rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.entrust_bga_btn {
|
||||
display: flex;
|
||||
margin-top: 53rpx;
|
||||
|
||||
.cancellation {
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 121rpx;
|
||||
margin-right: 49rpx;
|
||||
}
|
||||
|
||||
.determine {
|
||||
width: 249rpx;
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 47rpx 47rpx 47rpx 47rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.entrust_bgb {
|
||||
width: 694rpx;
|
||||
height: 994rpx;
|
||||
background: url('@/static/images/wtbg5.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
|
||||
|
||||
.entrust_bg-content {
|
||||
position: absolute;
|
||||
top: 404rpx;
|
||||
|
||||
.bg-content-a {
|
||||
margin-left: 242rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.bg-content-b {
|
||||
margin-left: 35rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 32rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-content-c {
|
||||
margin-left: 35rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 22rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-content_textarea {
|
||||
width: 624rpx;
|
||||
height: 152rpx;
|
||||
padding: 25rpx 18rpx;
|
||||
|
||||
background: #F5F5F5;
|
||||
}
|
||||
}
|
||||
|
||||
.entrust_bga_btn {
|
||||
display: flex;
|
||||
margin-top: 33rpx;
|
||||
|
||||
|
||||
.determine {
|
||||
margin-left: 188rpx;
|
||||
width: 249rpx;
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 47rpx 47rpx 47rpx 47rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
813
pages/commissionedSales/receivedCommission/index.vue
Normal file
@ -0,0 +1,813 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
|
||||
<view class="content_top">
|
||||
<!--选项卡滑动切换-->
|
||||
<cxNavTitle :tabs="tabs" :activeItem="activeItem" @tabClick="tabClick" :show='false'></cxNavTitle>
|
||||
</view>
|
||||
<!-- 审核通过 打折的拒绝、同意功能 ,调货不需要功能 -->
|
||||
<view class="content-content" v-for="(item,i) in list" :key="i" @click="nav(item)">
|
||||
|
||||
<view class="content-one">
|
||||
<view class="content-one-img">
|
||||
<image src="@/static/images/bg2.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="content-one-txt">
|
||||
<view class="one-txt-a">
|
||||
{{item.content}}
|
||||
</view>
|
||||
<view class="one-txt-b">
|
||||
委托周期:{{item.day}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="content-two_one" v-if="item.type==1">
|
||||
<view class="content-two-edita" @click="soldEdit">
|
||||
待处理
|
||||
</view>
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a">
|
||||
处理
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-two_oneq" v-if="item.type==2">
|
||||
|
||||
|
||||
<view class="content-two-editb" @click="accepted">
|
||||
已接受
|
||||
</view>
|
||||
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a" @click="closingorder">
|
||||
结束委托
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-two_one" v-if="item.type==3">
|
||||
|
||||
|
||||
<view class="content-two-editc" @click="declined">
|
||||
已拒绝
|
||||
</view>
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a">
|
||||
删除
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-two_one" v-if="item.type==4">
|
||||
|
||||
|
||||
<view class="content-two-editd" @click="soldEdit">
|
||||
已完成
|
||||
</view>
|
||||
<view class="contentgn">
|
||||
<view class="contentgn_a">
|
||||
删除
|
||||
</view>
|
||||
<span></span>
|
||||
<view class="contentgn_b">
|
||||
详情
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-if="orderList.length == 0 && this.where.page > 1">
|
||||
<emptyPage title="暂无订单~"></emptyPage>
|
||||
</view>
|
||||
<uni-popup ref="bindmobile" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bg">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a">
|
||||
委托申请处理
|
||||
</view>
|
||||
<view class="bg-content-b">
|
||||
结算周期: <span>30天</span>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
利息比例: <span>0.05%</span>
|
||||
</view>
|
||||
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="cancellation">
|
||||
拒绝
|
||||
</view>
|
||||
<view class="determine">
|
||||
接受
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup ref="bindmobile1" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bga">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a">
|
||||
确定结束委托?
|
||||
</view>
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="cancellation">
|
||||
取消
|
||||
</view>
|
||||
<view class="determine">
|
||||
确定
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup ref="bindmobile2" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bg">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a" style="margin-left: 207rpx;">
|
||||
结束委托申请处理
|
||||
</view>
|
||||
<view class="bg-content-b">
|
||||
结算周期: <span>30天</span>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
利息比例: <span>0.05%</span>
|
||||
</view>
|
||||
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="cancellation">
|
||||
拒绝
|
||||
</view>
|
||||
<view class="determine">
|
||||
接受
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup ref="bindmobile3" type="center" @click="close">
|
||||
|
||||
<view class="" style="position: relative;">
|
||||
<view class="entrust">
|
||||
<view class="entrust_close" @click="close">
|
||||
<image src="@/static/images/wt_close.png" mode=""></image>
|
||||
</view>
|
||||
<view class="entrust_bgb">
|
||||
<view class="entrust_bg-content">
|
||||
<view class="bg-content-a" style="margin-left: 207rpx;">
|
||||
结束委托申请处理
|
||||
</view>
|
||||
<view class="bg-content-b">
|
||||
结算周期: <span>30天</span>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
利息比例: <span>0.05%</span>
|
||||
</view>
|
||||
<view class="bg-content-c">
|
||||
|
||||
拒绝原因:
|
||||
<view class="" style="margin-top: 21rpx;">
|
||||
|
||||
<textarea value="" placeholder="输入拒绝原因" class="bg-content_textarea" />
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="entrust_bga_btn">
|
||||
<view class="determine">
|
||||
接受
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import cxNavTitle from '@/components/cx-navTitle.vue'
|
||||
import emptyPage from '@/components/emptyPage.vue';
|
||||
import {} from '@/api/sale.js'
|
||||
export default {
|
||||
components: {
|
||||
cxNavTitle,
|
||||
emptyPage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeItem: "tabOne",
|
||||
tabTitle: "",
|
||||
orderList: [],
|
||||
where: {
|
||||
page: 1,
|
||||
limit: 10
|
||||
},
|
||||
tabs: [{
|
||||
name: "tabOne",
|
||||
label: '待处理',
|
||||
type: '1'
|
||||
},
|
||||
{
|
||||
name: "tabTwo",
|
||||
label: '已接受',
|
||||
type: '2'
|
||||
},
|
||||
{
|
||||
name: "tabThree",
|
||||
label: '已拒绝',
|
||||
type: '3'
|
||||
},
|
||||
|
||||
],
|
||||
list: [{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 1
|
||||
|
||||
},
|
||||
{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 2
|
||||
|
||||
},
|
||||
{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 3
|
||||
|
||||
},
|
||||
{
|
||||
content: '张三生产资料供销供应链',
|
||||
day: 10,
|
||||
type: 4
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.tabTitle = this.tabs[0].name
|
||||
//有时进入页面需要获取默认的第一个标签做逻辑判断 -- 如下:
|
||||
console.log(this.tabs[0])
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
nav(item) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/commissionedSales/delegation_details/index'
|
||||
})
|
||||
},
|
||||
tabClick(e) { //点击获取当前标签数据
|
||||
this.activeItem = e.name; //当前class类名
|
||||
this.tabTitle = e.name; //当前选的标签名
|
||||
},
|
||||
//管理弹窗
|
||||
close() {
|
||||
console.log('1111111')
|
||||
this.$refs.bindmobile.close()
|
||||
this.$refs.bindmobile1.close()
|
||||
this.$refs.bindmobile2.close()
|
||||
this.$refs.bindmobile3.close()
|
||||
},
|
||||
// 待处理
|
||||
soldEdit() {
|
||||
|
||||
this.$refs.bindmobile.open()
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
//已接受
|
||||
accepted() {
|
||||
this.$refs.bindmobile1.open()
|
||||
},
|
||||
//结束委托
|
||||
closingorder() {
|
||||
this.$refs.bindmobile3.open()
|
||||
},
|
||||
// 已拒绝
|
||||
declined() {
|
||||
this.$refs.bindmobile2.open()
|
||||
},
|
||||
|
||||
// 审核未通过 编辑
|
||||
auditEdit() {
|
||||
|
||||
},
|
||||
//审核通过 拒绝
|
||||
passDelete() {
|
||||
|
||||
},
|
||||
//审核通过 同意
|
||||
passagree() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content_top {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
.content_top {
|
||||
width: 100%;
|
||||
}
|
||||
.content-content {
|
||||
|
||||
margin-top: 21rpx;
|
||||
background: #FFFFFF;
|
||||
padding: 0 28rpx;
|
||||
padding-top: 28rpx;
|
||||
background: #FFFFFF;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
|
||||
.content-one {
|
||||
display: flex;
|
||||
|
||||
padding-bottom: 23rpx;
|
||||
|
||||
.content-one-img {
|
||||
width: 148rpx;
|
||||
height: 148rpx;
|
||||
margin-right: 28rpx;
|
||||
border: 1px solid;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content-one-txt {
|
||||
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.one-txt-b {
|
||||
display: flex;
|
||||
margin-top: 30rpx;
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: SF Pro Display-Medium, SF Pro Display;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-right: 74rpx;
|
||||
}
|
||||
|
||||
.txt-b-b {
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.content-two_oneq {
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
text-align: right;
|
||||
|
||||
.content-two-edita {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editb {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #FE9A10;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editc {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #20A162;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editd {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #999999;
|
||||
|
||||
}
|
||||
|
||||
.contentgn {
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 47rpx;
|
||||
|
||||
.contentgn_a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #F84221;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 0px;
|
||||
height: 30rpx;
|
||||
opacity: 1;
|
||||
|
||||
margin-top: 10rpx;
|
||||
border: 2rpx solid #CCCCCC;
|
||||
|
||||
}
|
||||
|
||||
.contentgn_b {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.content-two_one {
|
||||
|
||||
|
||||
|
||||
text-align: right;
|
||||
|
||||
.content-two-edita {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editb {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #FE9A10;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editc {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #20A162;
|
||||
|
||||
}
|
||||
|
||||
.content-two-editd {
|
||||
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #999999;
|
||||
|
||||
}
|
||||
|
||||
.contentgn {
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 47rpx;
|
||||
|
||||
.contentgn_a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #F84221;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 0px;
|
||||
height: 30rpx;
|
||||
opacity: 1;
|
||||
|
||||
margin-top: 10rpx;
|
||||
border: 2rpx solid #CCCCCC;
|
||||
|
||||
}
|
||||
|
||||
.contentgn_b {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
.entrust {
|
||||
|
||||
.entrust_close {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
z-index: 99999;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.entrust_bg {
|
||||
width: 694rpx;
|
||||
height: 676rpx;
|
||||
background: url('@/static/images/wtbg3.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
|
||||
.entrust_bg-content {
|
||||
position: absolute;
|
||||
top: 284rpx;
|
||||
|
||||
.bg-content-a {
|
||||
margin-left: 242rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.bg-content-b {
|
||||
margin-left: 35rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 32rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-content-c {
|
||||
margin-left: 35rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 32rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.entrust_bga_btn {
|
||||
display: flex;
|
||||
margin-top: 53rpx;
|
||||
|
||||
.cancellation {
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 121rpx;
|
||||
margin-right: 49rpx;
|
||||
}
|
||||
|
||||
.determine {
|
||||
width: 249rpx;
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 47rpx 47rpx 47rpx 47rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.entrust_bga {
|
||||
width: 694rpx;
|
||||
height: 520rpx;
|
||||
background: url('@/static/images/wtbg4.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
|
||||
.entrust_bg-content {
|
||||
position: absolute;
|
||||
top: 284rpx;
|
||||
|
||||
.bg-content-a {
|
||||
margin-left: 242rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.entrust_bga_btn {
|
||||
display: flex;
|
||||
margin-top: 53rpx;
|
||||
|
||||
.cancellation {
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-left: 121rpx;
|
||||
margin-right: 49rpx;
|
||||
}
|
||||
|
||||
.determine {
|
||||
width: 249rpx;
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 47rpx 47rpx 47rpx 47rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.entrust_bgb {
|
||||
width: 694rpx;
|
||||
height: 994rpx;
|
||||
background: url('@/static/images/wtbg5.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
|
||||
|
||||
.entrust_bg-content {
|
||||
position: absolute;
|
||||
top: 404rpx;
|
||||
|
||||
.bg-content-a {
|
||||
margin-left: 242rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.bg-content-b {
|
||||
margin-left: 35rpx;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 32rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-content-c {
|
||||
margin-left: 35rpx;
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 22rpx;
|
||||
|
||||
span {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-left: 18rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-content_textarea {
|
||||
width: 624rpx;
|
||||
height: 152rpx;
|
||||
padding: 25rpx 18rpx;
|
||||
|
||||
background: #F5F5F5;
|
||||
}
|
||||
}
|
||||
|
||||
.entrust_bga_btn {
|
||||
display: flex;
|
||||
margin-top: 33rpx;
|
||||
|
||||
|
||||
.determine {
|
||||
margin-left: 188rpx;
|
||||
width: 249rpx;
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 47rpx 47rpx 47rpx 47rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
@ -8,12 +8,13 @@
|
||||
<view class="special_work com" v-if="true">
|
||||
<view class="title">市级供应链</view>
|
||||
<view class="content">
|
||||
<view class="examine" @click="navigator(`/pages/nongKe/supply_chain/goods_list?merid=${mer_id}`)">
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/nongKe/supply_chain/goods_list?merid=${mer_id}`)">
|
||||
<image class="icon_img" :src="`${prefix}zsgl.png`" mode="aspectFill"></image>
|
||||
<text class="text">在售管理</text>
|
||||
</view>
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/admin/order/index?mer_id=${mer_id}&product_type=98`)">
|
||||
@click="navigator(`/pages/admin/order/index?mer_id=${mer_id}&product_type=98&type_id=${userInfoData.mer_info.type_id}`)">
|
||||
<image class="icon_img" :src="`${prefix}cwgl.png`" mode="aspectFill"></image>
|
||||
<text class="text">财务管理</text>
|
||||
</view>
|
||||
@ -39,8 +40,8 @@
|
||||
<text class="text">提现管理</text>
|
||||
</view>
|
||||
<view class="examine" @click="navigator(`/pages/nongKe/teach_video/teach_video`)">
|
||||
<image class="icon_img" src="https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/spjs.png"
|
||||
mode="aspectFill">
|
||||
<image class="icon_img"
|
||||
src="https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/spjs.png" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">视频教学</text>
|
||||
</view>
|
||||
@ -64,11 +65,13 @@
|
||||
<view class="title">我的店铺</view>
|
||||
<view class="content ">
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/nongKe/supply_chain/supplier?type_id=12&isDetail=1&product_type=98&cate_id=${userInfoData.mer_info.category_id}`)">
|
||||
@click="navigator(`/pages/users/supply_procurement/index?type_id=12&isDetail=1&product_type=98&cate_id=${userInfoData.mer_info.category_id}`)">
|
||||
<!-- @click="navigator(`/pages/nongKe/supply_chain/supplier?type_id=12&isDetail=1&product_type=98&cate_id=${userInfoData.mer_info.category_id}`) -->
|
||||
<image class="icon_img" :src="`${prefix}ghcg.png`" mode="aspectFill"></image>
|
||||
<text class="text">供货采购</text>
|
||||
</view>
|
||||
<view class="examine" @click="navigator('/pages/users/order_list/index?status=-1')">
|
||||
<view class="examine"
|
||||
@click="navigator('/pages/users/order_list/indexCopy?status=-1&product_type=98')">
|
||||
<image class="icon_img" :src="`${prefix}jhgl.png`" mode="aspectFill"></image>
|
||||
<text class="text">进货管理</text>
|
||||
</view>
|
||||
@ -101,7 +104,8 @@
|
||||
</image>
|
||||
<text class="text">订单核销</text>
|
||||
</view>
|
||||
<view class="examine" @click="navigator(`/pages/admin/order/index?mer_id=${mer_id}`)">
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/admin/order/index?mer_id=${mer_id}&type_id=${userInfoData.mer_info.type_id}`)">
|
||||
<image class="icon_img" :src="`${prefix}ddgl.png`" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">订单管理</text>
|
||||
@ -111,11 +115,29 @@
|
||||
</image>
|
||||
<text class="text">商品管理</text>
|
||||
</view>
|
||||
<view class="examine" @click="navigator(`/pages/product/basicSet?mer_id=${mer_id}`, '商户设置')">
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/product/basicSet?mer_id=${mer_id}`, '商户设置')">
|
||||
<image class="icon_img" :src="`${prefix}shsz.png`" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">商户设置</text>
|
||||
</view>
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/users/trading_hall/index?mer_id=${mer_id}`)">
|
||||
<image class="icon_img" src="@/static/images/diaohuo.png" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">交易大厅</text>
|
||||
</view>
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/commissionedSales/index/index?mer_id=${mer_id}`)">
|
||||
<image class="icon_img" src="@/static/images/weituo.png" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">委托销售</text>
|
||||
</view>
|
||||
<view class="examine" @click="navigator(`/pages/releaseManagement/index?mer_id=${mer_id}`)">
|
||||
<image class="icon_img" src="@/static/images/fabu.png" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">发布管理</text>
|
||||
</view>
|
||||
<!-- <view class="examine" @click="navigator(`/pages/users/user_invoice_Finance/index?mer_id=${mer_id}`)">
|
||||
<image class="icon_img" src="@/static/images/cwgk.png" mode="aspectFill">
|
||||
</image>
|
||||
@ -129,7 +151,8 @@
|
||||
<!-- <gatherBusiness :userInfoData="userInfoData" /> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="business com" v-if="userInfoData.mer_info.type_id === 11">
|
||||
|
||||
<view class="business com" v-if="userInfoData.mer_info.type_id!=null&&userInfoData.mer_info.type_id === 11">
|
||||
<view class="business com" v-if="true">
|
||||
<view class="special_work com">
|
||||
<view class="title">里海云仓</view>
|
||||
@ -172,7 +195,8 @@
|
||||
</image>
|
||||
<text class="text">订单核销</text>
|
||||
</view>
|
||||
<view class="examine" @click="navigator(`/pages/admin/order/index?mer_id=${mer_id}`)">
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/admin/order/index?mer_id=${mer_id}&type_id=${userInfoData.mer_info.type_id}`)">
|
||||
<image class="icon_img" :src="`${prefix}ddgl.png`" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">订单管理</text>
|
||||
@ -182,7 +206,8 @@
|
||||
</image>
|
||||
<text class="text">商品管理</text>
|
||||
</view>
|
||||
<view class="examine" @click="navigator(`/pages/product/basicSet?mer_id=${mer_id}`, '商户设置')">
|
||||
<view class="examine"
|
||||
@click="navigator(`/pages/product/basicSet?mer_id=${mer_id}`, '商户设置')">
|
||||
<image class="icon_img" :src="`${prefix}shsz.png`" mode="aspectFill">
|
||||
</image>
|
||||
<text class="text">商户设置</text>
|
||||
@ -197,6 +222,9 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
</block>
|
||||
<!-- <m-tabbar native>
|
||||
<template v-slot:tabbar_index_2>
|
||||
@ -205,11 +233,16 @@
|
||||
</view>
|
||||
</template>
|
||||
</m-tabbar> -->
|
||||
<view class="" v-if='jurisdiction==false&&isShow==false'>
|
||||
<emptyPage title="暂无信息"></emptyPage>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mTabbar from '@/components/m-tabbar/m-tabbar.vue'
|
||||
import emptyPage from '@/components/emptyPage.vue';
|
||||
import zbpSwiper from '@/components/zbpSwiper'
|
||||
import {
|
||||
mapState,
|
||||
@ -236,7 +269,8 @@
|
||||
export default {
|
||||
components: {
|
||||
mTabbar,
|
||||
zbpSwiper
|
||||
zbpSwiper,
|
||||
emptyPage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -290,10 +324,11 @@
|
||||
this.isShow = true
|
||||
this.mer_id = res.data.service.mer_id
|
||||
}
|
||||
|
||||
if (!res.data.mer_info) {
|
||||
that.$set(this, 'jurisdiction', false);
|
||||
}
|
||||
console.log(that.userInfoData);
|
||||
// console.log(that.userInfoData);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -585,6 +585,7 @@
|
||||
])),
|
||||
},
|
||||
onLoad(options) {
|
||||
// console.log(options)
|
||||
this.referer = options.referer
|
||||
if (options.product_type) {
|
||||
this.product_type = options.product_type
|
||||
@ -1349,9 +1350,10 @@
|
||||
postCartAdd(q)
|
||||
.then(function(res) {
|
||||
that.isOpen = that.attr.cartAttr = false;
|
||||
console.log(that.storeInfo);
|
||||
if (news) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/users/order_confirm/index?cartId=${res.data.cart_id}`
|
||||
url: `/pages/users/order_confirm/index?cartId=${res.data.cart_id}&type_id=${that.storeInfo.merchant.type_id}`
|
||||
});
|
||||
} else {
|
||||
that.$util.Tips({
|
||||
|
@ -7,13 +7,16 @@
|
||||
<view class="tabs_wrapper">
|
||||
<u-tabs :list="tabsData.list" @click="tabsChange" lineColor="#F84221" keyName="cate_name"></u-tabs>
|
||||
</view>
|
||||
<view class="">
|
||||
|
||||
</view>
|
||||
|
||||
<view class="goods">
|
||||
<block v-for="(item,index) in cateGoods" :key="index">
|
||||
<view class="goods_item" @click="gogogo(item)">
|
||||
<view style="height: 294.74rpx;">
|
||||
<u--image :src="item.image[0]" width="342.11rpx" height="294.74rpx" :showLoading="true" lazyLoad fade
|
||||
duration="450">
|
||||
<u--image :src="item.image[0]" width="342.11rpx" height="294.74rpx" :showLoading="true"
|
||||
lazyLoad fade duration="450">
|
||||
<template v-slot:loading>
|
||||
<u-loading-icon color="#f5f5f5"></u-loading-icon>
|
||||
</template>
|
||||
@ -23,12 +26,13 @@
|
||||
<view class="title">{{item.title}}</view>
|
||||
<view class="goods_info flex_a_c">
|
||||
<view class="l_info flex_a_c">
|
||||
<image :src="(item.author && item.author.avatar) || '/static/images/f.png'" mode="aspectFill"
|
||||
class="g_img"></image>
|
||||
<image :src="(item.author && item.author.avatar) || '/static/images/f.png'"
|
||||
mode="aspectFill" class="g_img"></image>
|
||||
<view class="g_name">{{item.author && item.author.nickname}}</view>
|
||||
</view>
|
||||
<view class="nice_box" @click.stop="giveStart(item)">
|
||||
<text class="iconfont" :class="item.relevance_id ? 'icon-shoucang1' : 'icon-dianzan'"></text>
|
||||
<text class="iconfont"
|
||||
:class="item.relevance_id ? 'icon-shoucang1' : 'icon-dianzan'"></text>
|
||||
<text class="collect">{{item.count_start}}</text>
|
||||
</view>
|
||||
</view>
|
||||
@ -43,7 +47,7 @@
|
||||
|
||||
<u-picker :defaultIndex="[0,0]" :show="showPicker" ref="uPicker" :columns="columnData" @confirm="confirm"
|
||||
@cancel="showPicker = false" @change="changeHandler" keyName="name"></u-picker>
|
||||
<u-loadmore :status="status" />
|
||||
<u-loadmore :status="status" v-if="cateGoods.length>0" />
|
||||
<!-- <view class="bg_color"></view> -->
|
||||
|
||||
<!-- <m-tabbar native>
|
||||
@ -60,12 +64,29 @@
|
||||
import mTabbar from '@/components/m-tabbar/m-tabbar.vue'
|
||||
import zbpSwiper from '@/components/zbpSwiper'
|
||||
import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue';
|
||||
import { getSlideAPI } from '@/api/lihai.js'
|
||||
import { graphicLstApi, getTopicList, graphicStartApi } from '@/api/community.js'
|
||||
import { getIndexData, getDiy } from '@/api/api.js'
|
||||
import { getGeocoder, merClassifly } from '@/api/store.js';
|
||||
import { getArea, getStreet } from '@/api/article.js';
|
||||
import { Toast } from '@/libs/uniApi'
|
||||
import {
|
||||
getSlideAPI
|
||||
} from '@/api/lihai.js'
|
||||
import {
|
||||
graphicLstApi,
|
||||
getTopicList,
|
||||
graphicStartApi
|
||||
} from '@/api/community.js'
|
||||
import {
|
||||
getIndexData,
|
||||
getDiy
|
||||
} from '@/api/api.js'
|
||||
import {
|
||||
getGeocoder,
|
||||
merClassifly
|
||||
} from '@/api/store.js';
|
||||
import {
|
||||
getArea,
|
||||
getStreet
|
||||
} from '@/api/article.js';
|
||||
import {
|
||||
Toast
|
||||
} from '@/libs/uniApi'
|
||||
export default {
|
||||
components: {
|
||||
mTabbar,
|
||||
@ -108,13 +129,15 @@
|
||||
this.getGoods()
|
||||
this.selfLocation()
|
||||
this.Area()
|
||||
uni.$on('connectstatusChange',(connectstatus) =>{
|
||||
this.setPermissions()
|
||||
// this.openTongZhi()
|
||||
uni.$on('connectstatusChange', (connectstatus) => {
|
||||
var connectstr = ''
|
||||
if (connectstatus == true) {
|
||||
connectstr ='已连接'
|
||||
connectstr = '已连接'
|
||||
this.getRegistrationID()
|
||||
}else{
|
||||
connectstr ='未连接'
|
||||
} else {
|
||||
connectstr = '未连接'
|
||||
}
|
||||
this.connectstatus = connectStr
|
||||
})
|
||||
@ -195,26 +218,34 @@
|
||||
})
|
||||
},
|
||||
getGoods: function(item) {
|
||||
// console.log(item);
|
||||
|
||||
graphicLstApi(this.where).then(res => {
|
||||
this.cateGoods.push(...res.data.list)
|
||||
if (res.data.list.length < this.where.limit) this.status = 'nomore'
|
||||
if (this.where.page == 1 && res.data.list.length <= 0) this.emptyShow = true
|
||||
if (item.index == 1) {
|
||||
|
||||
if(item){
|
||||
|
||||
if (item.index == 1 ) {
|
||||
uni.navigateTo({
|
||||
// #ifdef MP || H5
|
||||
url: '/pages/short_video/nvueSwiper/index?id=' + this.cateGoods[0].community_id
|
||||
url: '/pages/short_video/nvueSwiper/index?id=' + this.cateGoods[0]
|
||||
.community_id
|
||||
// #endif
|
||||
// #ifdef APP
|
||||
url: `/pages/short_video/appSwiper/index?id=${this.cateGoods[0].community_id}`
|
||||
// #endif
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
/*获取分类列表*/
|
||||
async getCateList() {
|
||||
const { data } = await getTopicList()
|
||||
const {
|
||||
data
|
||||
} = await getTopicList()
|
||||
this.tabsData.list = [{
|
||||
cate_name: "推荐",
|
||||
category_id: 0
|
||||
@ -236,13 +267,16 @@
|
||||
selfLocation() {
|
||||
const that = this
|
||||
uni.getLocation({
|
||||
type: 'gcj02',
|
||||
type: 'wgs84',
|
||||
timeout: '10',
|
||||
success: (res) => {
|
||||
let latitude, longitude;
|
||||
latitude = res.latitude.toString();
|
||||
longitude = res.longitude.toString();
|
||||
getGeocoder({ lat: latitude, long: longitude }).then(res => {
|
||||
getGeocoder({
|
||||
lat: latitude,
|
||||
long: longitude
|
||||
}).then(res => {
|
||||
that.$store.commit('setLocation', res.data)
|
||||
that.street = res.data.address_component.street
|
||||
}).catch(err => {
|
||||
@ -261,6 +295,88 @@
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 设置手机通知权限
|
||||
*/
|
||||
setPermissions() {
|
||||
// #ifdef APP-PLUS
|
||||
if (plus.os.name == 'Android') { // 判断是Android
|
||||
var main = plus.android.runtimeMainActivity();
|
||||
var pkName = main.getPackageName();
|
||||
var uid = main.getApplicationInfo().plusGetAttribute("uid");
|
||||
var NotificationManagerCompat = plus.android.importClass(
|
||||
"android.support.v4.app.NotificationManagerCompat");
|
||||
//android.support.v4升级为androidx
|
||||
if (NotificationManagerCompat == null) {
|
||||
NotificationManagerCompat = plus.android.importClass(
|
||||
"androidx.core.app.NotificationManagerCompat");
|
||||
}
|
||||
var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();
|
||||
// 未开通‘允许通知’权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置
|
||||
if (!areNotificationsEnabled) {
|
||||
uni.showModal({
|
||||
title: '通知权限开启提醒',
|
||||
content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',
|
||||
showCancel: false,
|
||||
confirmText: '去设置',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
var Intent = plus.android.importClass('android.content.Intent');
|
||||
var Build = plus.android.importClass("android.os.Build");
|
||||
//android 8.0引导
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
|
||||
intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
|
||||
} else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0
|
||||
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
|
||||
intent.putExtra("app_package", pkName);
|
||||
intent.putExtra("app_uid", uid);
|
||||
} else { //(<21)其他--跳转到该应用管理的详情页
|
||||
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
var uri = Uri.fromParts("package", mainActivity.getPackageName(),
|
||||
null);
|
||||
intent.setData(uri);
|
||||
}
|
||||
// 跳转到该应用的系统通知设置页
|
||||
main.startActivity(intent);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (plus.os.name == 'iOS') { // 判断是ISO
|
||||
var isOn = undefined;
|
||||
var types = 0;
|
||||
var app = plus.ios.invoke('UIApplication', 'sharedApplication');
|
||||
var settings = plus.ios.invoke(app, 'currentUserNotificationSettings');
|
||||
if (settings) {
|
||||
types = settings.plusGetAttribute('types');
|
||||
plus.ios.deleteObject(settings);
|
||||
} else {
|
||||
types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes');
|
||||
}
|
||||
plus.ios.deleteObject(app);
|
||||
isOn = (0 != types);
|
||||
if (isOn == false) {
|
||||
uni.showModal({
|
||||
title: '通知权限开启提醒',
|
||||
content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',
|
||||
showCancel: false,
|
||||
confirmText: '去设置',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
var app = plus.ios.invoke('UIApplication', 'sharedApplication');
|
||||
var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');
|
||||
plus.ios.invoke(app, 'openURL:', setting);
|
||||
plus.ios.deleteObject(setting);
|
||||
plus.ios.deleteObject(app);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
// #endif
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -33,7 +33,7 @@
|
||||
<button class="bnt bg-color" open-type="share" hover-class='none'>和好友一起分享</button>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<button class="bnt bg-color" open-type="share" hover-class='none' @click="listenerActionSheet" >和好友一起分享</button>
|
||||
<button class="bnt bg-color" open-type="share" hover-class='none' @click="uniShare" >分享</button>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
<shareInfo @setShareInfoStatus="setShareInfoStatus" :shareInfoStatus="shareInfoStatus"></shareInfo>
|
||||
@ -57,12 +57,22 @@
|
||||
} from '@/api/api.js';
|
||||
import shareInfo from '@/components/shareInfo';
|
||||
import home from '@/components/home';
|
||||
import UniShare from 'uni_modules/uni-share/js_sdk/uni-share.js';
|
||||
const uniShare = new UniShare();
|
||||
export default {
|
||||
components: {
|
||||
shareInfo,
|
||||
home,
|
||||
"jyf-parser": parser,
|
||||
},
|
||||
onBackPress({from}) {
|
||||
if(from=='backbutton'){
|
||||
this.$nextTick(function(){
|
||||
uniShare.hide()
|
||||
})
|
||||
return uniShare.isShow;
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
id: 0,
|
||||
@ -96,6 +106,78 @@
|
||||
this.getArticleOne();
|
||||
},
|
||||
methods: {
|
||||
// 分享
|
||||
uniShare() {
|
||||
uniShare.show({
|
||||
content: { //公共的分享参数配置 类型(type)、链接(herf)、标题(title)、summary(描述)、imageUrl(缩略图)
|
||||
type: 0,
|
||||
href: 'https://uniapp.dcloud.io/',
|
||||
title: '标题',
|
||||
summary: '描述',
|
||||
imageUrl: 'https://img-cdn-aliyun.dcloud.net.cn/stream/icon/__UNI__HelloUniApp.png'
|
||||
},
|
||||
menus: [{
|
||||
"img": "/static/app-plus/sharemenu/wechatfriend.png",
|
||||
"text": "微信好友",
|
||||
"share": { //当前项的分享参数配置。可覆盖公共的配置如下:分享到微信小程序,配置了type=5
|
||||
"provider": "weixin",
|
||||
"scene": "WXSceneSession"
|
||||
}
|
||||
},
|
||||
{
|
||||
"img": "/static/app-plus/sharemenu/wechatmoments.png",
|
||||
"text": "微信朋友圈",
|
||||
"share": {
|
||||
"provider": "weixin",
|
||||
"scene": "WXSceneTimeline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"img": "/static/app-plus/sharemenu/mp_weixin.png",
|
||||
"text": "微信小程序",
|
||||
"share": {
|
||||
provider: "weixin",
|
||||
scene: "WXSceneSession",
|
||||
type: 5,
|
||||
miniProgram: {
|
||||
id: '123',
|
||||
path: '/pages/list/detail',
|
||||
webUrl: '/#/pages/list/detail',
|
||||
type: 0
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
"img": "/static/app-plus/sharemenu/weibo.png",
|
||||
"text": "微博",
|
||||
"share": {
|
||||
"provider": "sinaweibo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"img": "/static/app-plus/sharemenu/qq.png",
|
||||
"text": "QQ",
|
||||
"share": {
|
||||
"provider": "qq"
|
||||
}
|
||||
},
|
||||
{
|
||||
"img": "/static/app-plus/sharemenu/copyurl.png",
|
||||
"text": "复制",
|
||||
"share": "copyurl"
|
||||
},
|
||||
{
|
||||
"img": "/static/app-plus/sharemenu/more.png",
|
||||
"text": "更多",
|
||||
"share": "shareSystem"
|
||||
}
|
||||
],
|
||||
cancelText: "取消分享",
|
||||
}, e => { //callback
|
||||
console.log(uniShare.isShow);
|
||||
console.log(e);
|
||||
})
|
||||
},
|
||||
getArticleOne: function() {
|
||||
let that = this;
|
||||
getArticleDetails(that.id).then(res => {
|
||||
|
@ -14,12 +14,12 @@
|
||||
<image class="goods_img" :src="item.image" mode="aspectFill"></image>
|
||||
<view class="r_box flex_a_c_j_sb">
|
||||
<view class="message">
|
||||
<view class="title">{{item.store_name}}</view>
|
||||
<view class="goodstitle">{{item.store_name}}</view>
|
||||
<view class="flex_a_c">
|
||||
<view class="">分类:{{item.storeCategory.cate_name}}</view>
|
||||
<view class="unit">单位:{{item.unit_name}}</view>
|
||||
</view>
|
||||
<view class="bar_code">条形码:{{ item.bar_code || "0" }}</view>
|
||||
<view class="bar_code">条形码:{{ item.bar_code || "无" }}</view>
|
||||
</view>
|
||||
<view class="redact_box">
|
||||
<view class="order_price">订货价:{{item.price}}</view>
|
||||
@ -38,7 +38,7 @@
|
||||
<view class="">订货价:{{redactGoods.price}}</view>
|
||||
</view>
|
||||
<view class="bar_code flex_a_c_j_sb">
|
||||
<view>条形码:{{ redactGoods.bar_code || "0" }}</view>
|
||||
<view>条形码:{{ redactGoods.bar_code || "无" }}</view>
|
||||
<view>库存:{{ redactGoods.stock }}</view>
|
||||
</view>
|
||||
<view class="sub_title">订货价</view>
|
||||
@ -63,8 +63,15 @@
|
||||
hideLoading,
|
||||
Modal
|
||||
} from '@/libs/uniApi.js';
|
||||
import { productLstApi, productCreate, productUpdate, productDetail } from '@/api/product.js'
|
||||
import { checkLogin } from '../../../libs/login';
|
||||
import {
|
||||
productLstApi,
|
||||
productCreate,
|
||||
productUpdate,
|
||||
productDetail
|
||||
} from '@/api/product.js'
|
||||
import {
|
||||
checkLogin
|
||||
} from '../../../libs/login';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -110,11 +117,15 @@
|
||||
onShow() {},
|
||||
methods: {
|
||||
async searchClick() {
|
||||
const { data } = await productLstApi(this.mer_id, this.params)
|
||||
const {
|
||||
data
|
||||
} = await productLstApi(this.mer_id, this.params)
|
||||
this.goodsList = data.list
|
||||
},
|
||||
async getGoodsList() {
|
||||
const { data } = await productLstApi(this.mer_id, this.params)
|
||||
const {
|
||||
data
|
||||
} = await productLstApi(this.mer_id, this.params)
|
||||
this.goodsList.push(...data.list)
|
||||
if (data.length < 9) this.status = 'nomore';
|
||||
},
|
||||
@ -168,7 +179,8 @@
|
||||
|
||||
if (getStorage('addGoodsSecoundData')) {
|
||||
Object.keys(this.addGoodsSecoundData).forEach(item => {
|
||||
if (getStorage('addGoodsSecoundData')[item] || getStorage('addGoodsSecoundData')[item] == 0) {
|
||||
if (getStorage('addGoodsSecoundData')[item] || getStorage('addGoodsSecoundData')[item] ==
|
||||
0) {
|
||||
this.addGoodsSecoundData[item] = getStorage('addGoodsSecoundData')[item];
|
||||
}
|
||||
});
|
||||
@ -221,6 +233,7 @@
|
||||
line-height: 59.65rpx;
|
||||
background: $uni-theme-bg-color;
|
||||
border-radius: 100px;
|
||||
font-size: 25rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -236,7 +249,7 @@
|
||||
margin-top: 21.05rpx;
|
||||
|
||||
.title {
|
||||
font-size: 31.58rpx;
|
||||
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
@ -262,6 +275,7 @@
|
||||
line-height: 50.88rpx;
|
||||
background: $uni-theme-bg-color;
|
||||
border-radius: 7px;
|
||||
font-size: 25rpx
|
||||
}
|
||||
|
||||
.r_box {
|
||||
@ -281,6 +295,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
.goodstitle {
|
||||
width: 42vw;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
/* 不换行 */
|
||||
overflow: hidden;
|
||||
/* 溢出隐藏 */
|
||||
text-overflow: ellipsis;
|
||||
|
||||
}
|
||||
|
||||
.popup_cont {
|
||||
width: 680.7rpx;
|
||||
padding: 31.58rpx;
|
||||
@ -288,13 +313,12 @@
|
||||
|
||||
.message {
|
||||
margin: 28.07rpx 0 21.05rpx 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 31.58rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sub_title {
|
||||
font-size: 28.07rpx;
|
||||
|
@ -41,6 +41,35 @@
|
||||
<navigator class="bottom_purchase" url="./shopping_trolley" open-type="navigate">采购清单</navigator>
|
||||
|
||||
<goodsPopup :goodsStatu="isPopupShow" @colses="isPopupShow=false" :goods_info="goodsInfo"></goodsPopup>
|
||||
<u-popup :show="show" @close="close">
|
||||
<view>
|
||||
<h3 style=" margin: 15px 5px 5px 24px;">颜色规格</h3>
|
||||
<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y">
|
||||
<view class="scroll-view-item" v-for="(item,index) in attrValue" :key="index">
|
||||
<view class="scroll_item_top">
|
||||
<image :src="Image" mode=""></image>
|
||||
<view class="text">
|
||||
<view>{{item.sku}}</view>
|
||||
<view>库存: <text>{{item.stock}}</text> </view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="scroll_item_bon">
|
||||
<view class="reduce" @click.stop='subCart(item,index)'>-</view>
|
||||
<input type="text" disabled="true" v-model="goods[index].cart_num" />
|
||||
<view class="plus" :class="goods.numAdd ? 'on' : ''" @click.stop='addCart(item,index)'>+</view>
|
||||
<!-- <u-number-box
|
||||
button-size="36"
|
||||
color="#ffffff"
|
||||
bgColor="#2979ff"
|
||||
iconStyle="color: #fff"
|
||||
v-model="number.cart_num"
|
||||
></u-number-box> -->
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<button class="btn" @click="addshopcart">确定</button>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -52,6 +81,9 @@
|
||||
} from '@/api/store.js'
|
||||
import { Toast } from '@/libs/uniApi'
|
||||
import goodsPopup from '../cpns/goodsPopup.vue'
|
||||
import {
|
||||
changeCartNum
|
||||
} from '@/api/order.js';
|
||||
export default {
|
||||
components: {
|
||||
goodsPopup
|
||||
@ -88,7 +120,16 @@
|
||||
},
|
||||
id: '',
|
||||
order: true,
|
||||
num: ''
|
||||
num: '',
|
||||
show: false,
|
||||
scrollTop: 0,
|
||||
attrValue: [],
|
||||
Image: '',
|
||||
goods: [{
|
||||
cart_num: 0
|
||||
}],
|
||||
goodsLite: {},
|
||||
goodsindexL: ''
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
@ -176,23 +217,27 @@
|
||||
* 获取产品详情
|
||||
*/
|
||||
getGoodsDetails(item) {
|
||||
// console.log('e,item',e,item);
|
||||
// let that = this;
|
||||
// const count = e.value
|
||||
// getProductDetail(item.product_id).then(res => {
|
||||
// const unique = Object.values(res.data.sku)[0].unique
|
||||
// console.log(res.data.product_id, count, unique,'123123');
|
||||
// that.goCat(res.data.product_id, count, unique)
|
||||
// })
|
||||
console.log(item);
|
||||
if (item.product.attrValue.length == 1) {
|
||||
let that = this;
|
||||
const count = '1'
|
||||
// console.log(111);
|
||||
getProductDetail(item.product_id, { product_type: 98 }).then(res => {
|
||||
const unique = Object.values(res.data.sku)[0].unique
|
||||
that.goCat(res.data.product_id, count, unique)
|
||||
}).catch(err => {
|
||||
Toast(err)
|
||||
})
|
||||
} else {
|
||||
this.show = true
|
||||
this.attrValue = item.product.attrValue
|
||||
this.Image = item.image
|
||||
for (let i = 1; i < item.product.attrValue.length; i++) {
|
||||
this.goods.push({
|
||||
cart_num: 0
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
/*
|
||||
* 加入购物车
|
||||
@ -220,8 +265,97 @@
|
||||
});
|
||||
});
|
||||
},
|
||||
close() {
|
||||
this.show = false
|
||||
},
|
||||
//购物车增加
|
||||
addCart(item, index) {
|
||||
let that = this
|
||||
that.goods[index].cart_num = that.goods[index].cart_num + 1
|
||||
that.goods.numAdd = true
|
||||
that.goodsLite = item
|
||||
that.goodsindexL = index
|
||||
let q = {
|
||||
is_new: 0,
|
||||
product_id: that.goodsLite.product_id,
|
||||
cart_num: that.goods[that.goodsindexL].cart_num,
|
||||
product_attr_unique: that.goodsLite.unique,
|
||||
// source: this.source,
|
||||
product_type: 98,
|
||||
spread_id: ''
|
||||
};
|
||||
postCartAdd(q).then(res => {
|
||||
that.$util.Tips({
|
||||
title: "添加购物车成功",
|
||||
});
|
||||
})
|
||||
.catch(res => {
|
||||
this.show = false
|
||||
return that.$util.Tips({
|
||||
title: res
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
subCart(item, index) {
|
||||
let that = this
|
||||
if (that.goods[index].cart_num == 0) {
|
||||
return
|
||||
} else {
|
||||
that.goods[index].cart_num = that.goods[index].cart_num - 1
|
||||
that.goods.numAdd = true
|
||||
that.goodsLite = item
|
||||
that.goodsindexL = index
|
||||
let q = {
|
||||
is_new: 0,
|
||||
product_id: that.goodsLite.product_id,
|
||||
cart_num: that.goods[that.goodsindexL].cart_num,
|
||||
product_attr_unique: that.goodsLite.unique,
|
||||
// source: this.source,
|
||||
product_type: 98,
|
||||
spread_id: ''
|
||||
};
|
||||
postCartAdd(q).then(res => {
|
||||
that.$util.Tips({
|
||||
title: "添加购物车成功",
|
||||
});
|
||||
})
|
||||
.catch(res => {
|
||||
this.show = false
|
||||
return that.$util.Tips({
|
||||
title: res
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
addshopcart() {
|
||||
console.log(this.goodsLite);
|
||||
console.log(this.goodsindexL);
|
||||
this.show = false
|
||||
// let that = this
|
||||
// let q = {
|
||||
// is_new: 0,
|
||||
// product_id: that.goodsLite.product_id,
|
||||
// cart_num: that.goods[that.goodsindexL].cart_num,
|
||||
// product_attr_unique: that.goodsLite.unique,
|
||||
// // source: this.source,
|
||||
// product_type: 98,
|
||||
// spread_id: ''
|
||||
// };
|
||||
// postCartAdd(q).then(res => {
|
||||
// this.show = false
|
||||
// that.$util.Tips({
|
||||
// title: "添加购物车成功",
|
||||
// });
|
||||
// })
|
||||
// .catch(res => {
|
||||
// this.show = false
|
||||
// return that.$util.Tips({
|
||||
// title: res
|
||||
// });
|
||||
// });
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
//如果状态为nomore 则不能在触发上拉事件
|
||||
if (this.status != 'nomore') {
|
||||
@ -395,4 +529,91 @@
|
||||
background-color: $uni-theme-color;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.scroll-Y {
|
||||
height: 50vh;
|
||||
width: 90%;
|
||||
margin: auto;
|
||||
|
||||
}
|
||||
|
||||
.scroll-view-item {
|
||||
font-size: 36rpx;
|
||||
border-bottom: 1px solid #ccc;
|
||||
|
||||
.scroll_item_top {
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
||||
image {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 200px;
|
||||
height: 60px;
|
||||
float: left;
|
||||
|
||||
view {
|
||||
height: 30px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
text {
|
||||
color: #F84221;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.scroll_item_bon {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
|
||||
.reduce {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
color: #BDC4CE;
|
||||
background: #EEEEEE;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 50px;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.plus {
|
||||
width: 30px;
|
||||
text-align: center;
|
||||
height: 30px;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
}
|
||||
|
||||
.on {
|
||||
background-color: #e3e3e3;
|
||||
color: #dedede;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
background: linear-gradient(84deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 24px 24px 24px 24px;
|
||||
line-height: 50px;
|
||||
color: white;
|
||||
}
|
||||
</style>
|
@ -253,8 +253,8 @@
|
||||
<view class="bnt cancelBnt" v-if="item.order_type===1" @click="location(item.order_id)">
|
||||
<text class="iconfont icon-weizhi"></text>查看位置
|
||||
</view>
|
||||
<view v-if="!item.receipt && item.status != -1" class='bnt cancelBnt'
|
||||
@click.stop='applyInvoice(item.order_id)'>申请开票</view>
|
||||
<!-- <view v-if="!item.receipt && item.status != -1" class='bnt cancelBnt'
|
||||
@click.stop='applyInvoice(item.order_id)'>申请开票</view> -->
|
||||
<block v-if="item.status == 0 || item.status == 9 || item.status == -1">
|
||||
<view class='bnt b-color' @click='goOrderDetails(item.order_id)'>查看详情</view>
|
||||
</block>
|
||||
|
@ -242,6 +242,7 @@
|
||||
currSku: '',
|
||||
newData: {},
|
||||
activeRouter: '',
|
||||
type_id:''
|
||||
};
|
||||
},
|
||||
computed: configMap({ hide_mer_status: 1, recommend_switch: 0, navigation: {} }, mapGetters(['isLogin',
|
||||
@ -348,7 +349,7 @@
|
||||
this.cartList.valid.forEach(el => {
|
||||
el.list.forEach(goods => {
|
||||
if (goods.check) {
|
||||
type_id.push(goods.spu.spu_id)
|
||||
type_id.push(goods.product_id)
|
||||
}
|
||||
})
|
||||
})
|
||||
@ -357,6 +358,8 @@
|
||||
title: '请选择产品'
|
||||
});
|
||||
} else {
|
||||
|
||||
|
||||
collectAll({
|
||||
type_id: type_id,
|
||||
type: 1
|
||||
@ -568,7 +571,7 @@
|
||||
})
|
||||
if (selectValue.length > 0) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/order_confirm/index?product_type=98&cartId=' + selectValue.join(',')
|
||||
url: `/pages/users/order_confirm/index?product_type=98&cartId=${selectValue.join(',')}&type_id=12`
|
||||
});
|
||||
} else {
|
||||
return this.$util.Tips({
|
||||
@ -578,12 +581,13 @@
|
||||
},
|
||||
// 购物车增加
|
||||
addCart: function(goods, index) {
|
||||
console.log(goods.cart_id);
|
||||
let that = this;
|
||||
changeCartNum(goods.cart_id, {
|
||||
cart_num: goods.cart_num + 1
|
||||
}).then(res => {
|
||||
goods.cart_num = Number(goods.cart_num) + 1
|
||||
that.cartTotalCount = Number(that.cartTotalCount) + 1;
|
||||
// that.cartTotalCount = Number(that.cartTotalCount) + 1;
|
||||
if (goods.hasOwnProperty('productAttr') && goods.cart_num > goods.productAttr.stock) {
|
||||
goods.cart_num = goods.productAttr.stock;
|
||||
goods.numAdd = true;
|
||||
@ -649,7 +653,7 @@
|
||||
goods.numSub = true;
|
||||
}
|
||||
goods.cart_num = Number(goods.cart_num) - 1
|
||||
this.cartTotalCount = Number(this.cartTotalCount) - 1;
|
||||
// this.cartTotalCount = Number(this.cartTotalCount) - 1;
|
||||
this.cartAllCheck('goodsCheck')
|
||||
}).catch(error => {
|
||||
this.$util.Tips({
|
||||
@ -671,6 +675,7 @@
|
||||
let that = this;
|
||||
getCartList({ product_type: 98 }).then(res => {
|
||||
// console.log("购物车", res)
|
||||
this.type_id=res.data.list[0].type_id
|
||||
res.data.list.forEach((item, index) => {
|
||||
item.allCheck = true
|
||||
item.list.forEach((goods, j) => {
|
||||
|
@ -2,11 +2,9 @@
|
||||
<view>
|
||||
<view class='productList' :style="viewColor">
|
||||
<view class='search acea-row row-between-wrapper' :class="'styleType'+store_street_theme">
|
||||
<!--#ifdef H5-->
|
||||
<view class="back" @click='backjJump()'>
|
||||
<view class="iconfont icon-xiangzuo"></view>
|
||||
</view>
|
||||
<!--#endif-->
|
||||
<view class='input acea-row row-between-wrapper'><text class='iconfont icon-sousuo'></text>
|
||||
<input placeholder='搜索店铺名称' placeholder-class='placeholder' confirm-type='search' name="search"
|
||||
:value='sotreParam.keyword' @confirm="searchSubmit"></input>
|
||||
@ -30,17 +28,20 @@
|
||||
<view class="line" :class="{'font-line':firstKey == item.key}">
|
||||
</view>
|
||||
</view>
|
||||
<view class="item" @click="bindRight">
|
||||
<!-- <view class="item" @click="bindRight">
|
||||
<view>筛选
|
||||
<!-- <text class="iconfont icon-shaixuan"></text> -->
|
||||
<text class="iconfont icon-shaixuan"></text>
|
||||
</view>
|
||||
<view class="line">
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
<!-- 店铺 -->
|
||||
<block>
|
||||
<view class="">
|
||||
66666
|
||||
</view>
|
||||
<view class="store-wrapper">
|
||||
<view class="store-item" v-for="(item,index) in storeList" :key="index">
|
||||
<view class="head">
|
||||
@ -288,16 +289,19 @@
|
||||
storeTypeArr: [], //店铺类型
|
||||
merList: [], //商户分类
|
||||
product_type: 0,
|
||||
show:false,
|
||||
image: '' //图片
|
||||
show: false,
|
||||
image: '', //图片,
|
||||
credit_buy: '', //支持先货后款
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
console.log(options);
|
||||
|
||||
|
||||
this.product_type = options.product_type ?? 0
|
||||
if (options.street_id != undefined) {
|
||||
this.sotreParam.street_id = options.street_id
|
||||
}
|
||||
this.credit_buy = options.credit_buy
|
||||
this.sotreParam.type_id = options.type_id
|
||||
this.sotreParam.type_id = options.type_id && options.type_id.split(',').toString() || ''
|
||||
this.sotreParam.category_id = options.cate_id && options.cate_id.split(',').toString() || ''
|
||||
@ -496,7 +500,8 @@
|
||||
order: this.sotreParam.order,
|
||||
category_id: this.sotreParam.category_id,
|
||||
type_id: this.sotreParam.type_id,
|
||||
street_id: this.sotreParam.street_id
|
||||
street_id: this.sotreParam.street_id,
|
||||
credit_buy: this.credit_buy
|
||||
}
|
||||
if (this.latitude) {
|
||||
rqData.location = this.latitude + ',' + this.longitude
|
||||
@ -620,13 +625,14 @@
|
||||
<style lang="scss" scoped>
|
||||
.productList .search {
|
||||
width: 100%;
|
||||
height: 86rpx;
|
||||
height: 140rpx;
|
||||
padding: 0 20rpx;
|
||||
box-sizing: border-box;
|
||||
padding-top: 70rpx;
|
||||
// box-sizing: border-box;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 9;
|
||||
z-index: 99;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
background-color: #fff;
|
||||
@ -731,7 +737,7 @@
|
||||
z-index: 9;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
top: 40rpx;
|
||||
width: 100%;
|
||||
margin-top: 86rpx;
|
||||
background-color: #fff;
|
||||
@ -1124,6 +1130,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.guanbi {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
|
@ -2,7 +2,7 @@
|
||||
<view :style="viewColor">
|
||||
<view class='payment-status'>
|
||||
<!--失败时: 用icon-iconfontguanbi fail替换icon-duihao2 bg-color-->
|
||||
<view class='iconfont icon-duihao2 icon' v-if ="order_pay_info.paid !=0"></view>
|
||||
<view class='iconfont icon-duihao2 icon' v-if="order_pay_info.paid !=0"></view>
|
||||
<view class='iconfont icon-iconfontguanbi icon' v-else></view>
|
||||
<!-- 失败时:订单支付失败 -->
|
||||
<view class='status'>{{order_pay_info.paid == 1 ?'支付成功':'订单未支付'}}</view>
|
||||
@ -14,26 +14,30 @@
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>支付方式</view>
|
||||
<view v-if="order_pay_info.pay_type==1 || order_pay_info.pay_type==2 || order_pay_info.pay_type==3" class='itemCom'>微信</view>
|
||||
<view v-else-if="order_pay_info.pay_type==4 || order_pay_info.pay_type==5" class='itemCom'>支付宝</view>
|
||||
<view v-if="order_pay_info.pay_type==1 || order_pay_info.pay_type==2 || order_pay_info.pay_type==3"
|
||||
class='itemCom'>微信</view>
|
||||
<view v-else-if="order_pay_info.pay_type==4 || order_pay_info.pay_type==5" class='itemCom'>支付宝
|
||||
</view>
|
||||
<view v-else class='itemCom'>余额</view>
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>支付金额</view>
|
||||
<view class='itemCom'>{{order_pay_info.pay_price}}</view>
|
||||
</view>
|
||||
<view v-if="order_pay_info.give_integral > 0 && order_pay_info.paid" class='item acea-row row-between-wrapper'>
|
||||
<view v-if="order_pay_info.give_integral > 0 && order_pay_info.paid"
|
||||
class='item acea-row row-between-wrapper'>
|
||||
<view>赠送积分</view>
|
||||
<view class='itemCom t-color'>{{order_pay_info.give_integral}}个</view>
|
||||
</view>
|
||||
<!--失败时加上这个 -->
|
||||
<view class='item acea-row row-between-wrapper' v-if="order_pay_info.paid==0 && order_pay_info.pay_type != 'offline' && msg != 'success'">
|
||||
<view class='item acea-row row-between-wrapper'
|
||||
v-if="order_pay_info.paid==0 && order_pay_info.pay_type != 'offline' && msg != 'success'">
|
||||
<view>失败原因</view>
|
||||
<view class='itemCom'>{{order_pay_info.pay_type==0 ? '余额不足':msg}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<!--失败时: 重新购买 -->
|
||||
<view @tap="goOrderDetails">
|
||||
<view @tap="goOrderDetails(order_pay_info.paid)">
|
||||
<button formType="submit" class='returnBnt gColor' hover-class='none'>查看订单</button>
|
||||
</view>
|
||||
<!-- <view @tap="goOrderDetails" v-if="order_pay_info.paid==0 && status==1">
|
||||
@ -42,8 +46,10 @@
|
||||
<!-- <view @tap="goOrderDetails" v-if="order_pay_info.paid==0 && status==2">
|
||||
<button class='returnBnt bg-color' hover-class='none'>重新支付</button>
|
||||
</view> -->
|
||||
<button @click="goPink(order_pay_info.activity_id)" class='returnBnt s-Color' formType="submit" hover-class='none' v-if="order_pay_info.activity_type == 4 && order_pay_info.paid">邀请好友参团</button>
|
||||
<button v-if="!order_pay_info.paid || order_pay_info.activity_type != 4" @click="goIndex" class='returnBnt s-Color' formType="submit" hover-class='none'>返回首页</button>
|
||||
<button @click="goPink(order_pay_info.activity_id)" class='returnBnt s-Color' formType="submit"
|
||||
hover-class='none' v-if="order_pay_info.activity_type == 4 && order_pay_info.paid">邀请好友参团</button>
|
||||
<button v-if="!order_pay_info.paid || order_pay_info.activity_type != 4" @click="goIndex"
|
||||
class='returnBnt s-Color' formType="submit" hover-class='none'>返回首页</button>
|
||||
<view class="coupon-wrapper" v-if="couponList.length>0 && order_pay_info.paid">
|
||||
<view class="hd">
|
||||
<view class="line"></view>
|
||||
@ -53,12 +59,16 @@
|
||||
<view class="coupon-box" :class="{on:isOpen}">
|
||||
<block v-for="(item,index) in couponList" :key="index">
|
||||
<view class="coupon-item flex">
|
||||
<view class="left-bg" :style="{ 'background-image': `url(${domain}/static/diy/couponBg${keyColor}.png)` }"><text>¥</text>{{item.coupon_price}}</view>
|
||||
<view class="left-bg"
|
||||
:style="{ 'background-image': `url(${domain}/static/diy/couponBg${keyColor}.png)` }">
|
||||
<text>¥</text>{{item.coupon_price}}
|
||||
</view>
|
||||
<view class="info">
|
||||
<view class="title">{{item.title}}</view>
|
||||
<view class="des">满{{item.use_min_price}}元可用</view>
|
||||
<block v-if="item.coupon_type == 1">
|
||||
<view class="des">有效期:{{ item.use_start_time |timeYMD }}-{{ item.use_end_time |timeYMD}}</view>
|
||||
<view class="des">
|
||||
有效期:{{ item.use_start_time |timeYMD }}-{{ item.use_end_time |timeYMD}}</view>
|
||||
</block>
|
||||
<block v-if="item.coupon_type == 0">
|
||||
<view class="des">领取后{{ item.coupon_time}}天内可用</view>
|
||||
@ -88,19 +98,27 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import {getPayOrder} from '@/api/order.js';
|
||||
import {openOrderSubscribe} from '@/utils/SubscribeMessage.js';
|
||||
import {mapGetters} from "vuex";
|
||||
import {
|
||||
getPayOrder
|
||||
} from '@/api/order.js';
|
||||
import {
|
||||
openOrderSubscribe
|
||||
} from '@/utils/SubscribeMessage.js';
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
import authorize from '@/components/Authorize';
|
||||
import { HTTP_REQUEST_URL } from '@/config/app';
|
||||
import {
|
||||
HTTP_REQUEST_URL
|
||||
} from '@/config/app';
|
||||
export default {
|
||||
components: {
|
||||
authorize,
|
||||
},
|
||||
filters: {
|
||||
timeYMD: function (value) {
|
||||
if(value){
|
||||
var newDate=/\d{4}-\d{1,2}-\d{1,2}/g.exec(value)
|
||||
timeYMD: function(value) {
|
||||
if (value) {
|
||||
var newDate = /\d{4}-\d{1,2}-\d{1,2}/g.exec(value)
|
||||
return newDate[0]
|
||||
}
|
||||
}
|
||||
@ -115,14 +133,16 @@
|
||||
isShowAuth: false, //是否隐藏授权
|
||||
status: 0,
|
||||
msg: '',
|
||||
couponList:[], //优惠券列表
|
||||
isOpen:false ,//展开
|
||||
couponList: [], //优惠券列表
|
||||
isOpen: false, //展开
|
||||
moneyBg: '/static/images/couponBg',
|
||||
text: '展开更多',
|
||||
timer: null
|
||||
timer: null,
|
||||
product_type: '',
|
||||
|
||||
};
|
||||
},
|
||||
computed: mapGetters(['isLogin','viewColor','keyColor']),
|
||||
computed: mapGetters(['isLogin', 'viewColor', 'keyColor']),
|
||||
onLoad: function(options) {
|
||||
if (!options.order_id) return this.$util.Tips({
|
||||
title: '缺少参数无法查看订单支付状态'
|
||||
@ -134,6 +154,7 @@
|
||||
this.order_type = options.order_type;
|
||||
this.status = options.status || 0;
|
||||
this.msg = options.msg || '';
|
||||
this.product_type = options.product_type
|
||||
if (this.isLogin) {
|
||||
this.refreshData();
|
||||
} else {
|
||||
@ -142,13 +163,12 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
refreshData(){
|
||||
this.timer = setInterval(()=>{
|
||||
refreshData() {
|
||||
|
||||
this.getOrderPayInfo();
|
||||
},1000)
|
||||
},
|
||||
// 优惠券展开
|
||||
bindMore(){
|
||||
bindMore() {
|
||||
this.isOpen = !this.isOpen
|
||||
this.text = this.text == '展开更多' ? '收起' : '展开更多';
|
||||
},
|
||||
@ -173,7 +193,7 @@
|
||||
uni.setNavigationBarTitle({
|
||||
title: res.data.paid == 1 ? '支付成功' : '支付失败'
|
||||
});
|
||||
if(res.data.paid == 1){
|
||||
if (res.data.paid == 1) {
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
}
|
||||
@ -199,16 +219,30 @@
|
||||
*
|
||||
* 去订单详情页面
|
||||
*/
|
||||
goOrderDetails: function(e) {
|
||||
goOrderDetails: function(val) {
|
||||
let that = this;
|
||||
if (this.order_pay_info.paid == 0) {
|
||||
uni.redirectTo({
|
||||
url: '/pages/users/order_list/index'
|
||||
if (this.product_type == 98) {
|
||||
if(val==1){
|
||||
uni.navigateTo({
|
||||
url: `/pages/users/order_list/indexCopy?status=2&product_type=${this.product_type}`
|
||||
})
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url: `/pages/users/order_list/indexCopy?status=0&product_type=${this.product_type}`
|
||||
})
|
||||
}
|
||||
|
||||
} else {
|
||||
uni.redirectTo({
|
||||
url: '/pages/users/order_list/index?status=1'
|
||||
if(val==1){
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/order_list/index?status=2&product_type=0'
|
||||
})
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/order_list/index?status=0&product_type=0'
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -231,6 +265,7 @@
|
||||
border-radius: 10rpx;
|
||||
padding: 1rpx 0 28rpx 0;
|
||||
}
|
||||
|
||||
.payment-status .icon {
|
||||
font-size: 70rpx;
|
||||
width: 140rpx;
|
||||
@ -242,19 +277,23 @@
|
||||
border: 6rpx solid #f5f5f5;
|
||||
margin: -76rpx auto 0 auto;
|
||||
background-color: #999;
|
||||
&.icon-duihao2{
|
||||
|
||||
&.icon-duihao2 {
|
||||
background-color: var(--view-theme);
|
||||
}
|
||||
}
|
||||
|
||||
.payment-status .icon.fail {
|
||||
text-shadow: 0px 4px 0px #7a7a7a;
|
||||
}
|
||||
|
||||
.payment-status .status {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
margin: 25rpx 0 37rpx 0;
|
||||
}
|
||||
|
||||
.payment-status .wrapper {
|
||||
border: 1px solid #eee;
|
||||
margin: 0 30rpx 47rpx 30rpx;
|
||||
@ -262,16 +301,20 @@
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.payment-status .wrapper .item {
|
||||
font-size: 28rpx;
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
.payment-status .wrapper .item~.item {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.payment-status .wrapper .item .itemCom {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.payment-status .returnBnt {
|
||||
width: 630rpx;
|
||||
height: 86rpx;
|
||||
@ -281,46 +324,56 @@
|
||||
text-align: center;
|
||||
line-height: 86rpx;
|
||||
margin: 0 auto 20rpx auto;
|
||||
&.gColor{
|
||||
|
||||
&.gColor {
|
||||
background-color: var(--view-theme);
|
||||
}
|
||||
&.s-Color{
|
||||
|
||||
&.s-Color {
|
||||
color: var(--view-theme);
|
||||
border: 1px solid var(--view-theme);
|
||||
}
|
||||
}
|
||||
|
||||
.t-color {
|
||||
color: var(--view-theme)!important;
|
||||
color: var(--view-theme) !important;
|
||||
}
|
||||
.coupon-wrapper{
|
||||
.hd{
|
||||
|
||||
.coupon-wrapper {
|
||||
.hd {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 30rpx 0;
|
||||
color: #999999;
|
||||
font-size: 24rpx;
|
||||
.line{
|
||||
|
||||
.line {
|
||||
width: 70rpx;
|
||||
height: 1px;
|
||||
background: #DCDCDC;
|
||||
}
|
||||
.txt{
|
||||
|
||||
.txt {
|
||||
margin: 0 20rpx;
|
||||
}
|
||||
}
|
||||
.coupon-box{
|
||||
|
||||
.coupon-box {
|
||||
height: 356rpx;
|
||||
padding: 0 20rpx;
|
||||
overflow: hidden;
|
||||
&.on{
|
||||
|
||||
&.on {
|
||||
height: auto;
|
||||
}
|
||||
.coupon-item{
|
||||
|
||||
.coupon-item {
|
||||
width: 100%;
|
||||
margin-bottom: 20rpx;
|
||||
box-shadow:0px 2px 10px 0px rgba(0, 0, 0, 0.06);
|
||||
.left-bg{
|
||||
box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.06);
|
||||
|
||||
.left-bg {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@ -328,36 +381,42 @@
|
||||
height: 160rpx;
|
||||
color: #fff;
|
||||
font-size: 64rpx;
|
||||
text{
|
||||
|
||||
text {
|
||||
margin-top: 26rpx;
|
||||
font-size: 36rpx;
|
||||
}
|
||||
}
|
||||
.info{
|
||||
|
||||
.info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-left: 20rpx;
|
||||
padding: 20rpx 0;
|
||||
.title{
|
||||
|
||||
.title {
|
||||
color: #282828;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.des{
|
||||
|
||||
.des {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.more{
|
||||
|
||||
.more {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding-top: 24rpx;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
.iconfont{
|
||||
|
||||
.iconfont {
|
||||
margin-top: 6rpx;
|
||||
margin-left: 10rpx;
|
||||
font-size: 20rpx;
|
||||
|
@ -2,7 +2,8 @@
|
||||
<view :style="viewColor">
|
||||
<form @submit="formSubmit" report-submit='true'>
|
||||
<view class="release_content">
|
||||
<view v-if="community_app_switch.length == 1" class="release_tab acea-row">
|
||||
<!-- v-if="community_app_switch.length == 1" -->
|
||||
<view class="release_tab acea-row">
|
||||
<view class="tab_item" v-for="(item, index) in tabList" :key="item.value" :class="{on:tabActive == item.value}" @click="changeTab(item)">
|
||||
<text class="iconfont" :class="item.icon"></text>{{item.name}}
|
||||
</view>
|
||||
@ -467,6 +468,7 @@
|
||||
});
|
||||
}
|
||||
}else{
|
||||
|
||||
if (value.image.length == 0) return that.$util.Tips({
|
||||
title: '请添加话题图片'
|
||||
});
|
||||
|
@ -35,7 +35,7 @@
|
||||
</view>
|
||||
<text class="video-text">点击可预览视频</text>
|
||||
|
||||
<view class="close_btn" @click="formData.video_link = ''"><text
|
||||
<view class="close_btn" @click="delVideo"><text
|
||||
class="iconfont icon-guanbi4"></text></view>
|
||||
</view>
|
||||
<view v-else class="pictrue acea-row row-center-wrapper row-column add" @click="uploadVideo">
|
||||
@ -253,6 +253,7 @@
|
||||
this.productList=[]
|
||||
this.topicName={}
|
||||
},
|
||||
|
||||
methods: {
|
||||
onLoadFun() {
|
||||
this.isShowAuth = false;
|
||||
@ -442,6 +443,10 @@
|
||||
let that = this
|
||||
that.formData.image.splice(index, 1);
|
||||
},
|
||||
/*删除视频*/
|
||||
delVideo(){
|
||||
this.formData.video_link='';
|
||||
},
|
||||
/*添加宝贝*/
|
||||
addProduct() {
|
||||
this.$refs.associated.open();
|
||||
@ -530,7 +535,7 @@
|
||||
|
||||
setTimeout(function() {
|
||||
if (that.tabActive == 2) {
|
||||
uni.redirectTo({
|
||||
uni.navigateTo({
|
||||
//#ifdef APP
|
||||
url: '/pages/short_video/appSwiper/index?id=' + res.data.community_id + '&user=1&uid=' +
|
||||
that.uid
|
||||
@ -541,7 +546,7 @@
|
||||
//#endif
|
||||
});
|
||||
} else {
|
||||
uni.redirectTo({
|
||||
uni.navigateTo({
|
||||
url: '/pages/plantGrass/plant_detail/index?id=' + res.data.community_id + '&type=' + that
|
||||
.tabActive
|
||||
})
|
||||
@ -574,7 +579,7 @@
|
||||
setStorage('addPlant', '');
|
||||
setTimeout(function() {
|
||||
if (that.tabActive == 2) {
|
||||
uni.redirectTo({
|
||||
uni.navigateTo({
|
||||
//#ifdef APP
|
||||
url: '/pages/short_video/appSwiper/index?id=' + res.data.community_id + '&user=1&uid=' +
|
||||
that.uid
|
||||
@ -585,7 +590,7 @@
|
||||
//#endif
|
||||
});
|
||||
} else {
|
||||
uni.redirectTo({
|
||||
uni.navigateTo({
|
||||
url: '/pages/plantGrass/plant_detail/index?id=' + res.data.community_id + '&type=' + that
|
||||
.tabActive
|
||||
})
|
||||
@ -720,7 +725,6 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 0;
|
||||
|
||||
.iconfont {
|
||||
color: #ffffff;
|
||||
|
@ -39,11 +39,6 @@
|
||||
</view>
|
||||
|
||||
<view v-if="item.more_thanFlag">
|
||||
<view class="multiSpecifica_container_item">
|
||||
<view class="multiSpecifica_container_item_label flex-start">库存</view>
|
||||
<view class="multiSpecifica_container_item_value"><input v-model="item.stock" type="number" placeholder="请填写商品库存" /></view>
|
||||
</view>
|
||||
|
||||
<view class="multiSpecifica_container_item">
|
||||
<view class="multiSpecifica_container_item_label flex-start">商品编号</view>
|
||||
<view class="multiSpecifica_container_item_value"><input v-model="item.bar_code" type="text" placeholder="请填写商品编号" /></view>
|
||||
@ -112,12 +107,6 @@
|
||||
<view class="changePopup_container_content_item_label">原价</view>
|
||||
<view class="changePopup_container_content_item_value"><input v-model="batchData.ot_price" type="number" placeholder="0.00" /></view>
|
||||
</view>
|
||||
|
||||
<view class="changePopup_container_content_item">
|
||||
<view class="changePopup_container_content_item_label">库存</view>
|
||||
<view class="changePopup_container_content_item_value"><input v-model="batchData.stock" type="number" placeholder="0.00" /></view>
|
||||
</view>
|
||||
|
||||
<view class="popup_moreThan" @click="popupOpenModel = !popupOpenModel" v-if="!popupOpenModel">
|
||||
<text>展开</text>
|
||||
<text class="iconfont"></text>
|
||||
@ -182,7 +171,6 @@ export default {
|
||||
price: '', //售价
|
||||
cost: '', // 成本价
|
||||
ot_price: '', // 原价
|
||||
stock: '', // 库存
|
||||
bar_code: '', // 商品编号
|
||||
weight: '', // 重量
|
||||
volume: '', // 体积
|
||||
@ -363,7 +351,6 @@ export default {
|
||||
price: 0,
|
||||
cost: 0,
|
||||
ot_price: 0,
|
||||
stock: 0,
|
||||
bar_code: '',
|
||||
weight: 0,
|
||||
volume: 0,
|
||||
@ -397,7 +384,6 @@ export default {
|
||||
price: 0,
|
||||
cost: 0,
|
||||
ot_price: 0,
|
||||
stock: 0,
|
||||
bar_code: '',
|
||||
weight: 0,
|
||||
volume: 0,
|
||||
|
@ -50,10 +50,39 @@
|
||||
<view class="video_list">
|
||||
<view class="video_list_item photo" v-if="addGoodsSecoundData.video_link">
|
||||
<view class="jiao" @click="deleteImage()">
|
||||
<!-- video标签在app端层级过高 -->
|
||||
<!--#ifndef APP-PLUS-->
|
||||
<video :src="addGoodsSecoundData.video_link"></video>
|
||||
<!--#endif-->
|
||||
<!--#ifdef APP-PLUS-->
|
||||
<img src="https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/3/video_bg.png" style=" width:150rpx" ></img>
|
||||
<!--#endif-->
|
||||
<image src="../static/images/close.png" mode="widthFix"></image>
|
||||
</view>
|
||||
|
||||
<!--#ifndef APP-PLUS-->
|
||||
<view style="position: absolute;">
|
||||
<view class="videoHover" @click="videoshow">
|
||||
</view>
|
||||
<text class="video-text">点击可预览视频</text>
|
||||
</view>
|
||||
<!--#endif-->
|
||||
|
||||
<!--#ifdef APP-PLUS-->
|
||||
<view class='preview_video'>
|
||||
<view class="videoHover" @click="videoshow">
|
||||
</view>
|
||||
<text class="video-text">点击可预览视频</text>
|
||||
</view>
|
||||
<!--#endif-->
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<view class="photo" @click="uploadVideo" v-else>
|
||||
<view>
|
||||
<image src="../static/images/creamer.png" mode="widthFix"></image>
|
||||
@ -63,7 +92,17 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="showVideo" class="video-count">
|
||||
<!--#ifndef APP-PLUS-->
|
||||
<video id="myVideo" class="videoLink" autoplay loop muted :src="addGoodsSecoundData.video_link"></video>
|
||||
<!--#endif-->
|
||||
<!--#ifdef APP-PLUS-->
|
||||
|
||||
<video id="myVideo" class="videoLink" autoplay loop
|
||||
:src='addGoodsSecoundData.video_link && (addGoodsSecoundData.video_link.substring(0,4) == "http" || addGoodsSecoundData.video_link.substring(0,5) == "https") ?addGoodsSecoundData.video_link : "http:" + addGoodsSecoundData.video_link'></video>
|
||||
<!--#endif-->
|
||||
</view>
|
||||
<view class='mask' catchtouchmove="true" :hidden='showVideo==false' @tap="showVideo=false"></view>
|
||||
<view class="handle dobuButton">
|
||||
<view class="handle_button margin_right" @click="lastStep">上一步</view>
|
||||
<view class="handle_button" @click="submitCreatedGoods">提交</view>
|
||||
@ -109,6 +148,7 @@
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showVideo:false,
|
||||
disModel: false,
|
||||
upload_max: 10,
|
||||
uploadUrl: `${HTTP_REQUEST_URL}/api/upload/video`,
|
||||
@ -144,6 +184,16 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
videoshow() {
|
||||
this.showVideo = true
|
||||
this.videoContext = uni.createVideoContext('myVideo', this);
|
||||
this.$nextTick(() => {
|
||||
this.videoContext.play();
|
||||
})
|
||||
// this.video_link = this.formData.video_link;
|
||||
// this.videoContext.requestFullScreen({ direction: 90 });
|
||||
// this.videoContext.play(); this.videoplay = true;
|
||||
},
|
||||
initData() {
|
||||
let editGoodsDetils = {};
|
||||
if (getStorage('goodsDis')) {
|
||||
@ -270,6 +320,8 @@
|
||||
uni.chooseVideo({
|
||||
sourceType: ['camera', 'album'],
|
||||
success: res => {
|
||||
console.log(res)
|
||||
|
||||
if (Math.ceil(res.size / 1024) < this.upload_max * 1024) {
|
||||
uni.uploadFile({
|
||||
url: this.uploadUrl, //仅为示例,非真实的接口地址
|
||||
@ -301,9 +353,11 @@
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
uni.showModal({
|
||||
content: JSON.stringify(err)
|
||||
});
|
||||
// 取消上传也会出现弹框
|
||||
// uni.showModal({
|
||||
// content: JSON.stringify(err)
|
||||
// });
|
||||
console.log(err)
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -357,7 +411,32 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.videoHover {
|
||||
width: 180rpx;
|
||||
height: 180rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 10;
|
||||
|
||||
view {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
background: #000000;
|
||||
border-radius: 50rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.iconfont {
|
||||
color: #ffffff;
|
||||
font-size: 21rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.photo {
|
||||
border: 1px solid #dddddd;
|
||||
opacity: 1;
|
||||
@ -400,7 +479,10 @@
|
||||
height: 150rpx;
|
||||
}
|
||||
}
|
||||
.preview_video{
|
||||
position: absolute;
|
||||
|
||||
}
|
||||
.container_input {
|
||||
background: #fff;
|
||||
padding: 0 20rpx;
|
||||
@ -519,7 +601,24 @@
|
||||
.marginTop_none {
|
||||
margin-top: 0;
|
||||
}
|
||||
.video-count {
|
||||
position: fixed;
|
||||
width: 600rpx;
|
||||
height: 500rpx;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -300rpx;
|
||||
margin-top: -250rpx;
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.videoLink {
|
||||
width: 600rpx;
|
||||
height: 500rpx;
|
||||
}
|
||||
}
|
||||
// .writeBg {
|
||||
// background: #fff;
|
||||
// }
|
||||
|
@ -26,7 +26,6 @@
|
||||
price: '', // 售价
|
||||
cost: '', // 成本价
|
||||
ot_price: '', // 原价
|
||||
stock: '', // 库存
|
||||
bar_code: '', // 商品编号
|
||||
weight: '', // 重量
|
||||
volume: '', // 体积
|
||||
@ -56,13 +55,6 @@
|
||||
type: 'digit',
|
||||
holder: '请填写原价',
|
||||
model: 'ot_price'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
label: '库存',
|
||||
type: 'number',
|
||||
holder: '请填写库存',
|
||||
model: 'stock'
|
||||
}
|
||||
],
|
||||
moreThanList: [
|
||||
|
@ -19,8 +19,8 @@
|
||||
<view class="avatar_box">
|
||||
<view class="text flex_a_c"><i class="iconfont icon-xinghao"></i>上传店铺头像</view>
|
||||
<block v-if="images[1].img">
|
||||
<u--image :showLoading="true" :src="images[1].img" width="210.53rpx" height="210.53rpx" radius="4px"
|
||||
@click="delImg(1)" mode="aspectFill"></u--image>
|
||||
<u--image :showLoading="true" :src="images[1].img" width="210.53rpx" height="210.53rpx"
|
||||
radius="4px" @click="delImg(1)" mode="aspectFill"></u--image>
|
||||
</block>
|
||||
<view v-else class="avatar_img" @click="seleckImage(1)">
|
||||
<view class="iconfont icon-tupian1"></view>
|
||||
@ -30,8 +30,8 @@
|
||||
<view class="zizhi_box">
|
||||
<view class="text">店铺资质</view>
|
||||
<block v-if="images[3].img">
|
||||
<u--image :showLoading="true" :src="images[3].img" width="382.46rpx" height="210.53rpx" radius="4px"
|
||||
@click="delImg(3)"></u--image>
|
||||
<u--image :showLoading="true" :src="images[3].img" width="382.46rpx" height="210.53rpx"
|
||||
radius="4px" @click="delImg(3)"></u--image>
|
||||
</block>
|
||||
<view v-else class="zizhi_img" @click="seleckImage(3)">
|
||||
<view class="iconfont icon-tupian1"></view>
|
||||
@ -54,7 +54,7 @@
|
||||
<view class="street_bg">
|
||||
<view class="text flex_a_c"> <i class="iconfont icon-xinghao"></i> 店铺街背景图</view>
|
||||
<block v-if="images[2].img">
|
||||
<u--image :showLoading="true" :src="images[2].img" width="388px" height="210.53rpx" radius="4px"
|
||||
<u--image :showLoading="true" :src="images[2].img" width="360px" height="210.53rpx" radius="4px"
|
||||
@click="delImg(2)"></u--image>
|
||||
</block>
|
||||
<view v-else class="street_img flex_a_c" @click="seleckImage(2)">
|
||||
@ -83,7 +83,7 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<block >
|
||||
<block>
|
||||
<view class="item_cell flex_a_c">
|
||||
<view class="sub_title flex_a_c"><i class="iconfont icon-xinghao"></i>详细地址:</view>
|
||||
<input class="com_input" type="text" v-model="mer_address" placeholder="输入商户地址">
|
||||
@ -107,9 +107,11 @@
|
||||
|
||||
<view class="sub_title flex_a_c"><i class="iconfont icon-xinghao"></i>店铺营业时间:</view>
|
||||
<view class="bus_time flex_a_c">
|
||||
<view class="select" @click="beginTimeShow = true">{{ mer_take_time[0] ? mer_take_time[0] : '选择开始时间' }}</view>
|
||||
<view class="select" @click="beginTimeShow = true">
|
||||
{{ mer_take_time[0] ? mer_take_time[0] : '选择开始时间' }}</view>
|
||||
至
|
||||
<view class="select" @click="overTimeShow = true">{{ mer_take_time[1] ? mer_take_time[1] : '选择结束时间' }}</view>
|
||||
<view class="select" @click="overTimeShow = true">
|
||||
{{ mer_take_time[1] ? mer_take_time[1] : '选择结束时间' }}</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
@ -126,6 +128,20 @@
|
||||
<view class="sub_title flex_a_c"><i class="iconfont icon-xinghao"></i>客服电话:</view>
|
||||
<input class="com_input" type="number" v-model="servicePhone" placeholder="输入客服电话">
|
||||
</view>
|
||||
<view class="item_cell flex_a_c">
|
||||
<view class="sub_title flex_a_c"><i class="iconfont icon-xinghao" v-if="credit_buy"></i>开启先货后款:</view>
|
||||
<u-switch v-model="credit_buy" @change="change"></u-switch>
|
||||
</view>
|
||||
<view class="item_cell flex_a_c" v-if="credit_buy">
|
||||
<view class="sub_title flex_a_c"><i class="iconfont icon-xinghao"></i>先货后款结算周期:</view>
|
||||
<input type="number" v-model="settle_cycle" placeholder="请输入 /周期单位为:天">
|
||||
</view>
|
||||
<view class="remarks" v-if="credit_buy">*周期结算时间范围为:15~90 周期单位为:天</view>
|
||||
<view class="item_cell flex_a_c" v-if="credit_buy">
|
||||
<view class="sub_title flex_a_c"><i class="iconfont icon-xinghao"></i>先货后款结算利率:</view>
|
||||
<input type="number" maxlength="5" v-model="interest_rate" placeholder="请输入 /利率单位为: %">
|
||||
</view>
|
||||
<view class="remarks">*利率结算范围为:0.01 ~ 0.1 利率单位为:%</view>
|
||||
<!-- <view class="item_cell">
|
||||
<view class="if_btn flex_a_c_j_sb">
|
||||
<text class="sub_title">是否开启商户:</text>
|
||||
@ -139,17 +155,26 @@
|
||||
<button class="submit_btn l_center" @click="postMerchantUpdata">提交审核</button>
|
||||
|
||||
<u-datetime-picker :show="beginTimeShow" v-model="mer_take_time[0]" mode="time" @close="beginTimeShow = false"
|
||||
:closeOnClickOverlay="true" @cancel="beginTimeShow = false" @confirm="beginTimeShow = false"></u-datetime-picker>
|
||||
:closeOnClickOverlay="true" @cancel="beginTimeShow = false"
|
||||
@confirm="beginTimeShow = false"></u-datetime-picker>
|
||||
<u-datetime-picker :show="overTimeShow" v-model="mer_take_time[1]" mode="time" @close="overTimeShow = false"
|
||||
:closeOnClickOverlay="true" @cancel="overTimeShow = false" @confirm="overTimeShow = false"></u-datetime-picker>
|
||||
:closeOnClickOverlay="true" @cancel="overTimeShow = false"
|
||||
@confirm="overTimeShow = false"></u-datetime-picker>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Toast } from '@/libs/uniApi.js'
|
||||
import { merchantUpdateAPI, merchantInfoAPI } from "@/api/product"
|
||||
import { uploads } from '@/api/upload.js'
|
||||
import {
|
||||
Toast
|
||||
} from '@/libs/uniApi.js'
|
||||
import {
|
||||
merchantUpdateAPI,
|
||||
merchantInfoAPI
|
||||
} from "@/api/product"
|
||||
import {
|
||||
uploads
|
||||
} from '@/api/upload.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -170,7 +195,15 @@
|
||||
text: '闪光强烈'
|
||||
}
|
||||
],
|
||||
images: [{ img: '' }, { img: '' }, { img: '' }, { img: '' }],
|
||||
images: [{
|
||||
img: ''
|
||||
}, {
|
||||
img: ''
|
||||
}, {
|
||||
img: ''
|
||||
}, {
|
||||
img: ''
|
||||
}],
|
||||
storeBg: '',
|
||||
check: {
|
||||
ziti: '1',
|
||||
@ -224,7 +257,10 @@
|
||||
overTimeShow: false,
|
||||
mer_address: '',
|
||||
id: '',
|
||||
mer_certificate: ''
|
||||
mer_certificate: '',
|
||||
credit_buy: false, //开启信用购
|
||||
interest_rate: '', //利率
|
||||
settle_cycle: '', //周期
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
@ -234,7 +270,9 @@
|
||||
onShow() {},
|
||||
methods: {
|
||||
getMerchantInfo(id) {
|
||||
merchantInfoAPI({ id }).then(res => {
|
||||
merchantInfoAPI({
|
||||
id
|
||||
}).then(res => {
|
||||
console.log(res);
|
||||
this.images[0].img = res.data.mer_banner
|
||||
this.images[1].img = res.data.mer_avatar
|
||||
@ -258,6 +296,18 @@
|
||||
this.servicePhone = res.data.service_phone
|
||||
this.mer_address = res.data.mer_address
|
||||
this.merState = res.data.mer_state === 1 ? true : false
|
||||
this.credit_buy = res.data.credit_buy === 1 ? true : false
|
||||
if (res.data.settle_cycle == 0) {
|
||||
this.settle_cycle = ''
|
||||
} else {
|
||||
this.settle_cycle = res.data.settle_cycle
|
||||
}
|
||||
if (res.data.interest_rate == 0) {
|
||||
this.interest_rate = ''
|
||||
} else {
|
||||
this.interest_rate = res.data.interest_rate
|
||||
}
|
||||
|
||||
// console.log('res', res.data);
|
||||
}).catch(err => {
|
||||
// console.log('err', err);
|
||||
@ -266,6 +316,11 @@
|
||||
checkboxChange(val) {
|
||||
this.delivery_way = val.detail.value
|
||||
},
|
||||
//开启信用购
|
||||
change(e) {
|
||||
this.credit_buy = e
|
||||
console.log(e);
|
||||
},
|
||||
// 上传店铺背景
|
||||
sel(item, i) {
|
||||
if (item.isCheck == false) {
|
||||
@ -287,6 +342,16 @@
|
||||
})
|
||||
},
|
||||
submitData() {
|
||||
if (this.settle_cycle < 15) {
|
||||
this.settle_cycle = 15
|
||||
} else if (this.settle_cycle > 90) {
|
||||
this.settle_cycle = 90
|
||||
}
|
||||
if (this.interest_rate < 0.01) {
|
||||
this.interest_rate = 0.01
|
||||
} else if (this.interest_rate > 0.1) {
|
||||
this.interest_rate = 0.1
|
||||
}
|
||||
let data = {
|
||||
mer_banner: this.images[0].img,
|
||||
mer_avatar: this.images[1].img,
|
||||
@ -308,7 +373,10 @@
|
||||
mer_state: this.merState ? '1' : '0',
|
||||
type: '2',
|
||||
uploadedqualifications: '',
|
||||
id: this.id
|
||||
id: this.id,
|
||||
credit_buy: this.credit_buy,
|
||||
settle_cycle: this.settle_cycle,
|
||||
interest_rate: this.interest_rate
|
||||
}
|
||||
merchantUpdateAPI(data).then(res => {
|
||||
Toast(res.message)
|
||||
@ -325,12 +393,14 @@
|
||||
})
|
||||
},
|
||||
selfLocation() {
|
||||
|
||||
uni.getLocation({
|
||||
type: 'gcj02',
|
||||
type: 'wgs84',
|
||||
success: (res) => {
|
||||
// console.log(res);
|
||||
this.latitude = res.latitude.toString();
|
||||
this.longitude = res.longitude.toString();
|
||||
this.longLati = `${res.longitude},${res.longitude}`
|
||||
this.longLati = `${res.latitude},${res.longitude}`
|
||||
},
|
||||
fail: (err) => {
|
||||
Toast(err)
|
||||
@ -345,7 +415,9 @@
|
||||
sourceType: ['album', 'camera'],
|
||||
success: function(res) {
|
||||
console.log(res);
|
||||
uni.showLoading({ title: '上传中...' })
|
||||
uni.showLoading({
|
||||
title: '上传中...'
|
||||
})
|
||||
uploads(res.tempFilePaths[0], 'img').then(res => {
|
||||
that.images[i].img = res
|
||||
uni.hideLoading()
|
||||
@ -555,6 +627,12 @@
|
||||
color: #CCCCCC;
|
||||
}
|
||||
|
||||
.remarks {
|
||||
margin-left: 20px;
|
||||
font-size: 24.56rpx;
|
||||
color: #CCCCCC;
|
||||
}
|
||||
|
||||
.long_lat {
|
||||
margin: 31.58rpx 0;
|
||||
width: 100%;
|
||||
|
@ -3,49 +3,69 @@
|
||||
<view class="order-index" ref="container">
|
||||
<view class="header">
|
||||
<div class="header_count">
|
||||
<swiper indicator-dots="true" :circular="circular" indicator-color="#E4E4E4" indicator-active-color="#E93323"
|
||||
previous-margin="0" next-margin="0" :current="swiperCur" @change="swiperChange">
|
||||
<swiper indicator-dots="true" :circular="circular" indicator-color="#E4E4E4"
|
||||
indicator-active-color="#E93323" previous-margin="0" next-margin="0" :current="swiperCur"
|
||||
@change="swiperChange">
|
||||
<block>
|
||||
<swiper-item :class="{ active: 0 == swiperCur }">
|
||||
<view class="slide-navigator">
|
||||
<view class="item" hover-class='none' @click="jumpAddGoods">
|
||||
<image mode='widthFix' class="image" src="../static/images/product_add.png"></image>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_add.png">
|
||||
</image>
|
||||
<text class="text">添加商品</text>
|
||||
</view>
|
||||
<navigator class="item" :url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=1`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=1`"
|
||||
hover-class='none'>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_sales.png"></image>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_sales.png">
|
||||
</image>
|
||||
<text class="text">在售商品</text>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=3`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=3`"
|
||||
hover-class='none'>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_out.png"></image>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_out.png">
|
||||
</image>
|
||||
<text class="text">售罄商品</text>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=5`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=5`"
|
||||
hover-class='none'>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_recycle.png"></image>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_recycle.png">
|
||||
</image>
|
||||
<text class="text">回收站</text>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/product/storeClassification/index?mer_id=${mer_id}`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/product/storeClassification/index?mer_id=${mer_id}`"
|
||||
hover-class='none'>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_cate.png"></image>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_cate.png">
|
||||
</image>
|
||||
<text class="text">店铺分类</text>
|
||||
</navigator>
|
||||
</view>
|
||||
</swiper-item>
|
||||
<swiper-item :class="{ active: 1 == swiperCur }">
|
||||
<view class="slide-navigator">
|
||||
<navigator class="item" :url="`/pages/product/addGoods/freightTemplate?mer_id=${mer_id}`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/product/addGoods/freightTemplate?mer_id=${mer_id}`"
|
||||
hover-class='none'>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_freight.png"></image>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_freight.png">
|
||||
</image>
|
||||
<text class="text">运费模板</text>
|
||||
</navigator>
|
||||
<navigator class="item" :url="`/pages/product/addGoods/mulSpecification?mer_id=${mer_id}`"
|
||||
<navigator class="item"
|
||||
:url="`/pages/product/addGoods/mulSpecification?mer_id=${mer_id}`"
|
||||
hover-class='none'>
|
||||
<image mode='widthFix' class="image" src="../static/images/product_specification.png"></image>
|
||||
<image mode='widthFix' class="image"
|
||||
src="../static/images/product_specification.png"></image>
|
||||
<text class="text">规格模板</text>
|
||||
</navigator>
|
||||
<navigator class="item"
|
||||
:url="`/pages/users/online_warehousing/index?mer_id=${mer_id}&product_id=${data.product_id}&unique=${data.unique}`"
|
||||
hover-class='none'>
|
||||
<image mode='widthFix' class="image" src="@/static/images/daoru.png"></image>
|
||||
<text class="text">商品导入</text>
|
||||
</navigator>
|
||||
</view>
|
||||
</swiper-item>
|
||||
</block>
|
||||
@ -75,28 +95,67 @@
|
||||
<text class='ot_price'>¥{{item.ot_price}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view style="position: absolute; top: 10px; right: 10px;">
|
||||
<!-- 插件无需手动引入,直接使用即可 -->
|
||||
<!-- 里面···可以改为任意东西,图片也可以 -->
|
||||
<!-- 参数$event不可修改,否则取不到点击事件详情 -->
|
||||
<rudon-rowMenuDotDotDot :localdata="options"
|
||||
@change="menuAction($event, item.attrValue)">
|
||||
. . .
|
||||
</rudon-rowMenuDotDotDot>
|
||||
</view>
|
||||
</view>
|
||||
<view class="operation acea-row row-between-wrapper">
|
||||
<view></view>
|
||||
<view class="acea-row row-middle">
|
||||
<view v-if="item.is_show == 1 && item.status == 1" class="bnt" @tap.stop="handleShelves(item,0)">下架
|
||||
<view v-if="item.is_show == 1 && item.status == 1" class="bnt"
|
||||
@tap.stop="handleShelves(item,0)">下架
|
||||
</view>
|
||||
<view v-if="item.is_show == 0 && item.status == 1" class="bnt" @tap.stop="handleShelves(item),1">上架
|
||||
<view v-if="item.is_show == 0 && item.status == 1" class="bnt"
|
||||
@tap.stop="handleShelves(item),1">上架
|
||||
</view>
|
||||
<view @click="editGoods(item)" class="bnt">编辑</view>
|
||||
<navigator :url="'/pages/admin/goods_details/index?product_id='+item.product_id+'&product_type=0'"
|
||||
class="bnt" hover-class='none'>预览</navigator>
|
||||
<view class="bnt" v-if="item.is_show == 0" @tap.stop="handleRecycle(item,index)">删除</view>
|
||||
<view class="bnt bnt_recommend" v-if="item.is_show == 1" @tap.stop="handleRecommend(item)">
|
||||
<view class="bnt" v-if="item.is_show == 0" @tap.stop="handleRecycle(item,index)">删除
|
||||
</view>
|
||||
<view class="bnt bnt_recommend" v-if="item.is_show == 1"
|
||||
@tap.stop="handleRecommend(item)">
|
||||
{{item.is_good ? '取消推荐' : '店铺推荐'}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<Loading :loaded="loaded" :loading="loading"></Loading>
|
||||
</view>
|
||||
<u-popup :show="show" @close="close" mode="center" bgColor='transparent'>
|
||||
<image src="@/static/images/xianxia.png" mode="widthFix"></image>
|
||||
<view class="popen">
|
||||
<h4 v-if="this.on_line==1">线下入库</h4>
|
||||
<h4 v-else>线上入库</h4>
|
||||
<view class="guige">
|
||||
<scroll-view scroll-y="true" class="scroll_y">
|
||||
<view>
|
||||
<u-radio-group v-model="checkboxValue1" placement="column" @change="checkboxChange">
|
||||
<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in checkboxList1"
|
||||
@change="radioChange(item)" :key="index" :label="item.sku" :name="item.unique"
|
||||
v-if="item.sku">
|
||||
</u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="shuru" v-if="this.on_line == 1">
|
||||
数量: <input type="number" v-model="data.number" placeholder="请输入">
|
||||
</view>
|
||||
<view class="btn">
|
||||
<button class="btn_l" @click="close()">取消</button>
|
||||
<button class="btn_r" @click="creat()">提交</button>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<u-loadmore :status="status" v-if="productList.length>0" />
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -114,7 +173,8 @@
|
||||
productLstApi,
|
||||
productDeleteApi,
|
||||
productOffApi,
|
||||
productRecommendApi
|
||||
productRecommendApi,
|
||||
postImport
|
||||
} from "@/api/product";
|
||||
import Loading from '@/components/Loading/index.vue';
|
||||
import {
|
||||
@ -134,6 +194,7 @@
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: 'loadmore',
|
||||
current: "",
|
||||
where: {
|
||||
page: 1,
|
||||
@ -145,6 +206,32 @@
|
||||
productList: [],
|
||||
swiperCur: 0,
|
||||
circular: true,
|
||||
attrValue: [],
|
||||
options: [{
|
||||
value: '0',
|
||||
text: '线上入库'
|
||||
},
|
||||
{
|
||||
value: '1',
|
||||
text: '线下入库'
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
text: '预览'
|
||||
}
|
||||
],
|
||||
//线下
|
||||
show: false,
|
||||
//单选示例
|
||||
checkboxValue1: '',
|
||||
// 基本案列数据
|
||||
checkboxList1: [],
|
||||
data: {
|
||||
product_id: '',
|
||||
unique: "",
|
||||
number: 1
|
||||
},
|
||||
on_line: ''
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
@ -152,13 +239,111 @@
|
||||
this.getList(this.mer_id);
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
// this.where.page = 1
|
||||
this.where.page = 1
|
||||
this.productList=[]
|
||||
this.loading = false
|
||||
this.loaded = false
|
||||
this.getList(this.mer_id);
|
||||
uni.stopPullDownRefresh()
|
||||
},
|
||||
onReachBottom() {
|
||||
// console.log(this.status, '222222222')
|
||||
if (this.status == 'nomore') return;
|
||||
this.status = 'loading';
|
||||
this.where.page = ++this.where.page;
|
||||
this.getList(this.mer_id);
|
||||
},
|
||||
onHide() {
|
||||
this.show = false
|
||||
},
|
||||
methods: {
|
||||
menuAction(action, rowId) {
|
||||
// 忽略初始化时的传入的空操作
|
||||
if (action === '') {
|
||||
return
|
||||
}
|
||||
this.on_line = action
|
||||
this.checkboxList1 = rowId
|
||||
console.log(this.on_line);
|
||||
if (this.checkboxList1.length == 1 && action == 0) {
|
||||
// this.show = true
|
||||
navigateTo(1, '/pages/users/online_warehousing/index', {
|
||||
mer_id: this.mer_id,
|
||||
product_id: this.data.product_id,
|
||||
unique: this.data.unique,
|
||||
});
|
||||
} else if (this.checkboxList1.length == 1 && action == 1) {
|
||||
this.show = true
|
||||
this.data.product_id = this.checkboxList1[0].product_id
|
||||
this.data.unique = this.checkboxList1[0].unique
|
||||
console.log(this.data);
|
||||
} else {
|
||||
this.show = true
|
||||
}
|
||||
if (action == 2) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/admin/goods_details/index?product_id=${this.checkboxList1[0].product_id}&product_type=0`
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
close() {
|
||||
this.show = false
|
||||
},
|
||||
//导入
|
||||
creat() {
|
||||
|
||||
if (this.on_line == 1) {
|
||||
if (this.data.number < 1) {
|
||||
this.show = false
|
||||
this.$util.Tips({
|
||||
title: '入库数量不得小于一件'
|
||||
})
|
||||
} else {
|
||||
postImport(this.mer_id, this.data).then(res => {
|
||||
console.log(res);
|
||||
this.show = false
|
||||
this.$util.Tips({
|
||||
title: res.message
|
||||
})
|
||||
this.productList = []
|
||||
this.getList(this.mer_id);
|
||||
}).catch(err => {
|
||||
this.show = false
|
||||
this.$util.Tips({
|
||||
title: '请选择规格后再次进行入库'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
if (this.on_line == 0) {
|
||||
console.log('12');
|
||||
if (!this.data.product_id) {
|
||||
this.show = false
|
||||
this.$util.Tips({
|
||||
title: '请选择规格'
|
||||
})
|
||||
} else {
|
||||
navigateTo(1, '/pages/users/online_warehousing/index', {
|
||||
mer_id: this.mer_id,
|
||||
product_id: this.data.product_id,
|
||||
unique: this.data.unique,
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
//规格
|
||||
checkboxChange(n) {
|
||||
this.data.unique = n
|
||||
console.log(n);
|
||||
},
|
||||
radioChange(n) {
|
||||
this.data.product_id = n.product_id
|
||||
// console.log(this.data);
|
||||
},
|
||||
// 跳转添加商品界面
|
||||
jumpAddGoods() {
|
||||
const data = getStorage('addGoodsFormData');
|
||||
@ -172,26 +357,33 @@
|
||||
}
|
||||
})
|
||||
}
|
||||
navigateTo(1, '/pages/product/addGoods/index', { mer_id: this.mer_id });
|
||||
navigateTo(1, '/pages/product/addGoods/index', {
|
||||
mer_id: this.mer_id
|
||||
});
|
||||
},
|
||||
// swiper
|
||||
swiperChange(e) {
|
||||
let { current, source } = e.detail;
|
||||
let {
|
||||
current,
|
||||
source
|
||||
} = e.detail;
|
||||
if (source === 'touch') {
|
||||
//根据官方 source 来进行判断swiper的change事件是通过什么来触发的,autoplay是自动轮播。touch是用户手动滑动。其他的就是未知问题。抖动问题主要由于未知问题引起的,所以做了限制,只有在自动轮播和用户主动触发才去改变current值,达到规避了抖动bug
|
||||
this.swiperCur = e.detail.current;
|
||||
}
|
||||
},
|
||||
getList: function(mer_id) {
|
||||
|
||||
var that = this;
|
||||
if (that.loading || that.loaded) return;
|
||||
// if (that.loading || that.loaded) return;
|
||||
that.loading = true;
|
||||
productLstApi(mer_id, that.where).then(
|
||||
res => {
|
||||
that.loading = false;
|
||||
that.loaded = res.data.list.length < that.where.limit;
|
||||
that.productList.push.apply(that.productList, res.data.list);
|
||||
that.where.page = that.where.page + 1;
|
||||
that.productList.push(...res.data.list);
|
||||
if (res.data.list.length < that.where.limit) that.status = 'nomore'
|
||||
|
||||
},
|
||||
error => {
|
||||
that.$util.Tips({
|
||||
@ -217,7 +409,10 @@
|
||||
removeStorage(item);
|
||||
}
|
||||
});
|
||||
navigateTo(1, '/pages/product/addGoods/index', { mer_id: item.mer_id, product_id: item.product_id });
|
||||
navigateTo(1, '/pages/product/addGoods/index', {
|
||||
mer_id: item.mer_id,
|
||||
product_id: item.product_id
|
||||
});
|
||||
},
|
||||
handleRecycle(item, index) {
|
||||
let that = this;
|
||||
@ -261,7 +456,9 @@
|
||||
//上下架
|
||||
onAndOff(item, status) {
|
||||
let that = this;
|
||||
productOffApi(that.mer_id, item.product_id, { status: status }).then((res) => {
|
||||
productOffApi(that.mer_id, item.product_id, {
|
||||
status: status
|
||||
}).then((res) => {
|
||||
that.$util.Tips({
|
||||
title: res.message,
|
||||
icon: 'success'
|
||||
@ -278,7 +475,9 @@
|
||||
handleRecommend(item) {
|
||||
let that = this
|
||||
let is_good = item.is_good ? 0 : 1
|
||||
productRecommendApi(that.mer_id, item.product_id, { is_good: is_good }).then((res) => {
|
||||
productRecommendApi(that.mer_id, item.product_id, {
|
||||
is_good: is_good
|
||||
}).then((res) => {
|
||||
that.$util.Tips({
|
||||
title: res.message,
|
||||
icon: 'success'
|
||||
@ -295,9 +494,7 @@
|
||||
this.current = index
|
||||
},
|
||||
},
|
||||
onReachBottom() {
|
||||
this.getList(this.mer_id)
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -528,7 +725,7 @@
|
||||
}
|
||||
|
||||
.operation {
|
||||
padding: 20upx 30upx;
|
||||
padding: 20upx 10px;
|
||||
background: #ffffff;
|
||||
width: 100%;
|
||||
border-radius: 0 0 10rpx 10rpx;
|
||||
@ -555,5 +752,91 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.acea-row.row-between-wrapper {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
.genduo {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid #999999;
|
||||
border-radius: 10px;
|
||||
width: 30px;
|
||||
height: 10px;
|
||||
|
||||
.gen_sel {
|
||||
font-size: 12px
|
||||
}
|
||||
}
|
||||
|
||||
.popen {
|
||||
position: absolute;
|
||||
top: 110px;
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
padding: 10px;
|
||||
z-index: 0;
|
||||
|
||||
h4 {
|
||||
font-weight: 400;
|
||||
font-size: 20px;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.guige {
|
||||
margin: 10px 0 10px 20px;
|
||||
|
||||
.scroll_y {
|
||||
max-height: 150px;
|
||||
}
|
||||
}
|
||||
|
||||
.guiges {
|
||||
height: 100px;
|
||||
margin: 10px 0 10px 20px;
|
||||
}
|
||||
|
||||
.shuru {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
padding: 5px;
|
||||
margin-left: 20px;
|
||||
|
||||
input {
|
||||
background: #F5F5F5;
|
||||
border-radius: 8px 8px 8px 8px;
|
||||
border: 1px solid #999999;
|
||||
padding-left: 3px;
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
margin: 10px;
|
||||
|
||||
.btn_l {
|
||||
padding: 5px;
|
||||
width: 100px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.btn_r {
|
||||
width: 100px;
|
||||
padding: 5px;
|
||||
border-radius: 4px;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 27px 27px 27px 27px;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
588
pages/releaseManagement/index.vue
Normal file
@ -0,0 +1,588 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
|
||||
<view class="content_top">
|
||||
<!--选项卡滑动切换-->
|
||||
<cxNavTitle :tabs="tabs" :activeItem="activeItem" :show="false" @tabClick="tabClick"></cxNavTitle>
|
||||
</view>
|
||||
<!-- 审核通过 打折有拒绝、同意功能 ,调货不需要功能 -->
|
||||
<view class="content-content">
|
||||
<view class="" v-for="(item,i) in orderList" :key='i'
|
||||
style=" border-radius: 14rpx 14rpx 14rpx 14rpx;margin-bottom: 23rpx;background-color: #FFFFFF; padding: 28rpx 46rpx;">
|
||||
|
||||
<view @click="detail(item)"
|
||||
:class="tabTitle=='tabTwo'?'content-onea':'content-one'&&(tabTitle=='tabFive'&&item.resale_type==1)?'content-onea':'content-one'">
|
||||
<view class="content-one-img">
|
||||
|
||||
<image :src="item.image.indexOf(',')>-1?item.image.split(',')[0]:item.image" mode="aspectFit">
|
||||
</image>
|
||||
</view>
|
||||
<view class="content-one-txt" v-if="tabTitle=='tabFive'">
|
||||
<view class="one-txt-a">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="one-txt-b" style="margin-top: 5px;">
|
||||
<view class="txt-b-a">
|
||||
¥ {{item.discount_price}}
|
||||
</view>
|
||||
<view class="txt-b-b"
|
||||
style="font-size: 28rpx;font-family: SF Pro Display-Regular, SF Pro Display;font-weight: 400;color: #999999;">
|
||||
结算价:¥{{item.discount_price}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="txt-b-b" style="margin-top: 5px;" v-if="item.resale_type==1">
|
||||
类型:调货
|
||||
</view>
|
||||
<view class="txt-b-b" style="margin-top: 5px;" v-else>
|
||||
类型:打折
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-one-txt" v-else>
|
||||
<view class="one-txt-a">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="one-txt-b">
|
||||
<view class="txt-b-a">
|
||||
¥ {{item.discount_price}}
|
||||
</view>
|
||||
<view class="txt-b-b" v-if="item.resale_type==1">
|
||||
类型:调货
|
||||
</view>
|
||||
<view class="txt-b-b" v-else>
|
||||
类型:打折
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="content-two_one" v-if='tabTitle=="tabOne"'>
|
||||
<view class="content-two-edit" @click="soldEdit(item) ">
|
||||
编辑
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content-two-two" v-if='tabTitle=="tabTwo"'>
|
||||
<!-- <view class="content-two-delete">
|
||||
删除
|
||||
</view>
|
||||
<view class="content-two-edit">
|
||||
编辑
|
||||
</view>
|
||||
-->
|
||||
</view>
|
||||
<view class="content-two-three" v-if='tabTitle=="tabThree"'>
|
||||
<view class="content-two-delete" @click="pendingDeletion(item)">
|
||||
删除
|
||||
</view>
|
||||
<view class="content-two-edit" @click="editReviewe(item)">
|
||||
编辑
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content-two-four" v-if='tabTitle=="tabFour"'>
|
||||
<view class="content-two-delete" @click="auditDelete(item)">
|
||||
删除
|
||||
</view>
|
||||
<view class="content-two-edit" @click="auditEdit(item)">
|
||||
编辑
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content-two-five" v-if='tabTitle=="tabFive"&&item.resale_type==2'>
|
||||
<view class="" v-if="item.mer_status==0">
|
||||
<view class="content-two-delete" @click="passDelete(item)">
|
||||
拒绝
|
||||
</view>
|
||||
|
||||
<view class="content-two-agree" @click="passagree(item)">
|
||||
同意
|
||||
</view>
|
||||
</view>
|
||||
<view class="" v-else>
|
||||
<view :class="item.mer_status==1?'content-two-deletea':'content-two-delete'"
|
||||
@click="passDelete(item)" v-if="item.mer_status==1">
|
||||
拒绝
|
||||
</view>
|
||||
|
||||
<view class="content-two-agree" @click="passagree(item)" v-else>
|
||||
同意
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
<view v-if="orderList.length == 0 ">
|
||||
<emptyPage title="暂无订单~"></emptyPage>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import cxNavTitle from '@/components/cx-navTitle.vue'
|
||||
import emptyPage from '@/components/emptyPage.vue';
|
||||
|
||||
import {
|
||||
getResaleid,
|
||||
getResalecheck,
|
||||
getResaledelete,
|
||||
getResale
|
||||
} from '@/api/release.js'
|
||||
export default {
|
||||
components: {
|
||||
cxNavTitle,
|
||||
emptyPage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeItem: "tabOne",
|
||||
tabTitle: "",
|
||||
orderList: [],
|
||||
|
||||
where: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
status: 1
|
||||
},
|
||||
tabs: [{
|
||||
name: "tabOne",
|
||||
label: '在售',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
name: "tabTwo",
|
||||
label: '已售出',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
name: "tabThree",
|
||||
label: '待审核',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
name: "tabFour",
|
||||
label: '审核未通过',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
name: "tabFive",
|
||||
label: '审核通过',
|
||||
value: 5,
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
onLoad(num) {
|
||||
this.tabTitle = this.tabs[0].name
|
||||
if (num.key == '2') {
|
||||
this.activeItem = 'tabThree',
|
||||
this.where.status = 3
|
||||
}
|
||||
this.orderList = []
|
||||
this.list()
|
||||
},
|
||||
methods: {
|
||||
tabClick(e) { //点击获取当前标签数据
|
||||
|
||||
this.activeItem = e.name; //当前class类名
|
||||
this.tabTitle = e.name; //当前选的标签名
|
||||
this.where.status = e.value
|
||||
this.orderList = []
|
||||
this.list()
|
||||
|
||||
},
|
||||
list() {
|
||||
getResale(this.where).then(res => {
|
||||
if (res.status = 200) {
|
||||
this.orderList.push(...res.data.list)
|
||||
}
|
||||
})
|
||||
},
|
||||
//售出 编辑
|
||||
soldEdit(item) {
|
||||
if (item.resale_type == 1) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/transfer_goods/index?id=' + item.community_id +
|
||||
'>ype=' + 'edit'
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/adddiscounts/index?id=' + item.community_id +
|
||||
'>ype=' + 'edit'
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//审核未通过 删除
|
||||
pendingDeletion(item) {
|
||||
|
||||
getResaledelete(item.community_id).then(res => {
|
||||
this.$util.Tips({
|
||||
title: res.message,
|
||||
icon: 'success'
|
||||
})
|
||||
this.orderList = []
|
||||
this.list()
|
||||
this.tabTitle = 'tabThree'
|
||||
})
|
||||
},
|
||||
//待审核 编辑
|
||||
editReviewe(item) {
|
||||
if (item.resale_type == 1) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/transfer_goods/index?id=' + item.community_id +
|
||||
'>ype=' + 'edit'
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/adddiscounts/index?id=' + item.community_id +
|
||||
'>ype=' + 'edit'
|
||||
})
|
||||
}
|
||||
},
|
||||
// 审核未通过 删除
|
||||
auditDelete(item) {
|
||||
getResaledelete(item.community_id).then(res => {
|
||||
this.$util.Tips({
|
||||
title: res.message,
|
||||
icon: 'success'
|
||||
})
|
||||
this.orderList = []
|
||||
this.list()
|
||||
this.tabTitle = 'tabFour'
|
||||
})
|
||||
},
|
||||
|
||||
// 审核未通过 编辑
|
||||
auditEdit(item) {
|
||||
if (item.resale_type == 1) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/transfer_goods/index?id=' + item.community_id +
|
||||
'>ype=' + 'edit'
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/adddiscounts/index?id=' + item.community_id +
|
||||
'>ype=' + 'edit'
|
||||
})
|
||||
}
|
||||
},
|
||||
//审核通过 拒绝
|
||||
passDelete(item) {
|
||||
getResalecheck(item.community_id, {
|
||||
"status": 2
|
||||
}).then(res => {
|
||||
this.$util.Tips({
|
||||
title: res.message,
|
||||
icon: 'success'
|
||||
})
|
||||
this.orderList = []
|
||||
this.list()
|
||||
this.tabTitle = 'tabFive'
|
||||
})
|
||||
},
|
||||
//详情
|
||||
detail(item) {
|
||||
|
||||
uni.navigateTo({
|
||||
url: '/pages/releaseManagement/details/index?key=' + item.community_id
|
||||
})
|
||||
},
|
||||
//审核通过 同意
|
||||
passagree(item) {
|
||||
getResalecheck(item.community_id, {
|
||||
"status": 1
|
||||
}).then(res => {
|
||||
this.$util.Tips({
|
||||
title: res.message,
|
||||
icon: 'success'
|
||||
})
|
||||
this.orderList = []
|
||||
this.list()
|
||||
this.tabTitle = 'tabFive'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content_top {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.content_top {
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.content-content {
|
||||
margin-top: 21rpx;
|
||||
margin-left: 28rpx;
|
||||
margin-right: 28rpx;
|
||||
padding-top: 28rpx;
|
||||
opacity: 1;
|
||||
position: relative;
|
||||
|
||||
.content-onea {
|
||||
display: flex;
|
||||
padding-bottom: 23rpx;
|
||||
background-color: #FFFFFF;
|
||||
|
||||
.content-one-img {
|
||||
width: 148rpx;
|
||||
height: 148rpx;
|
||||
margin-right: 28rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content-one-txt {
|
||||
margin-bottom: 23rpx;
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.one-txt-b {
|
||||
display: flex;
|
||||
margin-top: 30rpx;
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: SF Pro Display-Medium, SF Pro Display;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-right: 74rpx;
|
||||
}
|
||||
|
||||
.txt-b-b {
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.content-one {
|
||||
display: flex;
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
padding-bottom: 23rpx;
|
||||
|
||||
|
||||
.content-one-img {
|
||||
width: 148rpx;
|
||||
height: 148rpx;
|
||||
margin-right: 28rpx;
|
||||
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content-one-txt {
|
||||
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.one-txt-b {
|
||||
display: flex;
|
||||
margin-top: 30rpx;
|
||||
|
||||
.txt-b-a {
|
||||
font-size: 32rpx;
|
||||
font-family: SF Pro Display-Medium, SF Pro Display;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-right: 74rpx;
|
||||
}
|
||||
|
||||
.txt-b-b {
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.content-two_one {
|
||||
height: 110rpx;
|
||||
position: relative;
|
||||
|
||||
.content-two-edit {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
position: absolute;
|
||||
right: 28rpx;
|
||||
bottom: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.content-two-three {
|
||||
height: 110rpx;
|
||||
position: relative;
|
||||
|
||||
.content-two-edit {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
position: absolute;
|
||||
right: 28rpx;
|
||||
bottom: 23rpx;
|
||||
}
|
||||
|
||||
.content-two-delete {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
border: 2rpx solid #999999;
|
||||
position: absolute;
|
||||
right: 228rpx;
|
||||
bottom: 23rpx;
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.content-two-four {
|
||||
height: 110rpx;
|
||||
position: relative;
|
||||
|
||||
.content-two-edit {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
position: absolute;
|
||||
right: 28rpx;
|
||||
bottom: 23rpx;
|
||||
}
|
||||
|
||||
.content-two-delete {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
border: 2rpx solid #999999;
|
||||
position: absolute;
|
||||
right: 228rpx;
|
||||
bottom: 23rpx;
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.content-two-five {
|
||||
height: 110rpx;
|
||||
position: relative;
|
||||
|
||||
.content-two-agree {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
position: absolute;
|
||||
right: 28rpx;
|
||||
bottom: 23rpx;
|
||||
}
|
||||
|
||||
.content-two-deletea {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
border: 2rpx solid #999999;
|
||||
position: absolute;
|
||||
right: 28rpx;
|
||||
bottom: 23rpx;
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
}
|
||||
|
||||
.content-two-delete {
|
||||
width: 168rpx;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
border: 2rpx solid #999999;
|
||||
position: absolute;
|
||||
right: 228rpx;
|
||||
bottom: 23rpx;
|
||||
border-radius: 32rpx 32rpx 32rpx 32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
@ -20,7 +20,7 @@
|
||||
】
|
||||
-->
|
||||
<!-- 头部导航 -->
|
||||
<view v-if="!isUser" class="header">
|
||||
<view v-if="!isUser" class="header" :style="{backgroundColor:currentNav==3?'#FC4E09':''}" >
|
||||
<view class="items" @click.stop="navTap(2)">
|
||||
<text class="tName" :class="currentNav==2?'on':''">关注</text>
|
||||
</view>
|
||||
@ -257,6 +257,7 @@
|
||||
<view class="nice_box flex_a_c" @click.stop="giveStart(item)">
|
||||
<text class="iconfont" :class="item.relevance_id ? 'icon-shoucang1' : 'icon-dianzan'"></text>
|
||||
<text class="collect">{{item.count_start}}</text>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -1036,14 +1037,15 @@
|
||||
/* #ifdef MP */
|
||||
padding-top: 200rpx;
|
||||
/* #endif */
|
||||
background-color: #000000;
|
||||
// background-color: #000000;
|
||||
background-color: #F5F5F5;
|
||||
|
||||
.goods_item {
|
||||
width: 342.11rpx;
|
||||
height: 491.23rpx;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
background-color: #000;
|
||||
// background-color: #000;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding-bottom: 10px;
|
||||
@ -1170,11 +1172,11 @@
|
||||
position: fixed;
|
||||
z-index: 9;
|
||||
width: 750rpx;
|
||||
height: 86rpx;
|
||||
height: 186rpx;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
top: 70rpx;
|
||||
padding-top: 70rpx;
|
||||
|
||||
.items {
|
||||
margin: 0 30rpx;
|
||||
@ -1191,7 +1193,7 @@
|
||||
}
|
||||
|
||||
.container {
|
||||
background-color: #000000;
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
|
||||
.item {
|
||||
|
@ -13,7 +13,10 @@
|
||||
-->
|
||||
<!-- 头部导航 -->
|
||||
<!-- 头部导航 -->
|
||||
<view v-if="!isUser" class="header">
|
||||
|
||||
|
||||
<view v-if="!isUser" class="header" :style="{backgroundColor:currentNav==3?'#FC4E09':''}">
|
||||
|
||||
<view class="tool-bar">
|
||||
<view class='iconfont icon-xiangzuo' @tap='goBack'></view>
|
||||
</view>
|
||||
@ -31,7 +34,18 @@
|
||||
:vertical="true" @animationfinish="animationfinish" @change="change" :current="k" :indicator-dots="false">
|
||||
<swiper-item v-for="(list,index) in dataList">
|
||||
<view v-if="max > index">
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <view style="width: 100px;height: 100px;background-color: red;">
|
||||
|
||||
5666
|
||||
|
||||
</view> -->
|
||||
|
||||
<view>
|
||||
<!-- 这种视频背景模糊的效果怎么做呢 -->
|
||||
<!--
|
||||
1.v-if:用于控制视频在节点的渲染数
|
||||
2.muted的默认值是 false,代表默认是禁音视频的
|
||||
@ -46,13 +60,18 @@
|
||||
:show-center-play-btn="false" :enable-progress-gesture="false" :src="list.video_link"
|
||||
@ended="ended" @play="play(index)" @click="tapVideoHover(list.state,$event)"
|
||||
@waiting="waiting(index)"
|
||||
:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;z-index: -1;'"></video>
|
||||
style="width: 100vw; height: 100vh;z-index: -1;transform: scale(4)">
|
||||
|
||||
|
||||
|
||||
</video>
|
||||
|
||||
</view>
|
||||
<!-- 播放状态:pause 的时候就会暂停 -->
|
||||
<view class="videoHover" @click="tapVideoHover(list.state,$event)"
|
||||
<!-- <view class="videoHover" @click="tapVideoHover(list.state,$event)"
|
||||
:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'">
|
||||
<image v-if="list.state=='pause'" class="playState" src="../static/img/index/play.png"></image>
|
||||
</view>
|
||||
</view> -->
|
||||
<!--审核状态-->
|
||||
<view v-if="list.status==-1 || list.status==0 || list.status==-2" class="video-status">
|
||||
<view v-if="list.status == -1 || list.status == -2" class="status-title">
|
||||
@ -1135,10 +1154,11 @@
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.video-list {
|
||||
padding: 200rpx 28.07rpx 28.07rpx 28.07rpx;
|
||||
padding: 150rpx 28.07rpx 28.07rpx 28.07rpx;
|
||||
/* #ifdef MP */
|
||||
padding-top: 200rpx;
|
||||
padding-top: 150rpx;
|
||||
/* #endif */
|
||||
background-color: #F5F5F5;
|
||||
|
||||
.goods_item {
|
||||
width: 342.11rpx;
|
||||
@ -1237,13 +1257,13 @@
|
||||
position: fixed;
|
||||
z-index: 9;
|
||||
width: 750rpx;
|
||||
height: 86rpx;
|
||||
height: 120rpx;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
top: 20rpx;
|
||||
padding-top: 20rpx;
|
||||
/* #ifdef MP */
|
||||
top: 75rpx;
|
||||
padding-top: 75rpx;
|
||||
/* #endif */
|
||||
|
||||
.tool-bar {
|
||||
@ -1258,8 +1278,9 @@
|
||||
.icon-xiangzuo {
|
||||
margin-right: 40rpx;
|
||||
margin-left: 20rpx;
|
||||
font-size: 26rpx;
|
||||
font-size: 30rpx;
|
||||
color: #fff;
|
||||
margin-top: 60rpx;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1290,6 +1311,7 @@
|
||||
.shortVideo,
|
||||
.container {
|
||||
background: linear-gradient(180deg, rgba(0, 0, 0, .8) 0%, #000000 100%);
|
||||
|
||||
}
|
||||
|
||||
.item {
|
||||
@ -1336,6 +1358,7 @@
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
// background-color: red;
|
||||
}
|
||||
|
||||
.playState {
|
||||
@ -1861,4 +1884,8 @@
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
.videoa {
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
@ -113,6 +113,7 @@
|
||||
},
|
||||
onLoad() {
|
||||
getHotBanner('good').then(res => {
|
||||
// console.log(res);
|
||||
this.bgData = res.data
|
||||
})
|
||||
this.getArticle()
|
||||
|
1157
pages/trading_hall/adddiscounts/index.vue
Normal file
475
pages/trading_hall/product_details/index.vue
Normal file
@ -0,0 +1,475 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="content_top">
|
||||
<view class="content_top-one">
|
||||
<view class="content_symbol">
|
||||
<image :src="listobj.mer_avatar" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="content_title" v-if="listobj.author">
|
||||
<view class="title_one">
|
||||
{{listobj.mer_name}}
|
||||
|
||||
</view>
|
||||
<view class="title_two">
|
||||
{{listobj.care_count>0?listobj.care_count:0}}人关注 {{listobj.sales>0?listobj.sales:0}}销量
|
||||
</view>
|
||||
</view>
|
||||
<view class="content_titimg">
|
||||
<image src="@/static/images/sym.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view view class="content_top-two">
|
||||
<view class="price">
|
||||
¥{{listobj.total_price}}
|
||||
<!-- <input type="text" :value="listobj.total_price" v-model="listobj.total_price" /> -->
|
||||
</view>
|
||||
|
||||
<view class="top-two_content">
|
||||
<textarea :value="listobj.content" placeholder="" style="height: auto;" />
|
||||
</view>
|
||||
<view class="top-two_img">
|
||||
|
||||
<view class="" v-for="(item,index) in listobj.image">
|
||||
<image :src="item" mode=""></image>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="content_middle">
|
||||
<view class="middle-one" v-for="(item,b) in listobj.resale" :key='b'>
|
||||
<view class="midding-img">
|
||||
<image :src="item.image" mode=""></image>
|
||||
</view>
|
||||
<view class="middle-one_text">
|
||||
<view class="one_text_a">
|
||||
{{item.store_name}}
|
||||
</view>
|
||||
<view class="one_text_b">
|
||||
¥{{item.price}}
|
||||
</view>
|
||||
<view class="one_text_c">
|
||||
|
||||
<!-- <view class="">
|
||||
采购价:{{item.price}}
|
||||
</view> -->
|
||||
<view class="">
|
||||
数量: {{item.number}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="content_enter">
|
||||
<view class="content_enter-one">
|
||||
类型
|
||||
</view>
|
||||
<view class="content_enter-two" v-if="listobj.resale_type==1">
|
||||
调货
|
||||
</view>
|
||||
<view class="content_enter-two" v-else>
|
||||
打折
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
<view class="content_bootm" v-if='listobj.resale'>
|
||||
<view class="content_bootm_txt" v-if='listobj.resale.length>0'>
|
||||
查看TA提到的宝贝({{listobj.resale.length}})
|
||||
</view>
|
||||
|
||||
<view class="content_bootm_one" v-for="(items,i) in listobj.resale" :key='i' @click="Merchbaby(items)">
|
||||
<view class="bootm_oneimg">
|
||||
<image :src="items.image" mode=""></image>
|
||||
</view>
|
||||
<view class="" style="margin-top: 15rpx;">
|
||||
{{items.store_name}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="pay" v-if="this.detail.type==1||this.detail.type==2">
|
||||
<view class="pay_tilte-a">
|
||||
合计: <span>¥{{listobj.total_price}}</span>
|
||||
</view>
|
||||
<view class="pay_tilte-b" @click="prouctOrder">提交订单</view>
|
||||
</view>
|
||||
|
||||
<view class="domain" v-else>
|
||||
<view class="domain_tilte-a">
|
||||
合计: <span>¥200.00</span>
|
||||
</view>
|
||||
<view class="domain_tilte-b">
|
||||
删除
|
||||
</view>
|
||||
<view class="domain_tilte-c">编辑</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getCommunityshow,
|
||||
getCommunityaddCart
|
||||
} from '@/api/trading-floor.js'
|
||||
export default {
|
||||
|
||||
|
||||
data() {
|
||||
return {
|
||||
detail: {},
|
||||
listobj: {},
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
if (e) {
|
||||
this.detail = JSON.parse(decodeURIComponent(e.key));
|
||||
this.shopdetil(this.detail.id)
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
//商品详情
|
||||
shopdetil(id) {
|
||||
|
||||
getCommunityshow(id).then(res => {
|
||||
if (res.data.status = 200) {
|
||||
this.listobj = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
//商品宝贝详情
|
||||
Merchbaby(item) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/goods_details/index?id=${item.product_id}`
|
||||
})
|
||||
|
||||
},
|
||||
prouctOrder() {
|
||||
getCommunityaddCart(this.listobj).then(res => {
|
||||
if (res.status == 200) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/order_confirm/index?cartId=' + res.data.cart_id.toString()
|
||||
})
|
||||
}
|
||||
}).catch((err) => {
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {}
|
||||
|
||||
.content_top {
|
||||
padding: 21rpx 28rpx;
|
||||
background: #FFFFFF;
|
||||
|
||||
.content_top-one {
|
||||
display: flex;
|
||||
border-bottom: 1rpx solid #CCCCCC;
|
||||
|
||||
.content_symbol {
|
||||
width: 81rpx;
|
||||
height: 81rpx;
|
||||
|
||||
image {
|
||||
width: 81rpx;
|
||||
height: 81rpx;
|
||||
}
|
||||
|
||||
margin-bottom: 21rpx;
|
||||
}
|
||||
|
||||
.content_title {
|
||||
margin-left: 21rpx;
|
||||
|
||||
.title_one {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.title_two {
|
||||
font-size: 25rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
|
||||
.content_titimg {
|
||||
width: 116rpx;
|
||||
height: 64rpx;
|
||||
margin-top: -10rpx;
|
||||
margin-left: 10rpx;
|
||||
|
||||
image {
|
||||
width: 136rpx;
|
||||
height: 64rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content_top-two {
|
||||
.price {
|
||||
display: flex;
|
||||
margin-top: 21rpx;
|
||||
font-size: 46rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
|
||||
input {
|
||||
font-size: 46rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221
|
||||
}
|
||||
}
|
||||
|
||||
.top-two_content {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
margin-top: 21rpx;
|
||||
margin-bottom: 21rpx;
|
||||
}
|
||||
|
||||
.top-two_img {
|
||||
display: flex;
|
||||
|
||||
view {
|
||||
|
||||
width: 217rpx;
|
||||
height: 217rpx;
|
||||
border-radius: 14rpx 14rpx 14rpx 14rpx;
|
||||
margin-right: 15rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 14rpx 14rpx 14rpx 14rpx;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content_middle {
|
||||
|
||||
.middle-one {
|
||||
background-color: #FFFFFF;
|
||||
display: flex;
|
||||
margin-top: 28rpx;
|
||||
padding: 21rpx 0;
|
||||
|
||||
.midding-img {
|
||||
width: 176rpx;
|
||||
height: 176rpx;
|
||||
margin-left: 24rpx;
|
||||
margin-right: 21rpx;
|
||||
|
||||
image {
|
||||
width: 176rpx;
|
||||
height: 176rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.middle-one_text {
|
||||
.one_text_a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.one_text_b {
|
||||
font-size: 35rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
margin-top: 11rpx;
|
||||
}
|
||||
|
||||
.one_text_c {
|
||||
font-size: 28rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
margin-top: 12rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-right: 50rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.content_enter {
|
||||
height: 89rpx;
|
||||
line-height: 89rpx;
|
||||
background: #FFFFFF;
|
||||
opacity: 1;
|
||||
margin-top: 28rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 20rpx;
|
||||
|
||||
.content_enter-one {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.content_enter-two {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #F84221;
|
||||
}
|
||||
}
|
||||
|
||||
.content_bootm {
|
||||
|
||||
margin-bottom: 150rpx;
|
||||
|
||||
.content_bootm_txt {
|
||||
margin-top: 42rpx;
|
||||
padding-left: 28rpx;
|
||||
|
||||
}
|
||||
|
||||
.content_bootm_one {
|
||||
height: 112rpx;
|
||||
line-height: 112rpx;
|
||||
padding-right: 28rpx;
|
||||
background: #FFFFFF;
|
||||
display: flex;
|
||||
margin-top: 21rpx;
|
||||
|
||||
.bootm_oneimg {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
margin: auto 0;
|
||||
margin-left: 28rpx;
|
||||
margin-right: 21rpx;
|
||||
|
||||
image {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.pay {
|
||||
width: 100%;
|
||||
height: 121rpx;
|
||||
line-height: 121rpx;
|
||||
background: #FFFFFF;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
position: fixed;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 28rpx;
|
||||
|
||||
.pay_tilte-a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
|
||||
span {
|
||||
font-size: 42rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
}
|
||||
}
|
||||
|
||||
.pay_tilte-b {
|
||||
width: 238rpx;
|
||||
height: 74rpx;
|
||||
line-height: 74rpx;
|
||||
text-align: center;
|
||||
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 37rpx 37rpx 37rpx 37rpx;
|
||||
opacity: 1;
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
margin: auto 0;
|
||||
}
|
||||
}
|
||||
|
||||
.domain {
|
||||
width: 100%;
|
||||
height: 121rpx;
|
||||
line-height: 121rpx;
|
||||
background: #FFFFFF;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
position: fixed;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 28rpx;
|
||||
|
||||
.domain_tilte-a {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
|
||||
span {
|
||||
font-size: 42rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #F84221;
|
||||
}
|
||||
}
|
||||
|
||||
.domain_tilte-b {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.domain_tilte-c {
|
||||
width: 238rpx;
|
||||
height: 74rpx;
|
||||
line-height: 74rpx;
|
||||
text-align: center;
|
||||
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 37rpx 37rpx 37rpx 37rpx;
|
||||
opacity: 1;
|
||||
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
margin: auto 0;
|
||||
}
|
||||
}
|
||||
</style>
|
1163
pages/trading_hall/transfer_goods/index.vue
Normal file
@ -105,7 +105,7 @@
|
||||
<view class="order-wrapper">
|
||||
<view class="order-hd flex skeleton-rect">
|
||||
<view class="left">我的订单</view>
|
||||
<view class="right flex" @click="authTo('/pages/users/order_list/index?status=-1')" hover-class="none"
|
||||
<view class="right flex" @click="authTo('/pages/users/order_list/index?status=-1&product_type=0')" hover-class="none"
|
||||
open-type="navigate">
|
||||
全部订单
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
@ -287,19 +287,19 @@
|
||||
{
|
||||
icon: 'icon-daifahuo1',
|
||||
title: '待发货',
|
||||
url: '/pages/users/order_list/index?status=1',
|
||||
url: '/pages/users/order_list/index?status=2',
|
||||
num: 0
|
||||
},
|
||||
{
|
||||
icon: 'icon-daishouhuo1',
|
||||
title: '待收货',
|
||||
url: '/pages/users/order_list/index?status=2',
|
||||
url: '/pages/users/order_list/index?status=3',
|
||||
num: 0
|
||||
},
|
||||
{
|
||||
icon: 'icon-daipingjia1',
|
||||
title: '待评价',
|
||||
url: '/pages/users/order_list/index?status=3',
|
||||
url: '/pages/users/order_list/index?status=4',
|
||||
num: 0
|
||||
},
|
||||
{
|
||||
@ -420,7 +420,10 @@
|
||||
// 菜单显示
|
||||
filterMenus: function(item) {
|
||||
let that = this;
|
||||
if (item.url == '/pages/users/user_money/index') item.isShow = that.balance_func_status == 1
|
||||
if (item.url == '/pages/users/user_money/index') {
|
||||
// item.isShow = that.balance_func_status == 1
|
||||
item.isShow = true
|
||||
}
|
||||
else if (item.url == '/pages/users/user_spread_user/index') {
|
||||
if (that.extension_status == 0) {
|
||||
item.isShow = false
|
||||
@ -436,6 +439,8 @@
|
||||
else if (item.url == '/pages/users/user_grade/index') item.isShow = that.member_status == 1
|
||||
else if (item.url == '/pages/users/user_integral/index') item.isShow = that.integral_status == 1
|
||||
else item.isShow = true
|
||||
|
||||
|
||||
},
|
||||
showMenu(menu) {
|
||||
return !menu || ['integral', 'service', 'admin_order', 'verify_order', 'intention', 'promoter', 'balance']
|
||||
@ -556,6 +561,7 @@
|
||||
that.filterMenus(item)
|
||||
that.personalMenu.push(item)
|
||||
})
|
||||
|
||||
that.imgUrls = res.data.banner
|
||||
});
|
||||
},
|
||||
|
@ -51,7 +51,7 @@
|
||||
</view>
|
||||
<view class='tip mt25'>
|
||||
当前可提现金额: <text
|
||||
class="price">¥{{userInfo.brokerage_price}},</text>冻结佣金:¥{{userInfo.lock_brokerage}}
|
||||
class="price">¥{{extract_money}},</text>冻结佣金:¥{{userInfo.lock_brokerage}}
|
||||
</view>
|
||||
<view class='tip'>
|
||||
说明: 每笔佣金的冻结期为{{userInfo.broken_day}}天,到期后可提现
|
||||
@ -92,7 +92,7 @@
|
||||
|
||||
<view class='tip mt25'>
|
||||
当前可提现金额: <text
|
||||
class="price">¥{{userInfo.brokerage_price}},</text>冻结佣金:¥{{userInfo.lock_brokerage}}
|
||||
class="price">¥{{extract_money}},</text>冻结佣金:¥{{userInfo.lock_brokerage}}
|
||||
</view>
|
||||
<view class='tip'>
|
||||
说明: 每笔佣金的冻结期为{{userInfo.broken_day}}天,到期后可提现
|
||||
@ -100,7 +100,7 @@
|
||||
<button formType="submit" class='bnt b-color'>提现</button>
|
||||
</view>
|
||||
<view v-else class="auto_arrival">
|
||||
<view class='tip'>当前可提现金额: <text class="price">¥{{userInfo.brokerage_price}}</text>
|
||||
<view class='tip'>当前可提现金额: <text class="price">¥{{extract_money}}</text>
|
||||
</view>
|
||||
<view class='input'><input placeholder-class='placeholder1' name="extract_price"
|
||||
type='digit' :placeholder="placeholderValue" @focus="placeholderValue = ''"
|
||||
@ -141,7 +141,7 @@
|
||||
</view>
|
||||
<view class='tip mb25'>
|
||||
当前可提现金额: <text
|
||||
class="price">¥{{userInfo.brokerage_price}},</text>冻结佣金:¥{{userInfo.lock_brokerage}}
|
||||
class="price">¥{{extract_money}},</text>冻结佣金:¥{{userInfo.lock_brokerage}}
|
||||
</view>
|
||||
<view class='tip' v-if="userInfo.broken_day>0">
|
||||
说明: 每笔佣金的冻结期为{{userInfo.broken_day}}天,到期后可提现
|
||||
@ -166,7 +166,8 @@
|
||||
getAdminApplyAPI,
|
||||
getLisApplyAPI,
|
||||
getAccountApplyAPI,
|
||||
postAccountApplyAPI
|
||||
postAccountApplyAPI,
|
||||
|
||||
} from '@/api/user.js'
|
||||
import {
|
||||
extractCash,
|
||||
@ -192,6 +193,7 @@
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
extract_money:"",
|
||||
mode: {
|
||||
bank_address: "",
|
||||
bank_code: "",
|
||||
@ -276,6 +278,8 @@
|
||||
this.mode.bank_code = res.data.financial_bank_code
|
||||
this.mode.bank_name = res.data.financial_bank_bank
|
||||
this.mode.bank_address = res.data.financial_bank_branch
|
||||
this.extract_money=res.data.extract_money
|
||||
console.log(this.extract_money)
|
||||
} catch (err) {
|
||||
//TODO handle the exception
|
||||
Toast(err)
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="list">
|
||||
<view class="list">
|
||||
<view class="head">
|
||||
<view class="head_conent">
|
||||
<view class="tatil">
|
||||
@ -8,8 +8,9 @@
|
||||
<h3>提现次数</h3>
|
||||
</view>
|
||||
<view class="sum">
|
||||
<u-count-to :startVal="0" :endVal="sum"></u-count-to>
|
||||
<u-count-to :startVal="0" :endVal="sumTofixed" :decimals="2"></u-count-to>
|
||||
<h3>提现总额</h3>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -66,7 +67,11 @@
|
||||
UserApplylist:[]
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
computed: {
|
||||
sumTofixed(){
|
||||
return this.returnFloat(this.sum)
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
},
|
||||
@ -79,6 +84,21 @@
|
||||
// })
|
||||
},
|
||||
methods: {
|
||||
/**数字强制转为两位小数*/
|
||||
returnFloat(value){
|
||||
var value=Math.round(parseFloat(value)*100)/100;
|
||||
var xsd=value.toString().split(".");
|
||||
if(xsd.length==1){
|
||||
value=value.toString()+".00";
|
||||
return value;
|
||||
}
|
||||
if(xsd.length>1){
|
||||
if(xsd[1].length<2){
|
||||
value=value.toString()+"0";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
tixian() {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
|
@ -80,39 +80,7 @@
|
||||
class="font_pro">《隐私政策》</text></text>
|
||||
</checkbox-group>
|
||||
</div>
|
||||
<!-- #ifdef MP -->
|
||||
<!-- <view class="appLogin">
|
||||
<view class="hds">
|
||||
<span class="line"></span>
|
||||
<p>其他方式登录</p>
|
||||
<span class="line"></span>
|
||||
</view>
|
||||
<view class="btn-wrapper">
|
||||
<button form-type="submit" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
|
||||
<view class="btn wx">
|
||||
<span class="iconfont icon-s-weixindenglu1"></span>
|
||||
</view>
|
||||
</button>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<!-- <view class="appLogin" v-if="!appLoginStatus && !appleLoginStatus">
|
||||
<view class="hds">
|
||||
<span class="line"></span>
|
||||
<p>其他方式登录</p>
|
||||
<span class="line"></span>
|
||||
</view>
|
||||
<view class="btn-wrapper">
|
||||
<view class="btn wx" @click="wxLogin">
|
||||
<span class="iconfont icon-s-weixindenglu1"></span>
|
||||
</view>
|
||||
<view class="btn wx btn-apple" @click="appleLogin" v-if="appleShow">
|
||||
<span class="iconfont icon-s-pingguo"></span>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- #endif -->
|
||||
|
||||
</div>
|
||||
<div class="whiteBg" v-else>
|
||||
<div class="title">注册账号</div>
|
||||
@ -168,24 +136,6 @@
|
||||
class="font_pro">《隐私政策》</text></text>
|
||||
</checkbox-group>
|
||||
</div>
|
||||
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<view class="appLogin" v-if="!appLoginStatus && !appleLoginStatus">
|
||||
<view class="hds">
|
||||
<span class="line"></span>
|
||||
<p>其他方式登录</p>
|
||||
<span class="line"></span>
|
||||
</view>
|
||||
<view class="btn-wrapper">
|
||||
<view class="btn wx" @click="wxLogin">
|
||||
<span class="iconfont icon-s-weixindenglu1"></span>
|
||||
</view>
|
||||
<view class="btn wx btn-apple" @click="appleLogin" v-if="appleShow">
|
||||
<span class="iconfont icon-s-pingguo"></span>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom"></div>
|
||||
|
461
pages/users/online_warehousing/index.vue
Normal file
@ -0,0 +1,461 @@
|
||||
<template>
|
||||
<view class="center">
|
||||
<view class="top">
|
||||
<view class="top-header">
|
||||
<view class="search">
|
||||
<view class="search-content acea-row row-middle">
|
||||
<text class="iconfont icon-sousuo"></text>
|
||||
<input v-model="where.store_name" confirm-type="search" placeholder="请输收货人手机号或订单号搜索"
|
||||
class="input" @confirm="handleSearch" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bgc_img" v-if="this.shopList == ![]">
|
||||
<image src="@/static/images/empty-box.png" mode="widthFix"></image>
|
||||
<view class="txt">
|
||||
暂无商品订单~
|
||||
</view>
|
||||
</view>
|
||||
<view class='list' v-else>
|
||||
<block>
|
||||
<view class='item' v-for="(item,index) in shopList" :key="index">
|
||||
<view>
|
||||
<view class='title acea-row row-between-wrapper'>
|
||||
<view class="acea-row row-middle left-wrapper">
|
||||
{{item.merchant.mer_name}}
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view>
|
||||
<block>
|
||||
<view class="_order">
|
||||
订单号: {{item.order_sn}}
|
||||
</view>
|
||||
<view class='item-info acea-row row-between row-top'
|
||||
v-for="(items,indexs) in item.orderProduct" :key="indexs">
|
||||
<view class='pictrue'>
|
||||
<image :src="items.cart_info.product.image">
|
||||
</image>
|
||||
</view>
|
||||
<view class='text'>
|
||||
<view class='_left'>
|
||||
{{items.cart_info.product.store_name}}
|
||||
<view class="">
|
||||
{{items.cart_info.productAttr.sku}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="_right">
|
||||
<view class='name'>¥{{items.cart_info.productAttr.price}}</view>
|
||||
<view class='name'>x {{items.product_num}}</view>
|
||||
</view>
|
||||
<!-- <view class="totalfooter">
|
||||
<view class='bnt b-color' v-if="items.is_imported == 0 && item.orderProduct.length > 1"
|
||||
@click="importshop(items.order_id,items.product_id,items.product_sku)">
|
||||
立即导入</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="totalfooter">
|
||||
<view class='bnt b-color' v-if="!item.orderProduct[indexs]"
|
||||
@click="importshop(item.order_id,item.orderProduct[indexs].product_id,item.orderProduct[indexs].product_sku)">
|
||||
立即导入</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view class='totalPrice'>
|
||||
共{{item.orderProduct.length}}件商品,总金额
|
||||
<text class='money'>¥{{item.pay_price}}</text>
|
||||
</view>
|
||||
<!-- <view class="totalfooter">
|
||||
<view class='bnt b-color' v-if="item.orderProduct[index]"
|
||||
@click="importshop(item.order_id,item.orderProduct[index].product_id,item.orderProduct[index].cart_info.productAttr.product_sku)">
|
||||
立即导入</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<u-popup :show="show" @close="close" mode="center" bgColor='transparent'>
|
||||
<image src="@/static/images/xianshang.png" mode="widthFix"></image>
|
||||
<view class="popen">
|
||||
<h4>{{title}}</h4>
|
||||
<view class="shuru">
|
||||
点击确定,返回商品管理
|
||||
</view>
|
||||
<view class="btn">
|
||||
<button class="btn_l" @click="closeasd()">取消</button>
|
||||
<button class="btn_r" @click="getback()">确定</button>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<!-- <Loading :loaded="loaded" :loading="loading"></Loading> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getPreviewProDetail,
|
||||
} from '@/api/store.js'
|
||||
import {
|
||||
postImport
|
||||
} from '@/api/product.js'
|
||||
import {
|
||||
getOrderList
|
||||
} from '@/api/order.js'
|
||||
import Loading from '@/components/Loading/index'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
shopList: [],
|
||||
shopinfo: {},
|
||||
mer_id: '',
|
||||
keyword: '',
|
||||
where: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
status: 20,
|
||||
product_type: 98,
|
||||
store_name: '',
|
||||
},
|
||||
data: {
|
||||
product_id: '',
|
||||
unique: "",
|
||||
order_id: '',
|
||||
order_product_id: '',
|
||||
order_unique: ''
|
||||
},
|
||||
show: false,
|
||||
title: '',
|
||||
loaded: false,
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
// console.log(option);
|
||||
this.mer_id = option.mer_id
|
||||
this.getList();
|
||||
this.data.product_id = option.product_id
|
||||
this.data.unique = option.unique
|
||||
},
|
||||
methods: {
|
||||
handleSearch() {
|
||||
let that = this
|
||||
that.loaded = false;
|
||||
that.where.page = 1;
|
||||
that.shopList = [];
|
||||
getOrderList(that.where, that.mer_id).then(res => {
|
||||
console.log(res);
|
||||
that.shopList = res.data.list
|
||||
console.log(that.shopList);
|
||||
})
|
||||
},
|
||||
getList: function() {
|
||||
if (this.loading || this.loaded) return;
|
||||
this.loading = true;
|
||||
getOrderList(this.where, this.mer_id).then(res => {
|
||||
console.log(res);
|
||||
this.shopList = res.data.list
|
||||
console.log(this.shopList);
|
||||
})
|
||||
},
|
||||
importshop(order_id, product_id, unique) {
|
||||
this.data.order_id = order_id
|
||||
this.data.order_product_id = product_id
|
||||
this.data.order_unique = unique
|
||||
console.log(this.data)
|
||||
this.show = true
|
||||
postImport(this.mer_id, this.data).then(res => {
|
||||
console.log(res);
|
||||
this.title = res.message
|
||||
this.$util.Tips({
|
||||
title: res.message
|
||||
})
|
||||
})
|
||||
},
|
||||
close() {
|
||||
this.show = false
|
||||
|
||||
},
|
||||
closeasd: function() {
|
||||
this.show = false
|
||||
getOrderList(this.where, this.mer_id).then(res => {
|
||||
console.log(res);
|
||||
this.shopList = res.data.list
|
||||
console.log(this.shopList);
|
||||
})
|
||||
},
|
||||
getback() {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.top {
|
||||
background-color: red;
|
||||
|
||||
.top-header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
|
||||
.search {
|
||||
padding: 17rpx 30rpx;
|
||||
|
||||
.search-content {
|
||||
width: 100%;
|
||||
height: 60rpx;
|
||||
padding: 0 30rpx;
|
||||
border-radius: 30rpx;
|
||||
background-color: #F5F5F5;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
margin-right: 10rpx;
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.input-placeholder {
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.input {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bgc_img {
|
||||
position: absolute;
|
||||
top: 30vh;
|
||||
left: 10vw;
|
||||
|
||||
image {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.txt {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.list {
|
||||
width: 690rpx;
|
||||
margin: 50px auto 0 auto;
|
||||
|
||||
.title {
|
||||
height: 84rpx;
|
||||
padding: 0 30rpx;
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
font-size: 32rpx;
|
||||
font-weight: 700;
|
||||
color: #282828;
|
||||
|
||||
.left-wrapper {
|
||||
.iconfont {
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
|
||||
.store-name {
|
||||
margin: 0 10rpx;
|
||||
}
|
||||
|
||||
.icon-xiangyou {
|
||||
font-size: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.sign {
|
||||
font-size: 24rpx;
|
||||
padding: 0 7rpx;
|
||||
height: 36rpx;
|
||||
margin-right: 15rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
background-color: #fff;
|
||||
margin: 5px 0 5px 0;
|
||||
|
||||
.item-info {
|
||||
padding: 0 30rpx;
|
||||
margin-top: 22rpx;
|
||||
|
||||
.pictrue {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
margin-bottom: 20rpx;
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 6rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 486rpx;
|
||||
font-size: 28rpx;
|
||||
color: #999;
|
||||
margin-top: 6rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
._left {
|
||||
width: 300rpx;
|
||||
color: #282828;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.name {
|
||||
width: 100rpx;
|
||||
color: #282828;
|
||||
|
||||
}
|
||||
|
||||
.money {
|
||||
text-align: right;
|
||||
float: right;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.event_name {
|
||||
display: inline-block;
|
||||
margin-right: 9rpx;
|
||||
color: #fff;
|
||||
font-size: 20rpx;
|
||||
padding: 0 8rpx;
|
||||
line-height: 30rpx;
|
||||
text-align: center;
|
||||
border-radius: 6rpx;
|
||||
}
|
||||
|
||||
.event_ship {
|
||||
font-size: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
|
||||
._order {
|
||||
font-size: 28rpx;
|
||||
margin: 5px 0 0 15px;
|
||||
}
|
||||
|
||||
.totalPrice {
|
||||
font-size: 26rpx;
|
||||
color: #282828;
|
||||
text-align: right;
|
||||
margin: 27rpx 0 0 30rpx;
|
||||
padding: 0 30rpx 30rpx 0;
|
||||
|
||||
|
||||
.money {
|
||||
font-size: 34rpx;
|
||||
font-weight: bold;
|
||||
color: rgb(233, 51, 35);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.totalfooter {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
position: relative;
|
||||
border-top: 1px solid #CCCCCC;
|
||||
|
||||
.bnt {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
width: 176rpx;
|
||||
height: 60rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50rpx;
|
||||
font-size: 27rpx;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
color: white;
|
||||
margin-left: 70%;
|
||||
margin-top: 5px;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
height: 107rpx;
|
||||
padding: 0 30rpx;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.event_price {
|
||||
margin: 0 0 50rpx 120rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.popen {
|
||||
position: absolute;
|
||||
top: 110px;
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
padding: 10px;
|
||||
|
||||
h4 {
|
||||
font-weight: 400;
|
||||
font-size: 20px;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.guige {
|
||||
margin: 10px 0 10px 20px;
|
||||
}
|
||||
|
||||
.shuru {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 18px;
|
||||
padding: 5px;
|
||||
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
margin: 10px;
|
||||
|
||||
.btn_l {
|
||||
padding: 5px;
|
||||
width: 100px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.btn_r {
|
||||
width: 100px;
|
||||
padding: 5px;
|
||||
border-radius: 4px;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 27px 27px 27px 27px;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -8,8 +8,10 @@
|
||||
<text class='phone'>{{addressInfo.phone}}</text>
|
||||
</view>
|
||||
<view>
|
||||
|
||||
<text class='default t-color'
|
||||
v-if="addressInfo.is_default">[默认]</text>{{addressInfo.province}}{{addressInfo.city}}{{addressInfo.district}}{{addressInfo.street || ''}}{{addressInfo.detail}}
|
||||
v-if="addressInfo.is_default">[默认]</text>{{addressInfo.province}}{{addressInfo.city}}{{addressInfo.district}}{{addressInfo.street || ''}}{{typeof(addressInfo.brigade)=='string'?addressInfo.brigade:addressInfo.brigade.name }}{{addressInfo.detail}}
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<navigator v-else :url="'/pages/users/user_address/index?cartId='+cartId" hover-class="none"
|
||||
@ -119,6 +121,7 @@
|
||||
<view class="boxs">
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>配送方式</view>
|
||||
|
||||
<view
|
||||
v-if="item.delivery_way.length == 2 && (item.order.allow_delivery && item.order.allow_take)"
|
||||
class='discount' @tap="openShowBox(item,index)">
|
||||
@ -188,6 +191,10 @@
|
||||
<view class="price" v-if="item.isTake == 0"><text>¥</text>{{ item.order.pay_price }}</view>
|
||||
<view class="price" v-if="item.isTake == 1"><text>¥</text>{{ item.order.org_price}}</view>
|
||||
</view>
|
||||
<view class="total" v-if="item.credit_buy == 1 && active == 4">
|
||||
实付价
|
||||
<view class="price"><text>¥</text>0.00</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -379,7 +386,11 @@
|
||||
<view class="footer_count">
|
||||
<view>
|
||||
合计:
|
||||
<text class='pColor'>¥{{totalPrice || 0}}</text>
|
||||
<text class='pColor' v-if="cartArr[4].payStatus == 1 && active == 4">¥0.00</text>
|
||||
<text class='pColor' v-else>¥{{totalPrice }}</text>
|
||||
</view>
|
||||
<view style="font-size: 14px;color: #F84221;" v-if="cartArr[4].payStatus == 1 && active == 4">
|
||||
可结算周期到期后再付款¥{{totalPrice}}
|
||||
</view>
|
||||
<view class="coupon_price" v-if="couponData.total_coupon > 0">
|
||||
优惠:¥ {{couponData.total_coupon}}
|
||||
@ -524,6 +535,12 @@
|
||||
value: 'offline',
|
||||
title: '线下支付',
|
||||
payStatus: 2,
|
||||
}, {
|
||||
"name": "先货后款",
|
||||
"icon": "tan-a-lujing17324",
|
||||
value: 'creditBuy',
|
||||
title: `结算周期:${this.settle_cycle}天 日利率:${this.interest_rate}%`,
|
||||
payStatus: '',
|
||||
},
|
||||
],
|
||||
tagStyle: {
|
||||
@ -638,6 +655,10 @@
|
||||
order_key: '',
|
||||
is_take: '',
|
||||
domain: HTTP_REQUEST_URL,
|
||||
product_type: '',
|
||||
interest_rate: '', //利率
|
||||
settle_cycle: '', // 周期
|
||||
type_id: '', //店铺类型
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -655,6 +676,8 @@
|
||||
onReady() {},
|
||||
mounted: function() {},
|
||||
onLoad: function(options) {
|
||||
this.type_id = options.type_id
|
||||
this.product_type = options.product_type
|
||||
this.seckillId = options.seckillId
|
||||
// #ifdef H5
|
||||
this.from = this.$wechat.isWeixin() ? 'weixin' : 'h5'
|
||||
@ -794,6 +817,7 @@
|
||||
getUserInfo() {
|
||||
getUserInfo().then(res => {
|
||||
this.userInfo = res.data
|
||||
|
||||
})
|
||||
},
|
||||
/*获取发票说明*/
|
||||
@ -989,6 +1013,9 @@
|
||||
*/
|
||||
getConfirm: function(address_id) {
|
||||
// console.log(address_id, 'address_id')
|
||||
// console.log(this.take,)
|
||||
// console.log(this.subCoupon,)
|
||||
// console.log(this.use_integral, )
|
||||
let that = this;
|
||||
// console.log(that.cartId.split(","))
|
||||
uni.showLoading({
|
||||
@ -1003,6 +1030,7 @@
|
||||
use_integral: that.use_integral
|
||||
}).then(res => {
|
||||
// 默认选中
|
||||
that.product_type=res.data.order_type
|
||||
that.is_take = false
|
||||
res.data.order.forEach(el => {
|
||||
if (el.order.isTake == 1) that.is_take = true
|
||||
@ -1053,6 +1081,16 @@
|
||||
that.allow_address = res.data.allow_address
|
||||
that.deliveryName = res.data.order_model == 0 ? '快递配送' : '虚拟发货'
|
||||
that.order_key = res.data.key
|
||||
that.cartArr[4].title =
|
||||
`结算周期:${res.data.order[0].settle_cycle}天 日利率:${res.data.order[0].interest_rate}%`
|
||||
console.log(res.data.order[0]);
|
||||
if (res.data.order[0].credit_buy == 1 && this.type_id == 12) {
|
||||
this.cartArr[4].payStatus = 1
|
||||
} else {
|
||||
this.cartArr[4].payStatus = 0
|
||||
}
|
||||
|
||||
|
||||
uni.getStorage({
|
||||
key: "invoice_Data",
|
||||
success: function(res) {
|
||||
@ -1080,6 +1118,7 @@
|
||||
if (that.addressId) {
|
||||
getAddressDetail(that.addressId).then(res => {
|
||||
res.data.is_default = parseInt(res.data.is_default);
|
||||
|
||||
that.addressInfo = res.data || {};
|
||||
that.addressId = res.data.address_id || 0;
|
||||
that.address.addressId = res.data.address_id || 0;
|
||||
@ -1087,8 +1126,12 @@
|
||||
real_name: res.data.real_name,
|
||||
phone: res.data.phone
|
||||
}
|
||||
console.log(that.addressId);
|
||||
this.$nextTick(() => {
|
||||
this.getConfirm(that.addressId);
|
||||
})
|
||||
})
|
||||
|
||||
} else {
|
||||
getAddressList().then(res => {
|
||||
that.addressInfo = res.data.list.length > 0 ? res.data.list[0] : {};
|
||||
@ -1106,10 +1149,10 @@
|
||||
}
|
||||
},
|
||||
payItem: function(e) {
|
||||
console.log(e);
|
||||
let that = this;
|
||||
let active = e;
|
||||
that.active = active;
|
||||
// console.log(this.active);
|
||||
that.animated = true;
|
||||
that.payType = that.cartArr[active].value;
|
||||
if (that.payType == 'weixin') {
|
||||
@ -1174,7 +1217,12 @@
|
||||
orderId = res.data.result.order_id,
|
||||
callback_key = res.data.result.pay_key,
|
||||
jsConfig = res.data.result.config,
|
||||
goPages = '/pages/order_pay_status/index?order_id=' + orderId + '&msg=' + res.message;
|
||||
// 暂不跳转
|
||||
goPages = '/pages/order_pay_status/index?order_id=' + orderId + '&msg=' + res.message +
|
||||
'&product_type=' + that.product_type,
|
||||
goPagesOrder = '/pages/order_details/stay?order_id=' + orderId +
|
||||
'&credit_buy=1&product_type=' + that.product_type;
|
||||
|
||||
that.orderPay = true;
|
||||
uni.hideLoading();
|
||||
switch (status) {
|
||||
@ -1186,7 +1234,7 @@
|
||||
title: res.message
|
||||
}, {
|
||||
tab: 5,
|
||||
url: goPages
|
||||
url: goPagesOrder
|
||||
});
|
||||
break;
|
||||
case 'success':
|
||||
@ -1200,10 +1248,10 @@
|
||||
break;
|
||||
case 'alipay':
|
||||
case "alipayQr":
|
||||
uni.navigateTo({
|
||||
url: '/pages/order_pay_back/index?keyCode=' + callback_key + '&url=' +
|
||||
jsConfig
|
||||
})
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/order_pay_back/index?keyCode=' + callback_key + '&url=' +
|
||||
// jsConfig
|
||||
// })
|
||||
return;
|
||||
break;
|
||||
// #ifndef MP
|
||||
@ -1240,8 +1288,10 @@
|
||||
provider: 'wxpay',
|
||||
orderInfo: jsConfig,
|
||||
success: (e) => {
|
||||
// 暂不跳转
|
||||
let url = '/pages/order_pay_status/index?order_id=' + orderId +
|
||||
'&msg=支付成功';
|
||||
'&msg=支付成功' + '&product_type=' + that.product_type;
|
||||
|
||||
return that.$util.Tips({
|
||||
title: '支付成功',
|
||||
icon: 'success'
|
||||
@ -1251,8 +1301,9 @@
|
||||
});
|
||||
},
|
||||
fail: (e) => {
|
||||
// 暂不跳转
|
||||
let url = '/pages/order_pay_status/index?order_id=' + orderId +
|
||||
'&msg=取消支付';
|
||||
'&msg=取消支付' + '&product_type=' + that.product_type;
|
||||
return that.$util.Tips({
|
||||
title: '取消支付',
|
||||
}, {
|
||||
@ -1261,8 +1312,9 @@
|
||||
});
|
||||
},
|
||||
complete: () => {
|
||||
// 暂不跳转
|
||||
let url = '/pages/order_pay_status/index?order_id=' + orderId +
|
||||
'&msg=取消支付';
|
||||
'&msg=取消支付' + '&product_type=' + that.product_type;
|
||||
return that.$util.Tips({
|
||||
title: '取消支付',
|
||||
}, {
|
||||
@ -1297,8 +1349,10 @@
|
||||
});
|
||||
},
|
||||
fail: function(e) {
|
||||
// 暂不跳转
|
||||
let pages = '/pages/order_pay_status/index?order_id=' +
|
||||
orderId + '&msg=取消支付'
|
||||
orderId + '&msg=取消支付' + '&product_type=' + that
|
||||
.product_type
|
||||
return that.$util.Tips({
|
||||
title: '取消支付'
|
||||
}, {
|
||||
@ -1322,10 +1376,11 @@
|
||||
case 'h5':
|
||||
let host = window.location.protocol + "//" + window.location.host;
|
||||
let url =
|
||||
`${host}/pages/order_pay_status/index?order_id=${orderId}&msg=${res.message}`
|
||||
`${host}/pages/order_pay_status/index?order_id=${orderId}&msg=${res.message}&product_type=${that.product_type}`
|
||||
let eUrl = encodeURIComponent(url)
|
||||
let jsurl = jsConfig.mweb_url || jsConfig.h5_url
|
||||
let locations = `${jsurl}&redirect_url=${eUrl}`
|
||||
// 暂不跳转
|
||||
setTimeout(() => {
|
||||
location.href = locations;
|
||||
}, 100);
|
||||
@ -1346,8 +1401,10 @@
|
||||
});
|
||||
},
|
||||
fail: (e) => {
|
||||
// 暂不跳转
|
||||
let pages = '/pages/order_pay_status/index?order_id=' +
|
||||
orderId + '&msg=支付失败'
|
||||
orderId + '&msg=支付失败' + '&product_type=' + that
|
||||
.product_type
|
||||
return that.$util.Tips({
|
||||
title: '支付失败'
|
||||
}, {
|
||||
@ -1357,8 +1414,11 @@
|
||||
},
|
||||
complete: () => {
|
||||
uni.hideLoading();
|
||||
// 暂不跳转
|
||||
let pages = '/pages/order_pay_status/index?order_id=' +
|
||||
orderId + '&msg=取消支付'
|
||||
orderId + '&msg=取消支付' + '&product_type=' + that
|
||||
.product_type
|
||||
|
||||
return that.$util.Tips({
|
||||
title: '取消支付'
|
||||
}, {
|
||||
@ -1370,8 +1430,10 @@
|
||||
break;
|
||||
// #endif
|
||||
default:
|
||||
// 暂不跳转
|
||||
let pages = '/pages/order_pay_status/index?order_id=' +
|
||||
orderId + '&msg=取消支付'
|
||||
orderId + '&msg=取消支付' + '&product_type=' + that.product_type
|
||||
|
||||
return that.$util.Tips({
|
||||
title: '取消支付'
|
||||
}, {
|
||||
@ -1429,7 +1491,6 @@
|
||||
this.virtualIndex = index;
|
||||
},
|
||||
SubOrder: function(e) {
|
||||
console.log(this.active);
|
||||
|
||||
let that = this,
|
||||
data = {};
|
||||
@ -1555,6 +1616,15 @@
|
||||
.Tips({
|
||||
title: '余额不足!'
|
||||
});
|
||||
|
||||
// 先货后款暂不可用
|
||||
// if (this.payType == 'creditBuy') {
|
||||
// uni.navigateTo({
|
||||
// ur
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
|
||||
uni.showLoading({
|
||||
title: '订单支付中',
|
||||
mask: true
|
||||
@ -1567,8 +1637,6 @@
|
||||
// #ifndef MP
|
||||
that.payment(data);
|
||||
// #endif
|
||||
|
||||
|
||||
},
|
||||
// 打开配送方式弹窗
|
||||
openShowBox(item, index) {
|
||||
|
@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<template>
|
||||
<view :style="viewColor">
|
||||
|
||||
<view class='my-order'>
|
||||
<view class='header'>
|
||||
|
||||
<view class='picTxt acea-row row-between-wrapper'>
|
||||
<view class='text'>
|
||||
<view class='name'>订单信息</view>
|
||||
@ -19,35 +21,38 @@
|
||||
<view class='nav acea-row row-around'>
|
||||
<view class='item' :class='orderStatus==-1 ? "on": ""' @click="statusClick(-1)">
|
||||
<view>全部</view>
|
||||
<view class='num'>{{orderData.all || 0}}</view>
|
||||
<view class='num'>{{orderData.orderCount || 0}}</view>
|
||||
</view>
|
||||
<view class='item' :class='orderStatus==0 ? "on": ""' @click="statusClick(0)">
|
||||
<view>待付款</view>
|
||||
<view class='num'>{{orderData.noPay || 0}}</view>
|
||||
</view>
|
||||
<view class='item' :class='orderStatus==1 ? "on": ""' @click="statusClick(1)">
|
||||
<view class='item' :class='orderStatus==2 ? "on": ""' @click="statusClick(2)">
|
||||
<view>待发货</view>
|
||||
<view class='num'>{{orderData.noPostage || 0}}</view>
|
||||
</view>
|
||||
<view class='item' :class='orderStatus==2 ? "on": ""' @click="statusClick(2)">
|
||||
<view class='item' :class='orderStatus==3 ? "on": ""' @click="statusClick(3)">
|
||||
<view>待收货</view>
|
||||
<view class='num '>{{orderData.noDeliver || 0}}</view>
|
||||
</view>
|
||||
<view class='item' :class='orderStatus==3 ? "on": ""' @click="statusClick(3)">
|
||||
<view class='item' :class='orderStatus==4 ? "on": ""' @click="statusClick(4)">
|
||||
<view>待评价</view>
|
||||
<view class='num'>{{orderData.noComment || 0}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<!--定金预售订单-->
|
||||
<view v-if="presellProList.length > 0" class="event_container">
|
||||
<navigator class="acea-row row-between" url="/pages/users/presell_order_list/index" hover-class='none' >
|
||||
<navigator class="acea-row row-between" url="/pages/users/presell_order_list/index" hover-class='none'>
|
||||
<view class="info">
|
||||
<view class="title">预售尾款订单转到这里了!</view>
|
||||
<view class="desc">有 <text class="t-color">{{ presellOrderCount }}</text> 笔预售尾款订单待付款,请点击查看</view>
|
||||
<view class="desc">有 <text class="t-color">{{ presellOrderCount }}</text> 笔预售尾款订单待付款,请点击查看
|
||||
</view>
|
||||
</view>
|
||||
<view class="photo acea-row row-between">
|
||||
<view class='picture'>
|
||||
<image :src='(presellProList[0].orderProduct[0].cart_info.productAttr && presellProList[0].orderProduct[0].cart_info.productAttr.image) || presellProList[0].orderProduct[0].cart_info.product.image'></image>
|
||||
<image
|
||||
:src='(presellProList[0].orderProduct[0].cart_info.productAttr && presellProList[0].orderProduct[0].cart_info.productAttr.image) || presellProList[0].orderProduct[0].cart_info.product.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class="more_btn"><text class="iconfont icon-gengduo3"></text></view>
|
||||
</view>
|
||||
@ -63,7 +68,9 @@
|
||||
<view class="acea-row row-middle left-wrapper">
|
||||
{{item.group_order_sn}}
|
||||
</view>
|
||||
<view class='t-color'>{{ item.orderList[0].activity_type === 2 && item.orderList[0].orderProduct[0].cart_info.productPresell.presell_type ==2 ? "待付定金" : "待付款" }}</view>
|
||||
<view class='t-color'>
|
||||
{{ item.orderList[0].activity_type === 2 && item.orderList[0].orderProduct[0].cart_info.productPresell.presell_type ==2 ? "待付定金" : "待付款" }}
|
||||
</view>
|
||||
</view>
|
||||
<view v-for="(order,j) in item.orderList" :key="order.order_id+j">
|
||||
<!--预售-->
|
||||
@ -71,28 +78,36 @@
|
||||
<block v-for="(goods,g) in order.orderProduct">
|
||||
<view class='item-info acea-row row-between row-top'>
|
||||
<view class='pictrue'>
|
||||
<image :src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'></image>
|
||||
<image
|
||||
:src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class='text acea-row row-between'>
|
||||
<view class='name line1'>
|
||||
<text class="event_name event_bg">预售</text><text>{{goods.cart_info.product.store_name}}</text>
|
||||
<text
|
||||
class="event_name event_bg">预售</text><text>{{goods.cart_info.product.store_name}}</text>
|
||||
<view class="event_ship event_color">发货时间:
|
||||
<!--全款预售-->
|
||||
<text v-if="goods.cart_info.productPresell.presell_type === 1">
|
||||
<text
|
||||
v-if="goods.cart_info.productPresell.presell_type === 1">
|
||||
{{ goods.cart_info.productPresell.delivery_type === 1 ? '支付成功后' : '预售结束后' }}{{ goods.cart_info.productPresell.delivery_day }}天内
|
||||
</text>
|
||||
<!--定金预售-->
|
||||
<text v-if="goods.cart_info.productPresell.presell_type === 2">{{ goods.cart_info.productPresell.delivery_type === 1 ? '支付尾款后' : '预售结束后' }}{{ goods.cart_info.productPresell.delivery_day }}天内</text>
|
||||
<text
|
||||
v-if="goods.cart_info.productPresell.presell_type === 2">{{ goods.cart_info.productPresell.delivery_type === 1 ? '支付尾款后' : '预售结束后' }}{{ goods.cart_info.productPresell.delivery_day }}天内</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class='money'>
|
||||
<view>¥{{goods.cart_info.productPresellAttr.presell_price}}</view>
|
||||
<view>¥{{goods.cart_info.productPresellAttr.presell_price}}
|
||||
</view>
|
||||
<view>x{{goods.product_num}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="goods.cart_info.productPresell.presell_type === 2" class="event_price">
|
||||
<view v-if="goods.cart_info.productPresell.presell_type === 2"
|
||||
class="event_price">
|
||||
定金待支付 <text class="t-color">¥{{ order.pay_price }}</text>
|
||||
尾款待支付 <text class="t-color">¥{{ order.presellOrder.pay_price }}</text>
|
||||
尾款待支付 <text
|
||||
class="t-color">¥{{ order.presellOrder.pay_price }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
@ -101,14 +116,18 @@
|
||||
<block v-for="(goods,g) in order.orderProduct">
|
||||
<view class='item-info acea-row row-between row-top'>
|
||||
<view class='pictrue'>
|
||||
<image :src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'></image>
|
||||
<image
|
||||
:src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class='text acea-row row-between'>
|
||||
|
||||
<view class='name line2'>{{goods.cart_info.product.store_name}}</view>
|
||||
<view class='name line2'>{{goods.cart_info.product.store_name}}
|
||||
</view>
|
||||
|
||||
<view class='money' v-if="item.orderList[0].activity_type == 4">
|
||||
<view v-if="goods.cart_info.activeSku">¥{{goods.cart_info.activeSku.active_price}}</view>
|
||||
<view v-if="goods.cart_info.activeSku">
|
||||
¥{{goods.cart_info.activeSku.active_price}}</view>
|
||||
<view>x{{goods.product_num}}</view>
|
||||
</view>
|
||||
<view v-else class='money'>
|
||||
@ -120,11 +139,13 @@
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view class='totalPrice' v-if="item.orderList[0].activity_type !== 2">共{{item.total_num || 0}}件商品,总金额
|
||||
<view class='totalPrice' v-if="item.orderList[0].activity_type !== 2">
|
||||
共{{item.total_num || 0}}件商品,总金额
|
||||
<text class='money p-color'>¥{{item.pay_price}}</text>
|
||||
</view>
|
||||
<view class='bottom acea-row row-right row-middle'>
|
||||
<view class='bnt b-color' @click.stop='goPay(item.pay_price,item.group_order_id)'>立即付款</view>
|
||||
<view class='bnt b-color' @click.stop='goPay(item.pay_price,item.group_order_id)'>
|
||||
立即付款</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -139,32 +160,46 @@
|
||||
<view class="store-name">{{item.merchant.mer_name}}</view>
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</view>
|
||||
<view v-if="item.status == 0" class='t-color'>
|
||||
<text v-if="item.order_type==1">{{item.takeOrderCount > 0 ? '部分核销' : '待核销'}}</text>
|
||||
<text v-else>待发货</text>
|
||||
|
||||
<view v-if="item.order_status ==7" class='t-color'>
|
||||
<text
|
||||
v-if="item.order_type==1">{{item.takeOrderCount > 0 ? '部分核销' : '待核销'}}</text>
|
||||
<!-- <text v-else>待发货</text> -->
|
||||
</view>
|
||||
<view v-if="item.status == 1" class='t-color'>待收货</view>
|
||||
<view v-if="item.status == 2" class='t-color'>待评价</view>
|
||||
<view v-if="item.status == 3" class='t-color'>已完成</view>
|
||||
<view v-if="item.status == -1" class='t-color'>已退款</view>
|
||||
<view v-if="item.order_status == 2 && item.pay_type !=3" class='t-color'>待发货</view>
|
||||
<view v-if="item.order_status == 1 && item.pay_type==3" class='t-color'>待付款</view>
|
||||
<view v-if="item.order_status == 3" class='t-color'>待收货</view>
|
||||
<view v-if="item.order_status == 4 && item.pay_type !== 8" class='t-color'>待评价</view>
|
||||
<view v-if="item.order_status == 5" class='t-color'>已完成</view>
|
||||
<view v-if="item.order_status == 6" class='t-color'>已退款</view>
|
||||
<view v-if="item.order_status == 8 && item.pay_type == 8" class='t-color'>待结算</view>
|
||||
|
||||
</view>
|
||||
<view v-if="item.activity_type === 2">
|
||||
<view class='item-info acea-row row-between row-top' v-for="(goods,index) in item.orderProduct" :key="index">
|
||||
<view class='item-info acea-row row-between row-top'
|
||||
v-for="(goods,index) in item.orderProduct" :key="index">
|
||||
<view class='pictrue'>
|
||||
<image :src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'></image>
|
||||
<image
|
||||
:src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class='text acea-row row-between'>
|
||||
<view class='name '>
|
||||
<view class='name' :class="item.status === 0 ? 'line1' : 'line2'">
|
||||
<text class="event_name event_bg">预售</text><text>{{goods.cart_info.product.store_name}}</text>
|
||||
<text
|
||||
class="event_name event_bg">预售</text><text>{{goods.cart_info.product.store_name}}</text>
|
||||
<view v-if="item.status == 0" class="event_ship event_color">发货时间:
|
||||
<!--全款预售-->
|
||||
<text v-if="goods.cart_info.productPresell.presell_type === 1">{{ goods.cart_info.productPresell.delivery_type === 1 ? '支付成功后' : '预售结束后' }}{{ goods.cart_info.productPresell.delivery_day }}天内</text>
|
||||
<text
|
||||
v-if="goods.cart_info.productPresell.presell_type === 1">{{ goods.cart_info.productPresell.delivery_type === 1 ? '支付成功后' : '预售结束后' }}{{ goods.cart_info.productPresell.delivery_day }}天内</text>
|
||||
<!--定金预售-->
|
||||
<text v-if="goods.cart_info.productPresell.presell_type === 2">{{ goods.cart_info.productPresell.delivery_type === 1 ? '支付尾款后' : '预售结束后' }}{{ goods.cart_info.productPresell.delivery_day }}天内</text>
|
||||
<text
|
||||
v-if="goods.cart_info.productPresell.presell_type === 2">{{ goods.cart_info.productPresell.delivery_type === 1 ? '支付尾款后' : '预售结束后' }}{{ goods.cart_info.productPresell.delivery_day }}天内</text>
|
||||
</view>
|
||||
</view>
|
||||
<view style="margin-top: 10rpx;" class="t-color">{{goods.is_refund==1?'退款中':goods.is_refund==2?'部分退款':goods.is_refund==3?'全部退款':''}}</view>
|
||||
<view style="margin-top: 10rpx;" class="t-color">
|
||||
{{goods.is_refund==1?'退款中':goods.is_refund==2?'部分退款':goods.is_refund==3?'全部退款':''}}
|
||||
</view>
|
||||
</view>
|
||||
<view class='money'>
|
||||
<view>¥{{goods.cart_info.productPresellAttr.presell_price}}</view>
|
||||
@ -174,23 +209,30 @@
|
||||
</view>
|
||||
</view>
|
||||
<view v-else>
|
||||
<view class='item-info acea-row row-between row-top' v-for="(goods,index) in item.orderProduct" :key="index">
|
||||
<view class='item-info acea-row row-between row-top'
|
||||
v-for="(goods,index) in item.orderProduct" :key="index">
|
||||
<view class='pictrue'>
|
||||
<image :src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'></image>
|
||||
<image
|
||||
:src='(goods.cart_info.productAttr && goods.cart_info.productAttr.image) || goods.cart_info.product.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class='text acea-row row-between'>
|
||||
<view class='name '>
|
||||
<view class='name line2'>
|
||||
<text>{{goods.cart_info.product.store_name}}</text>
|
||||
</view>
|
||||
<view style="margin-top: 10rpx;" class="t-color">{{goods.is_refund==1?'退款中':goods.is_refund==2?'部分退款':goods.is_refund==3?'全部退款':''}}</view>
|
||||
<view style="margin-top: 10rpx;" class="t-color">
|
||||
{{goods.is_refund==1?'退款中':goods.is_refund==2?'部分退款':goods.is_refund==3?'全部退款':''}}
|
||||
</view>
|
||||
</view>
|
||||
<view class='money' v-if="item.activity_type == 3">
|
||||
<view v-if="goods.cart_info.productAssistAttr">¥{{goods.cart_info.productAssistAttr.assist_price}}</view>
|
||||
<view v-if="goods.cart_info.productAssistAttr">
|
||||
¥{{goods.cart_info.productAssistAttr.assist_price}}</view>
|
||||
<view>x{{goods.product_num}}</view>
|
||||
</view>
|
||||
<view class='money' v-else-if="item.activity_type == 4">
|
||||
<view v-if="goods.cart_info.activeSku">¥{{goods.cart_info.activeSku.active_price}}</view>
|
||||
<view v-if="goods.cart_info.activeSku">
|
||||
¥{{goods.cart_info.activeSku.active_price}}</view>
|
||||
<view>x{{goods.product_num}}</view>
|
||||
</view>
|
||||
<view class='money' v-else>
|
||||
@ -208,27 +250,35 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class='bottom acea-row row-right row-middle'>
|
||||
<view v-if="!item.receipt && item.status != -1" class='bnt cancelBnt' @click.stop='applyInvoice(item.order_id)'>申请开票</view>
|
||||
<!-- <view v-if="!item.receipt && item.status != -1" class='bnt cancelBnt'
|
||||
@click.stop='applyInvoice(item.order_id)'>申请开票</view> -->
|
||||
<block v-if="item.status == 0 || item.status == 9 || item.status == -1">
|
||||
<view class='bnt b-color' @click='goOrderDetails(item.order_id)'>查看详情</view>
|
||||
</block>
|
||||
<block v-if="item.status == 1">
|
||||
<view class='bnt cancelBnt' v-if="item.delivery_type == 1 || item.delivery_type == 2" @click='goOrderDetails(item.order_id)'>查看物流</view>
|
||||
<view class='bnt b-color' @tap='confirmOrder(item,index)'>确认收货</view>
|
||||
<view class='bnt cancelBnt'
|
||||
v-if="item.delivery_type == 1 || item.delivery_type == 2"
|
||||
@click='goOrderDetails(item.order_id)'>查看物流</view>
|
||||
<view class='bnt b-color' @tap='confirmOrder(item,index)'>取件码</view>
|
||||
</block>
|
||||
<block v-if="item.status == 2">
|
||||
<navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id" class='bnt colorBnt' hover-class="none">
|
||||
<navigator v-if="community_status == 1 && !item.community_id"
|
||||
:url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id"
|
||||
class='bnt colorBnt' hover-class="none">
|
||||
<text class="iconfont icon-fabu"></text>
|
||||
发布种草
|
||||
</navigator>
|
||||
<view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价</view>
|
||||
<view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价
|
||||
</view>
|
||||
</block>
|
||||
<block v-if="item.status == 3">
|
||||
<view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-if="item.activity_type == 2 || item.activity_type == 3 || item.activity_type == 10">查看详情</view>
|
||||
<navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id" class='bnt colorBnt' hover-class="none">
|
||||
<view class='bnt b-color' @click='goOrderDetails(item.order_id)'
|
||||
v-if="item.activity_type == 2 || item.activity_type == 3 || item.activity_type == 10">
|
||||
查看详情</view>
|
||||
<!-- <navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id" class='bnt colorBnt' hover-class="none">
|
||||
<text class="iconfont icon-fabu"></text>
|
||||
发布种草
|
||||
</navigator>
|
||||
</navigator> -->
|
||||
<view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-else>再次购买</view>
|
||||
</block>
|
||||
</view>
|
||||
@ -245,12 +295,13 @@
|
||||
</view>
|
||||
<home></home>
|
||||
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
|
||||
<payment :payMode='payMode' :pay_close="pay_close" @onChangeFun='onChangeFun' :order_id="pay_order_id" :totalPrice='totalPrice'></payment>
|
||||
<payment :payMode='payMode' :pay_close="pay_close" @onChangeFun='onChangeFun' :order_id="pay_order_id"
|
||||
:totalPrice='totalPrice'></payment>
|
||||
<addInvoicing ref="addInvoicing" @changeInvoiceClose="changeInvoiceClose" :invoice='invoice'></addInvoicing>
|
||||
</view>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script>
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
@ -274,15 +325,23 @@
|
||||
import {
|
||||
getUserInfo
|
||||
} from '@/api/user.js';
|
||||
import {openOrderSubscribe} from '@/utils/SubscribeMessage.js';
|
||||
import {
|
||||
openOrderSubscribe
|
||||
} from '@/utils/SubscribeMessage.js';
|
||||
import payment from '@/components/payment';
|
||||
import home from '@/components/home/index.vue';
|
||||
import addInvoicing from '@/components/addInvoicing';
|
||||
import { mapGetters } from "vuex";
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
import authorize from '@/components/Authorize';
|
||||
import emptyPage from '@/components/emptyPage.vue';
|
||||
import { configMap } from '@/utils'
|
||||
import { HTTP_REQUEST_URL } from '@/config/app';
|
||||
import {
|
||||
configMap
|
||||
} from '@/utils'
|
||||
import {
|
||||
HTTP_REQUEST_URL
|
||||
} from '@/config/app';
|
||||
export default {
|
||||
components: {
|
||||
payment,
|
||||
@ -341,14 +400,14 @@
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['isLogin','viewColor']),
|
||||
...mapGetters(['isLogin', 'viewColor']),
|
||||
...configMap(['hide_mer_status', 'community_status', 'alipay_open', 'yue_pay_status']),
|
||||
},
|
||||
watch: {
|
||||
alipay_open(n){
|
||||
alipay_open(n) {
|
||||
this.payMode[1].payStatus = n
|
||||
},
|
||||
yue_pay_status(n){
|
||||
yue_pay_status(n) {
|
||||
this.payMode[2].payStatus = n
|
||||
}
|
||||
},
|
||||
@ -360,22 +419,30 @@
|
||||
this.getOrderData();
|
||||
this.getOrderList();
|
||||
this.getUserInfo();
|
||||
this.getpreSellOrderList();
|
||||
// this.getpreSellOrderList();
|
||||
} else {
|
||||
this.isAuto = true;
|
||||
this.isShowAuth = true
|
||||
}
|
||||
},
|
||||
onReady(){
|
||||
},
|
||||
mounted: function() {
|
||||
},
|
||||
onReady() {},
|
||||
mounted: function() {},
|
||||
methods: {
|
||||
// 后退
|
||||
returns() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
// 首页
|
||||
goHome() {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
});
|
||||
},
|
||||
// 去商铺
|
||||
goMall(item){
|
||||
if(this.hide_mer_status == 0){
|
||||
goMall(item) {
|
||||
if (this.hide_mer_status == 0) {
|
||||
uni.navigateTo({
|
||||
url:'/pages/store/home/index?id='+item.mer_id
|
||||
url: '/pages/store/home/index?id=' + item.mer_id
|
||||
})
|
||||
}
|
||||
},
|
||||
@ -421,7 +488,9 @@
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function(options) {
|
||||
|
||||
if (options.status) this.orderStatus = options.status;
|
||||
|
||||
},
|
||||
/**
|
||||
* 获取订单统计数据
|
||||
@ -429,7 +498,9 @@
|
||||
*/
|
||||
getOrderData: function() {
|
||||
let that = this;
|
||||
orderData().then(res => {
|
||||
orderData({
|
||||
product_type: 0
|
||||
}).then(res => {
|
||||
that.$set(that, 'orderData', res.data);
|
||||
})
|
||||
},
|
||||
@ -493,7 +564,9 @@
|
||||
* 去订单详情
|
||||
*/
|
||||
goOrderDetails: function(order_id) {
|
||||
|
||||
let self = this
|
||||
|
||||
if (!order_id) return that.$util.Tips({
|
||||
title: '缺少订单号无法查看订单详情'
|
||||
});
|
||||
@ -501,12 +574,19 @@
|
||||
uni.showLoading({
|
||||
title: '正在加载',
|
||||
})
|
||||
|
||||
openOrderSubscribe().then(() => {
|
||||
|
||||
uni.hideLoading();
|
||||
if (self.orderStatus == 0) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/order_details/stay?order_id=' + order_id
|
||||
})
|
||||
} else if (self.orderStatus == 1) {
|
||||
|
||||
uni.navigateTo({
|
||||
url: `/pages/order_details/stay?order_id=${order_id}&orderStatus=${self.orderStatus}`
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/order_details/index?order_id=' + order_id
|
||||
@ -521,6 +601,13 @@
|
||||
uni.navigateTo({
|
||||
url: '/pages/order_details/stay?order_id=' + order_id
|
||||
})
|
||||
} else if (self.orderStatus == 1) {
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/order_details/index?order_id=' + order_id
|
||||
// })
|
||||
uni.navigateTo({
|
||||
url: '/pages/order_details/index?order_id=' + order_id
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/order_details/index?order_id=' + order_id
|
||||
@ -564,6 +651,7 @@
|
||||
*/
|
||||
statusClick: function(status) {
|
||||
if (status == this.orderStatus) return;
|
||||
|
||||
this.orderStatus = status;
|
||||
this.loadend = false;
|
||||
this.loading = false;
|
||||
@ -580,18 +668,20 @@
|
||||
if (that.loading) return;
|
||||
that.loading = true;
|
||||
that.loadTitle = "加载更多";
|
||||
if(that.isReady){
|
||||
if (that.isReady) {
|
||||
that.isReady = false
|
||||
if (that.orderStatus == 0) {
|
||||
groupOrderList({
|
||||
page: that.page,
|
||||
limit: that.limit,
|
||||
product_type: 0
|
||||
}).then(res => {
|
||||
that.isReady = true;
|
||||
let list = res.data.list || [];
|
||||
let loadend = list.length < that.limit;
|
||||
// console.log(that.orderList)
|
||||
that.orderList = that.page == 1 ? list : that.$util.SplitArray(list, that.orderList);
|
||||
that.orderList = that.page == 1 ? list : that.$util.SplitArray(list, that
|
||||
.orderList);
|
||||
that.$set(that, 'orderList', that.orderList);
|
||||
// console.log(that.orderList)
|
||||
that.getProductCount();
|
||||
@ -601,14 +691,22 @@
|
||||
that.page = that.page + 1
|
||||
})
|
||||
} else {
|
||||
let arr;
|
||||
if (that.orderStatus > -1) {
|
||||
arr = that.orderStatus
|
||||
} else {
|
||||
arr = ''
|
||||
}
|
||||
getOrderList({
|
||||
status: that.orderStatus - 1,
|
||||
status: arr,
|
||||
page: that.page,
|
||||
limit: that.limit,
|
||||
product_type: 0
|
||||
}).then(res => {
|
||||
let list = res.data.list || [];
|
||||
let loadend = list.length < that.limit;
|
||||
that.orderList = that.page == 1 ? list : that.$util.SplitArray(list, that.orderList);
|
||||
that.orderList = that.page == 1 ? list : that.$util.SplitArray(list, that
|
||||
.orderList);
|
||||
that.$set(that, 'orderList', that.orderList);
|
||||
that.getProductCount();
|
||||
that.loadend = loadend;
|
||||
@ -641,15 +739,15 @@
|
||||
/**
|
||||
* 获取单个订单商品数量
|
||||
*/
|
||||
getProductCount: function(){
|
||||
if(this.orderStatus !== 0){
|
||||
this.orderList.forEach((item,i) => {
|
||||
getProductCount: function() {
|
||||
if (this.orderStatus !== 0) {
|
||||
this.orderList.forEach((item, i) => {
|
||||
let orderNum = 0
|
||||
if(item.orderProduct){
|
||||
if (item.orderProduct) {
|
||||
item.orderProduct.forEach((val) => {
|
||||
orderNum += val.product_num
|
||||
})
|
||||
this.orderList[i]['orderNum']=orderNum;
|
||||
this.orderList[i]['orderNum'] = orderNum;
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -676,28 +774,40 @@
|
||||
},
|
||||
// 确认收货
|
||||
confirmOrder: function(item, index) {
|
||||
let that = this;
|
||||
uni.showModal({
|
||||
title: '确认收货',
|
||||
content: '为保障权益,请收到货确认无误后,再确认收货',
|
||||
title: '取件码',
|
||||
content: item.logistics_code,
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
orderTake(item.order_id).then(res => {
|
||||
return that.$util.Tips({
|
||||
title: '操作成功',
|
||||
icon: 'success'
|
||||
}, function() {
|
||||
that.orderList.splice(index, 1);
|
||||
that.getOrderData();
|
||||
});
|
||||
}).catch(err => {
|
||||
return that.$util.Tips({
|
||||
title: err
|
||||
});
|
||||
})
|
||||
// console.log('用户点击确定');
|
||||
} else if (res.cancel) {
|
||||
// console.log('用户点击取消');
|
||||
}
|
||||
}
|
||||
})
|
||||
// let that = this;
|
||||
// uni.showModal({
|
||||
// title: '确认收货',
|
||||
// content: '为保障权益,请收到货确认无误后,再确认收货',
|
||||
// success: function(res) {
|
||||
// if (res.confirm) {
|
||||
// orderTake(item.order_id).then(res => {
|
||||
// return that.$util.Tips({
|
||||
// title: '操作成功',
|
||||
// icon: 'success'
|
||||
// }, function() {
|
||||
|
||||
// that.orderList.splice(index, 1);
|
||||
// that.getOrderData();
|
||||
// });
|
||||
// }).catch(err => {
|
||||
// return that.$util.Tips({
|
||||
// title: err
|
||||
// });
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
},
|
||||
/*申请开票*/
|
||||
applyInvoice(order_id) {
|
||||
@ -709,13 +819,13 @@
|
||||
},
|
||||
// 关闭发票弹窗
|
||||
changeInvoiceClose: function(data) {
|
||||
if(data)this.getInvoiceData(data);
|
||||
if (data) this.getInvoiceData(data);
|
||||
this.$set(this.invoice, 'invoice', false);
|
||||
},
|
||||
// 开票回调
|
||||
getInvoiceData(data) {
|
||||
let that = this
|
||||
applyInvoiceApi(that.invoice_order_id,data).then(res => {
|
||||
applyInvoiceApi(that.invoice_order_id, data).then(res => {
|
||||
return that.$util.Tips({
|
||||
title: res.message,
|
||||
});
|
||||
@ -730,17 +840,34 @@
|
||||
this.getOrderList();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.head-menu {
|
||||
height: 50rpx;
|
||||
padding-left: 20rpx;
|
||||
line-height: 50rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
<style scoped lang="scss">
|
||||
.my-order .header {
|
||||
height: 260rpx;
|
||||
padding: 0 30rpx;
|
||||
background-color: var(--view-theme);
|
||||
}
|
||||
.t-color{color: var(--view-theme);}
|
||||
.p-color{color: var(--view-priceColor);}
|
||||
.b-color{background-color:var(--view-theme);}
|
||||
|
||||
.t-color {
|
||||
color: var(--view-theme);
|
||||
}
|
||||
|
||||
.p-color {
|
||||
color: var(--view-priceColor);
|
||||
}
|
||||
|
||||
.b-color {
|
||||
background-color: var(--view-theme);
|
||||
}
|
||||
|
||||
.my-order .header .picTxt {
|
||||
height: 190rpx;
|
||||
}
|
||||
@ -859,13 +986,16 @@
|
||||
width: 320rpx;
|
||||
color: #282828;
|
||||
}
|
||||
.event_bg{
|
||||
|
||||
.event_bg {
|
||||
background: #FF7F00;
|
||||
}
|
||||
.event_color{
|
||||
|
||||
.event_color {
|
||||
color: #FF7F00;
|
||||
}
|
||||
.my-order .list .item .event_name{
|
||||
|
||||
.my-order .list .item .event_name {
|
||||
display: inline-block;
|
||||
margin-right: 9rpx;
|
||||
color: #fff;
|
||||
@ -875,13 +1005,16 @@
|
||||
text-align: center;
|
||||
border-radius: 6rpx;
|
||||
}
|
||||
.my-order .list .item .event_ship{
|
||||
|
||||
.my-order .list .item .event_ship {
|
||||
font-size: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.my-order .list .event_price{
|
||||
|
||||
.my-order .list .event_price {
|
||||
margin: 0 0 50rpx 120rpx;
|
||||
}
|
||||
|
||||
.my-order .list .item .item-info .text .money {
|
||||
text-align: right;
|
||||
}
|
||||
@ -920,14 +1053,17 @@
|
||||
border: 1px solid #ddd;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.my-order .list .item .bottom .bnt.colorBnt {
|
||||
border: 1px solid var(--view-theme);
|
||||
color: var(--view-theme);
|
||||
}
|
||||
.my-order .list .item .bottom .bnt .icon-fabu{
|
||||
|
||||
.my-order .list .item .bottom .bnt .icon-fabu {
|
||||
font-size: 26rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.my-order .list .item .bottom .bnt~.bnt {
|
||||
margin-left: 17rpx;
|
||||
}
|
||||
@ -947,7 +1083,8 @@
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.event_container{
|
||||
|
||||
.event_container {
|
||||
width: 690rpx;
|
||||
background-image: url(../static/images/presell_orderBg.png);
|
||||
background-size: cover;
|
||||
@ -955,30 +1092,37 @@
|
||||
margin: 20rpx auto;
|
||||
padding: 26rpx 30rpx;
|
||||
border-radius: 16rpx;
|
||||
.info{
|
||||
|
||||
.info {
|
||||
width: 420rpx;
|
||||
.title{
|
||||
|
||||
.title {
|
||||
color: #282828;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.desc{
|
||||
|
||||
.desc {
|
||||
color: #999;
|
||||
font-size: 24rpx;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
}
|
||||
.photo{
|
||||
|
||||
.photo {
|
||||
width: 180rpx;
|
||||
.picture{
|
||||
|
||||
.picture {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
image{
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
}
|
||||
.more_btn{
|
||||
|
||||
.more_btn {
|
||||
color: #fff;
|
||||
background: #F97E3B;
|
||||
width: 40rpx;
|
||||
@ -988,7 +1132,8 @@
|
||||
line-height: 40rpx;
|
||||
position: relative;
|
||||
top: 40rpx;
|
||||
text{
|
||||
|
||||
text {
|
||||
font-size: 20rpx;
|
||||
}
|
||||
}
|
||||
@ -1009,4 +1154,4 @@
|
||||
font-size: 23rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
1132
pages/users/order_list/indexCopy.vue
Normal file
1182
pages/users/order_list/order.vue
Normal file
@ -110,11 +110,13 @@
|
||||
<view class="store-name">{{item.merchant.mer_name}}</view>
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</view>
|
||||
<view v-if="item.status == 0" class='t-color'>待发货</view>
|
||||
<view v-if="item.status == 0 && item.pay_type !=3" class='t-color'>待发货</view>
|
||||
<view v-if="item.status == 0 && item.pay_type==3" class='t-color'>待付款</view>
|
||||
<view v-if="item.status == 1" class='t-color'>待收货</view>
|
||||
<view v-if="item.status == 2" class='t-color'>待评价</view>
|
||||
<view v-if="item.status == 2 &&item.pay_type !==8" class='t-color'>待评价</view>
|
||||
<view v-if="item.status == 3" class='t-color'>已完成</view>
|
||||
<view v-if="item.status == -1" class='t-color'>已退款</view>
|
||||
<view v-if="item.status == 2 &&item.pay_type ==8" class='t-color'>待结算</view>
|
||||
</view>
|
||||
<view v-if="item.activity_type === 2">
|
||||
<view class='item-info acea-row row-between row-top' v-for="(goods,index) in item.orderProduct" :key="index">
|
||||
|
491
pages/users/payment/payment.vue
Normal file
@ -0,0 +1,491 @@
|
||||
<template>
|
||||
<view class="center">
|
||||
|
||||
|
||||
<view class='wrapper'>
|
||||
<view class='item'>
|
||||
<view>支付方式</view>
|
||||
<view class='list'>
|
||||
<!-- #ifdef H5 -->
|
||||
<view class='payItem acea-row row-middle' :class='active==index ?"on":""' @tap='payItem(index)'
|
||||
v-for="(item,index) in cartArr" :key='index' v-if="item.payStatus==1">
|
||||
<view class='name acea-row row-center-wrapper'>
|
||||
<view class='iconfont animated'
|
||||
:class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view>
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view class='tip'>
|
||||
{{item.title}}
|
||||
<block v-if="item.value == 'balance'">
|
||||
{{userInfo.now_money}}
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP || APP-PLUS -->
|
||||
<view class='payItem acea-row row-middle' :class='active==index ?"on":""' @tap='payItem(index)'
|
||||
v-for="(item,index) in cartArr" :key='index' v-if="item.payStatus==1">
|
||||
<view class='name acea-row row-center-wrapper'>
|
||||
<view class='iconfont animated'
|
||||
:class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view>
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view class='tip'>
|
||||
{{item.title}}
|
||||
<block v-if="item.value == 'balance'">
|
||||
{{userInfo.now_money}}
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="settel">
|
||||
<view class='settel-t'>
|
||||
<view>商品总价:</view>
|
||||
<view class='conter'>¥ {{couponData.total_price}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="settel" v-if="(this.be_overdue == 0 || this.be_overdue < 0) &&couponData.total_postage>0">
|
||||
<view class='settel-t'>
|
||||
<view>利息合计:</view>
|
||||
<view class="conter">
|
||||
<view class='con_text'>¥ {{couponData.total_postage}}</view>
|
||||
<view class='con_text' style="color: #F84221;" v-if="couponData.pay_type == 8">
|
||||
已逾期{{this.be_overday}}天</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class='footer acea-row row-between-wrapper'>
|
||||
<view class="footer_count">
|
||||
<view>
|
||||
合计:
|
||||
<text class='conter' v-if="cartArr[4].payStatus == 1">¥0.00</text>
|
||||
<text class='conter' v-else>¥{{couponData.pay_price}}</text>
|
||||
</view>
|
||||
<!-- <view style="font-size: 14px;color: #F84221;" v-if="this.be_overdue == 0 || this.be_overdue < 0 ">
|
||||
可结算周期到期后再付款¥{{totalPrice}}
|
||||
</view> -->
|
||||
</view>
|
||||
<view class='settlement' @tap="SubOrder">
|
||||
提交订单
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
|
||||
getUserInfo,
|
||||
|
||||
} from '@/api/user.js';
|
||||
import {
|
||||
groupOrderDetail,
|
||||
orderPay
|
||||
} from '@/api/order.js'
|
||||
import {
|
||||
postsettle,
|
||||
} from '@/api/admin.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
animated: false,
|
||||
totalPrice: 0,
|
||||
couponData: {},
|
||||
active: 0, //支付方式切换 ,
|
||||
userInfo: {}, //用户信息
|
||||
cartArr: [{
|
||||
"name": "微信支付",
|
||||
"icon": "icon-weixin2",
|
||||
value: 'weixin',
|
||||
title: '微信快捷支付',
|
||||
payStatus: 1,
|
||||
},
|
||||
{
|
||||
name: "支付宝支付",
|
||||
icon: "icon-icon34",
|
||||
// #ifdef H5 || APP-PLUS
|
||||
value: 'alipay',
|
||||
// #endif
|
||||
// #ifdef MP
|
||||
value: 'alipayQr',
|
||||
// #endif
|
||||
title: '支付宝支付',
|
||||
payStatus: this.$store.getters.globalData.alipay_open
|
||||
},
|
||||
{
|
||||
"name": "余额支付",
|
||||
"icon": "icon-icon-test",
|
||||
value: 'balance',
|
||||
title: '可用余额:',
|
||||
payStatus: this.$store.getters.globalData.yue_pay_status,
|
||||
},
|
||||
{
|
||||
"name": "线下支付",
|
||||
"icon": "icon-yinhangqia",
|
||||
value: 'offline',
|
||||
title: '线下支付',
|
||||
payStatus: 2,
|
||||
}, {
|
||||
"name": "先货后款",
|
||||
"icon": "tan-a-lujing17324",
|
||||
value: 'creditBuy',
|
||||
title: `结算周期:30天 `,
|
||||
label: '日利率:0.05%',
|
||||
order_id: '',
|
||||
},
|
||||
],
|
||||
order_id: '',
|
||||
product_type: 0,
|
||||
mer_id: '',
|
||||
be_overdue: '', //逾期时间
|
||||
be_overday: '', //逾期天数
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
this.payType = 'weixin'
|
||||
this.order_id = options.order_id
|
||||
if (options.product_type) {
|
||||
this.product_type = options.product_type
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.getOrderInfo()
|
||||
this.getUserInfo()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
payItem: function(e) {
|
||||
let that = this;
|
||||
let active = e;
|
||||
that.active = active;
|
||||
that.animated = true;
|
||||
that.payType = that.cartArr[active].value;
|
||||
},
|
||||
getUserInfo() {
|
||||
getUserInfo().then(res => {
|
||||
this.userInfo = res.data
|
||||
this.mer_id = res.data.service.mer_id
|
||||
})
|
||||
},
|
||||
getOrderInfo() {
|
||||
groupOrderDetail(this.order_id, this.product_type).then(res => {
|
||||
console.log(res)
|
||||
this.couponData = res.data
|
||||
this.$nextTick(() => {
|
||||
if (this.couponData.interest !== null) {
|
||||
this.moerTime(this.couponData.interest.start_time)
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
SubOrder() {
|
||||
if (this.couponData.pay_type == 8) {
|
||||
postsettle(
|
||||
this.mer_id, {
|
||||
id: this.order_id,
|
||||
pay_type: this.payType
|
||||
}
|
||||
).then(res => {
|
||||
if (res.data.paid === false) {
|
||||
//拉起微信支付
|
||||
|
||||
}
|
||||
if (res.message == 'success') {
|
||||
uni.showToast({
|
||||
title: '付款成功'
|
||||
})
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}, 1000)
|
||||
}
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message
|
||||
})
|
||||
})
|
||||
} else {
|
||||
orderPay(this.order_id, {
|
||||
type: this.payType
|
||||
}).then(res => {
|
||||
let jsConfig = res.data.result.config
|
||||
if (res.data.status === 'weixinApp') {
|
||||
//拉起微信支付
|
||||
// #ifdef APP-PLUS
|
||||
let mp_pay_name = ''
|
||||
if (uni.requestOrderPayment) {
|
||||
mp_pay_name = 'requestOrderPayment'
|
||||
} else {
|
||||
mp_pay_name = 'requestPayment'
|
||||
}
|
||||
uni[mp_pay_name]({
|
||||
provider: 'wxpay',
|
||||
orderInfo: jsConfig,
|
||||
success: (e) => {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
|
||||
},
|
||||
fail: (e) => {
|
||||
// 暂不跳转
|
||||
let url = '/pages/order_pay_status/index?order_id=' + orderId +
|
||||
'&msg=取消支付' + '&product_type=' + that.product_type;
|
||||
return that.$util.Tips({
|
||||
title: '取消支付',
|
||||
}, {
|
||||
tab: 4,
|
||||
url: url
|
||||
});
|
||||
},
|
||||
complete: () => {
|
||||
// 暂不跳转
|
||||
let url = '/pages/order_pay_status/index?order_id=' + orderId +
|
||||
'&msg=取消支付' + '&product_type=' + that.product_type;
|
||||
return that.$util.Tips({
|
||||
title: '取消支付',
|
||||
}, {
|
||||
tab: 4,
|
||||
url: url
|
||||
});
|
||||
},
|
||||
});
|
||||
// #endif
|
||||
|
||||
}
|
||||
// setTimeout(() => {
|
||||
// uni.navigateBack({
|
||||
// delta: 1
|
||||
// })
|
||||
// }, 1000)
|
||||
uni.showToast({
|
||||
title: res.message
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//计算是否逾期
|
||||
moerTime(autoTime) {
|
||||
var date1 = (Date.parse(new Date())) / 1000;
|
||||
var date2 = (Date.parse(new Date(autoTime))) / 1000;
|
||||
var date3 = (date2 - date1) * 1000;
|
||||
this.be_overdue = Math.floor(date3 / (24 * 3600 * 1000));
|
||||
if (this.be_overdue == 0 || this.be_overdue < 0) {
|
||||
var date1 = (Date.parse(new Date())) / 1000;
|
||||
var date2 = (Date.parse(new Date(autoTime))) / 1000;
|
||||
var date3 = (date1 - date2) * 1000;
|
||||
this.be_overday = Math.floor(date3 / (24 * 3600 * 1000));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.center {
|
||||
.conter {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.wrapper .item .discount .placeholder {
|
||||
color: #ccc;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
margin-bottom: 12rpx;
|
||||
background-color: #fff;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.wrapper .item {
|
||||
padding: 27rpx 30rpx;
|
||||
font-size: 30rpx;
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
.wrapper .item .discount .iconfont {
|
||||
color: #515151;
|
||||
font-size: 30rpx;
|
||||
margin-left: 15rpx;
|
||||
}
|
||||
|
||||
.wrapper .item .discount .num {
|
||||
font-size: 32rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.wrapper .item .shipping {
|
||||
font-size: 30rpx;
|
||||
color: #999;
|
||||
position: relative;
|
||||
padding-right: 58rpx;
|
||||
}
|
||||
|
||||
.wrapper .item .shipping .iconfont {
|
||||
font-size: 35rpx;
|
||||
color: #707070;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
|
||||
.wrapper .item input {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
margin-left: 20rpx;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.wrapper .item .placeholder {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.wrapper .item .list {
|
||||
margin-top: 35rpx;
|
||||
}
|
||||
|
||||
.wrapper .item .list .payItem {
|
||||
border: 1px solid #eee;
|
||||
border-radius: 6rpx;
|
||||
height: 86rpx;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
margin-top: 20rpx;
|
||||
font-size: 28rpx;
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
.wrapper .item .list .payItem.on {
|
||||
border-color: var(--view-theme);
|
||||
color: var(--view-theme);
|
||||
}
|
||||
|
||||
.wrapper .item .list .payItem .name {
|
||||
width: 50%;
|
||||
text-align: center;
|
||||
border-right: 1px solid #eee;
|
||||
justify-content: left;
|
||||
padding-left: 80rpx;
|
||||
}
|
||||
|
||||
.wrapper .item .list .payItem .name .iconfont {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
line-height: 44rpx;
|
||||
background-color: #fe960f;
|
||||
color: #fff;
|
||||
font-size: 30rpx;
|
||||
margin-right: 15rpx;
|
||||
}
|
||||
|
||||
.wrapper .item .list .payItem .name .iconfont.icon-weixin2 {
|
||||
background-color: #41b035;
|
||||
}
|
||||
|
||||
.wrapper .item .list .payItem .name .iconfont.icon-icon34 {
|
||||
background-color: #4295D5;
|
||||
}
|
||||
|
||||
.wrapper .item .list .payItem .tip {
|
||||
width: 49%;
|
||||
text-align: center;
|
||||
font-size: 26rpx;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: 100%;
|
||||
height: 100rpx;
|
||||
height: calc(100rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
||||
height: calc(100rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
||||
background-color: #fff;
|
||||
padding: 0 30rpx;
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
box-sizing: border-box;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 30;
|
||||
|
||||
.footer_count {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.coupon_price {
|
||||
color: #999999;
|
||||
font-size: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
|
||||
text {
|
||||
color: #282828;
|
||||
padding: 2rpx 10rpx;
|
||||
background: #F5F5F5;
|
||||
border-radius: 26rpx;
|
||||
margin-left: 20rpx;
|
||||
line-height: 30rpx;
|
||||
height: 30rpx;
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.settlement {
|
||||
font-size: 30rpx;
|
||||
color: #fff;
|
||||
width: 240rpx;
|
||||
height: 70rpx;
|
||||
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 50rpx;
|
||||
text-align: center;
|
||||
line-height: 70rpx;
|
||||
|
||||
&.disabled {
|
||||
background-color: #cccccc;
|
||||
}
|
||||
}
|
||||
|
||||
.transparent {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.settel {
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
height: 70px;
|
||||
padding: 0 15px 0 15px;
|
||||
line-height: 70px;
|
||||
|
||||
.settel-t {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.con_text {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
height: 20px;
|
||||
margin: auto;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
75
pages/users/supply_procurement/index.vue
Normal file
@ -0,0 +1,75 @@
|
||||
<template>
|
||||
<view class="conent">
|
||||
<view class="con_kuo" @click="navigator(`/pages/nongKe/supply_chain/supplier?type_id=12&isDetail=1&product_type=98&cate_id=${id}`)">
|
||||
<image class="con_img" src="@/static/images/bg1.png" mode=""></image>
|
||||
<image class="con_ico" src="@/static/images/bgic1.png" mode=""></image>
|
||||
<view class="con_text">
|
||||
<h3>先款后货</h3>
|
||||
<span>先付款后发货</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="con_kuo" @click="navigator(`/pages/nongKe/supply_chain/supplier?type_id=12&isDetail=1&product_type=98&cate_id=${id}&credit_buy=1`)">
|
||||
<image class="con_img" src="@/static/images/bg2.png" mode=""></image>
|
||||
<image class="con_ico" src="@/static/images/bgic2.png" mode=""></image>
|
||||
<view class="con_text">
|
||||
<h3>先货后款</h3>
|
||||
<span>先发货后付款</span>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
id:''
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
console.log(option);
|
||||
this.id=option.cate_id
|
||||
},
|
||||
methods:{
|
||||
navigator(url, t) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
*{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.conent{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-top: 20px;
|
||||
.con_kuo{
|
||||
position: relative;
|
||||
.con_img{
|
||||
width: 192px;
|
||||
height: 92px;
|
||||
}
|
||||
.con_ico{
|
||||
position: absolute;
|
||||
left: 25px;
|
||||
top: 32px;
|
||||
width: 31px;
|
||||
height: 32px;
|
||||
}
|
||||
.con_text{
|
||||
position: absolute;
|
||||
left: 66px;
|
||||
top: 20px;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
480
pages/users/trading_hall/index.vue
Normal file
@ -0,0 +1,480 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="content-header">
|
||||
<view class="header">
|
||||
<view class="top-header">
|
||||
<view class="search">
|
||||
<view class="search-content acea-row row-middle">
|
||||
<text class="iconfont icon-sousuo"></text>
|
||||
<input v-model="where.keyword" confirm-type="search" placeholder="请输入关键字" class="input" />
|
||||
<view class="search_btn">
|
||||
<image src="@/static/images/serchbtn.png" mode="aspectFill" @click="handleSearch">
|
||||
</image>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="recom">
|
||||
<view class="recom_bnt">
|
||||
<rudon-rowMenuDotDotDot :localdata="options" @change="menuAction($event)"
|
||||
style="color: #000000;">
|
||||
<view class="" style="color: #F84221;">
|
||||
{{this.recomname}}
|
||||
</view>
|
||||
<view class="recom_sym">
|
||||
<image src='@/static/images/arrow-bottom.png' mode="aspectFit"></image>
|
||||
</view>
|
||||
</rudon-rowMenuDotDotDot>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="type_switch">
|
||||
<view class="recom_mend" v-for="(item,i) in options" :key="i" :class="i==num?'tradcolor':''"
|
||||
@click="btntap(i)">
|
||||
{{item.text}}
|
||||
|
||||
<view :class="i==num?'tradline':''"></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="item" v-for='(item,index) in datatlist' :key='index' @click="shopping(item)">
|
||||
|
||||
<image class="shopimg" :src="item.image[0]" mode="aspectFit"></image>
|
||||
<view class="item_text">
|
||||
<span v-if='item.resale_type==1'>调货</span>
|
||||
<span v-else>打折</span>
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="item_prices">
|
||||
<span>¥</span>{{item.total_price}}
|
||||
|
||||
</view>
|
||||
<view class="item_name">
|
||||
<image class="avater" :src="item.mer_avatar" mode="aspectFit"></image>
|
||||
<view class="item_name_text">
|
||||
{{item.mer_name}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="tardimg_add" @click="open">
|
||||
<!-- <img src="@/static/images/trad-add.png" mode="widthFix" alt=""> -->
|
||||
<image src="@/static/images/trad-add.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
|
||||
<release :isShow='visible' :bottom='true' @close="closeMadle" @cancel="cancel" @confirm="confirm"
|
||||
style="z-index: 999999!important;"></release>
|
||||
|
||||
|
||||
<view class="empty_wrapper" v-if="emptyShow">
|
||||
<u-empty mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png"></u-empty>
|
||||
</view>
|
||||
<u-loadmore :status="status" v-if="datatlist.length>=where.limit" />
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getCommunityList,
|
||||
getCommunitygetOrderList
|
||||
} from '@/api/trading-floor.js'
|
||||
import {
|
||||
data,
|
||||
methods
|
||||
} from '../../../uni_modules/uview-ui/libs/mixin/mixin'
|
||||
import release from '@/components/release/release.vue';
|
||||
import emptyPage from '@/components/emptyPage.vue';
|
||||
export default {
|
||||
components: {
|
||||
release,
|
||||
emptyPage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: 'loadmore',
|
||||
where: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
is_type: 3,
|
||||
keyword: '',
|
||||
|
||||
},
|
||||
|
||||
visible: false,
|
||||
num: 0,
|
||||
options: [{
|
||||
value: '0',
|
||||
text: '推荐'
|
||||
},
|
||||
{
|
||||
value: '1',
|
||||
text: '调货'
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
text: '打折专区'
|
||||
}
|
||||
],
|
||||
datatlist: [],
|
||||
recomname: '',
|
||||
emptyShow: false,
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getlist()
|
||||
},
|
||||
onReachBottom() {
|
||||
if (this.status == 'nomore') return;
|
||||
this.status = 'loading';
|
||||
this.emptyShow = false
|
||||
this.where.page = ++this.where.page;
|
||||
this.getlist(this.num)
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
|
||||
//选择 打折 调货
|
||||
btntap(index) {
|
||||
this.datatlist = []
|
||||
this.num = index
|
||||
this.getlist()
|
||||
},
|
||||
//商品详情
|
||||
shopping(item) {
|
||||
|
||||
let data = {
|
||||
type: item.resale_type,
|
||||
id: item.community_id
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: '/pages/trading_hall/product_details/index?key=' + encodeURIComponent(JSON.stringify(
|
||||
data))
|
||||
})
|
||||
},
|
||||
//控制 发布弹窗
|
||||
open() {
|
||||
this.visible = true
|
||||
|
||||
},
|
||||
|
||||
//查询
|
||||
handleSearch() {
|
||||
if (this.num == 0) {
|
||||
this.where.resale_type = ''
|
||||
this.emptyShow = false
|
||||
this.datatlist = []
|
||||
} else if (this.num == 1) {
|
||||
this.where.resale_type = 1
|
||||
this.emptyShow = false
|
||||
this.datatlist = []
|
||||
} else {
|
||||
this.where.resale_type = 2
|
||||
this.emptyShow = false
|
||||
this.datatlist = []
|
||||
}
|
||||
|
||||
getCommunityList(this.where).then(res => {
|
||||
if (res.status == 200) {
|
||||
if (res.data.list.length < this.where.limit) this.status = 'nomore'
|
||||
if (this.where.page == 1 && res.data.list.length == 0) this.emptyShow = true
|
||||
this.datatlist.push(...res.data.list)
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
//列表
|
||||
getlist(index) {
|
||||
if (this.num == 0) {
|
||||
this.where.resale_type = ''
|
||||
this.emptyShow = false
|
||||
} else if (this.num == 1) {
|
||||
this.where.resale_type = 1
|
||||
this.emptyShow = false
|
||||
} else {
|
||||
this.where.resale_type = 2
|
||||
this.emptyShow = false
|
||||
}
|
||||
getCommunityList(this.where).then(res => {
|
||||
if (res.status == 200) {
|
||||
|
||||
if (res.data.list.length < this.where.limit) {
|
||||
this.status = 'nomore'
|
||||
}
|
||||
if (this.where.page == 1 && res.data.list.length <= 0) {
|
||||
this.emptyShow = true
|
||||
|
||||
}
|
||||
this.datatlist.push(...res.data.list)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
closeMadle() {
|
||||
this.visible = false
|
||||
|
||||
},
|
||||
confirm() {
|
||||
// 这里调用接口执行点击确定后的操作并关闭弹窗
|
||||
console.log('点击了确认按钮')
|
||||
this.visible = false
|
||||
},
|
||||
cancel() {
|
||||
// 点击了取消按钮直接关闭弹窗
|
||||
console.log('点击了取消按钮')
|
||||
this.visible = false
|
||||
},
|
||||
menuAction(action, rowId) {
|
||||
|
||||
// 忽略初始化时的传入的空操作
|
||||
|
||||
if (action) {
|
||||
this.num = action
|
||||
this.getlist(action)
|
||||
}
|
||||
|
||||
if (action === '') {
|
||||
this.recomname = this.options[0].text
|
||||
} else {
|
||||
this.recomname = this.options[action].text
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content-header {
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
z-index: 8888;
|
||||
}
|
||||
|
||||
.header {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
|
||||
.top-header {
|
||||
|
||||
width: 80%;
|
||||
|
||||
.search {
|
||||
padding: 17rpx 30rpx;
|
||||
|
||||
.search-content {
|
||||
width: 100%;
|
||||
height: 60rpx;
|
||||
padding-left: 30rpx;
|
||||
border-radius: 30rpx;
|
||||
background-color: #F5F5F5;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
margin-right: 10rpx;
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.input-placeholder {
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.input {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.search_btn {
|
||||
width: 98rpx;
|
||||
height: 60rpx;
|
||||
|
||||
margin-left: 20rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
.recom {
|
||||
width: 200rpx;
|
||||
margin-right: 39rpx;
|
||||
height: 60rpx;
|
||||
text-align: center;
|
||||
border-radius: 30px;
|
||||
border: 1px solid #F84221;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.recom_bnt {
|
||||
font-size: 32rpx;
|
||||
font-family: 'PingFang SC';
|
||||
font-weight: 400;
|
||||
|
||||
|
||||
.recom_sym {
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
margin-left: 0rpx;
|
||||
|
||||
image {
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
.type_switch {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
padding-top: 17rpx;
|
||||
font-size: 32rpx;
|
||||
background-color: #fff;
|
||||
font-weight: 500;
|
||||
color: #999999;
|
||||
padding-bottom: 10rpx;
|
||||
|
||||
.tradcolor {
|
||||
color: #F84221;
|
||||
}
|
||||
|
||||
.tradline {
|
||||
width: 26rpx;
|
||||
height: 4rpx;
|
||||
opacity: 1;
|
||||
background-color: #F84221;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.tardimg_add {
|
||||
position: absolute;
|
||||
bottom: 193rpx;
|
||||
right: 0rpx;
|
||||
position: fixed;
|
||||
width: 176rpx;
|
||||
height: 176rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.list {
|
||||
width: 694.74rpx;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
margin-bottom: 21rpx;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 170rpx;
|
||||
|
||||
|
||||
.item {
|
||||
width: 336rpx;
|
||||
height: 561rpx;
|
||||
background-color: #fff;
|
||||
margin-top: 21rpx;
|
||||
|
||||
border-radius: 14rpx 14rpx 0 0;
|
||||
|
||||
.shopimg {
|
||||
width: 336rpx;
|
||||
height: 314rpx
|
||||
}
|
||||
|
||||
.item_text {
|
||||
width: 100%;
|
||||
padding-left: 25rpx;
|
||||
padding-right: 25rpx;
|
||||
margin-top: 19rpx;
|
||||
|
||||
margin-bottom: 20rpx;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
|
||||
span {
|
||||
height: 35rpx;
|
||||
width: 100%;
|
||||
padding: 3px;
|
||||
margin: 2px;
|
||||
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%);
|
||||
border-radius: 7px 0px 7px 0px;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
font-size: 25rpx;
|
||||
margin-right: 15rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.item_prices {
|
||||
font-size: 18px;
|
||||
color: #F84221;
|
||||
padding-left: 15px;
|
||||
padding-bottom: 18rpx;
|
||||
border-bottom: 1px solid #707070;
|
||||
|
||||
}
|
||||
|
||||
.item_name {
|
||||
width: 100%;
|
||||
padding-left: 15rpx;
|
||||
display: flex;
|
||||
|
||||
font-size: 28rpx;
|
||||
font-family: 'PingFang SC';
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
|
||||
.avater {
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
border-radius: 50%;
|
||||
margin-top: 19rpx;
|
||||
margin-right: 10rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.item_name_text {
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -5,37 +5,52 @@
|
||||
<view class='list'>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view class='name'>姓名</view>
|
||||
<input type='text' placeholder='请输入姓名' name='real_name' :value="userAddress.real_name" placeholder-class='placeholder'></input>
|
||||
<input type='text' placeholder='请输入姓名' name='real_name' :value="userAddress.real_name"
|
||||
placeholder-class='placeholder'></input>
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view class='name'>联系电话</view>
|
||||
<input type='text' placeholder='请输入联系电话' name="phone" :value='userAddress.phone' placeholder-class='placeholder'></input>
|
||||
<input type='text' placeholder='请输入联系电话' name="phone" :value='userAddress.phone'
|
||||
placeholder-class='placeholder'></input>
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view class='name'>所在地区</view>
|
||||
<view class="region">
|
||||
<view class="region_count" @click="changeRegion">
|
||||
<text v-if="!addressInfo.length" style="color:#cdcdcd;">请选择地址</text>
|
||||
<text v-if="!addressInfo.length" style="color:#cdcdcd;">请选择地区</text>
|
||||
<text v-else>{{addressText}}</text>
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view class='name'>所在村队</view>
|
||||
<view class="region">
|
||||
<view class="region_count" @click="changevillage">
|
||||
<text v-if="!villageInfo.length" style="color:#cdcdcd;">请选择村队</text>
|
||||
<text v-else>{{villageText}}</text>
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view class='name'>详细地址</view>
|
||||
<input type='text' class="location-input" placeholder='请填写具体地址' name='detail' placeholder-class='placeholder' v-model="userAddress.detail"></input>
|
||||
<view class="location" @click="selfLocation">
|
||||
<input type='text' class="location-input" placeholder='请填写具体地址' name='detail'
|
||||
placeholder-class='placeholder' v-model="userAddress.detail"></input>
|
||||
<!--<view class="location" @click="selfLocation">
|
||||
<text class="iconfont icon-chakanditu"></text>
|
||||
<br>
|
||||
定位
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class='default acea-row row-middle'>
|
||||
<checkbox-group @change='ChangeIsDefault'>
|
||||
<checkbox :checked="userAddress.is_default ? true : false" />设置为默认地址</checkbox-group>
|
||||
<checkbox :checked="userAddress.is_default ? true : false" />设置为默认地址
|
||||
</checkbox-group>
|
||||
</view>
|
||||
|
||||
<button class='keepBnt' form-type="submit">立即保存</button>
|
||||
@ -43,12 +58,16 @@
|
||||
<view class="wechatAddress" v-if="!address_id" @click="getWxAddress">导入微信地址</view>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef H5 -->
|
||||
<view class="wechatAddress" v-if="this.$wechat.isWeixin() && !address_id" @click="getAddress">导入微信地址</view>
|
||||
<view class="wechatAddress" v-if="this.$wechat.isWeixin() && !address_id" @click="getAddress">导入微信地址
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</form>
|
||||
<areaWindow ref="areaWindow" :display="display" :address="addressInfo"
|
||||
@submit="OnChangeAddress" @changeClose="changeClose"></areaWindow>
|
||||
<areaWindow ref="areaWindow" :display="display" :address="addressInfo" @submit="OnChangeAddress"
|
||||
@changeClose="changeClose"></areaWindow>
|
||||
<villageTeam ref="villageTeam" :display="display_one" :address="villageInfo" :villageaddress="list"
|
||||
@submit="OnChangevAddress" @changeClose="changevClose"></villageTeam>
|
||||
|
||||
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
|
||||
</view>
|
||||
</template>
|
||||
@ -63,16 +82,28 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import { editAddress, getAddressDetail } from '@/api/user.js';
|
||||
import { getCityV2, getCityList } from '@/api/api.js';
|
||||
import { mapGetters } from "vuex";
|
||||
import {
|
||||
editAddress,
|
||||
getAddressDetail
|
||||
} from '@/api/user.js';
|
||||
import {
|
||||
getCityV2,
|
||||
getCityList
|
||||
} from '@/api/api.js';
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
import areaWindow from '@/components/areaWindow';
|
||||
import { getGeocoder } from '@/api/store.js';
|
||||
import villageTeam from '@/components/villageTeam/villageTeam.vue';
|
||||
import {
|
||||
getGeocoder
|
||||
} from '@/api/store.js';
|
||||
import authorize from '@/components/Authorize';
|
||||
export default {
|
||||
components: {
|
||||
areaWindow,
|
||||
authorize,
|
||||
villageTeam
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -92,14 +123,21 @@
|
||||
multiIndex: [0, 0, 0],
|
||||
cityId: 0,
|
||||
display: false,
|
||||
addressInfo:[],
|
||||
display_one: false,
|
||||
addressInfo: [],
|
||||
villageInfo: [],
|
||||
list: [],
|
||||
latitude: '',
|
||||
longitude: ''
|
||||
};
|
||||
},
|
||||
computed: {...mapGetters(['isLogin','viewColor']),
|
||||
addressText(){
|
||||
return this.addressInfo.map(v=>v.name).join('/');
|
||||
computed: {
|
||||
...mapGetters(['isLogin', 'viewColor']),
|
||||
addressText() {
|
||||
return this.addressInfo.map(v => v.name).join('/');
|
||||
},
|
||||
villageText() {
|
||||
return this.villageInfo.map(v => v.name).join('/');
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
@ -119,8 +157,13 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
OnChangeAddress(address){
|
||||
OnChangeAddress(address) {
|
||||
this.addressInfo = address;
|
||||
this.list = address
|
||||
},
|
||||
OnChangevAddress(address) {
|
||||
this.villageInfo = address;
|
||||
console.log(this.villageInfo)
|
||||
},
|
||||
// 地址数据
|
||||
getCityList: function() {
|
||||
@ -129,13 +172,19 @@
|
||||
this.district = res.data
|
||||
})
|
||||
},
|
||||
changeRegion(){
|
||||
changeRegion() {
|
||||
this.display = true;
|
||||
},
|
||||
changevillage() {
|
||||
this.display_one = true;
|
||||
},
|
||||
// 关闭地址弹窗;
|
||||
changeClose: function() {
|
||||
this.display = false;
|
||||
},
|
||||
changevClose: function() {
|
||||
this.display_one = false;
|
||||
},
|
||||
// 授权回调
|
||||
onLoadFun: function() {
|
||||
this.isShowAuth = false;
|
||||
@ -155,11 +204,12 @@
|
||||
if (!this.address_id) return false;
|
||||
let that = this;
|
||||
getAddressDetail(this.address_id).then(res => {
|
||||
let region = [res.data.province, res.data.city, res.data.district];
|
||||
let region = [res.data.province, res.data.city, res.data.district, res.data.street, res.data.village];
|
||||
that.$set(that, 'userAddress', res.data);
|
||||
that.$set(that, 'region', region);
|
||||
that.city_id = res.data.city_id
|
||||
that.addressInfo = res.data.area
|
||||
that.addressInfo = res.data.areas
|
||||
that.villageInfo = [res.data.brigade]
|
||||
});
|
||||
},
|
||||
// 导入共享地址(小程序)
|
||||
@ -170,7 +220,8 @@
|
||||
success: function(res) {
|
||||
uni.chooseAddress({
|
||||
success: function(res) {
|
||||
getCityList(res.provinceName+'/'+res.cityName+'/'+res.countyName).then(res=>{
|
||||
getCityList(res.provinceName + '/' + res.cityName + '/' + res
|
||||
.countyName).then(res => {
|
||||
that.addressInfo = res.data;
|
||||
})
|
||||
that.userAddress.real_name = res.userName;
|
||||
@ -183,7 +234,8 @@
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
});
|
||||
if (res.errMsg == 'chooseAddress:cancel') return that.$util.Tips({
|
||||
if (res.errMsg == 'chooseAddress:cancel') return that.$util
|
||||
.Tips({
|
||||
title: '取消选择'
|
||||
});
|
||||
},
|
||||
@ -212,7 +264,7 @@
|
||||
getAddress() {
|
||||
let that = this;
|
||||
that.$wechat.openAddress().then(res => {
|
||||
getCityList(res.provinceName+'/'+res.cityName+'/'+res.countryName).then(res=>{
|
||||
getCityList(res.provinceName + '/' + res.cityName + '/' + res.countryName).then(res => {
|
||||
that.addressInfo = res.data;
|
||||
})
|
||||
that.userAddress.real_name = res.userName;
|
||||
@ -241,11 +293,15 @@
|
||||
long: longitude
|
||||
}).then(res => {
|
||||
const data = res.data;
|
||||
getCityList(data.address_component.province+'/'+data.address_component.city+'/'+data.address_component.district+'/'+(!data.address_reference.town ? '' : data.address_reference.town.title)).then(res=>{
|
||||
getCityList(data.address_component.province + '/' + data.address_component
|
||||
.city + '/' + data.address_component.district + '/' + (!data
|
||||
.address_reference.town ? '' : data.address_reference.town
|
||||
.title)).then(res => {
|
||||
self.addressInfo = res.data;
|
||||
self.$set(self.userAddress, 'detail', data.formatted_addresses.recommend);
|
||||
self.$set(self.userAddress, 'detail', data.formatted_addresses
|
||||
.recommend);
|
||||
uni.hideLoading();
|
||||
}).catch(e=>{
|
||||
}).catch(e => {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '定位失败,请手动输入地址',
|
||||
@ -253,7 +309,7 @@
|
||||
duration: 1000
|
||||
});
|
||||
})
|
||||
}).catch(e=>{
|
||||
}).catch(e => {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '定位失败,请手动输入地址',
|
||||
@ -291,12 +347,16 @@
|
||||
if (!that.addressInfo.length) return that.$util.Tips({
|
||||
title: '请选择所在地区'
|
||||
});
|
||||
if (!that.villageInfo.length) return that.$util.Tips({
|
||||
title: '请选择所在村队'
|
||||
});
|
||||
if (!value.detail) return that.$util.Tips({
|
||||
title: '请填写详细地址'
|
||||
});
|
||||
value.address_id = that.address_id;
|
||||
value.is_default = that.userAddress.is_default ? 1 : 0;
|
||||
value.area = that.addressInfo;
|
||||
value.brigade=that.villageInfo[0]
|
||||
|
||||
uni.showLoading({
|
||||
title: '保存中',
|
||||
@ -323,8 +383,10 @@
|
||||
that.couponId = '';
|
||||
uni.$emit('updataAddress')
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/order_confirm/index?cartId=' + cartId + '&addressId=' + (that.id ? that.id : res.data
|
||||
.address_id) + '&pinkId=' + pinkId + '&couponId=' + couponId
|
||||
url: '/pages/users/order_confirm/index?cartId=' + cartId +
|
||||
'&addressId=' + (that.id ? that.id : res.data
|
||||
.address_id) + '&pinkId=' + pinkId + '&couponId=' +
|
||||
couponId
|
||||
});
|
||||
} else {
|
||||
// #ifdef H5
|
||||
@ -353,74 +415,92 @@
|
||||
<style scoped lang="scss">
|
||||
/deep/checkbox .uni-checkbox-input.uni-checkbox-input-checked,
|
||||
/deep/checkbox .wx-checkbox-input.wx-checkbox-input-checked {
|
||||
border: 1px solid var(--view-theme)!important;
|
||||
background-color: var(--view-theme)!important;
|
||||
color: #fff!important;
|
||||
border: 1px solid var(--view-theme) !important;
|
||||
background-color: var(--view-theme) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.addAddress .list {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.addAddress .list .item {
|
||||
padding: 30rpx;
|
||||
border-top: 1px solid #eee;
|
||||
position: relative;
|
||||
}
|
||||
.addAddress .list .item .location{
|
||||
|
||||
.addAddress .list .item .location {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 15rpx;
|
||||
text-align: center;
|
||||
font-size: 20rpx;
|
||||
.iconfont{
|
||||
|
||||
.iconfont {
|
||||
color: var(--view-theme);
|
||||
}
|
||||
}
|
||||
|
||||
.addAddress .list .item .name {
|
||||
width: 195rpx;
|
||||
font-size: 30rpx;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.addAddress .list .item .address {
|
||||
flex: 1;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.addAddress .list .item input,.region .region_count {
|
||||
|
||||
.addAddress .list .item input,
|
||||
.region .region_count {
|
||||
width: 475rpx;
|
||||
font-size: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.region .region_count{
|
||||
|
||||
.region .region_count {
|
||||
height: 42rpx;
|
||||
line-height: 42rpx;
|
||||
.icon-xiangyou{
|
||||
|
||||
.icon-xiangyou {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
.addAddress .list .location-input{
|
||||
|
||||
.addAddress .list .location-input {
|
||||
padding-right: 70rpx;
|
||||
}
|
||||
|
||||
.addAddress .list .item .placeholder {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.addAddress .list .item picker {
|
||||
width: 475rpx;
|
||||
}
|
||||
|
||||
.addAddress .list .item picker .picker {
|
||||
width: 410rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.addAddress .list .item picker .iconfont {
|
||||
font-size: 43rpx;
|
||||
}
|
||||
|
||||
.addAddress .default {
|
||||
padding: 0 30rpx;
|
||||
height: 90rpx;
|
||||
background-color: #fff;
|
||||
margin-top: 23rpx;
|
||||
}
|
||||
|
||||
.addAddress .default checkbox {
|
||||
margin-right: 15rpx;
|
||||
}
|
||||
|
||||
.addAddress .keepBnt {
|
||||
width: 690rpx;
|
||||
height: 86rpx;
|
||||
@ -432,6 +512,7 @@
|
||||
color: #fff;
|
||||
background-color: var(--view-theme);
|
||||
}
|
||||
|
||||
.addAddress .wechatAddress {
|
||||
width: 690rpx;
|
||||
height: 86rpx;
|
||||
|
@ -8,7 +8,7 @@
|
||||
<view class='item' v-for="(item,index) in addressList" :key="index">
|
||||
<view class='address' @click='goOrder(item.address_id)'>
|
||||
<view class='consignee'>收货人:{{item.real_name}}<text class='phone'>{{item.phone}}</text></view>
|
||||
<view>收货地址:{{item.province || ''}}{{item.city || ''}}{{item.district || ''}}{{item.street || ''}}{{item.detail || ''}}</view>
|
||||
<view>收货地址:{{item.province || ''}}{{item.city || ''}}{{item.district || ''}}{{item.street || ''}}{{item.brigade|| ''}}{{item.detail || ''}}</view>
|
||||
</view>
|
||||
<view class='operation acea-row row-between-wrapper'>
|
||||
<!-- #ifndef MP -->
|
||||
|
@ -19,6 +19,7 @@
|
||||
<view>协议规则</view>
|
||||
<text class='iconfont icon-you'></text>
|
||||
</view>
|
||||
|
||||
<!-- #ifdef MP -->
|
||||
<view class='item acea-row row-between-wrapper' @click="Setting">
|
||||
<view>隐私设置</view>
|
||||
|
BIN
static/audio/order.mp3
Normal file
@ -54,7 +54,7 @@ body {overflow-x: hidden;}
|
||||
-o-box-pack: end;
|
||||
-ms-flex-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.acea-row.row-left {
|
||||
-webkit-box-pack: start;
|
||||
|
82
static/iconfont/icontan.css
Normal file
@ -0,0 +1,82 @@
|
||||
@font-face {
|
||||
font-family: "icontan"; /* Project id 3552766 */
|
||||
src: url('//at.alicdn.com/t/c/font_3552766_bmogttr4zyj.woff2?t=1688542944134') format('woff2'),
|
||||
url('//at.alicdn.com/t/c/font_3552766_bmogttr4zyj.woff?t=1688542944134') format('woff'),
|
||||
url('//at.alicdn.com/t/c/font_3552766_bmogttr4zyj.ttf?t=1688542944134') format('truetype');
|
||||
}
|
||||
|
||||
.icontan {
|
||||
font-family: "icontan" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.tan-a-lujing17324:before {
|
||||
content: "\e602";
|
||||
}
|
||||
|
||||
.tan-xianhuo:before {
|
||||
content: "\e601";
|
||||
}
|
||||
|
||||
.tan-dianpu:before {
|
||||
content: "\e600";
|
||||
}
|
||||
|
||||
.tan-clock:before {
|
||||
content: "\e627";
|
||||
}
|
||||
|
||||
.tan-ditu_dingwei_o:before {
|
||||
content: "\ebbb";
|
||||
}
|
||||
|
||||
.tan-f24gl-telephone:before {
|
||||
content: "\e953";
|
||||
}
|
||||
|
||||
.tan-sound-Mute:before {
|
||||
content: "\e766";
|
||||
}
|
||||
|
||||
.tan-vehivles:before {
|
||||
content: "\e76b";
|
||||
}
|
||||
|
||||
.tan-shoes:before {
|
||||
content: "\e76c";
|
||||
}
|
||||
|
||||
.tan-aviation:before {
|
||||
content: "\e770";
|
||||
}
|
||||
|
||||
.tan-landtransportation:before {
|
||||
content: "\e773";
|
||||
}
|
||||
|
||||
.tan-dingwei:before {
|
||||
content: "\e8c4";
|
||||
}
|
||||
|
||||
.tan-favorites-fill:before {
|
||||
content: "\e721";
|
||||
}
|
||||
|
||||
.tan-rmb:before {
|
||||
content: "\e761";
|
||||
}
|
||||
|
||||
.tan-scanning:before {
|
||||
content: "\e762";
|
||||
}
|
||||
|
||||
.tan-raw:before {
|
||||
content: "\e75e";
|
||||
}
|
||||
|
||||
.tan-service:before {
|
||||
content: "\e764";
|
||||
}
|
BIN
static/images/arrow-bottom.png
Normal file
After Width: | Height: | Size: 196 B |
BIN
static/images/beijin.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
static/images/bg1.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
static/images/bg2.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
static/images/bgic1.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
static/images/bgic2.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
static/images/daoru.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
static/images/ddjk.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
static/images/delegation.png
Normal file
After Width: | Height: | Size: 704 B |
BIN
static/images/diaohuo.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
static/images/discounts.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
static/images/dong.gif
Normal file
After Width: | Height: | Size: 3.0 MiB |
BIN
static/images/fabu.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
static/images/jiankong.png
Normal file
After Width: | Height: | Size: 635 B |
BIN
static/images/season.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
static/images/serchbtn.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
static/images/shouhuo.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
static/images/sjtj.png
Normal file
After Width: | Height: | Size: 1.2 KiB |