| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <template>
- <view
- v-if="show"
- class="confirm-dialog"
- @touchmove.stop.prevent="noop"
- >
- <view class="confirm-dialog__mask" @click="onCancel" />
- <view class="confirm-dialog__panel">
- <view class="confirm-dialog__body">
- <view class="confirm-dialog__title">{{ title }}</view>
- <view class="confirm-dialog__content">
- <slot>{{ content }}</slot>
- </view>
- </view>
- <view class="confirm-dialog__actions">
- <view
- class="confirm-dialog__btn confirm-dialog__btn--cancel"
- @click="onCancel"
- >
- {{ cancelText }}
- </view>
- <!-- 微信 getPhoneNumber 必须由用户点击 button 触发,不可编程唤起 -->
- <button
- v-if="confirmOpenType"
- class="confirm-dialog__btn confirm-dialog__btn--confirm confirm-dialog__btn--native"
- hover-class="none"
- :open-type="confirmOpenType"
- @getphonenumber="onConfirmPhone"
- >
- {{ confirmText }}
- </button>
- <view
- v-else
- class="confirm-dialog__btn confirm-dialog__btn--confirm"
- @click="onConfirm"
- >
- {{ confirmText }}
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default {
- name: 'ConfirmDialog',
- props: {
- show: { type: Boolean, default: false },
- title: { type: String, default: '请先同意协议' },
- content: { type: String, default: '' },
- cancelText: { type: String, default: '取消' },
- confirmText: { type: String, default: '同意并登录' },
- /** 如 getPhoneNumber:确认键渲染为原生 button,同一次点击可拉起微信授权 */
- confirmOpenType: { type: String, default: '' }
- },
- methods: {
- noop() {},
- onCancel() {
- this.$emit('update:show', false)
- this.$emit('cancel')
- },
- onConfirm() {
- this.$emit('update:show', false)
- this.$emit('confirm')
- },
- onConfirmPhone(e) {
- this.$emit('update:show', false)
- this.$emit('confirm')
- this.$emit('getphonenumber', e)
- }
- }
- }
- </script>
|