1107
This commit is contained in:
@@ -0,0 +1,484 @@
|
||||
<template>
|
||||
<view class="page-body">
|
||||
<div style="padding: 40rpx;font-size: 70rpx;font-family: kaiti;">
|
||||
高级表单功能演示
|
||||
</div>
|
||||
<!-- 页面内容开始 -->
|
||||
|
||||
<!-- 出差信息功能展示 -->
|
||||
<div style="padding: 40rpx;">
|
||||
<div style="padding: 20rpx; font-weight: bold;">出差信息</div>
|
||||
<el-form label-position="top" label-width="100px" size="small" :model="data.ruleForm" :rules="data.rules" ref="ruleForm">
|
||||
<el-row>
|
||||
<el-col :span="8" style="margin: 0rpx 20rpx;">
|
||||
<el-form-item label="出差事由" prop="reason" required>
|
||||
<el-input v-model="data.ruleForm.reason"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="8" style="margin: 0rpx 20rpx;">
|
||||
<el-form-item label="合同编号" prop="number" required>
|
||||
<el-input v-model="data.ruleForm.number"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<!-- 选择对应的出差时间 -->
|
||||
<el-col :span="8" style="margin: 0rpx 20rpx;">
|
||||
<el-form-item label="出差日期" prop="travelDate" required>
|
||||
<el-date-picker style="width: 800rpx;" v-model="data.ruleForm.travelDate" type="date" placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" style="margin: 0rpx 20rpx;">
|
||||
<!-- 出差时间对应的应该是和审批人一起的 -->
|
||||
<el-form-item label="审批人" prop="Urgency" required>
|
||||
<el-select v-model="data.ruleForm.Urgency" placeholder="选择审批人" style="width: 800rpx;">
|
||||
<el-option label="呵呵呵哒" value="shanghai" style="height: 100rpx;">
|
||||
<image style="width: 30%;height: 100%;border-radius: 300rpx;" src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1959779733,683430928&fm=26&gp=0.jpg"></image>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px;line-height:100rpx;">审批人一号</span>
|
||||
</el-option>
|
||||
|
||||
<el-option label="呵呵呵哒" value="beijing" style="height: 100rpx;">
|
||||
<image style="width: 30%;height: 100%;border-radius: 300rpx;" src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2334974629,3626811871&fm=26&gp=0.jpg"></image>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px;line-height:100rpx;">审批人二号</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="7" style="margin: 0rpx 20rpx;">
|
||||
<!-- 出差时间对应的应该是和审批人一起的 -->
|
||||
<el-form-item label="紧急程度" prop="Urgency">
|
||||
<el-radio v-model="data.radio" label="1">
|
||||
|
||||
<el-tag type="danger">超级紧急</el-tag>
|
||||
</el-radio>
|
||||
|
||||
<el-radio v-model="data.radio" label="2">
|
||||
<el-tag type="warning">一般紧急</el-tag>
|
||||
</el-radio>
|
||||
|
||||
<el-radio v-model="data.radio" label="3">
|
||||
<el-tag type="success">丝毫不慌</el-tag>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 行程信息功能展示 -->
|
||||
<div style="padding: 40rpx;">
|
||||
<div style="padding: 20rpx; font-weight: bold;">行程信息</div>
|
||||
|
||||
<el-form label-position="top" label-width="100px" size="small" :model="data.ruleForm" :rules="data.rules" ref="ruleForm">
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<div class="block" style="margin: 0rpx 20rpx;">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="出发时间">
|
||||
<el-date-picker v-model="data.gotime" type="date" placeholder="选择出发日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="返程时间">
|
||||
<el-date-picker style="" v-model="data.backtime" type="date" placeholder="选择返程日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<!-- 选择对应的出差时间 -->
|
||||
<el-col :span="8" style="margin: 0rpx 20rpx;">
|
||||
<el-form-item label="交通类型">
|
||||
<el-select v-model="data.ruleForm.traffic" placeholder="选择交通类型" style="width: 800rpx;">
|
||||
|
||||
<el-option label="飞机" value="shanghai" style="height: 100rpx;">
|
||||
</el-option>
|
||||
|
||||
<el-option label="坦克" value="beijing" style="height: 100rpx;">
|
||||
</el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<!-- 表格的页面数据内容从这个地方开始 -->
|
||||
<div>
|
||||
<div style="padding: 20rpx; font-weight: bold;">同行人员</div>
|
||||
<div style="float: right;">
|
||||
<el-tooltip content="添加" placement="top">
|
||||
<el-button style="margin-right: 80rpx;" type="success" size="small" icon="el-icon-circle-plus-outline" @click="addData()" />
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<el-table :data="data.tableData" style="width: 100%">
|
||||
<el-table-column label="姓名">
|
||||
<template slot-scope="{row}">
|
||||
<el-form v-if="row.edit">
|
||||
<el-form-item>
|
||||
<el-input v-model="row.date" size="small" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span v-else>{{ row.date }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="员工编号">
|
||||
<template slot-scope="{row}">
|
||||
<el-form v-if="row.edit">
|
||||
<el-form-item>
|
||||
<el-input v-model="row.name" size="small" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span v-else>{{ row.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="所属部门">
|
||||
<template slot-scope="{row}">
|
||||
<el-form v-if="row.edit">
|
||||
<el-form-item>
|
||||
<el-input v-model="row.address" size="small" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span v-else>{{ row.address }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" label="操作" width="120" :resizable="false">
|
||||
<template slot-scope="{row}">
|
||||
<el-tooltip v-if="row.edit" content="保存" placement="top">
|
||||
<el-button type="success" size="small" icon="el-icon-check" @click="checkEditSaveOk(row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip v-else-if="!row.edit" content="编辑" placement="top">
|
||||
<el-button type="primary" size="small" icon="el-icon-edit" @click="row.edit=!row.edit" />
|
||||
</el-tooltip>
|
||||
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button type="danger" size="small" icon="el-icon-error" @click="deletedata(row)" />
|
||||
</el-tooltip>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<!-- 点击添加之后对应的对话框 -->
|
||||
|
||||
<el-dialog title="提示" :visible.sync="data.dialogVisible" width="30%">
|
||||
<el-form label-position="left" size="small">
|
||||
|
||||
<el-form-item label="姓名" prop="name">
|
||||
|
||||
<el-input v-model="data.add.one" style="width: 600rpx;"></el-input>
|
||||
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="序号" prop="name">
|
||||
<el-input v-model="data.add.two" style="width: 600rpx;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="序号" prop="name">
|
||||
<el-select v-model="data.add.three" placeholder="选择对应部门" style="width: 800rpx;">
|
||||
|
||||
<el-option label="战忽部" value="zhanhu" style="height: 100rpx;">
|
||||
</el-option>
|
||||
<el-option label="策划部" value="cehua" style="height: 100rpx;">
|
||||
</el-option>
|
||||
<el-option label="财政部" value="caizheng" style="height: 100rpx;">
|
||||
</el-option>
|
||||
|
||||
<el-option label="人事部" value="renshi" style="height: 100rpx;">
|
||||
</el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-button @click="add()" type="success" size="medium" style="width:200rpx;">确定</el-button>
|
||||
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
<!-- 页面内容结束 -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
var that; // 当前页面对象
|
||||
var vk = uni.vk; // vk实例
|
||||
export default {
|
||||
data() {
|
||||
// 页面数据变量
|
||||
return {
|
||||
// init请求返回的数据
|
||||
data: {
|
||||
// 去的时间和回来的时间
|
||||
gotime: '',
|
||||
backtime: '',
|
||||
// 选择城市等数据源
|
||||
props: {
|
||||
multiple: true
|
||||
},
|
||||
add: {
|
||||
one: '',
|
||||
two: '',
|
||||
three: '',
|
||||
},
|
||||
// 控制对话框的显示与否
|
||||
dialogVisible: false,
|
||||
// 多级联动数据源
|
||||
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: {
|
||||
reason: '',
|
||||
number: '',
|
||||
travelDate: '',
|
||||
Urgency: '',
|
||||
city: ''
|
||||
// name: '',
|
||||
// region: '',
|
||||
// date1: '',
|
||||
// date2: '',
|
||||
// delivery: false,
|
||||
// type: [],
|
||||
// resource: '',
|
||||
// desc: ''
|
||||
},
|
||||
tableData: [{
|
||||
date: '特朗普',
|
||||
name: '001',
|
||||
address: '战忽部',
|
||||
edit: false
|
||||
}, {
|
||||
date: '奥巴马',
|
||||
name: '002',
|
||||
address: '策划部',
|
||||
edit: false
|
||||
}, {
|
||||
date: '拜登',
|
||||
name: '003',
|
||||
address: '财政部',
|
||||
edit: false
|
||||
}, {
|
||||
date: '罗斯福',
|
||||
name: '004',
|
||||
address: '人事部',
|
||||
edit: false
|
||||
}],
|
||||
rules: {
|
||||
name: [{
|
||||
required: true,
|
||||
message: '该项为必填项',
|
||||
trigger: 'blur'
|
||||
},
|
||||
{
|
||||
min: 3,
|
||||
max: 5,
|
||||
message: '长度在 3 到 5 个字符',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
reason: [{
|
||||
required: false,
|
||||
message: '请输入原因',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
city: [{
|
||||
required: false,
|
||||
message: '请输入出发城市',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
gotime: [{
|
||||
required: false,
|
||||
message: '请输入出发时间',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
backtime: [{
|
||||
required: false,
|
||||
message: '请输入返回时间',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
number: [{
|
||||
required: true,
|
||||
message: '请输入合同编号',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
travelDate: [{
|
||||
type: 'date',
|
||||
required: true,
|
||||
message: '请选择出差日期',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
Urgency: [{
|
||||
required: true,
|
||||
message: '请选择紧急程度',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
date2: [{
|
||||
type: 'date',
|
||||
required: true,
|
||||
message: '请选择时间',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
type: [{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: '请至少选择一个',
|
||||
trigger: 'change'
|
||||
}],
|
||||
people: [{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: '请至少选择一个审批人',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
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() {
|
||||
|
||||
|
||||
},
|
||||
// 监听 - 页面每次【隐藏时】执行(如:返回)
|
||||
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();
|
||||
},
|
||||
checkEditSaveOk(row) {
|
||||
row.edit = !row.edit
|
||||
console.log(row)
|
||||
},
|
||||
deletedata(row) {
|
||||
let content = this.data.tableData
|
||||
content.map((item, index) => {
|
||||
item === row ? content.splice(index, 1) : console.log('不相等')
|
||||
})
|
||||
console.log(this.data.tableData)
|
||||
this.$message({
|
||||
message: '删除成功!',
|
||||
type: 'success'
|
||||
});
|
||||
},
|
||||
addData() {
|
||||
// 这个只控制对应的数据是否展示
|
||||
console.log('添加数据')
|
||||
this.data.dialogVisible = true
|
||||
},
|
||||
// 真实添加数据的逻辑
|
||||
add() {
|
||||
this.data.tableData.push({
|
||||
date: this.data.add.one,
|
||||
name: this.data.add.two,
|
||||
address: this.data.add.three,
|
||||
edit: false
|
||||
}, )
|
||||
this.$message({
|
||||
message: '添加成功!',
|
||||
type: 'success'
|
||||
});
|
||||
// 对应的添加的逻辑也已经完成
|
||||
this.data.dialogVisible = false;
|
||||
},
|
||||
},
|
||||
// 过滤器
|
||||
filters: {
|
||||
|
||||
},
|
||||
// 计算属性
|
||||
computed: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,271 @@
|
||||
<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>
|
||||
@@ -0,0 +1,307 @@
|
||||
<template>
|
||||
<view class="page-body">
|
||||
<!-- 页面内容开始 -->
|
||||
<div style="padding: 40rpx;font-size: 70rpx;font-family: kaiti;">
|
||||
分步表单功能演示
|
||||
</div>
|
||||
|
||||
<view style="padding: 80rpx 400rpx;margin-left: 0rpx;width: 1700rpx;">
|
||||
<el-steps :active="data.step" align-center>
|
||||
<el-step title="填写转账信息" icon="el-icon-edit"></el-step>
|
||||
<el-step title="确认转账信息" icon="el-icon-edit-outline"></el-step>
|
||||
<el-step title="完成" icon="el-icon-circle-check"></el-step>
|
||||
</el-steps>
|
||||
</view>
|
||||
|
||||
<view style="margin-left: 700rpx;">
|
||||
<el-form
|
||||
:label-position="data.labelPosition" label-width="100px" :model="data.ruleForm" :rules="data.rules" ref="ruleForm">
|
||||
|
||||
<!-- step为1的逻辑开始 -->
|
||||
<view v-if="this.data.step==1">
|
||||
<el-form-item label="付款账户" prop="account" required>
|
||||
<el-col :span="24">
|
||||
<el-select v-model="data.ruleForm.account" style="width: 800rpx;">
|
||||
<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="收款账户" prop="pay" required :inline="true">
|
||||
<el-col :span="24">
|
||||
<el-input placeholder="请输入收款账户" v-model="data.ruleForm.pay" class="input-with-select" style="width: 800rpx;">
|
||||
<el-select v-model="data.ruleForm.select" slot="prepend" placeholder="账户" style="width: 190rpx;">
|
||||
<el-option label="微信" value="1"></el-option>
|
||||
<el-option label="支付宝" value="2"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="收款人姓名" prop="name" required>
|
||||
<el-col :span="24">
|
||||
<el-input v-model="data.ruleForm.name" style="width: 800rpx;">
|
||||
</el-input>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="转账金额" prop="price" required :inline="true">
|
||||
<el-col :span="24">
|
||||
<el-input placeholder="请输入额度" v-model="data.ruleForm.price" class="input-with-select" style="width: 800rpx;">
|
||||
<template slot="prepend">¥</template>
|
||||
</el-input>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
</view>
|
||||
<!-- step为1的逻辑结束 -->
|
||||
|
||||
<!-- step为2的逻辑开始 -->
|
||||
<view v-if="this.data.step==2">
|
||||
<el-tag closable style="font-size: 40rpx;width:1200rpx;height: 80rpx;line-height: 80rpx;letter-spacing: 4rpx;background-color: #F8F8F8;color: red;">
|
||||
注意!确认转账后,资金将进到对方账户,无法退回
|
||||
</el-tag>
|
||||
|
||||
<el-col :span="24" style="padding: 40rpx;letter-spacing:4rpx;font-size: 30rpx;">
|
||||
<text style="color: #515a6e;">付款账户:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;">{{data.ruleForm.account}}</text>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" style="padding: 40rpx;letter-spacing:4rpx;font-size: 30rpx;">
|
||||
<text style="color: #515a6e;">收款账户:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;">{{data.ruleForm.pay}}</text>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" style="padding: 40rpx;letter-spacing:4rpx;font-size: 30rpx;">
|
||||
<text style="color: #515a6e;">收款人姓名:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;">{{data.ruleForm.name}}</text>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" style="padding: 40rpx;letter-spacing:4rpx;font-size: 30rpx;border-bottom: 1px solid #ccc;width: 1200rpx;">
|
||||
<text style="color: #515a6e;">转账金额:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;font-weight: bold;">¥{{data.ruleForm.price}}</text>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" style="padding: 40rpx 0rpx">
|
||||
<el-form-item label="支付密码" prop="password" required>
|
||||
<el-input v-model="data.ruleForm.password" style="width: 800rpx;">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</view>
|
||||
<!-- step为2的逻辑结束 -->
|
||||
|
||||
<!-- step为3的逻辑开始 -->
|
||||
<view v-if="this.data.step==3">
|
||||
<el-col :span="24" style="margin-left: 500rpx;">
|
||||
|
||||
<i class="el-icon-success" style="color: green;font-size: 200rpx;"></i>
|
||||
|
||||
<view style="font-family: kaiti;font-weight: bold;font-size: 80rpx;margin-left: -60rpx;margin-top: 20rpx;">操作成功</view>
|
||||
|
||||
<view style="letter-spacing: 4rpx;margin: 30rpx 0rpx 30rpx -40rpx;color: #8086a3;">预计两小时内到账</view>
|
||||
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" style="background-color: #f8f8f9;width: 1700rpx;margin-left: -200rpx;">
|
||||
<view style="display: flex; flex-flow: column;">
|
||||
<view style="padding: 40rpx 160rpx;">
|
||||
<text style="color: #515a6e;">付款账户:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;">{{data.ruleForm.account}}</text>
|
||||
</view>
|
||||
|
||||
<view style="padding: 40rpx 160rpx;">
|
||||
<text style="color: #515a6e;">收款账户:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;">{{data.ruleForm.pay}}</text>
|
||||
</view>
|
||||
|
||||
<view style="padding: 40rpx 160rpx;">
|
||||
<text style="color: #515a6e;">收款人姓名:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;">{{data.ruleForm.name}}</text>
|
||||
</view>
|
||||
|
||||
<view style="padding: 40rpx 160rpx;">
|
||||
<text style="color: #515a6e;">转账金额:</text>
|
||||
<text style="margin-left: 20rpx;color: #515a6e;font-weight: bold;">¥{{data.ruleForm.price}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</el-col>
|
||||
</view>
|
||||
|
||||
<el-col :span="24" style="padding: 40rpx 0rpx;">
|
||||
<el-form-item>
|
||||
<el-button v-if="this.data.step==1" type="primary" @click="next('ruleForm')" :loading="data.loading">下一步</el-button>
|
||||
<el-button v-if="this.data.step==2" type="primary" @click="next('ruleForm')" :loading="data.loading">提交</el-button>
|
||||
|
||||
<el-button v-if="this.data.step==3" type="primary" @click="next('ruleForm')" :loading="data.loading">再来一单</el-button>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- step为3的逻辑结束 -->
|
||||
</el-form>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 页面内容结束 -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
var that; // 当前页面对象
|
||||
var vk = uni.vk; // vk实例
|
||||
export default {
|
||||
data() {
|
||||
// 页面数据变量
|
||||
return {
|
||||
// init请求返回的数据
|
||||
data: {
|
||||
loading:false,
|
||||
step: 1,
|
||||
labelPosition: 'right',
|
||||
formLabelAlign: {
|
||||
name: '',
|
||||
region: '',
|
||||
type: ''
|
||||
},
|
||||
ruleForm: {
|
||||
name: '',
|
||||
pay: '',
|
||||
select: '微信',
|
||||
account: '账户一',
|
||||
price: '',
|
||||
password:''
|
||||
},
|
||||
rules: {
|
||||
name: [{
|
||||
required: true,
|
||||
message: '该项为必填项',
|
||||
trigger: 'input'
|
||||
},
|
||||
{
|
||||
min: 1,
|
||||
max: 8,
|
||||
message: '长度在 1 到 8 个字符',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
pay: [{
|
||||
required: true,
|
||||
message: '请输入完整内容',
|
||||
trigger: 'change'
|
||||
}],
|
||||
account: [{
|
||||
required: true,
|
||||
message: '请选择付款账户',
|
||||
trigger: 'change'
|
||||
}],
|
||||
price: [{
|
||||
required: true,
|
||||
message: '请输入付款额度',
|
||||
trigger: 'change'
|
||||
}],
|
||||
password: [{
|
||||
required: true,
|
||||
message: '请输入支付密码',
|
||||
trigger: 'change'
|
||||
}],
|
||||
}
|
||||
},
|
||||
// 表单请求数据
|
||||
form1: {
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
// 监听 - 页面每次【加载时】执行(如:前进)
|
||||
onLoad(options = {}) {
|
||||
that = this;
|
||||
vk = that.vk;
|
||||
that.options = options;
|
||||
that.init(options);
|
||||
},
|
||||
// 监听 - 页面【首次渲染完成时】执行。注意如果渲染速度快,会在页面进入动画完成前触发
|
||||
onReady() {
|
||||
|
||||
},
|
||||
// 监听 - 页面每次【显示时】执行(如:前进和返回) (页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面)
|
||||
onShow() {
|
||||
|
||||
|
||||
},
|
||||
// 监听 - 页面每次【隐藏时】执行(如:返回)
|
||||
onHide() {
|
||||
|
||||
|
||||
},
|
||||
// 函数
|
||||
methods: {
|
||||
// 页面数据初始化函数
|
||||
init(options) {
|
||||
|
||||
},
|
||||
pageTo(path) {
|
||||
vk.navigateTo(path);
|
||||
},
|
||||
next(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
// 如果通过了验证之后才可以点下一步
|
||||
if (this.data.step <3) {
|
||||
// 再写一个判断 单独判断对应的值为1和2的时候
|
||||
this.data.loading=true
|
||||
setTimeout(()=>{
|
||||
this.data.step++;
|
||||
this.data.loading=false
|
||||
},1000)
|
||||
} else if (this.data.step == 3) {
|
||||
this.data.step=1
|
||||
this.data.ruleForm=[]
|
||||
}
|
||||
} else {
|
||||
// 否则就不能点下一步
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
// submitForm(formName) {
|
||||
// this.$refs[formName].validate((valid) => {
|
||||
// if (valid) {
|
||||
// alert('submit!');
|
||||
// } else {
|
||||
// console.log('error submit!!');
|
||||
// return false;
|
||||
// }
|
||||
// });
|
||||
// },
|
||||
resetForm(formName) {
|
||||
this.$refs.ruleForm.resetFields();
|
||||
}
|
||||
},
|
||||
// 过滤器
|
||||
filters: {
|
||||
|
||||
},
|
||||
// 计算属性
|
||||
computed: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.page-body {}
|
||||
|
||||
.select-option {
|
||||
// border: 1px solid white !important;
|
||||
background-color: #F8F8F8 !important;
|
||||
color: red;
|
||||
}
|
||||
.topTip{
|
||||
width: 300rpx;
|
||||
height: 100rpx;
|
||||
background-image: linear-gradient(to right, #243949 0%, #517fa4 100%);
|
||||
}
|
||||
|
||||
// 设置所有input的样式
|
||||
</style>
|
||||
Reference in New Issue
Block a user