wangfukang 3 years ago
parent
commit
920ff58ccd
  1. 6
      pages/index/customAndSupplierProductDetail.vue
  2. 389
      pages/inventory/AIInventory.vue
  3. 2
      pages/inventory/addinventory.vue
  4. 219
      pages/inventory/goodsList1.vue

6
pages/index/customAndSupplierProductDetail.vue

@ -5,7 +5,7 @@
<uni-card :title="item.productName?item.productName:'暂无'" v-if="type=='khName'">
<view v-for="(data,index2) in item.customerBuySaleVoList" style="padding-bottom: 20rpx;margin-bottom: 20rpx;border-bottom: 1px solid #eee;">
<view class="uni-body" style="text-align: center;display: flex;flex-direction: column;">
<text v-if="userType==0">{{data.createTime}} </text>
<text>{{data.createTime}} </text>
<text style="color:red;">实际售价:{{data.customerBuyProductDetailLogVos[0].realPrice}}</text>
</view>
<view style="margin: 5px 0;height: 1px;background: #eee;"></view>
@ -27,8 +27,8 @@
<uni-card :title="item.productName?item.productName:'暂无'" v-else>
<view v-for="(data,index2) in item.supplierBuySaleVos" style="padding-bottom: 20rpx;margin-bottom: 20rpx;border-bottom: 1px solid #eee;">
<view class="uni-body" style="text-align: center;display: flex;flex-direction: column;">
<text v-if="userType==0">{{data.createTime}} </text>
<text style="color:red;">采购价:{{data.supplierBuyProductDetailLogVos[0].purchasePrice}}</text>
<text>{{data.createTime}} </text>
<text v-if="userType==0" style="color:red;">采购价:{{data.supplierBuyProductDetailLogVos[0].purchasePrice}}</text>
</view>
<view style="margin: 5px 0;height: 1px;background: #eee;"></view>
<view style="display: flex;border-bottom: 1px solid #eee;height: 50rpx;line-height: 50rpx;">

389
pages/inventory/AIInventory.vue

