113 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
| <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>
 |