123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <template>
- <ui-modal
- class="add-bank-wrap"
- name="walletAddAlipay"
- mask="40"
- align="bottom"
- ui="ss-r-t-30"
- :showCancel="false"
- :option="false"
- >
- <view class="ss-modal-box bg-white ss-flex-col">
- <view class="modal-header ss-flex-col ss-col-left">
- <text class="cicon-close-round close-icon" @tap="hideModal"></text>
- <text class="modal-title ss-m-b-20">添加支付宝</text>
- </view>
- <view class="modal-content ss-flex-1 ss-p-b-100">
- <ui-form
- ref="addAlipayFormRef"
- :model="state.model"
- :rules="state.rules"
- hasClear
- labelPosition="left"
- :labelStyle="{ fontWeight: 'bold' }"
- >
- <ui-form-item prop="real_name" title="真实姓名">
- <ui-input placeholder="请输入真实姓名" v-model="state.model.real_name"></ui-input>
- </ui-form-item>
- <ui-form-item prop="card_no" title="支付宝账号">
- <ui-input placeholder="请输入支付宝账号" v-model="state.model.card_no"></ui-input>
- </ui-form-item>
- </ui-form>
- </view>
- <view class="modal-footer ss-flex ss-row-center ss-col-center">
- <button class="ss-reset-button save-btn" @tap="onSave">确定</button>
- </view>
- </view>
- </ui-modal>
- </template>
- <script setup>
- import { ref, reactive, unref } from 'vue';
- import { realName, bankCode } from '@/sheep/common/validate/form';
- // 数据
- const addAlipayFormRef = ref(null);
- const state = reactive({
- model: {
- real_name: '',
- card_no: '',
- },
- rules: {
- real_name: realName,
- card_no: bankCode,
- },
- });
- const showModal = () => {
- hooksModal.showModal('walletAddAlipay');
- };
- const hideModal = () => {
- hooksModal.hideModal();
- };
- const onSave = async () => {
- const res = await unref(addAlipayFormRef).validate();
- };
- defineExpose({
- showModal,
- });
- </script>
- <style lang="scss" scoped>
- .ss-modal-box {
- border-radius: 30rpx 30rpx 0 0;
- max-height: 1000rpx;
- .modal-header {
- position: relative;
- padding: 60rpx 40rpx 40rpx;
- .modal-title {
- font-size: 32rpx;
- font-weight: bold;
- }
- .close-icon {
- position: absolute;
- top: 10rpx;
- right: 20rpx;
- font-size: 46rpx;
- opacity: 0.2;
- }
- }
- .modal-content {
- overflow-y: auto;
- }
- .modal-footer {
- height: 120rpx;
- .save-btn {
- width: 710rpx;
- height: 80rpx;
- border-radius: 40rpx;
- background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
- color: $white;
- }
- }
- }
- </style>
|