Commit 314e0846 authored by jyx's avatar jyx

代码优化

parent f7d38554
...@@ -179,7 +179,7 @@ export default { ...@@ -179,7 +179,7 @@ export default {
if (fail) { if (fail) {
fail(res.data.message); fail(res.data.message);
} }
message.notify(res.data.message); // message.notify(res.data.message);
break; break;
} }
}, },
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
<view class="label-wrap"> <view class="label-wrap">
<view class="str">{{strInfo}}</view> <view class="str">{{strInfo}}</view>
<view class="str2 mt-30" @click="open1">{{strLabel1}}</view> <view class="str2 mt-30" @click="openGuide">{{strLabel1}}</view>
<view class="str2 mt-10" @click="open2">{{strLabel2}}</view> <view class="str2 mt-10" @click="openRefund">{{strLabel2}}</view>
<view class="str2 mt-10" @click="callPhone">{{strLabel3}}</view> <view class="str2 mt-10" @click="callPhone">{{strLabel3}}</view>
</view> </view>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<swiper class="swiper-wrap" :duration="1000" @change="changeGuide" :current="curGuideIndex"> <swiper class="swiper-wrap" :duration="1000" @change="changeGuide" :current="curGuideIndex">
<swiper-item v-for="(item,index) in guideImgs" :key="index"> <swiper-item v-for="(item,index) in guideImgs" :key="index">
<view class="swiper-item"> <view class="swiper-item">
<image :src="item" mode="aspectFill" class=""></image> <image :src="item" mode="scaleToFill" class="image"></image>
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<uni-popup class="popup" ref="popup2" type="center"> <uni-popup class="popup" ref="popup2" type="center">
<view class="pop-wrap" style="justify-content:flex-start"> <view class="pop-wrap" style="justify-content:flex-start">
<view style="margin-left: auto;" @click="closeDialog2"> <view style="margin-left: auto;" @click="closeRefund">
<icon size="30" type="clear"></icon> <icon size="30" type="clear"></icon>
</view> </view>
<view class="refund-wrap flex1 mt-30"> <view class="refund-wrap flex1 mt-30">
...@@ -34,14 +34,14 @@ ...@@ -34,14 +34,14 @@
</view> </view>
<input v-model="alipayOrder" class="input mt-30" type="number" placeholder="请输入支付宝订单号" /> <input v-model="alipayOrder" class="input mt-30" type="number" placeholder="请输入支付宝订单号" />
<text class="guide-text" style="margin-top: 30rpx;" @click="open3">立即退款</text> <text class="guide-text" style="margin-top: 30rpx;" @click="openTip">立即退款</text>
</view> </view>
</view> </view>
</uni-popup> </uni-popup>
<uni-popup class="popup2" ref="popup3" type="center"> <uni-popup class="popup2" ref="popup3" type="center">
<uni-popup-dialog title="\n是否确定要退款?" :duration="2000" :before-close="true" @close="closeDialog3" <uni-popup-dialog :style="{color:refundColor}" :title="refundResult" :duration="2000"
@confirm="confirm"></uni-popup-dialog> :showClose="showTipColse" @close="closeTip" @confirm="confirm"></uni-popup-dialog>
</uni-popup> </uni-popup>
</view> </view>
</template> </template>
...@@ -66,11 +66,16 @@ ...@@ -66,11 +66,16 @@
strLabel2: "2.一键退款", strLabel2: "2.一键退款",
strLabel3: "3.客服电话", strLabel3: "3.客服电话",
guideImgs: [ guideImgs: [
"", "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay1.png",
"", "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay2.png",
"" "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay3.png",
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay4.png",
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay5.png"
], ],
refundImg: '', refundImg: '',
refundResult: '\n是否确定要退款?',
refundColor: "#909399",
showTipColse: true,
guideText: "下一步", guideText: "下一步",
curGuideIndex: 0 curGuideIndex: 0
}; };
...@@ -78,10 +83,15 @@ ...@@ -78,10 +83,15 @@
methods: { methods: {
handleRefund() { handleRefund() {
if (!this.alipayOrder) { if (!this.alipayOrder) {
message.notify('请输入支付宝订单号'); setTimeout(() => {
this.refundResult = '\n请输入支付宝订单号'
this.showTipColse = false
this.refundColor = '#f56c6c'
this.openTip()
}, 500)
return; return;
} }
let that = this let that = this
this.post({ this.post({
url: '/payH5/refundForAliAto', url: '/payH5/refundForAliAto',
...@@ -90,13 +100,20 @@ ...@@ -90,13 +100,20 @@
}, },
success: ({ success: ({
data data
}) => { }) => {
that.closeDialog2() that.closeRefund()
// message.notify(data.msg) that.refundResult = data.message
that.showTipColse = false
that.refundColor = '#09bb07'
that.openTip()
}, },
fail: () => { fail: (e) => {
that.closeDialog2() that.closeRefund()
message.notify("网络出小差了~") that.refundResult = '\n' + e
that.showTipColse = false
that.refundColor = '#f56c6c'
that.openTip()
// message.notify("网络出小差了~")
} }
}); });
}, },
...@@ -113,8 +130,6 @@ ...@@ -113,8 +130,6 @@
}, },
changeGuide(e) { changeGuide(e) {
this.curGuideIndex = e.detail.current this.curGuideIndex = e.detail.current
console.log("sssssss", this.curGuideIndex)
console.log("sssssss-", this.guideImgs.length)
if (this.curGuideIndex >= this.guideImgs.length - 1) { if (this.curGuideIndex >= this.guideImgs.length - 1) {
this.guideText = "我知道了" this.guideText = "我知道了"
} else { } else {
...@@ -123,7 +138,7 @@ ...@@ -123,7 +138,7 @@
}, },
clickGuide() { clickGuide() {
if (this.curGuideIndex >= this.guideImgs.length - 1) { if (this.curGuideIndex >= this.guideImgs.length - 1) {
this.closeDialog1() this.closeGuide()
} else { } else {
if (++this.curGuideIndex >= this.guideImgs.length - 1) { if (++this.curGuideIndex >= this.guideImgs.length - 1) {
this.guideText = "我知道了" this.guideText = "我知道了"
...@@ -132,16 +147,18 @@ ...@@ -132,16 +147,18 @@
} }
} }
}, },
open1() { openGuide() {
// APP退款引导
this.$refs.popup1.open() this.$refs.popup1.open()
}, },
open2() { openRefund() {
// 退款
this.$refs.popup2.open() this.$refs.popup2.open()
}, },
open3() { openTip() {
this.$refs.popup3.open() this.$refs.popup3.open()
}, },
closeDialog1() { closeGuide() {
setTimeout(() => { setTimeout(() => {
this.curGuideIndex = 0 this.curGuideIndex = 0
this.guideText = "下一步" this.guideText = "下一步"
...@@ -149,14 +166,23 @@ ...@@ -149,14 +166,23 @@
this.$refs.popup1.close() this.$refs.popup1.close()
}, },
closeDialog2() { closeRefund() {
this.$refs.popup2.close() this.$refs.popup2.close()
}, },
closeDialog3() { closeTip() {
this.$refs.popup3.close() this.$refs.popup3.close()
}, },
confirm() { confirm() {
this.closeDialog3() this.closeTip()
if (!this.showTipColse) {
setTimeout(() => {
this.refundResult = '\n是否确定要退款?'
this.showTipColse = true
}, 500)
return
}
this.handleRefund() this.handleRefund()
} }
} }
...@@ -258,11 +284,14 @@ ...@@ -258,11 +284,14 @@
height: 800rpx; height: 800rpx;
width: 80%; width: 80%;
text-align: center; text-align: center;
.image {
width: 100%;
height: 100%;
}
} }
} }
} }
.guide-text { .guide-text {
...@@ -277,6 +306,16 @@ ...@@ -277,6 +306,16 @@
border-radius: 8rpx; border-radius: 8rpx;
} }
.success-text {
color: #09bb07;
}
.warn-text {
color: #e6a23c;
}
.error-text {
color: #f56c6c;
}
} }
</style> </style>
\ No newline at end of file
## 1.9.5(2024-10-15)
- 修复 微信小程序中的getSystemInfo警告
## 1.9.4(2024-10-12)
- 修复 微信小程序中的getSystemInfo警告
## 1.9.3(2024-10-12)
- 修复 微信小程序中的getSystemInfo警告
## 1.9.2(2024-09-21)
- 修复 uni-popup在android上的重复点击弹出位置不正确的bug
## 1.9.1(2024-04-02)
- 修复 uni-popup-dialog vue3下使用value无法进行绑定的bug(双向绑定兼容旧写法)
## 1.9.0(2024-03-28)
- 修复 uni-popup-dialog 双向绑定时初始化逻辑修正
## 1.8.9(2024-03-20)
- 修复 uni-popup-dialog 数据输入时修正为双向绑定
## 1.8.8(2024-02-20)
- 修复 uni-popup 在微信小程序下出现文字向上闪动的bug
## 1.8.7(2024-02-02)
- 新增 uni-popup-dialog 新增属性focus:input模式下,是否自动自动聚焦
## 1.8.6(2024-01-30)
- 新增 uni-popup-dialog 新增属性maxLength:限制输入框字数
## 1.8.5(2024-01-26)
- 新增 uni-popup-dialog 新增属性showClose:控制关闭按钮的显示
## 1.8.4(2023-11-15)
- 新增 uni-popup 支持uni-app-x 注意暂时仅支持 `maskClick` `@open` `@close`
## 1.8.3(2023-04-17)
- 修复 uni-popup 重复打开时的 bug
## 1.8.2(2023-02-02)
- uni-popup-dialog 组件新增 inputType 属性
## 1.8.1(2022-12-01)
- 修复 nvue 下 v-show 报错
## 1.8.0(2022-11-29)
- 优化 主题样式
## 1.7.9(2022-04-02) ## 1.7.9(2022-04-02)
- 修复 弹出层内部无法滚动的bug - 修复 弹出层内部无法滚动的bug
## 1.7.8(2022-03-28) ## 1.7.8(2022-03-28)
......
...@@ -10,14 +10,15 @@ ...@@ -10,14 +10,15 @@
</view> </view>
<view v-else class="uni-dialog-content"> <view v-else class="uni-dialog-content">
<slot> <slot>
<input class="uni-dialog-input" v-model="val" type="text" :placeholder="placeholderText" :focus="focus" > <input class="uni-dialog-input" :maxlength="maxlength" v-model="val" :type="inputType"
:placeholder="placeholderText" :focus="focus">
</slot> </slot>
</view> </view>
<view class="uni-dialog-button-group"> <view class="uni-dialog-button-group">
<view class="uni-dialog-button" @click="closeDialog"> <view class="uni-dialog-button" v-if="showClose" @click="closeDialog">
<text class="uni-dialog-button-text">{{closeText}}</text> <text class="uni-dialog-button-text">{{closeText}}</text>
</view> </view>
<view class="uni-dialog-button uni-border-left" @click="onOk"> <view class="uni-dialog-button" :class="showClose?'uni-border-left':''" @click="onOk">
<text class="uni-dialog-button-text uni-button-color">{{okText}}</text> <text class="uni-dialog-button-text uni-button-color">{{okText}}</text>
</view> </view>
</view> </view>
...@@ -28,16 +29,19 @@ ...@@ -28,16 +29,19 @@
<script> <script>
import popup from '../uni-popup/popup.js' import popup from '../uni-popup/popup.js'
import { import {
initVueI18n initVueI18n
} from '@dcloudio/uni-i18n' } from '@dcloudio/uni-i18n'
import messages from '../uni-popup/i18n/index.js' import messages from '../uni-popup/i18n/index.js'
const { t } = initVueI18n(messages) const {
t
} = initVueI18n(messages)
/** /**
* PopUp 弹出层-对话框样式 * PopUp 弹出层-对话框样式
* @description 弹出层-对话框样式 * @description 弹出层-对话框样式
* @tutorial https://ext.dcloud.net.cn/plugin?id=329 * @tutorial https://ext.dcloud.net.cn/plugin?id=329
* @property {String} value input 模式下的默认值 * @property {String} value input 模式下的默认值
* @property {String} placeholder input 模式下输入提示 * @property {String} placeholder input 模式下输入提示
* @property {Boolean} focus input模式下是否自动聚焦,默认为true
* @property {String} type = [success|warning|info|error] 主题样式 * @property {String} type = [success|warning|info|error] 主题样式
* @value success 成功 * @value success 成功
* @value warning 提示 * @value warning 提示
...@@ -46,8 +50,10 @@ ...@@ -46,8 +50,10 @@
* @property {String} mode = [base|input] 模式、 * @property {String} mode = [base|input] 模式、
* @value base 基础对话框 * @value base 基础对话框
* @value input 可输入对话框 * @value input 可输入对话框
* @showClose {Boolean} 是否显示关闭按钮
* @property {String} content 对话框内容 * @property {String} content 对话框内容
* @property {Boolean} beforeClose 是否拦截取消事件 * @property {Boolean} beforeClose 是否拦截取消事件
* @property {Number} maxlength 输入
* @event {Function} confirm 点击确认按钮触发 * @event {Function} confirm 点击确认按钮触发
* @event {Function} close 点击取消按钮触发 * @event {Function} close 点击取消按钮触发
*/ */
...@@ -55,12 +61,30 @@ ...@@ -55,12 +61,30 @@
export default { export default {
name: "uniPopupDialog", name: "uniPopupDialog",
mixins: [popup], mixins: [popup],
emits:['confirm','close'], emits: ['confirm', 'close', 'update:modelValue', 'input'],
props: { props: {
inputType: {
type: String,
default: 'text'
},
showClose: {
type: Boolean,
default: true
},
// #ifdef VUE2
value: { value: {
type: [String, Number], type: [String, Number],
default: '' default: ''
}, },
// #endif
// #ifdef VUE3
modelValue: {
type: [Number, String],
default: ''
},
// #endif
placeholder: { placeholder: {
type: [String, Number], type: [String, Number],
default: '' default: ''
...@@ -84,20 +108,27 @@ ...@@ -84,20 +108,27 @@
beforeClose: { beforeClose: {
type: Boolean, type: Boolean,
default: false default: false
}, },
cancelText:{ cancelText: {
type: String, type: String,
default: '' default: ''
}, },
confirmText:{ confirmText: {
type: String, type: String,
default: '' default: ''
},
maxlength: {
type: Number,
default: -1,
},
focus: {
type: Boolean,
default: true,
} }
}, },
data() { data() {
return { return {
dialogType: 'error', dialogType: 'error',
focus: false,
val: "" val: ""
} }
}, },
...@@ -125,7 +156,21 @@ ...@@ -125,7 +156,21 @@
} }
}, },
value(val) { value(val) {
this.val = val if (this.maxlength != -1 && this.mode === 'input') {
this.val = val.slice(0, this.maxlength);
} else {
this.val = val
}
},
val(val) {
// #ifdef VUE2
// TODO 兼容 vue2
this.$emit('input', val);
// #endif
// #ifdef VUE3
// TODO 兼容 vue3
this.$emit('update:modelValue', val);
// #endif
} }
}, },
created() { created() {
...@@ -134,25 +179,25 @@ ...@@ -134,25 +179,25 @@
// this.popup.closeMask() // this.popup.closeMask()
if (this.mode === 'input') { if (this.mode === 'input') {
this.dialogType = 'info' this.dialogType = 'info'
this.val = this.value this.val = this.value;
// #ifdef VUE3
this.val = this.modelValue;
// #endif
} else { } else {
this.dialogType = this.type this.dialogType = this.type
} }
}, },
mounted() {
this.focus = true
},
methods: { methods: {
/** /**
* 点击确认按钮 * 点击确认按钮
*/ */
onOk() { onOk() {
if (this.mode === 'input'){ if (this.mode === 'input') {
this.$emit('confirm', this.val) this.$emit('confirm', this.val)
}else{ } else {
this.$emit('confirm') this.$emit('confirm')
} }
if(this.beforeClose) return if (this.beforeClose) return
this.popup.close() this.popup.close()
}, },
/** /**
...@@ -160,17 +205,17 @@ ...@@ -160,17 +205,17 @@
*/ */
closeDialog() { closeDialog() {
this.$emit('close') this.$emit('close')
if(this.beforeClose) return if (this.beforeClose) return
this.popup.close() this.popup.close()
}, },
close(){ close() {
this.popup.close() this.popup.close()
} }
} }
} }
</script> </script>
<style lang="scss" > <style lang="scss">
.uni-popup-dialog { .uni-popup-dialog {
width: 300px; width: 300px;
border-radius: 11px; border-radius: 11px;
...@@ -186,7 +231,10 @@ ...@@ -186,7 +231,10 @@
padding-top: 25px; padding-top: 25px;
} }
.uni-dialog-title-text { .uni-dialog-title-text {
padding: 0 10px;
line-height: 26px;
text-align: center;
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
} }
...@@ -268,4 +316,4 @@ ...@@ -268,4 +316,4 @@
.uni-popup__info { .uni-popup__info {
color: #909399; color: #909399;
} }
</style> </style>
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
{ {
text: '支付宝', text: '支付宝',
icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/d684ae40-50be-11eb-8ff1-d5dcf8779628.png', icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/d684ae40-50be-11eb-8ff1-d5dcf8779628.png',
name: 'wx' name: 'ali'
}, },
{ {
text: 'QQ', text: 'QQ',
......
{ {
"id": "uni-popup", "id": "uni-popup",
"displayName": "uni-popup 弹出层", "displayName": "uni-popup 弹出层",
"version": "1.7.9", "version": "1.9.5",
"description": " Popup 组件,提供常用的弹层", "description": " Popup 组件,提供常用的弹层",
"keywords": [ "keywords": [
"uni-ui", "uni-ui",
...@@ -17,12 +17,8 @@ ...@@ -17,12 +17,8 @@
"directories": { "directories": {
"example": "../../temps/example_temps" "example": "../../temps/example_temps"
}, },
"dcloudext": { "dcloudext": {
"category": [ "sale": {
"前端组件",
"通用组件"
],
"sale": {
"regular": { "regular": {
"price": "0.00" "price": "0.00"
}, },
...@@ -38,7 +34,8 @@ ...@@ -38,7 +34,8 @@
"data": "无", "data": "无",
"permissions": "无" "permissions": "无"
}, },
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
"type": "component-vue"
}, },
"uni_modules": { "uni_modules": {
"dependencies": [ "dependencies": [
...@@ -49,7 +46,8 @@ ...@@ -49,7 +46,8 @@
"platforms": { "platforms": {
"cloud": { "cloud": {
"tcb": "y", "tcb": "y",
"aliyun": "y" "aliyun": "y",
"alipay": "n"
}, },
"client": { "client": {
"App": { "App": {
......
## 1.3.3(2024-04-23)
- 修复 当元素会受变量影响自动隐藏的bug
## 1.3.2(2023-05-04)
- 修复 NVUE 平台报错的问题
## 1.3.1(2021-11-23) ## 1.3.1(2021-11-23)
- 修复 init 方法初始化问题 - 修复 init 方法初始化问题
## 1.3.0(2021-11-19) ## 1.3.0(2021-11-19)
- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) - 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) - 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition)
## 1.2.1(2021-09-27) ## 1.2.1(2021-09-27)
- 修复 init 方法不生效的 Bug - 修复 init 方法不生效的 Bug
## 1.2.0(2021-07-30) ## 1.2.0(2021-07-30)
- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) - 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 1.1.1(2021-05-12) ## 1.1.1(2021-05-12)
- 新增 示例地址 - 新增 示例地址
- 修复 示例项目缺少组件的 Bug - 修复 示例项目缺少组件的 Bug
## 1.1.0(2021-04-22) ## 1.1.0(2021-04-22)
- 新增 通过方法自定义动画 - 新增 通过方法自定义动画
- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 - 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式
- 优化 动画触发逻辑,使动画更流畅 - 优化 动画触发逻辑,使动画更流畅
- 优化 支持单独的动画类型 - 优化 支持单独的动画类型
- 优化 文档示例 - 优化 文档示例
## 1.0.2(2021-02-05) ## 1.0.2(2021-02-05)
- 调整为 uni_modules 目录规范 - 调整为 uni_modules 目录规范
// const defaultOption = { // const defaultOption = {
// duration: 300, // duration: 300,
// timingFunction: 'linear', // timingFunction: 'linear',
// delay: 0, // delay: 0,
// transformOrigin: '50% 50% 0' // transformOrigin: '50% 50% 0'
// } // }
// #ifdef APP-NVUE // #ifdef APP-NVUE
const nvueAnimation = uni.requireNativePlugin('animation') const nvueAnimation = uni.requireNativePlugin('animation')
// #endif // #endif
class MPAnimation { class MPAnimation {
constructor(options, _this) { constructor(options, _this) {
this.options = options this.options = options
this.animation = uni.createAnimation(options) // 在iOS10+QQ小程序平台下,传给原生的对象一定是个普通对象而不是Proxy对象,否则会报parameter should be Object instead of ProxyObject的错误
this.currentStepAnimates = {} this.animation = uni.createAnimation({
this.next = 0 ...options
this.$ = _this })
this.currentStepAnimates = {}
} this.next = 0
this.$ = _this
_nvuePushAnimates(type, args) {
let aniObj = this.currentStepAnimates[this.next] }
let styles = {}
if (!aniObj) { _nvuePushAnimates(type, args) {
styles = { let aniObj = this.currentStepAnimates[this.next]
styles: {}, let styles = {}
config: {} if (!aniObj) {
} styles = {
} else { styles: {},
styles = aniObj config: {}
} }
if (animateTypes1.includes(type)) { } else {
if (!styles.styles.transform) { styles = aniObj
styles.styles.transform = '' }
if (animateTypes1.includes(type)) {
if (!styles.styles.transform) {
styles.styles.transform = ''
} }
let unit = '' let unit = ''
if(type === 'rotate'){ if(type === 'rotate'){
unit = 'deg' unit = 'deg'
} }
styles.styles.transform += `${type}(${args+unit}) ` styles.styles.transform += `${type}(${args+unit}) `
} else { } else {
styles.styles[type] = `${args}` styles.styles[type] = `${args}`
} }
this.currentStepAnimates[this.next] = styles this.currentStepAnimates[this.next] = styles
} }
_animateRun(styles = {}, config = {}) { _animateRun(styles = {}, config = {}) {
let ref = this.$.$refs['ani'].ref let ref = this.$.$refs['ani'].ref
if (!ref) return if (!ref) return
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
nvueAnimation.transition(ref, { nvueAnimation.transition(ref, {
styles, styles,
...config ...config
}, res => { }, res => {
resolve() resolve()
}) })
}) })
} }
_nvueNextAnimate(animates, step = 0, fn) { _nvueNextAnimate(animates, step = 0, fn) {
let obj = animates[step] let obj = animates[step]
if (obj) { if (obj) {
let { let {
styles, styles,
config config
} = obj } = obj
this._animateRun(styles, config).then(() => { this._animateRun(styles, config).then(() => {
step += 1 step += 1
this._nvueNextAnimate(animates, step, fn) this._nvueNextAnimate(animates, step, fn)
}) })
} else { } else {
this.currentStepAnimates = {} this.currentStepAnimates = {}
typeof fn === 'function' && fn() typeof fn === 'function' && fn()
this.isEnd = true this.isEnd = true
} }
} }
step(config = {}) { step(config = {}) {
// #ifndef APP-NVUE // #ifndef APP-NVUE
this.animation.step(config) this.animation.step(config)
// #endif // #endif
// #ifdef APP-NVUE // #ifdef APP-NVUE
this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config)
this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin
this.next++ this.next++
// #endif // #endif
return this return this
} }
run(fn) { run(fn) {
// #ifndef APP-NVUE // #ifndef APP-NVUE
this.$.animationData = this.animation.export() this.$.animationData = this.animation.export()
this.$.timer = setTimeout(() => { this.$.timer = setTimeout(() => {
typeof fn === 'function' && fn() typeof fn === 'function' && fn()
}, this.$.durationTime) }, this.$.durationTime)
// #endif // #endif
// #ifdef APP-NVUE // #ifdef APP-NVUE
this.isEnd = false this.isEnd = false
let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref
if(!ref) return if(!ref) return
this._nvueNextAnimate(this.currentStepAnimates, 0, fn) this._nvueNextAnimate(this.currentStepAnimates, 0, fn)
this.next = 0 this.next = 0
// #endif // #endif
} }
} }
const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',
'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',
'translateZ' 'translateZ'
] ]
const animateTypes2 = ['opacity', 'backgroundColor'] const animateTypes2 = ['opacity', 'backgroundColor']
const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom']
animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => {
MPAnimation.prototype[type] = function(...args) { MPAnimation.prototype[type] = function(...args) {
// #ifndef APP-NVUE // #ifndef APP-NVUE
this.animation[type](...args) this.animation[type](...args)
// #endif // #endif
// #ifdef APP-NVUE // #ifdef APP-NVUE
this._nvuePushAnimates(type, args) this._nvuePushAnimates(type, args)
// #endif // #endif
return this return this
} }
}) })
export function createAnimation(option, _this) { export function createAnimation(option, _this) {
if(!_this) return if(!_this) return
clearTimeout(_this.timer) clearTimeout(_this.timer)
return new MPAnimation(option, _this) return new MPAnimation(option, _this)
} }
...@@ -21147,7 +21147,7 @@ var _default = { ...@@ -21147,7 +21147,7 @@ var _default = {
if (_fail) { if (_fail) {
_fail(res.data.message); _fail(res.data.message);
} }
_fun.message.notify(res.data.message); // message.notify(res.data.message);
break; break;
} }
}, },
......
...@@ -314,6 +314,10 @@ ...@@ -314,6 +314,10 @@
width: 80%; width: 80%;
text-align: center; text-align: center;
} }
.body .pop-wrap .swiper-wrap .swiper-item .image {
width: 100%;
height: 100%;
}
.body .guide-text { .body .guide-text {
text-align: center; text-align: center;
margin-top: 100rpx; margin-top: 100rpx;
...@@ -325,4 +329,13 @@ ...@@ -325,4 +329,13 @@
background: #3881F3; background: #3881F3;
border-radius: 8rpx; border-radius: 8rpx;
} }
.body .success-text {
color: #09bb07;
}
.body .warn-text {
color: #e6a23c;
}
.body .error-text {
color: #f56c6c;
}
<view class="body login" style="{{('padding-bottom:'+bottomSafePadding+'px;')}}"><view class="label-wrap"><view class="str">{{strInfo}}</view><view data-event-opts="{{[['tap',[['open1',['$event']]]]]}}" class="str2 mt-30" onTap="__e">{{strLabel1}}</view><view data-event-opts="{{[['tap',[['open2',['$event']]]]]}}" class="str2 mt-10" onTap="__e">{{strLabel2}}</view><view data-event-opts="{{[['tap',[['callPhone',['$event']]]]]}}" class="str2 mt-10" onTap="__e">{{strLabel3}}</view></view><uni-popup class="popup" vue-id="79877a54-1" type="dialog" ref="__r" data-ref="popup1" onVueInit="__l" vue-slots="{{['default']}}"><view class="pop-wrap"><swiper class="swiper-wrap" duration="{{1000}}" current="{{curGuideIndex}}" data-event-opts="{{[['change',[['changeGuide',['$event']]]]]}}" onChange="__e"><swiper-item a:for="{{guideImgs}}" a:for-item="item" a:for-index="index" a:key="index"><view class="swiper-item"><image src="{{item}}" mode="aspectFill"></image></view></swiper-item></swiper><text data-event-opts="{{[['tap',[['clickGuide',['$event']]]]]}}" class="guide-text" onTap="__e">{{guideText}}</text></view></uni-popup><uni-popup class="popup" vue-id="79877a54-2" type="center" ref="__r" data-ref="popup2" onVueInit="__l" vue-slots="{{['default']}}"><view class="pop-wrap" style="justify-content:flex-start;"><view data-event-opts="{{[['tap',[['closeDialog2',['$event']]]]]}}" style="margin-left:auto;" onTap="__e"><icon size="30" type="clear"></icon></view><view class="refund-wrap flex1 mt-30"><view class="image-wrap"><image class="image" src="{{refundImg}}" mode="aspectFill"></image></view><input class="input mt-30" type="number" placeholder="请输入支付宝订单号" data-event-opts="{{[['input',[['__set_model',['','alipayOrder','$event',[]]]]]]}}" value="{{alipayOrder}}" onInput="__e"/><text data-event-opts="{{[['tap',[['open3',['$event']]]]]}}" class="guide-text" style="margin-top:30rpx;" onTap="__e">立即退款</text></view></view></uni-popup><uni-popup class="popup2" vue-id="79877a54-3" type="center" ref="__r" data-ref="popup3" onVueInit="__l" vue-slots="{{['default']}}"><uni-popup-dialog vue-id="{{('79877a54-4')+','+('79877a54-3')}}" title="\n是否确定要退款?" duration="{{2000}}" before-close="{{true}}" data-event-opts="{{[['^close',[['closeDialog3']]],['^confirm',[['confirm']]]]}}" onClose="__e" onConfirm="__e" onVueInit="__l"></uni-popup-dialog></uni-popup></view> <view class="body login" style="{{('padding-bottom:'+bottomSafePadding+'px;')}}"><view class="label-wrap"><view class="str">{{strInfo}}</view><view data-event-opts="{{[['tap',[['openGuide',['$event']]]]]}}" class="str2 mt-30" onTap="__e">{{strLabel1}}</view><view data-event-opts="{{[['tap',[['openRefund',['$event']]]]]}}" class="str2 mt-10" onTap="__e">{{strLabel2}}</view><view data-event-opts="{{[['tap',[['callPhone',['$event']]]]]}}" class="str2 mt-10" onTap="__e">{{strLabel3}}</view></view><uni-popup class="popup" vue-id="79877a54-1" type="dialog" ref="__r" data-ref="popup1" onVueInit="__l" vue-slots="{{['default']}}"><view class="pop-wrap"><swiper class="swiper-wrap" duration="{{1000}}" current="{{curGuideIndex}}" data-event-opts="{{[['change',[['changeGuide',['$event']]]]]}}" onChange="__e"><swiper-item a:for="{{guideImgs}}" a:for-item="item" a:for-index="index" a:key="index"><view class="swiper-item"><image class="image" src="{{item}}" mode="scaleToFill"></image></view></swiper-item></swiper><text data-event-opts="{{[['tap',[['clickGuide',['$event']]]]]}}" class="guide-text" onTap="__e">{{guideText}}</text></view></uni-popup><uni-popup class="popup" vue-id="79877a54-2" type="center" ref="__r" data-ref="popup2" onVueInit="__l" vue-slots="{{['default']}}"><view class="pop-wrap" style="justify-content:flex-start;"><view data-event-opts="{{[['tap',[['closeRefund',['$event']]]]]}}" style="margin-left:auto;" onTap="__e"><icon size="30" type="clear"></icon></view><view class="refund-wrap flex1 mt-30"><view class="image-wrap"><image class="image" src="{{refundImg}}" mode="aspectFill"></image></view><input class="input mt-30" type="number" placeholder="请输入支付宝订单号" data-event-opts="{{[['input',[['__set_model',['','alipayOrder','$event',[]]]]]]}}" value="{{alipayOrder}}" onInput="__e"/><text data-event-opts="{{[['tap',[['openTip',['$event']]]]]}}" class="guide-text" style="margin-top:30rpx;" onTap="__e">立即退款</text></view></view></uni-popup><uni-popup class="popup2" vue-id="79877a54-3" type="center" ref="__r" data-ref="popup3" onVueInit="__l" vue-slots="{{['default']}}"><uni-popup-dialog style="{{'color:'+(refundColor)+';'}}" vue-id="{{('79877a54-4')+','+('79877a54-3')}}" title="{{refundResult}}" duration="{{2000}}" showClose="{{showTipColse}}" data-event-opts="{{[['^close',[['closeTip']]],['^confirm',[['confirm']]]]}}" onClose="__e" onConfirm="__e" onVueInit="__l"></uni-popup-dialog></uni-popup></view>
\ No newline at end of file \ No newline at end of file
...@@ -232,16 +232,25 @@ var _default = { ...@@ -232,16 +232,25 @@ var _default = {
strLabel1: "1.自动续费如何关闭", strLabel1: "1.自动续费如何关闭",
strLabel2: "2.一键退款", strLabel2: "2.一键退款",
strLabel3: "3.客服电话", strLabel3: "3.客服电话",
guideImgs: ["", "", ""], guideImgs: ["https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay1.png", "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay2.png", "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay3.png", "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay4.png", "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_guide_alipay5.png"],
refundImg: '', refundImg: '',
refundResult: '\n是否确定要退款?',
refundColor: "#909399",
showTipColse: true,
guideText: "下一步", guideText: "下一步",
curGuideIndex: 0 curGuideIndex: 0
}; };
}, },
methods: { methods: {
handleRefund: function handleRefund() { handleRefund: function handleRefund() {
var _this = this;
if (!this.alipayOrder) { if (!this.alipayOrder) {
_fun.message.notify('请输入支付宝订单号'); setTimeout(function () {
_this.refundResult = '\n请输入支付宝订单号';
_this.showTipColse = false;
_this.refundColor = '#f56c6c';
_this.openTip();
}, 500);
return; return;
} }
var that = this; var that = this;
...@@ -252,13 +261,19 @@ var _default = { ...@@ -252,13 +261,19 @@ var _default = {
}, },
success: function success(_ref) { success: function success(_ref) {
var data = _ref.data; var data = _ref.data;
that.closeDialog2(); that.closeRefund();
// message.notify(data.msg) that.refundResult = data.message;
that.showTipColse = false;
that.refundColor = '#09bb07';
that.openTip();
}, },
fail: function fail(e) {
fail: function fail() { that.closeRefund();
that.closeDialog2(); that.refundResult = '\n' + e;
_fun.message.notify("网络出小差了~"); that.showTipColse = false;
that.refundColor = '#f56c6c';
that.openTip();
// message.notify("网络出小差了~")
} }
}); });
}, },
...@@ -275,8 +290,6 @@ var _default = { ...@@ -275,8 +290,6 @@ var _default = {
}, },
changeGuide: function changeGuide(e) { changeGuide: function changeGuide(e) {
this.curGuideIndex = e.detail.current; this.curGuideIndex = e.detail.current;
console.log("sssssss", this.curGuideIndex);
console.log("sssssss-", this.guideImgs.length);
if (this.curGuideIndex >= this.guideImgs.length - 1) { if (this.curGuideIndex >= this.guideImgs.length - 1) {
this.guideText = "我知道了"; this.guideText = "我知道了";
} else { } else {
...@@ -285,7 +298,7 @@ var _default = { ...@@ -285,7 +298,7 @@ var _default = {
}, },
clickGuide: function clickGuide() { clickGuide: function clickGuide() {
if (this.curGuideIndex >= this.guideImgs.length - 1) { if (this.curGuideIndex >= this.guideImgs.length - 1) {
this.closeDialog1(); this.closeGuide();
} else { } else {
if (++this.curGuideIndex >= this.guideImgs.length - 1) { if (++this.curGuideIndex >= this.guideImgs.length - 1) {
this.guideText = "我知道了"; this.guideText = "我知道了";
...@@ -294,31 +307,41 @@ var _default = { ...@@ -294,31 +307,41 @@ var _default = {
} }
} }
}, },
open1: function open1() { openGuide: function openGuide() {
// APP退款引导
this.$refs.popup1.open(); this.$refs.popup1.open();
}, },
open2: function open2() { openRefund: function openRefund() {
// 退款
this.$refs.popup2.open(); this.$refs.popup2.open();
}, },
open3: function open3() { openTip: function openTip() {
this.$refs.popup3.open(); this.$refs.popup3.open();
}, },
closeDialog1: function closeDialog1() { closeGuide: function closeGuide() {
var _this = this; var _this2 = this;
setTimeout(function () { setTimeout(function () {
_this.curGuideIndex = 0; _this2.curGuideIndex = 0;
_this.guideText = "下一步"; _this2.guideText = "下一步";
}, 500); }, 500);
this.$refs.popup1.close(); this.$refs.popup1.close();
}, },
closeDialog2: function closeDialog2() { closeRefund: function closeRefund() {
this.$refs.popup2.close(); this.$refs.popup2.close();
}, },
closeDialog3: function closeDialog3() { closeTip: function closeTip() {
this.$refs.popup3.close(); this.$refs.popup3.close();
}, },
confirm: function confirm() { confirm: function confirm() {
this.closeDialog3(); var _this3 = this;
this.closeTip();
if (!this.showTipColse) {
setTimeout(function () {
_this3.refundResult = '\n是否确定要退款?';
_this3.showTipColse = true;
}, 500);
return;
}
this.handleRefund(); this.handleRefund();
} }
} }
......
...@@ -245,6 +245,9 @@ ...@@ -245,6 +245,9 @@
padding-top: 25px; padding-top: 25px;
} }
.uni-dialog-title-text { .uni-dialog-title-text {
padding: 0 10px;
line-height: 26px;
text-align: center;
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
} }
......
<view class="uni-popup-dialog"><view class="uni-dialog-title"><text class="{{(('uni-dialog-title-text')+' '+('uni-popup__'+dialogType))}}">{{titleText}}</text></view><block a:if="{{mode==='base'}}"><view class="uni-dialog-content"><block a:if="{{$slots.$default}}"><slot></slot></block><block a:else><text class="uni-dialog-content-text">{{content}}</text></block></view></block><block a:else><view class="uni-dialog-content"><block a:if="{{$slots.$default}}"><slot></slot></block><block a:else><input class="uni-dialog-input" type="text" placeholder="{{placeholderText}}" focus="{{focus}}" data-event-opts="{{[['input',[['__set_model',['','val','$event',[]]]]]]}}" value="{{val}}" onInput="__e"/></block></view></block><view class="uni-dialog-button-group"><view data-event-opts="{{[['tap',[['closeDialog',['$event']]]]]}}" class="uni-dialog-button" onTap="__e"><text class="uni-dialog-button-text">{{closeText}}</text></view><view data-event-opts="{{[['tap',[['onOk',['$event']]]]]}}" class="uni-dialog-button uni-border-left" onTap="__e"><text class="uni-dialog-button-text uni-button-color">{{okText}}</text></view></view></view> <view class="uni-popup-dialog"><view class="uni-dialog-title"><text class="{{(('uni-dialog-title-text')+' '+('uni-popup__'+dialogType))}}">{{titleText}}</text></view><block a:if="{{mode==='base'}}"><view class="uni-dialog-content"><block a:if="{{$slots.$default}}"><slot></slot></block><block a:else><text class="uni-dialog-content-text">{{content}}</text></block></view></block><block a:else><view class="uni-dialog-content"><block a:if="{{$slots.$default}}"><slot></slot></block><block a:else><input class="uni-dialog-input" maxlength="{{maxlength}}" type="{{inputType}}" placeholder="{{placeholderText}}" focus="{{focus}}" data-event-opts="{{[['input',[['__set_model',['','val','$event',[]]]]]]}}" value="{{val}}" onInput="__e"/></block></view></block><view class="uni-dialog-button-group"><block a:if="{{showClose}}"><view data-event-opts="{{[['tap',[['closeDialog',['$event']]]]]}}" class="uni-dialog-button" onTap="__e"><text class="uni-dialog-button-text">{{closeText}}</text></view></block><view data-event-opts="{{[['tap',[['onOk',['$event']]]]]}}" class="{{(('uni-dialog-button')+' '+(showClose?'uni-border-left':''))}}" onTap="__e"><text class="uni-dialog-button-text uni-button-color">{{okText}}</text></view></view></view>
\ No newline at end of file \ No newline at end of file
...@@ -151,6 +151,7 @@ var _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/in ...@@ -151,6 +151,7 @@ var _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/in
// //
// //
// //
//
var _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default), var _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),
t = _initVueI18n.t; t = _initVueI18n.t;
...@@ -160,6 +161,7 @@ var _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default), ...@@ -160,6 +161,7 @@ var _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),
* @tutorial https://ext.dcloud.net.cn/plugin?id=329 * @tutorial https://ext.dcloud.net.cn/plugin?id=329
* @property {String} value input 模式下的默认值 * @property {String} value input 模式下的默认值
* @property {String} placeholder input 模式下输入提示 * @property {String} placeholder input 模式下输入提示
* @property {Boolean} focus input模式下是否自动聚焦,默认为true
* @property {String} type = [success|warning|info|error] 主题样式 * @property {String} type = [success|warning|info|error] 主题样式
* @value success 成功 * @value success 成功
* @value warning 提示 * @value warning 提示
...@@ -168,16 +170,26 @@ var _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default), ...@@ -168,16 +170,26 @@ var _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),
* @property {String} mode = [base|input] 模式、 * @property {String} mode = [base|input] 模式、
* @value base 基础对话框 * @value base 基础对话框
* @value input 可输入对话框 * @value input 可输入对话框
* @showClose {Boolean} 是否显示关闭按钮
* @property {String} content 对话框内容 * @property {String} content 对话框内容
* @property {Boolean} beforeClose 是否拦截取消事件 * @property {Boolean} beforeClose 是否拦截取消事件
* @property {Number} maxlength 输入
* @event {Function} confirm 点击确认按钮触发 * @event {Function} confirm 点击确认按钮触发
* @event {Function} close 点击取消按钮触发 * @event {Function} close 点击取消按钮触发
*/ */
var _default = { var _default = {
name: "uniPopupDialog", name: "uniPopupDialog",
mixins: [_popup.default], mixins: [_popup.default],
emits: ['confirm', 'close'], emits: ['confirm', 'close', 'update:modelValue', 'input'],
props: { props: {
inputType: {
type: String,
default: 'text'
},
showClose: {
type: Boolean,
default: true
},
value: { value: {
type: [String, Number], type: [String, Number],
default: '' default: ''
...@@ -213,12 +225,19 @@ var _default = { ...@@ -213,12 +225,19 @@ var _default = {
confirmText: { confirmText: {
type: String, type: String,
default: '' default: ''
},
maxlength: {
type: Number,
default: -1
},
focus: {
type: Boolean,
default: true
} }
}, },
data: function data() { data: function data() {
return { return {
dialogType: 'error', dialogType: 'error',
focus: false,
val: "" val: ""
}; };
}, },
...@@ -246,7 +265,15 @@ var _default = { ...@@ -246,7 +265,15 @@ var _default = {
} }
}, },
value: function value(val) { value: function value(val) {
this.val = val; if (this.maxlength != -1 && this.mode === 'input') {
this.val = val.slice(0, this.maxlength);
} else {
this.val = val;
}
},
val: function val(_val) {
// TODO 兼容 vue2
this.$emit('input', _val);
} }
}, },
created: function created() { created: function created() {
...@@ -260,9 +287,6 @@ var _default = { ...@@ -260,9 +287,6 @@ var _default = {
this.dialogType = this.type; this.dialogType = this.type;
} }
}, },
mounted: function mounted() {
this.focus = true;
},
methods: { methods: {
/** /**
* 点击确认按钮 * 点击确认按钮
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment