From 4ad08f699d711849ca4dd271f2107dee8942ad99 Mon Sep 17 00:00:00 2001
From: jia <1451658316@qq.com>
Date: Mon, 14 Aug 2023 18:03:57 +0800
Subject: [PATCH] =?UTF-8?q?1.=E5=AF=B9=E6=8E=A5=E8=B0=83=E8=B4=A7=E5=A4=A7?=
=?UTF-8?q?=E5=8E=85=E7=AD=89=E6=8E=A5=E5=8F=A3=20=20=202.=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E8=B0=83=E8=B4=A7=E3=80=81=E5=A7=94=E6=89=98=E7=95=8C?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/release/release.vue | 9 +-
components/shoppinglist/shoppinglist.vue | 80 +++--
.../initiateDelegation/index.vue | 130 +++----
.../receivedCommission/index.vue | 323 ++++++++++++++++--
pages/releaseManagement/index.vue | 14 +-
pages/trading_hall/product_details/index.vue | 16 +-
pages/trading_hall/transfer_goods/index.vue | 233 +++++--------
pages/users/order_list/index.vue | 4 +-
pages/users/order_list/indexCopy.vue | 8 +-
pages/users/trading_hall/index.vue | 28 +-
plugin/voice/voice.js | 269 +++++++++++++++
static/audio/order.mp3 | Bin 0 -> 11088 bytes
12 files changed, 810 insertions(+), 304 deletions(-)
create mode 100644 plugin/voice/voice.js
create mode 100644 static/audio/order.mp3
diff --git a/components/release/release.vue b/components/release/release.vue
index 2265738..eb7e02f 100644
--- a/components/release/release.vue
+++ b/components/release/release.vue
@@ -121,7 +121,7 @@
.release_content_left {
display: flex;
-
+
}
.release_content_right {
@@ -135,7 +135,7 @@
height: 96rpx;
margin-top: 21rpx;
margin-right: 19rpx;
- margin-left: -15rpx;
+
image {
width: 111rpx;
@@ -144,11 +144,12 @@
}
.release_imga {
+
width: 76rpx;
height: 113rpx;
- margin-left: 21rpx;
+
margin-top: 5rpx;
- margin-right: 19rpx;
+ margin-right: 50rpx;
image {
width: 76rpx;
diff --git a/components/shoppinglist/shoppinglist.vue b/components/shoppinglist/shoppinglist.vue
index 7a29516..258289d 100644
--- a/components/shoppinglist/shoppinglist.vue
+++ b/components/shoppinglist/shoppinglist.vue
@@ -31,34 +31,39 @@
{{item.store_name}}
-
-
-
- {{item.attrValue[index].sku}}
-
-
+
+
+ {{item.attrValue[index].sku}}
+
- 库存:{{item.stock}}
+ 库存:{{item.attrValue[index].stock}}
-
+
+
+
+
出售价格
-
+
出售数量
-
-
+
+
+
@@ -140,8 +145,8 @@
IfProductId: 0,
}],
index: 0,
- pickerData: '请选择'
-
+ pickerData: '请选择',
+ itstock: '',
};
},
@@ -157,16 +162,13 @@
mounted() {
this.checkedArr = this.checkedObj
this.getBounht();
-
-
},
methods: {
// picker修改事件
- bindPickerChange: function(e, storage) {
- console.log(e)
- console.log(storage)
- // this.index = e.target.value
+ bindPickerChange: function(e, storage, num) {
+ 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] // 这里就是选中的对象
},
@@ -174,8 +176,10 @@
close() {
this.$emit('close');
},
- numberChange(data) {
+ numberChange(data,i) {
this.peicenumber = data.number;
+ this.bought[i].num=data.number
+
},
tabs(index) {
this.isActive = index
@@ -203,7 +207,7 @@
},
searchBut() {
this.whereb.page = this.wherec.page = this.wheres.page =
- this.bought = []
+ this.bought = []
this.isActive == 0 ? this.getBounht() : ''
},
getBounht() {
@@ -213,7 +217,6 @@
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);
@@ -237,9 +240,14 @@
that.checkedArr.forEach((val, i) => {
if (item.product_id == val.product_id) {
that.$set(item, 'check', true);
+ that.$set(item, 'num', val.num);
+
+ }else{
+ that.$set(item, 'num', 0);
}
})
})
+
},
/*已选中的商品打钩*/
getCheckedGoods() {
@@ -250,10 +258,19 @@
},
/*点击选中与否*/
goodsCheck(item) {
- this.$set(item, 'check', !item.check);
- console.log(item, 'check', !item.check)
+ this.$set(item, 'check', !item.check);
if (item.check) {
+ if(this.peicenumber>0){
+ item.num=this.peicenumber
+ }else{
+ item.num=1
+ }
+
+ if(!item.product_attr_unique){
+ item.product_attr_unique=item.attrValue[0].unique
+ }
this.checkedArr.push(item)
+
} else {
this.checkedArr.splice(this.checkedArr.findIndex(itemn => ((itemn.spu_id == item.spu_id) || (item
.spu_id == (
@@ -263,8 +280,9 @@
},
/*确定提交*/
submit() {
+
this.$emit('getProduct', this.checkedArr);
- console.log(this.checkedArr)
+
},
}
}
@@ -408,7 +426,7 @@
.price {
display: flex;
- margin-right: 15rpx;
+ margin-right: 15rpx;
input {
width: 210rpx;
@@ -419,9 +437,9 @@
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
-
+
margin-left: 20rpx;
-
+
}
}
diff --git a/pages/commissionedSales/initiateDelegation/index.vue b/pages/commissionedSales/initiateDelegation/index.vue
index e38eac1..ce2d100 100644
--- a/pages/commissionedSales/initiateDelegation/index.vue
+++ b/pages/commissionedSales/initiateDelegation/index.vue
@@ -6,7 +6,7 @@
-
+
@@ -43,12 +43,12 @@
-
+
已接受
-
+
结束委托
@@ -60,7 +60,7 @@
-
+
已拒绝
@@ -94,7 +94,7 @@
-
-
+
+
-
-
+
+
+
@@ -211,17 +210,16 @@
利息比例: 0.05%
-
+
拒绝原因:
-
-
+
+
-
接受
@@ -302,13 +300,13 @@
},
mounted() {
- this.$refs.bindmobile.open()
+
},
methods: {
nav(item) {
- uni.navigateTo({
- url: '/pages/commissionedSales/delegation_details/index'
- })
+ // uni.navigateTo({
+ // url: '/pages/commissionedSales/delegation_details/index'
+ // })
},
tabClick(e) { //点击获取当前标签数据
this.activeItem = e.name; //当前class类名
@@ -318,27 +316,30 @@
close() {
console.log('1111111')
this.$refs.bindmobile.close()
+ this.$refs.bindmobile1.close()
+ this.$refs.bindmobile2.close()
+ this.$refs.bindmobile3.close()
},
- // 已售出 编辑
+ // 待处理
soldEdit() {
- console.log('111111')
+
this.$refs.bindmobile.open()
},
- //待审核 删除
- pendingDeletion() {
-
+ //已接受
+ accepted() {
+ this.$refs.bindmobile1.open()
},
- //待审核 编辑
- editReviewe() {
-
+ //结束委托
+ closingorder() {
+ this.$refs.bindmobile3.open()
},
- // 审核未通过 删除
- auditDelete() {
-
+ // 已拒绝
+ declined() {
+ this.$refs.bindmobile2.open()
},
// 审核未通过 编辑
@@ -581,8 +582,6 @@
.entrust {
- width: 694rpx;
- height: 676rpx;
.entrust_close {
width: 44rpx;
@@ -738,10 +737,10 @@
.entrust_bgb {
width: 694rpx;
height: 994rpx;
- background: url('@/static/images/wtbg3.png') no-repeat;
+ background: url('@/static/images/wtbg5.png') no-repeat;
background-size: 100% 100%;
position: relative;
- margin-top: -190rpx;
+
.entrust_bg-content {
position: absolute;
@@ -788,11 +787,12 @@
margin-left: 18rpx;
}
}
- .bg-content_textarea{
-
+
+ .bg-content_textarea {
+ width: 624rpx;
height: 152rpx;
padding: 25rpx 18rpx;
-
+
background: #F5F5F5;
}
}
@@ -801,7 +801,7 @@
display: flex;
margin-top: 33rpx;
-
+
.determine {
margin-left: 188rpx;
width: 249rpx;
diff --git a/pages/commissionedSales/receivedCommission/index.vue b/pages/commissionedSales/receivedCommission/index.vue
index f50f7ad..dbc2ac8 100644
--- a/pages/commissionedSales/receivedCommission/index.vue
+++ b/pages/commissionedSales/receivedCommission/index.vue
@@ -43,12 +43,12 @@
-
+
已接受
-
+
结束委托
@@ -60,7 +60,7 @@
-
+
已拒绝
@@ -114,6 +114,116 @@
利息比例: 0.05%
+
+
+
+ 拒绝
+
+
+ 接受
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定结束委托?
+
+
+
+ 取消
+
+
+ 确定
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 结束委托申请处理
+
+
+ 结算周期: 30天
+
+
+
+
+ 利息比例: 0.05%
+
+
+
+
+ 拒绝
+
+
+ 接受
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 结束委托申请处理
+
+
+ 结算周期: 30天
+
+
+
+
+ 利息比例: 0.05%
+
+
+
+ 拒绝原因:
+
+
+
+
+
+
+
+
+ 接受
+
+
@@ -190,13 +300,13 @@
},
mounted() {
- this.$refs.bindmobile.open()
+
},
methods: {
- nav(item){
- uni.navigateTo({
- url:'/pages/commissionedSales/delegation_details/index'
- })
+ nav(item) {
+ uni.navigateTo({
+ url: '/pages/commissionedSales/delegation_details/index'
+ })
},
tabClick(e) { //点击获取当前标签数据
this.activeItem = e.name; //当前class类名
@@ -206,27 +316,30 @@
close() {
console.log('1111111')
this.$refs.bindmobile.close()
+ this.$refs.bindmobile1.close()
+ this.$refs.bindmobile2.close()
+ this.$refs.bindmobile3.close()
},
- // 已售出 编辑
+ // 待处理
soldEdit() {
- console.log('111111')
+
this.$refs.bindmobile.open()
},
- //待审核 删除
- pendingDeletion() {
-
+ //已接受
+ accepted() {
+ this.$refs.bindmobile1.open()
},
- //待审核 编辑
- editReviewe() {
-
+ //结束委托
+ closingorder() {
+ this.$refs.bindmobile3.open()
},
- // 审核未通过 删除
- auditDelete() {
-
+ // 已拒绝
+ declined() {
+ this.$refs.bindmobile2.open()
},
// 审核未通过 编辑
@@ -469,8 +582,6 @@
.entrust {
- width: 694rpx;
- height: 676rpx;
.entrust_close {
width: 44rpx;
@@ -480,6 +591,7 @@
width: 100%;
height: 100%;
}
+
z-index: 99999;
position: absolute;
right: 0;
@@ -494,7 +606,6 @@
.entrust_bg-content {
position: absolute;
-
top: 284rpx;
.bg-content-a {
@@ -540,6 +651,174 @@
}
}
+ .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;
+ }
+ }
+
+ }
+
+
}
\ No newline at end of file
diff --git a/pages/releaseManagement/index.vue b/pages/releaseManagement/index.vue
index 20ff42a..58aa571 100644
--- a/pages/releaseManagement/index.vue
+++ b/pages/releaseManagement/index.vue
@@ -3,7 +3,7 @@
-
+
@@ -187,10 +187,16 @@
],
}
},
- onLoad() {
- this.tabTitle = this.tabs[0].name
+ onLoad(num) {
+
+ this.tabTitle = this.tabs[0].name
+
+ if(num.key=='2'){
+ this.activeItem='tabThree'
+ }
+
//有时进入页面需要获取默认的第一个标签做逻辑判断 -- 如下:
- console.log(this.tabs[0])
+ // console.log(this.tabs[0])
},
methods: {
tabClick(e) { //点击获取当前标签数据
diff --git a/pages/trading_hall/product_details/index.vue b/pages/trading_hall/product_details/index.vue
index 779258a..4d3ed10 100644
--- a/pages/trading_hall/product_details/index.vue
+++ b/pages/trading_hall/product_details/index.vue
@@ -3,14 +3,14 @@
-
+
- {{listobj.author.nickname}}
+ {{listobj.mer_name}}
- 100+人关注 100+销量
+ {{listobj.care_count>0?listobj.care_count:0}}人关注 {{listobj.sales>0?listobj.sales:0}}销量
@@ -30,7 +30,7 @@
-
+
@@ -70,10 +70,16 @@
类型
-
+
调货
+
+ 打折
+
+
+
+
查看TA提到的宝贝({{listobj.relevance.length}})
diff --git a/pages/trading_hall/transfer_goods/index.vue b/pages/trading_hall/transfer_goods/index.vue
index 0fd3b5c..f5c8493 100644
--- a/pages/trading_hall/transfer_goods/index.vue
+++ b/pages/trading_hall/transfer_goods/index.vue
@@ -75,9 +75,8 @@
-
+
@@ -96,8 +95,10 @@
- 价格:¥{{price}}
-
+
+ 价格:¥{{price}}
+
@@ -136,13 +137,7 @@
-
+
@@ -154,7 +149,7 @@
import authorize from '@/components/Authorize';
import avatar from "@/components/yq-avatar/yq-avatar.vue";
import associated from '@/components/shoppinglist/shoppinglist.vue';
-
+
import {
TOKENNAME,
HTTP_REQUEST_URL
@@ -173,6 +168,9 @@
import {
configMap
} from '@/utils';
+ import {
+ getCommunitycreate
+ } from '@/api/trading-floor.js'
import store from '@/store';
export default {
components: {
@@ -187,11 +185,13 @@
formData: {
image: [],
content: "",
- topic_id: "",
- spu_id: [],
- video_link: ''
+ topic_id: 0,
+ category_id: 0,
+ video_link: '',
+ is_type: 3,
+ product_info: []
},
- price:0,
+ price: 0,
imageSrc: '',
productList: [],
topicName: {},
@@ -222,7 +222,9 @@
video_link: "",
showVideo: false,
videoplay: false,
- videoContext: ''
+ videoContext: '',
+
+
};
},
computed: {
@@ -251,8 +253,7 @@
onLoad(options) {
// uni.hideTabBar()
this.id = options.id;
- this.order_id = options.order_id;
- // console.log("options.order_id", options.order_id)
+
this.tabActive = options.type || 1;
if (this.community_app_switch.length == 1) {
this.tabActive = this.community_app_switch[0]
@@ -261,16 +262,8 @@
this.isAuto = true;
this.isShowAuth = true
} else {
- if (this.id) {
- this.getDetail()
- } else {
- // const data = getStorage('addPlant');
- // if(data){
- // this.formData.content = data.content || '';
- // this.formData.image = data.image || [];
- // }
- }
- if (this.order_id) this.getOrderGoods()
+
+
}
this.videoContext = uni.createVideoContext("myvideo", this);
},
@@ -279,7 +272,8 @@
this.formData.content = ''
this.formData.image = []
this.formData.topic_id = ''
- this.formData.spu_id = ''
+
+
this.formData.video_link = ''
this.productList = []
this.topicName = {}
@@ -293,31 +287,7 @@
authColse: function(e) {
this.isShowAuth = e;
},
- /*获取图文详情*/
- getDetail() {
- let that = this
- plantDetailApi(that.id).then(res => {
- that.formData = res.data
- that.productList = res.data.relevance || []
- that.topicName = res.data.topic || {}
- }).catch(err => {
- return that.$util.Tips({
- title: err
- });
- })
- },
- /*获取关联订单商品*/
- getOrderGoods() {
- let that = this
- orderAssociatePlantApi(that.order_id).then(res => {
- that.productList = res.data || []
- that.formData.spu_id = res.data.map(val => val.spu_id)
- }).catch(err => {
- return that.$util.Tips({
- title: err
- });
- })
- },
+
/*点击输入价格*/
addprice() {
this.isshow = true
@@ -485,7 +455,7 @@
close() {
this.$refs.associated.close();
-
+
},
/*查看视频*/
videoshow() {
@@ -508,8 +478,23 @@
},
/*获取选中的宝贝*/
getProduct(data) {
- this.productList = data;
- this.formData.spu_id = data.map(val => val.spu_id)
+ if (data.length > 0) {
+this.productList = data;
+ for (let i in data) {
+ this.price = Number(this.price) + (Number(data[i].num) * Number(data[i].price))
+ this.formData.product_info.push({
+ product_attr_unique: data[i].product_attr_unique,
+ number: Number(data[i].num),
+ price: data[i].price
+ })
+ }
+ } else {
+ this.price = 0
+ }
+
+
+
+
this.$refs.associated.close();
},
@@ -517,128 +502,62 @@
* 提交数据
*/
formSubmit: function(e) {
+ console.log(this.id)
let that = this,
value = that.formData;
if (value.image.length == 0) return that.$util.Tips({
- title: '请添加话题图片'
+ title: '请添加图文图片'
+ });
+ if (value.product_info.length == 0) return that.$util.Tips({
+ title: '请选择产品'
});
if (!value.content) return that.$util.Tips({
- title: '请分享使用心得和体会'
+ title: '请添加商品描述'
});
if (that.tabActive == 2 && !value.video_link) {
return that.$util.Tips({
title: '请添加话题视频'
});
}
- if (!value.category_id || !value.topic_id) {
- return that.$util.Tips({
- title: '请选择话题'
- })
- }
- if (that.id) {
- if (value.relevance.length) {
- value.spu_id = value.relevance.map(val => (val.spu && val.spu.spu_id) || val.spu_id)
- }
- }
- value.order_id = that.order_id
- value.is_type = that.tabActive
+
uni.showLoading({
title: '保存中',
mask: true
})
- that.id ? updatePlantApi(that.id, value).then(res => {
- uni.hideLoading()
- that.$util.Tips({
- title: res.messge,
- icon: 'success'
- });
-
- setTimeout(function() {
- if (that.tabActive == 2) {
- uni.navigateTo({
- //#ifdef APP
- url: '/pages/short_video/appSwiper/index?id=' + res.data
- .community_id + '&user=1&uid=' +
- that.uid
- //#endif
- //#ifndef APP
- url: '/pages/short_video/nvueSwiper/index?id=' + res.data
- .community_id + '&user=1&uid=' +
- that.uid
- //#endif
- });
- } else {
- uni.navigateTo({
- url: '/pages/plantGrass/plant_detail/index?id=' + res.data
- .community_id + '&type=' + that
- .tabActive
- })
- }
- /**
- * 将对象所有值为空
- * */
- /**
- * 将对象所有值为空
- * */
+ getCommunitycreate(value).then(res => {
+ if (res.status == '200') {
+ uni.hideLoading()
+ that.$util.Tips({
+ title: '发布成功',
+ icon: 'success'
+ });
that.formData = {
image: [],
content: "",
- topic_id: "",
- spu_id: [],
- video_link: "",
- }
- that.topicName = {}
- }, 1000);
- }).catch(err => {
- return that.$util.Tips({
- title: err
- });
- }) : createPlantApi(value).then(res => {
- uni.hideLoading()
- that.$util.Tips({
- title: res.messge,
- icon: 'success'
- });
- setStorage('addPlant', '');
- setTimeout(function() {
- if (that.tabActive == 2) {
- uni.navigateTo({
- //#ifdef APP
- url: '/pages/short_video/appSwiper/index?id=' + res.data
- .community_id + '&user=1&uid=' +
- that.uid
- //#endif
- //#ifndef APP
- url: '/pages/short_video/nvueSwiper/index?id=' + res.data
- .community_id + '&user=1&uid=' +
- that.uid
- //#endif
- });
- } else {
- uni.navigateTo({
- url: '/pages/plantGrass/plant_detail/index?id=' + res.data
- .community_id + '&type=' + that
- .tabActive
- })
- }
- /**
- * 将对象所有值为空
- * */
- that.formData = {
- image: [],
- content: "",
- topic_id: "",
- spu_id: [],
- video_link: "",
+ topic_id: 0,
+ category_id: 0,
+ video_link: '',
+ is_type: 3,
+ product_info: []
}
+ uni.navigateTo({
+ url: '/pages/releaseManagement/index?key=' + 2
+ })
- }, 1000);
+ } else {
+ that.$util.Tips({
+ title: res.messge,
+ icon: 'success'
+ });
+ }
}).catch(err => {
- // console.log('aaa', value)
+
return that.$util.Tips({
title: err
});
})
+
+
}
}
}
diff --git a/pages/users/order_list/index.vue b/pages/users/order_list/index.vue
index 432146b..0afdb64 100644
--- a/pages/users/order_list/index.vue
+++ b/pages/users/order_list/index.vue
@@ -21,7 +21,7 @@
全部
- {{orderData.all || 0}}
+ {{orderData.orderCount || 0}}
待付款
@@ -493,7 +493,7 @@
*/
getOrderData: function() {
let that = this;
- orderData().then(res => {
+ orderData({product_type:0}).then(res => {
that.$set(that, 'orderData', res.data);
})
},
diff --git a/pages/users/order_list/indexCopy.vue b/pages/users/order_list/indexCopy.vue
index 03d3f7f..d563918 100644
--- a/pages/users/order_list/indexCopy.vue
+++ b/pages/users/order_list/indexCopy.vue
@@ -21,7 +21,7 @@
全部
- {{orderData.all || 0}}
+ {{orderData.orderCount || 0}}
待付款
@@ -493,8 +493,10 @@
*/
getOrderData: function() {
let that = this;
- orderData().then(res => {
- console.log(res.data)
+ orderData({
+ product_type:98
+ }).then(res => {
+ // console.log(res.data)
that.$set(that, 'orderData', res.data);
})
},
diff --git a/pages/users/trading_hall/index.vue b/pages/users/trading_hall/index.vue
index 3f8a4e1..3c7f6c1 100644
--- a/pages/users/trading_hall/index.vue
+++ b/pages/users/trading_hall/index.vue
@@ -17,8 +17,10 @@
-
- {{this.recomname}}
+
+
+ {{this.recomname}}
+
@@ -41,16 +43,16 @@
调货
委托销售
- {{item.name}}
+ {{item.title}}
¥{{item.total_price}}
-
+
- {{item.author.nickname}}
+ {{item.mer_name}}
@@ -164,7 +166,7 @@
},
getlist(index) {
- console.log(this.num)
+
if (this.num == 0) {
this.where = {
page: 1,
@@ -222,8 +224,10 @@
this.visible = false
},
menuAction(action, rowId) {
- console.log(action);
+ // console.log(action);
// 忽略初始化时的传入的空操作
+ this.num=action
+ this.getlist(action)
if (action === '') {
this.recomname = this.options[0].text
} else {
@@ -305,7 +309,7 @@
font-size: 32rpx;
font-family: 'PingFang SC';
font-weight: 400;
- color: #F84221;
+
.recom_sym {
width: 28rpx;
@@ -361,10 +365,11 @@
}
.list {
- width: 100%;
+ width: 694.74rpx;
+ margin: 0 auto;
display: flex;
- justify-content: flex-start;
+ justify-content: space-between;
align-items: center;
flex-wrap: wrap;
@@ -374,7 +379,7 @@
height: 561rpx;
background-color: #fff;
margin-top: 21rpx;
- margin-left: 25rpx;
+
border-radius: 14rpx 14rpx 0 0;
.shopimg {
@@ -403,6 +408,7 @@
font-weight: 400;
color: #FFFFFF;
font-size: 25rpx;
+ margin-right: 15rpx;
}
}
diff --git a/plugin/voice/voice.js b/plugin/voice/voice.js
new file mode 100644
index 0000000..eba91a9
--- /dev/null
+++ b/plugin/voice/voice.js
@@ -0,0 +1,269 @@
+/**
+ * Notes: APP语音播报
+ * @author WJD
+ * @version 1.0.0
+ * @Date 2022-01-26
+ */
+
+// import store from '../store'
+
+// 是否播放中
+let isPlaying = false;
+// 播放列表
+let currentAudio = ['/static/audio/order.mp3'];
+// 播放顺序
+let playIndex = 0
+// 播放器
+let audioPlayer = null;
+// 平台
+let platform = 'iOS';
+// 定时器
+let timer = null;
+// socket地址
+const socketUrl = "wss://gateworker.yngod.cn:8686";
+
+const voice = {
+ // 创建播放器
+ init: () => {
+ // platform = plus.os.name;
+ // if (platform == 'Android') {
+ // let MediaPlayer = plus.android.importClass("android.media.MediaPlayer");
+ // audioPlayer = new MediaPlayer()
+ // }
+ // if (platform == "iOS") {
+ // let AVAudioPlayer = plus.ios.importClass("AVAudioPlayer");
+ // audioPlayer = new AVAudioPlayer();
+ // }
+ console.log('创建播放器成功');
+ // voice.playAudio();
+ },
+ // 连接socket
+ connectSocketGlobal: () => {
+ uni.connectSocket({
+ url: socketUrl,
+ success: (res) => {
+ console.log('连接成功');
+ }
+ })
+
+ uni.onSocketOpen((success) => {
+ console.log('WebSocket连接已打开!');
+ let storeIds = store.state.storeIds;
+ if (storeIds.length > 0) {
+ storeIds.forEach(sid => {
+ uni.sendSocketMessage({
+ data: sid.toString(),
+ success: (s) => {
+ console.log('成功');
+ }
+ });
+ })
+ }
+ store.commit('setData', {
+ key: 'socketIsOpen',
+ val: true
+ });
+ })
+
+ uni.onSocketError(function(error) {
+ console.log('WebSocket连接打开失败,请检查!');
+ });
+
+ uni.onSocketMessage((res) => {
+ console.log('接收播报数据', res)
+ //按接收的内容播放信息
+ try {
+ if (typeof res == 'string') {
+ res = JSON.parse(res);
+ }
+ if (typeof res.data == 'string') {
+ res.data = JSON.parse(res.data);
+ }
+ if(res.data?.Hearbeat) {
+ uni.sendSocketMessage({
+ data: "hearbeat",
+ success: (s) => {
+ console.log('成功');
+ }
+ });
+ return ;
+ }
+ if (res.data.needPlay) {
+ try {
+ // var parseStr = voice.parseAudioData(res.data);
+ } catch (e) {
+ // console.log('解析出错', e)
+ }
+ // console.log('解析数据', parseStr)
+ // voice.addAudioQueue(parseStr);
+ }
+ } catch (e) {}
+ })
+ },
+ //解析服务器数据
+ parseAudioData: function(serverData) {
+ let audio = [];
+ //头部
+ //处理中间数字
+ serverData.data = parseFloat(serverData.data).toString();
+ //如果当前数字中没有小数点,则用.00补足
+ if (serverData.data.indexOf('.') == -1) serverData.data += '.00';
+ let dot = serverData.data.indexOf('.');
+ let l = serverData.data.length;
+ for (let n = 0; n < l; n++) {
+ //如果上一位是0则不加入
+ if (audio[audio.length - 1] != 0 || serverData.data.substr(n, 1) != '0') {
+ audio.push(serverData.data.substr(n, 1));
+ //根据当前数字的位置与dot的位置决定后缀并且当前不是小数点
+ if (serverData.data.substr(n, 1) != '.' && serverData.data.substr(n, 1) != '0') {
+ if (dot - n == 2) {
+ audio.push('ten');
+ } else if (dot - n == 3) {
+ audio.push('hundred');
+ } else if (dot - n == 4) {
+ audio.push('thousand');
+ } else if (dot - n == 5) {
+ audio.push('ten_thousand');
+ }
+ }
+ }
+ }
+ //如果出现1shi则去掉1
+ let _audio = audio.join('&');
+ if (audio[0] == 1) {
+ _audio = _audio.replace('1&shi', 'shi'); //应对一十元问题
+ }
+ if (audio[0] != 0) {
+ _audio = _audio.replace('0&.', '.'); //应对一十点问题
+ }
+ if (_audio.indexOf('.&0') == _audio.length - 2 - 1) { //应对末尾是.0
+ _audio = _audio.substr(0, _audio.length - 2 - 2);
+ }
+ //加入前缀
+ if (_audio) {
+ _audio = 'header_' + serverData.header.toString() + '&' + _audio;
+ } else {
+ _audio = 'header_' + serverData.header.toString();
+ }
+ audio = _audio.split("&");
+ //如果有金额
+ if (l) {
+ audio.push('yuan');
+ }
+ //底部
+ if (serverData.footer) {
+ audio.push('footer');
+ }
+ let result = [];
+ audio.map(item => {
+ if (item != '.')
+ result.push(`/static/audio/tts_${item}.mp3`);
+ else
+ result.push(`/static/audio/tts_dot.mp3`);
+ })
+ return result;
+ },
+ // 随机数
+ getRandomKey: () => {
+ var max = 99999;
+ var min = 1;
+ return (Date.parse(new Date()) + '' + parseInt(Math.random() * (max - min + 1) + min, 10)).toString();
+ },
+
+ // 语言播报语音数据 加入到队列里面
+ addAudioQueue: (parseStr) => {
+ let audioList = store.state.audioList;
+ audioList[voice.getRandomKey()] = parseStr;
+ store.commit('setData', {
+ key: 'audioList',
+ val: audioList
+ });
+ },
+ // 重置播放列表
+ resetPlayList: () => {
+ playIndex = 0;
+ currentAudio = ['/static/audio/order.mp3'];
+ },
+ clearTimer: () => {
+ if (timer) {
+ clearInterval(timer);
+ timer = null;
+ }
+
+ },
+ // 播放音频
+ playAudio: () => {
+
+ if (isPlaying) {
+ console.log('播放中,请等待...')
+ return false;
+ }
+ if (audioPlayer == null) {
+ console.log('未启动音频播放器');
+ return false;
+ }
+
+ let audioList = currentAudio;
+ if (currentAudio.length == 0) {
+ const keys = Object.keys(audioList)
+ if (keys.length) {
+ currentAudio = Object.values(audioList)[0]
+ delete audioList[keys[0]]
+ playIndex = 0
+ // store.commit('setData', {
+ // key: 'audioList',
+ // val: audioList
+ // });
+ } else {
+ voice.resetPlayList();
+ }
+ }
+ console.log('正在播报:', currentAudio[playIndex]);
+ let path = plus.io.convertLocalFileSystemURL(currentAudio[playIndex]);
+ let currentTime = 0; // 当前流媒体的播放的位置,单位是秒
+ let currentDuration = 0; // 当前文件时长
+ if (platform == 'iOS') {
+ let NSData = plus.ios.importClass("NSData");
+ let AVAudioPlayer = plus.ios.importClass("AVAudioPlayer");
+ let pathFileData = NSData.dataWithContentsOfFile(path);
+ audioPlayer.initWithDataerror(pathFileData, null);
+ // audioPlayer.setNumberOfLoops(-1); //-1:无限循环
+ audioPlayer.prepareToPlay(); //初始化播放器
+ audioPlayer.play();
+ isPlaying = audioPlayer.isPlaying();
+ // 当前播放进度 currentTime 秒
+ } else {
+ let MediaPlayer = plus.android.importClass("android.media.MediaPlayer");
+ audioPlayer.setDataSource(path); //指定音频文件路径
+ // audioPlayer.setLooping(true); //设置为循环播放
+ audioPlayer.prepare(); //初始化播放器MediaPlayer
+ audioPlayer.start();
+ isPlaying = audioPlayer.isPlaying();
+ // 获取音乐的总时长
+ // console.log(audioPlayer.getDuration());
+ // 当前播放进度 getCurrentPosition 毫秒
+ }
+ timer = setInterval(function() {
+ currentTime = platform == 'iOS' ? audioPlayer.currentTime() : audioPlayer
+ .getCurrentPosition() / 1000;
+ currentDuration = platform == 'iOS' ? audioPlayer.duration() : audioPlayer
+ .getDuration() / 1000;
+ if (currentTime == currentDuration || currentTime == 0) {
+ isPlaying = false;
+ voice.clearTimer();
+ if (playIndex < currentAudio.length - 1) {
+ playIndex++
+ } else {
+ currentAudio = [];
+ playIndex = 0;
+ }
+ if (Object.keys(audioList).length == 0 && currentAudio.length == 0) {
+ voice.resetPlayList();
+ }
+ voice.playAudio();
+ }
+ }, 200);
+ }
+}
+
+export default voice
diff --git a/static/audio/order.mp3 b/static/audio/order.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..3bec7be6020527c90e2d72bb8f00ea586e94f124
GIT binary patch
literal 11088
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