modal.uvue 4.6 KB
Newer Older
Y
yurj26 已提交
1 2 3
<template>
    <view>
        <page-head :title="title"></page-head>
杜庆泉's avatar
杜庆泉 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
		<view class="uni-list">
		    <radio-group @change="radioChange">
		        <radio class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value"
		            :class="index < items.length - 1 ? 'uni-list-cell-line': ''" :value="item.value"
		            :checked="index === current">
		            {{item.name}}
		        </radio>
		    </radio-group>
		</view>
		<view class="uni-list">
		  <view class="uni-list-cell uni-list-cell-pd">
		    <view class="uni-list-cell-db">是否显示取消按钮</view>
		    <switch :checked="showCancelSelect" @change="showCancelChange"/>
		  </view>
		  <view class="uni-list-cell uni-list-cell-pd">
		    <view class="uni-list-cell-db">定制取消文案</view>
		    <switch :checked="cancelTextSelect" @change="cancelTextChange"/>
		  </view>
		  <view class="uni-list-cell uni-list-cell-pd">
		    <view class="uni-list-cell-db">定制确认文案</view>
		    <switch :checked="confirmTextSelect" @change="confirmTextChange"/>
		  </view>
		  <view class="uni-list-cell uni-list-cell-pd">
		    <view class="uni-list-cell-db">是否显示输入框</view>
		    <switch :checked="editableSelect" @change="editableChange"/>
		  </view>
		  <view class="uni-list-cell uni-list-cell-pd">
		    <view class="uni-list-cell-db">是否定制输入提示词</view>
		    <switch :checked="placeholderTextSelect" @change="placeholderTextChange"/>
		  </view>
		</view>
Y
yurj26 已提交
35 36
        <view class="uni-padding-wrap uni-common-mt">
            <view class="uni-btn-v">
杜庆泉's avatar
杜庆泉 已提交
37
                <button class="uni-btn-v" type="default" @tap="modalTap">modal测试</button>
Y
yurj26 已提交
38
            </view>
杜庆泉's avatar
杜庆泉 已提交
39
			<text>{{exeRet}}</text>
Y
yurj26 已提交
40
        </view>
杜庆泉's avatar
杜庆泉 已提交
41
		
Y
yurj26 已提交
42 43 44
    </view>
</template>
<script lang="ts">
杜庆泉's avatar
杜庆泉 已提交
45 46 47 48
	type ItemType = {
	    value : string,
	    name : string,
	}
Y
yurj26 已提交
49 50 51
    export default {
        data() {
            return {
杜庆泉's avatar
杜庆泉 已提交
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
                title: 'modal',
				showCancelSelect:false,
				cancelTextSelect:false,
				confirmTextSelect:false,
				editableSelect:false,
				placeholderTextSelect:false,
				exeRet:"",
				items: [{
				    value: '标题',
				    name: '有标题'
				},
				{
				    value: '',
				    name: '无标题'
				},
				{
				    value: '超长标题测试内容,测试超过显示最大范围之后的样式-超长标题测试内容,测试超过显示最大范围之后的样式',
				    name: '超长标题'
				}
				] as ItemType[],
				current: 0
Y
yurj26 已提交
73 74 75
            }
        },
        methods: {
杜庆泉's avatar
杜庆泉 已提交
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
			showCancelChange: function (e : SwitchChangeEvent) {
				this.showCancelSelect = e.detail.value
			},
			cancelTextChange: function (e : SwitchChangeEvent) {
				this.cancelTextSelect = e.detail.value
			},
			confirmTextChange: function (e : SwitchChangeEvent) {
				this.confirmTextSelect = e.detail.value
			},
			editableChange: function (e : SwitchChangeEvent) {
				this.editableSelect = e.detail.value
			},
			placeholderTextChange: function (e : SwitchChangeEvent) {
				this.placeholderTextSelect = e.detail.value
			},
			radioChange(e : RadioGroupChangeEvent) {
			    for (let i = 0; i < this.items.length; i++) {
			        if (this.items[i].value === e.detail.value) {
			            this.current = i;
			            break;
			        }
			    }
			},
Y
yurj26 已提交
99
            modalTap: function () {
杜庆泉's avatar
杜庆泉 已提交
100
				
杜庆泉's avatar
杜庆泉 已提交
101
				let cancelTextVal = ''
杜庆泉's avatar
杜庆泉 已提交
102 103 104 105
				let cancelColorVal = ''
				if(this.cancelTextSelect){
					cancelTextVal = "修改后的取消文本"
					cancelColorVal = "#ff00ff"
106 107
				}else{
					cancelTextVal = "取消"
杜庆泉's avatar
杜庆泉 已提交
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
				}
				
				let confirmTextVal = '确定'
				let confirmColorVal = ''
				if(this.confirmTextSelect){
					confirmTextVal = "修改后的确定文本"
					confirmColorVal = "#00ffff"
				}
				
				let placeholderTextVal = ''
				let contentVal = "弹窗内容,告知当前状态、信息和解决方法,描述文字尽量控制在三行内"
				if(this.placeholderTextSelect){
					placeholderTextVal = "定制提示信息"
					contentVal = ""
				}
				
124
				
杜庆泉's avatar
杜庆泉 已提交
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

				uni.showModal({
				    title: this.items[this.current].value,
					editable:this.editableSelect,
					placeholderText:placeholderTextVal,
				    content: contentVal,
				    showCancel: this.showCancelSelect,
					cancelText:cancelTextVal,
					cancelColor:cancelColorVal,
					confirmText:confirmTextVal,
					confirmColor:confirmColorVal,
					success:function(res){
						this.exeRet = JSON.stringify(res)
					},
					fail:function(res){
						this.exeRet = JSON.stringify(res)
					}
				})
                
Y
yurj26 已提交
144
            }
杜庆泉's avatar
杜庆泉 已提交
145
            
Y
yurj26 已提交
146 147 148
        }
    }
</script>