金久信后台管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

271 lines
6.6 KiB

<template>
<view class="page-body">
<!-- 页面内容开始 -->
<div style="padding: 40rpx;font-size: 70rpx;font-family: kaiti;">
普通表单功能演示
</div>
<div style="padding-left: 300rpx;">
<el-radio-group v-model="data.labelPosition" size="small">
<el-radio-button label="left">左对齐</el-radio-button>
<el-radio-button label="right">右对齐</el-radio-button>
<el-radio-button label="top">顶部对齐</el-radio-button>
</el-radio-group>
<div style="margin: 20px;"></div>
<el-form :label-position="data.labelPosition" label-width="100px" :model="data.ruleForm" :rules="data.rules" ref="ruleForm">
<el-form-item label="普通表单框" prop="name" required>
<el-col :span="10">
<el-input v-model="data.ruleForm.name"></el-input>
</el-col>
</el-form-item>
<el-form-item label="Select选择" prop="region" required>
<el-col :span="24">
<el-select v-model="data.ruleForm.region" placeholder="请选择活动区域">
<el-option label="选项一" value="shanghai"></el-option>
<el-option label="选项二" value="beijing"></el-option>
</el-select>
</el-col>
</el-form-item>
<el-form-item label="时间选择器" required>
<el-col :span="4">
<el-form-item prop="date1">
<el-date-picker type="date" placeholder="选择日期" v-model="data.ruleForm.date1" style="width: 100%;"></el-date-picker>
</el-form-item>
</el-col>
<el-col class="line" style="text-align: center;" :span="1">
<text style="color: #ccc;">—</text>
</el-col>
<el-col :span="4">
<el-form-item prop="date2">
<el-time-picker placeholder="选择时间" v-model="data.ruleForm.date2" style="width: 100%;"></el-time-picker>
</el-form-item>
</el-col>
</el-form-item>
<!-- 多级联动页面区域 -->
<el-form-item label="多级联动" required>
<div class="block">
<el-cascader placeholder="多级联动组件展示" :options="data.options" :props="{ multiple: true }" filterable></el-cascader>
</div>
</el-form-item>
<el-form-item label="开关组件" prop="delivery" required>
<el-switch v-model="data.ruleForm.delivery"></el-switch>
</el-form-item>
<el-form-item label="多选框" prop="type" required>
<el-checkbox-group v-model="data.ruleForm.type">
<el-checkbox label="选项一" name="type"></el-checkbox>
<el-checkbox label="选项二" name="type"></el-checkbox>
<el-checkbox label="选项三" name="type"></el-checkbox>
<el-checkbox label="选项四" name="type"></el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="单选框" prop="resource" required>
<el-radio-group v-model="data.ruleForm.resource">
<el-radio label="选项一"></el-radio>
<el-radio label="选项二"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="活动形式" prop="desc" required>
<el-col :span="10">
<el-input type="textarea" v-model="data.ruleForm.desc"></el-input>
</el-col>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
<el-button @click="resetForm('ruleForm')">重置</el-button>
</el-form-item>
</el-form>
</div>
<!-- 页面内容结束 -->
</view>
</template>
<script>
var that; // 当前页面对象
var vk = uni.vk; // vk实例
export default {
data() {
// 页面数据变量
return {
// init请求返回的数据
data: {
// 多级联动数据源
options: [
{
value: 'zhinan',
label: '第一层数据',
children: [{
value: 'shejiyuanze',
label: '第二层数据',
children: [{
value: 'yizhi',
label: '数据一'
}, {
value: 'fankui',
label: '数据二'
}, {
value: 'xiaolv',
label: '数据三'
}, {
value: 'kekong',
label: '数据四'
}]
}],
},
],
// 多级联动的数据从这个地方开始
labelPosition: 'right',
formLabelAlign: {
name: '',
region: '',
type: ''
},
ruleForm: {
name: '',
region: '',
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
},
rules: {
name: [{
required: true,
message: '该项为必填项',
trigger: 'blur'
},
{
min: 3,
max: 5,
message: '长度在 3 到 5 个字符',
trigger: 'blur'
}
],
cascade:[{
required: false,
message: '请输入活动名称',
trigger: 'blur'
}],
region: [{
required: true,
message: '请至少选择一个',
trigger: 'change'
}],
date1: [{
type: 'date',
required: true,
message: '请选择日期',
trigger: 'change'
}],
date2: [{
type: 'date',
required: true,
message: '请选择时间',
trigger: 'change'
}],
type: [{
type: 'array',
required: true,
message: '请至少选择一个',
trigger: 'change'
}],
resource: [{
required: true,
message: '请至少选择一个',
trigger: 'change'
}],
desc: [{
required: true,
message: '该项为必填项',
trigger: 'blur'
}]
}
},
// 表单请求数据
form1: {
}
}
},
// 监听 - 页面每次【加载时】执行(如:前进)
onLoad(options = {}) {
that = this;
vk = that.vk;
that.options = options;
that.init(options);
},
// 监听 - 页面【首次渲染完成时】执行。注意如果渲染速度快,会在页面进入动画完成前触发
onReady() {
},
// 监听 - 页面每次【显示时】执行(如:前进和返回) (页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面)
onShow() {
},
mounted() {
},
// 监听 - 页面每次【隐藏时】执行(如:返回)
onHide() {
},
// 函数
methods: {
// 页面数据初始化函数
init(options) {
},
pageTo(path) {
vk.navigateTo(path);
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
},
// 过滤器
filters: {
},
// 计算属性
computed: {
}
}
</script>
<style lang="scss" scoped>
.page-body {}
// 设置所有input的样式
</style>