@ -67,7 +67,7 @@
<view @tap.stop="delShopSpec(value[0],values[0])">
<uni-icons color="red" type="minus" size="26"></uni-icons>
</view>
<text @tap="checkSpec('颜色',value[0])">{{numData(values[0])[0]}}</text><text @tap="checkSpec('尺码',value[0])">{{numData(values[0])[1]}}</text>
<text @tap="checkSpec('颜色',value[0],values[0],numData(values[0])[0])">{{numData(values[0])[0]}}</text><text @tap="checkSpec('尺码',value[0],values[0],numData(values[0])[1])">{{numData(values[0])[1]}}</text>
<!-- <text style="color: red;">单价:¥{{item.price}}</text> -->
<view style="text-align: left;padding-left: 5px;width:40%;display: flex;"><uni-number-box
max="100000" style="margin-top:16rpx;" v-model="values[1].productCount"
@ -243,10 +243,11 @@
</uni-popup>
<!-- 弹出规格选择 -->
<uni-popup ref="getaPopup" background-color="#fff" :is-mask-click="true">
<view class="type-popup">
<view class="type-popup" style="margin-bottom: 0;border-radius: 0;">
<view style="height: 80rpx;font-size: 36rpx;font-weight: bold;line-height: 80rpx;text-align: center;">
选择规格
修改当前规格
</view>
<view style="text-align:center;color:red;font-size: 22rpx;">*如果当前规格中没有您想要的,可以手动输入</view>
<view class="card-list">
<ul>
<li v-for="items in attrList" :key="items.id">
@ -259,11 +260,18 @@
</view>
<view class="content-fur">
<view class="content-low" v-for="item in attributeValue" :key="item.id"
@tap="changeSpec()">{{item.value}}</view>
@tap="changeSpec(item.value)">{{item.value}}</view>
</view>
</li>
</ul>
</view>
<view style="color: #333;width: 90%;margin: 0 auto 20rpx;">
<uni-easyinput v-model="specifications" placeholder="请输入规格值"></uni-easyinput>
</view>
<view @tap="changeSpec(specifications)" style="width: 100%;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 0;background: linear-gradient(90deg, #60F3FF, #088FEB);color: #fff;">
<view>确认修改</view>
</view>
</view>
</uni-popup>
<uni-popup ref="inputDialog" type="dialog">
@ -312,7 +320,9 @@
dataObj: new Map(),
isPlusAndMinus:false,
indexList:[],
attributeValue:[]
attributeValue:[],
specifications:'',
temporary:[] //修改单个规格值临时存放要修改的对象
}
},
filters: {
@ -352,8 +362,7 @@
this.carList1 = uni.getStorageSync('carList1')
}else{
this.carList1 = this.carList1
}
console.log('过来吧露露',this.carList1)
}
this.khName = JSON.parse(JSON.stringify(this.khName)) || ''
if (this.carList.size == 0) { //当前页没有数据
for (let i = 0; i < this.carList1.length; i++) {
@ -464,8 +473,7 @@
setTimeout(res => {
uni.hideLoading();
}, 300)
}
console.log('列表',this.carList)
}
},
onLoad(options) {
@ -481,12 +489,12 @@
}
return name;
},
checkSpec(type,id){
checkSpec(type,id,attr,value){
if(this.carList.get(id).categoryId == ''){
this.tui.toast('请先选择商品分类')
return;
}
//this.attrList
this.temporary = [id,attr,type,value]
let num = type == '颜色' ? 0 : 1
this.getGategoryLowList(num,this.carList.get(id).categoryId)
},
@ -523,8 +531,31 @@
}).catch((res) => {})
this.$forceUpdate()
this.$refs.getaPopup.open()
console.log('规格',this.attrList)
},
//点击某一个规格,可修改
changeSpec(item){
let that = this;
if(item == ''){
this.tui.toast('请输入要修改的规格值')
return;
}
let data = this.temporary
let specMap = new Map() //新的临时存放值那个更改过的值的数组
this.carList.get(data[0]).stockLogList.forEach(function(value, key) {
if(key == data[1]){
let stringKey = key.replace(data[3],item) //拿到了更改过的key
specMap.set(stringKey,value) //name的值没有改,所有的数组都放在这个下面
that.carList.get(data[0]).stockLogList.delete(data[1])
}
})
if(this.carList.get(data[0]).stockLogList.size > 0){
this.carList.get(data[0]).stockLogList.forEach(function(value, key) {
specMap.set(key,value)
})
}
this.carList.get(data[0]).stockLogList = specMap
this.$forceUpdate()
this.$refs.getaPopup.close()
},
inputDialogToggle(item) {
this.inputVal = '';
@ -880,7 +911,6 @@
clickGategroy(item){
this.carList.get(this.productId).categoryName = item.categoryName
this.carList.get(this.productId).categoryId = item.id
console.log(this.carList)
this.$forceUpdate()
this.$refs.typePopup.close()
},
@ -899,7 +929,6 @@
}else if(type== 'addGateDialog'){
this.$refs.addGateDialog.open()
}else if(type== "mergePopup"){
console.log(id)
this.mergeId = id
this.$refs.mergePopup.open()
}
@ -907,16 +936,10 @@
//合并已有
clickMerge(value,key){
let that = this;
console.log('key',this.mergeId)
console.log('11',this.carList.get(this.mergeId)) // 旧的
console.log('订单',this.carList.get(value)) // 新的
this.carList.get(this.mergeId).stockLogList.forEach(function(values, keys) {
if(that.carList.get(value).stockLogList.has(keys)){
console.log('找到了')
that.carList.get(value).stockLogList.get(keys).productCount += that.carList.get(that.mergeId).stockLogList.get(keys).productCount
}else{
console.log('没找到',that.carList.get(that.mergeId).stockLogList.get(keys))
console.log('没找到',keys)
that.carList.get(value).stockLogList.set(keys,that.carList.get(that.mergeId).stockLogList.get(keys))
}
that.carList.get(value).productCount += that.carList.get(that.mergeId).stockLogList.get(keys).productCount
@ -924,160 +947,137 @@
})
this.carList.delete(this.mergeId)
this.$forceUpdate()
console.log(this.carList)
this.getAllPrice()
this.$refs.mergePopup.close()
},
AiAddSpec(value){
console.log(value)
this.toggle('bottom', value.id);
if(value.categoryId == ''){
this.tui.toast('请先选择商品分类')
return;
}
this.getById(value,1);
},
//通过商品id查询商品详细信息
getById(id) {
let that = this;
this.tui.request("/app/product/getById/" + id, "POST", {}, false, true).then((res) => {
if (res.code == 200) {
if (res.result.delFlag == 0) {
that.tui.toast("请将商品上架后再操作!")
return
}
that.goodsDetail = res.result;
that.temporaryList = []
if (that.carList.size > 0) {
// let isTrue = false
that.carList.forEach(function(value, key) {
value.stockLogList.forEach(function(values, keys) {
if(value.stockLogList1.length == 0){
let obj = {
productCount: values.productCount,
name: values.name,
attributeList: keys,
productNum: that.productNum
}
value.stockLogList1.push(obj)
}else{
for(var i=0;i<value.stockLogList1.length;i++){
if(value.stockLogList1[i].attributeList != keys){
if(value.stockLogList1.length == (i+1)){
let obj = {
productCount: values.productCount,
name: values.name,
attributeList: keys,
productNum: that.productNum
}
value.stockLogList1.push(obj)
}
getById(id,current) {
let that = this;
console.log(id)
if(current == 1){
that.goodsDetail = id;
}else{
this.tui.request("/app/product/getById/" + id, "POST", {}, false, true).then((res) => {
if (res.code == 200) {
if (res.result.delFlag == 0) {
that.tui.toast("请将商品上架后再操作!")
return
}
that.goodsDetail = res.result;
} else {
this.tui.toast(res.message)
}
}).catch((res) => {})
}
that.temporaryList = []
if (that.carList.size > 0) {
// let isTrue = false
that.carList.forEach(function(value, key) {
value.stockLogList.forEach(function(values, keys) {
if(value.stockLogList1.length == 0){
let obj = {
productCount: values.productCount,
name: values.name,
attributeList: keys,
productNum: that.productNum
}
value.stockLogList1.push(obj)
}else{
for(var i=0;i<value.stockLogList1.length;i++){
if(value.stockLogList1[i].attributeList != keys){
if(value.stockLogList1.length == (i+1)){
let obj = {
productCount: values.productCount,
name: values.name,
attributeList: keys,
productNum: that.productNum
}
value.stockLogList1.push(obj)
}
}
})
})
that.zNum = 0
that.$nextTick(() => {
that.carList.forEach(function(value, key) {
if (value.productId == id) {
that.zNum = value.productCount
that.temporaryList = value.stockLogList1
that.pageOldTemList = value.stockLogList1
that.oldTemList = value.stockLogList1
}
}
})
})
that.zNum = 0
that.$nextTick(() => {
that.carList.forEach(function(value, key) {
if (value.productId == id) {
that.zNum = value.productCount
that.temporaryList = value.stockLogList1
that.pageOldTemList = value.stockLogList1
that.oldTemList = value.stockLogList1
}
value.stockLogList1 = []
})
})
}
this.tui.request("/app/productAttribute/selectAttributeAndValueByCategoryId", "POST", {
categoryId: this.goodsDetail.categoryId
}, false, true).then((res1) => {
if (res1.code == 200) {
this.goodsList = []
this.$refs.shopPopup.open('bottom')
if (typeof(res1.result) == 'string') {
let newObj = JSON.parse(res1.result)
let newArr = []
let dataArr = []
for (let val in newObj) {
let valueObj = [];
for (var i = 0; i < newObj[val].length; i++) {
valueObj.push({
value: newObj[val][i],
isChecked: false
})
this.dataObj.set(newObj[val][i], val)
// isTrue = false
}
newArr.push({
name: val,
value: valueObj
})
}
this.goodsDetail.attributeList = newArr;
for (var i = 0; i < this.goodsDetail.attributeList.length; i++) {
let oldCheck = false
let oldValue = []
for (var m = 0; m < this.goodsDetail.attributeList[i].value
.length; m++) {
if (this.goodsDetail.attributeList[i].value[m].isChecked == true) {
oldCheck = true
oldValue.push(this.goodsDetail.attributeList[i].value[m].value)
}
value.stockLogList1 = []
})
})
}
that.$nextTick(() => {
console.log('oldTemList', that.oldTemList)
console.log('temporaryList', that.temporaryList)
console.log('pageOldTemList', that.pageOldTemList)
})
this.tui.request("/app/productAttribute/selectAttributeAndValueByCategoryId", "POST", {
categoryId: this.goodsDetail.categoryId
}, false, true).then((res1) => {
if (res1.code == 200) {
this.goodsList = []
this.$refs.shopPopup.open('bottom')
if (typeof(res1.result) == 'string') {
let newObj = JSON.parse(res1.result)
let newArr = []
let dataArr = []
for (let val in newObj) {
let valueObj = [];
// let isTrue = false
for (var i = 0; i < newObj[val].length; i++) {
// for (var m = 0; m < this.oldTemList.length; m++) {
// var data = this.oldTemList[m].name.split('/')
// for (var j = 0; j < data.length; j++) {
// if (data[j] == newObj[val][i]) {
// isTrue = true
// }
// }
// }
// for (var m = 0; m < this.pageOldTemList.length; m++) {
// var data = this.pageOldTemList[m].name.split('/')
// for (var j = 0; j < data.length; j++) {
// if (data[j] == newObj[val][i]) {
// isTrue = true
// }
// }
// }
valueObj.push({
value: newObj[val][i],
isChecked: false
})
this.dataObj.set(newObj[val][i], val)
// isTrue = false
}
newArr.push({
name: val,
value: valueObj
})
}
this.goodsDetail.attributeList = newArr;
for (var i = 0; i < this.goodsDetail.attributeList.length; i++) {
let oldCheck = false
let oldValue = []
for (var m = 0; m < this.goodsDetail.attributeList[i].value
.length; m++) {
if (this.goodsDetail.attributeList[i].value[m].isChecked == true) {
oldCheck = true
oldValue.push(this.goodsDetail.attributeList[i].value[m].value)
}
}
// if (oldCheck) {
// let specs1 = {
// specs: []
// }
// specs1.specs = oldValue
// this.goodsList.push(specs1)
// } else {
let specs1 = {
specs: []
}
this.goodsList.push(specs1)
// }
oldCheck = false
oldValue = []
}
} else {
this.tui.toast('失败了')
}
} else {
this.tui.toast(res1.message)
}
}).catch((res) => {})
} else {
this.tui.toast(res.message)
}
}
let specs1 = {
specs: []
}
this.goodsList.push(specs1)
oldCheck = false
oldValue = []
}
} else {
this.tui.toast('失败了')
}
} else {
this.tui.toast(res1.message)
}
}).catch((res) => {})
this.getKCList(id);
this.getKCList(current == 1?id.id:id);
},
//库存商品详情
getKCList(id) {
@ -1275,39 +1275,34 @@
delCarData(index) {
this.temporaryList.splice(index, 1);
this.temporaryChange()
// uni.showModal({
// title: "提示",
// content: "确定删除此条商品吗?",
// success: function(res) {
// if(res.confirm){
// that.carList.get(id).productCount -= that.carList.get(id).stockLogList.get(name);
// that.carList.get(id).stockLogList.delete(name)
// that.carList.get(id).price = that.carList.get(id).productCount * that.carList.get(id).purchasePrice
// if(that.carList.get(id).stockLogList.size == 0){
// that.carList.delete(id)
// }
// that.getAllPrice()
// }
// that.$forceUpdate()
// }
// })
},
//删除商品下的某一个规格
delShopSpec(id, name) {
var that = this;
var that = this;
console.log(that.carList)
uni.showModal({
title: "提示",
content: "确定删除此条商品吗?",
success: function(res) {
if (res.confirm) {
that.carList.get(id).productCount -= that.carList.get(id).stockLogList.get(name).productCount;
that.carList.get(id).stockLogList.delete(name)
if (res.confirm) {
if(that.carList.get(id).stockLogList.size == 1){
that.carList.get(id).productCount = that.carList.get(id).stockLogList.get(name).productCount;
}else{
that.carList.get(id).productCount -= that.carList.get(id).stockLogList.get(name).productCount;
}
let count = that.carList.get(id).stockLogList.get(name).productCount
that.carList.get(id).stockLogList.delete(name)
that.carList.get(id).price = that.carList.get(id).productCount * that.carList.get(
id).purchasePrice
if (that.carList.get(id).stockLogList.size == 0) {
that.carList.delete(id)
let key = '{"颜色":"均色","尺码":"均码"}'
let value = {
name:'均色/均码/',
productCount: count
}
that.carList.get(id).stockLogList.set(key,value)
}
that.getAllPrice()
@ -1320,13 +1315,14 @@
async inventorySubmit() {
if (this.khName == '' || this.carList == '') {
uni.showToast({
title: "商品信息填写完成后入库!",
title: "请选择供应商后入库!",
icon: 'none'
})
return
}
let that = this;
let purchase = {
let purchase = {
id:uni.getStorageSync('AiInventoryId'),
alreadyPay: this.alreadyPay == '' ? 0 : this.alreadyPay, //已付金额
noPay: this.noPay == '' ? 0 : this.noPay, //欠款
shouldPay: this.shouldPay, //应付金额
@ -1337,7 +1333,7 @@
supplierName: this.khName.consigneeName
}
let purchaseDetails = [];
console.log(this.carList)
let jishuqi = 0
this.carList.forEach(function(value, key) {
value.stockLogList1 = []
if (value.purchasePrice == '' || value.purchasePrice == 0) {
@ -1363,11 +1359,13 @@
value.stockLogList1.push(obj)
})
delete value.id;
purchaseDetails.push(value)
purchaseDetails.push(value)
jishuqi ++
})
console.log(purchaseDetails)
console.log(purchase)
await this.goInventory(purchase,purchaseDetails)
if(jishuqi == this.carList.size){
await this.goInventory(purchase,purchaseDetails)
}
},
goInventory(purchase,purchaseDetails){
uni.navigateTo({
@ -1391,8 +1389,7 @@
})
this.alreadyPay = this.shouldPay
that.noPay = this.shouldPay - this.alreadyPay
this.$forceUpdate()
console.log('计算',this.carList)
this.$forceUpdate()
},
//修改已选规格的数量
GoodsNumChange(e, index, index1) {

2
pages/inventory/addinventory.vue

@ -977,7 +977,7 @@
inventorySubmit() {
if (this.khName == '' || this.carList == '') {
uni.showToast({
title: "商品信息填写完成后入库!",
title: "请选择供应商后入库!",
icon: 'none'
})
return

219
pages/inventory/goodsList1.vue

@ -21,20 +21,29 @@
placeholder="请选择销售员" @change="categoryChange"></uni-data-select>
</view>
<view class="shop-box" style="border-bottom: 1px solid #eee;margin-bottom: 20rpx;">
<u-grid :col="2" border>
<u-grid-item index="add" @tap.stop="scanCodeAdd">
<u-icon name="scan" size="36"></u-icon>
<view style="height: 80rpx;display: flex;padding: 5px 0;border-bottom: 1px solid #eee;">
<view @tap.stop="scanCodeAdd" style="width: 50%;text-align: center;line-height: 70rpx;">
<uni-icons type="scan" size="12"></uni-icons>
<text>扫一扫</text>
</u-grid-item>
<u-grid-item @tap.stop="goodsAdd">
<u-icon name="plus" size="28"></u-icon>
</view>
<view @tap.stop="goodsAdd" style="width: 50%;text-align: center;line-height: 70rpx;border-left: 1px solid #eee;">
<uni-icons type="plusempty" size="12"></uni-icons>
<text>添加商品</text>
</u-grid-item>
</u-grid>
</view>
</view>
<view style="height: 150rpx;width: 100%;display: flex;" @tap="toggle('center',item)">
<view style="width: 70rpx;height: 70rpx;margin: 40rpx;display: block;overflow: hidden;">
<img src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/0db7dd480e4644af871ce7bf97f4f775.jpg" alt="" style="width: 100%;height: 100%;" />
</view>
<view>
<view style="height: 80rpx;font-size: 30rpx;font-weight: bold;line-height: 80rpx;">AI开单</view>
<view style="font-size: 26rpx;color: #777;">使用AI助手语音识别,一键返回商品详情</view>
</view>
</view>
</view>
</view>
</view>
<view class="content-box" style="margin-top: 346rpx;">
<view class="content-box" style="margin-top: 388rpx;">
<view class="shop-box" style="border-top:5px solid #eee;" v-for="(value,key) in Array.from(carList)"
:key="key">
<view class="shop-name" style="position: relative;">
@ -367,6 +376,39 @@
</view>
</view>
</uni-popup>
<!-- 语音识别弹出层 -->
<view>
<uni-popup ref="popup" background-color="#fff">
<view class="voice-popup-content">
<view class="voice-popup-title">
<text>语音录入</text>
<uni-icons @tap='close' type="closeempty" color='red' size="16"
style="height:40rpx;line-height: 40rpx;position: absolute !important;bottom:0;right: 30rpx;"></uni-icons>
</view>
<view style="text-align: center;width: 100%;line-height: 40rpx;font-size: 11px;color: #777;">
语音示例:货号02-37,白色M码,10件
</view>
<view class="voice-popup-container">
<textarea name="" id="" style="width:100%;height:300rpx;border:1px solid #eee;margin:0;" v-model="voiceText"
placeholder="等待语音识别中..."></textarea>
<view>
<text style="color:red;font-size:22rpx;">*长按“语音”按钮录入,系统将自动识别</text>
</view>
<view class="voice-popup-bottom">
<view class="voice-popup-btn" @tap="clearText">清空</view>
<view class="voice-popup-btn" @tap="setDetail">确认</view>
</view>
</view>
<view class="voice-btn" @touchstart="kaishi" @touchend="jieshu">
<img src="/static/images/maikefeng.png" style="width: 80%;height: 80%;margin: 10%;" alt="">
</view>
</view>
</uni-popup>
</view>
<view class="voice-model" v-if="recordState == true">
<img src="/static/images/maikefeng.png" alt="">
<view class="voice-text">语音识别中...</view>
</view>
<!-- 金额展示框 -->
<uni-popup ref="showPopup" background-color="#fff">
<view class="popup-pay-content">
@ -407,7 +449,9 @@
<script>
import util from '@/components/kk-printer/utils/util.js';
import * as blesdk from '@/components/kk-printer/utils/bluetoolth.js';
import kkPrinter from '@/components/kk-printer/index.vue';
import kkPrinter from '@/components/kk-printer/index.vue';
var plugin = requirePlugin("WechatSI")
let manager = plugin.getRecordRecognitionManager()
export default {
data() {
return {
@ -483,7 +527,8 @@
],
discountType: '', //折扣类型
discountCurrent: '',
current: '',
current: '',
voiceText: ' ',
discCurrent: '', //折扣
logisticsCurrent: '', //物流
categoryList: '', //销售员
@ -737,7 +782,8 @@
},
onLoad(option) {
this.xsyList();
this.xsyList();
this.initRecord();
},
methods: {
//保存已选
@ -984,6 +1030,25 @@
this.createByName = this.categoryList[i].text
}
}
},
//清空语音输入的文字
clearText(){
this.voiceText = ''
},
//编辑挂单信息
setDetail(e) {
this.tui.request("/app/sale/buyAi", "POST", {
aiMsg:this.voiceText
}, false, true).then((res) => {
if (res.code == 200) {
this.voiceText = ''
this.$refs.popup.close()
} else {
this.tui.toast(res.message)
}
}).catch((res) => {
this.tui.toast(res)
})
},
//扫一扫功能
scanCodeAdd() {
@ -1054,6 +1119,11 @@
uni.showLoading({
title: '加载中...'
})
} else {
wx.vibrateShort()
this.initRecord();
this.voiceText = ' '
this.$refs.popup.open(type)
}
},
//整体选择是批发价还是零售价
@ -1548,6 +1618,60 @@
url: '/pages/billing/changeGoods1'
})
},
//关闭弹出层
close() {
this.$refs.popup.close()
},
//按住语音识别,开始
kaishi() {
this.recordState = true
manager.start({
duration: 60000,
lang: "zh_CN"
});
},
//松开语音识别,结束
jieshu() {
this.recordState = false
manager.stop()
},
//语音内容为空
showRecordEmptyTip() {
uni.showToast({
title: "请重新说一遍",
icon: 'error'
})
},
//语音识别功能初始化
initRecord() {
let that = this;
manager.stop()
// 识别结束事件
manager.onStop = (res) => {
if (res.result == '') {
that.showRecordEmptyTip()
return
}
if(that.voiceText == ''){
that.voiceText = res.result
}else if(that.voiceText == null){
that.voiceText = res.result
}else{
res.result = '\n' + res.result
that.voiceText += res.result
}
}
// 识别错误事件
manager.onError = (res) => {
if (res.retcode == '-40001') {
uni.showToast({
title: '使用次数超限制,请联系管理员!',
icon: 'none'
})
}
}
},
showPrice(){
this.$refs.showPopup.open()
},
@ -2545,5 +2669,74 @@
text-align: center;
}
}
.voice-popup-content {
align-items: center;
justify-content: center;
padding: 15px;
width: 500rpx;
border-radius: 10px;
height: 600rpx;
background-color: #fff;
}
.voice-popup-title {
font-size: 36rpx;
font-weight: bold;
text-align: center;
position: relative;
}
.voice-popup-container {
margin-top: 20rpx;
}
.voice-popup-bottom {
display: flex;
height: 80rpx;
color: #fff;
line-height: 80rpx;
margin-top: 30rpx;
}
.voice-popup-btn {
flex: 1;
text-align: center;
background: linear-gradient(90deg, #FF9797, #FFC1E0);
}
.voice-popup-btn:last-child {
background: linear-gradient(90deg, #60F3FF, #088FEB);
}
.voice-model {
width: 300rpx;
height: 300rpx;
display: flex;
justify-content: center;
flex-flow: column;
position: fixed;
left: 50%;
background: rgba(0, 0, 0, 0.5);
border-radius: 20rpx;
color: #fff;
text-align: center;
margin-left: -150rpx;
z-index: 999;
}
.voice-model img {
width: 200rpx;
height: 200rpx;
margin: 0 auto;
}
.voice-btn{
position: absolute;
bottom: -250rpx;
left: 30%;
width: 180rpx;
height: 180rpx;
background: #eee;
border-radius: 50%;
}
</style>
Loading…
Cancel
Save