3 changed files with 340 additions and 1 deletions
@ -0,0 +1,338 @@ |
|||||
|
<template> |
||||
|
<view class="page-body"> |
||||
|
<!-- 页面内容开始 --> |
||||
|
|
||||
|
<!-- 表格搜索组件开始 --> |
||||
|
<vk-data-table-query v-model="queryForm1.formData" :columns="queryForm1.columns" |
||||
|
@search="search"></vk-data-table-query> |
||||
|
<!-- 表格搜索组件结束 --> |
||||
|
|
||||
|
<!-- 自定义按钮区域开始 --> |
||||
|
<view> |
||||
|
<el-row> |
||||
|
<el-button type="success" size="small" icon="el-icon-circle-plus-outline" @click="addBtn">添加</el-button> |
||||
|
<!-- 批量操作 --> |
||||
|
<el-dropdown v-if="table1.multipleSelection" :split-button="false" trigger="click" @command="batchBtn"> |
||||
|
<!-- <el-button type="danger" size="small" style="margin-left: 20rpx;" |
||||
|
:disabled="table1.multipleSelection.length === 0"> |
||||
|
批量操作<i class="el-icon-arrow-down el-icon--right"></i> |
||||
|
</el-button> --> |
||||
|
<el-dropdown-menu slot="dropdown"> |
||||
|
<!-- <el-dropdown-item :command="1">批量操作1</el-dropdown-item> |
||||
|
<el-dropdown-item :command="2">批量操作2</el-dropdown-item> --> |
||||
|
</el-dropdown-menu> |
||||
|
</el-dropdown> |
||||
|
</el-row> |
||||
|
</view> |
||||
|
<!-- 自定义按钮区域结束 --> |
||||
|
|
||||
|
<!-- 表格组件开始 --> |
||||
|
<vk-data-table ref="table1" :action="table1.action" :columns="table1.columns" :query-form-param="queryForm1" |
||||
|
:right-btns="['detail_auto','update','delete']" :default-expand-all="false" @update="updateBtn" |
||||
|
@delete="deleteBtn" @current-change="currentChange" @selection-change="selectionChange"></vk-data-table> |
||||
|
<!-- 表格组件结束 --> |
||||
|
|
||||
|
<!-- 添加或编辑的弹窗开始 --> |
||||
|
<vk-data-dialog v-model="form1.props.show" :title="form1.props.title" width="500px" mode="form" |
||||
|
:close-on-click-modal="false"> |
||||
|
<vk-data-form v-model="form1.data" :rules="form1.props.rules" :action="form1.props.action" |
||||
|
:form-type="form1.props.formType" :columns='form1.props.columns' label-width="120px" |
||||
|
@success="form1.props.show = false;refresh();"></vk-data-form> |
||||
|
</vk-data-dialog> |
||||
|
<!-- 添加或编辑的弹窗结束 --> |
||||
|
|
||||
|
<!-- 页面内容结束 --> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
var that; // 当前页面对象 |
||||
|
var vk = uni.vk; // vk实例 |
||||
|
var originalForms = {}; // 表单初始化数据 |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
// 页面数据变量 |
||||
|
return { |
||||
|
// 页面是否请求中或加载中 |
||||
|
loading: false, |
||||
|
// init请求返回的数据 |
||||
|
data: { |
||||
|
|
||||
|
}, |
||||
|
// 表格相关开始 ----------------------------------------------------------- |
||||
|
table1: { |
||||
|
// 表格数据请求地址 |
||||
|
action: "admin/contract/template/sys/getList", |
||||
|
// 表格字段显示规则 |
||||
|
columns: [ |
||||
|
// { |
||||
|
// key: "_id", |
||||
|
// title: "id", |
||||
|
// type: "text", |
||||
|
// width: 220 |
||||
|
// }, |
||||
|
{ |
||||
|
key: "name", |
||||
|
title: "名称", |
||||
|
type: "text", |
||||
|
width: 220, |
||||
|
align: "left", |
||||
|
}, |
||||
|
// { |
||||
|
// key: "parent_id", |
||||
|
// title: "上级id", |
||||
|
// type: "text", |
||||
|
// width: 220, |
||||
|
// }, |
||||
|
{ |
||||
|
key: "remark", |
||||
|
title: "备注", |
||||
|
type: "text", |
||||
|
align: "left", |
||||
|
width: 220 |
||||
|
}, |
||||
|
{ |
||||
|
key: "sort", |
||||
|
title: "排序", |
||||
|
type: "number", |
||||
|
align: "left", |
||||
|
width: 80, |
||||
|
}, |
||||
|
{ |
||||
|
key: "_add_time", |
||||
|
title: "添加时间", |
||||
|
type: "time", |
||||
|
align: "left", |
||||
|
width: 160, |
||||
|
sortable: "custom" |
||||
|
}, |
||||
|
{ |
||||
|
key: "_add_time", |
||||
|
title: "距离现在", |
||||
|
type: "dateDiff", |
||||
|
align: "left", |
||||
|
width: 120 |
||||
|
}, |
||||
|
], |
||||
|
// 多选框选中的值 |
||||
|
multipleSelection: [], |
||||
|
// 当前高亮的记录 |
||||
|
selectItem: "" |
||||
|
}, |
||||
|
// 表格相关结束 ----------------------------------------------------------- |
||||
|
// 表单相关开始 ----------------------------------------------------------- |
||||
|
// 查询表单请求数据 |
||||
|
queryForm1: { |
||||
|
// 查询表单数据源,可在此设置默认值 |
||||
|
formData: { |
||||
|
|
||||
|
}, |
||||
|
// 查询表单的字段规则 fieldName:指定数据库字段名,不填默认等于key |
||||
|
columns: [ |
||||
|
// { |
||||
|
// key: "name", |
||||
|
// title: "名称", |
||||
|
// type: "text", |
||||
|
// width: 160, |
||||
|
// mode: "%%" |
||||
|
// }, |
||||
|
// { |
||||
|
// key: "remark", |
||||
|
// title: "备注", |
||||
|
// type: "text", |
||||
|
// width: 160, |
||||
|
// mode: "%%" |
||||
|
// }, |
||||
|
// { |
||||
|
// key: "_add_time", |
||||
|
// title: "添加时间", |
||||
|
// type: "datetimerange", |
||||
|
// width: 400, |
||||
|
// mode: "[]" |
||||
|
// }, |
||||
|
] |
||||
|
}, |
||||
|
form1: { |
||||
|
// 表单请求数据,此处可以设置默认值 |
||||
|
data: { |
||||
|
sort: 0 |
||||
|
}, |
||||
|
// 表单属性 |
||||
|
props: { |
||||
|
// 表单请求地址 |
||||
|
action: "", |
||||
|
// 表单字段显示规则 |
||||
|
columns: [{ |
||||
|
key: "name", |
||||
|
title: "名称", |
||||
|
type: "text", |
||||
|
placeholder: "请输入分类名称" |
||||
|
}, |
||||
|
{ |
||||
|
key: "icon", |
||||
|
title: "图标", |
||||
|
type: "icon", |
||||
|
placeholder: "请选择图标" |
||||
|
}, |
||||
|
{ |
||||
|
key: "parent_id", |
||||
|
title: "上级分类", |
||||
|
type: "tree-select", |
||||
|
placeholder: "请选择上级分类", |
||||
|
action: "admin/spot/category/sys/getTree", |
||||
|
props: { |
||||
|
list: "rows", |
||||
|
value: "_id", |
||||
|
label: "name", |
||||
|
children: "children" |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
key: "remark", |
||||
|
title: "备注", |
||||
|
type: "textarea", |
||||
|
maxlength: "99", |
||||
|
showWordLimit: true, |
||||
|
autosize: { |
||||
|
minRows: 2, |
||||
|
maxRows: 10 |
||||
|
}, |
||||
|
}, |
||||
|
{ |
||||
|
key: "sort", |
||||
|
title: "排序", |
||||
|
type: "number", |
||||
|
precision: 0, |
||||
|
placeholder: "请输入排序值", |
||||
|
}, |
||||
|
], |
||||
|
// 表单验证规则 |
||||
|
rules: { |
||||
|
sort: [{ |
||||
|
type: 'number', |
||||
|
message: '排序值必须为数字' |
||||
|
}], |
||||
|
name:[ |
||||
|
{ required:true, message:'分类名称不能为空', trigger:'blur' }, |
||||
|
], |
||||
|
}, |
||||
|
// add 代表添加 update 代表修改 |
||||
|
formType: "", |
||||
|
// 是否显示表单的弹窗 |
||||
|
show: false |
||||
|
} |
||||
|
}, |
||||
|
// 其他弹窗表单 |
||||
|
formDatas: {}, |
||||
|
// 表单相关结束 ----------------------------------------------------------- |
||||
|
}; |
||||
|
}, |
||||
|
// 监听 - 页面每次【加载时】执行(如:前进) |
||||
|
onLoad(options = {}) { |
||||
|
that = this; |
||||
|
vk = that.vk; |
||||
|
that.options = options; |
||||
|
that.init(options); |
||||
|
}, |
||||
|
// 监听 - 页面【首次渲染完成时】执行。注意如果渲染速度快,会在页面进入动画完成前触发 |
||||
|
onReady() {}, |
||||
|
// 监听 - 页面每次【显示时】执行(如:前进和返回) (页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面) |
||||
|
onShow() {}, |
||||
|
// 监听 - 页面每次【隐藏时】执行(如:返回) |
||||
|
onHide() {}, |
||||
|
// 函数 |
||||
|
methods: { |
||||
|
// 页面数据初始化函数 |
||||
|
init(options) { |
||||
|
originalForms["form1"] = vk.pubfn.copyObject(that.form1); |
||||
|
}, |
||||
|
// 页面跳转 |
||||
|
pageTo(path) { |
||||
|
vk.navigateTo(path); |
||||
|
}, |
||||
|
// 表单重置 |
||||
|
resetForm() { |
||||
|
vk.pubfn.resetForm(originalForms, that); |
||||
|
}, |
||||
|
// 搜索 |
||||
|
search() { |
||||
|
that.$refs.table1.search(); |
||||
|
}, |
||||
|
// 刷新 |
||||
|
refresh() { |
||||
|
that.$refs.table1.refresh(); |
||||
|
}, |
||||
|
// 获取当前选中的行的数据 |
||||
|
getCurrentRow() { |
||||
|
return that.$refs.table1.getCurrentRow(); |
||||
|
}, |
||||
|
// 监听 - 行的选中高亮事件 |
||||
|
currentChange(val) { |
||||
|
that.table1.selectItem = val; |
||||
|
}, |
||||
|
// 当选择项发生变化时会触发该事件 |
||||
|
selectionChange(list) { |
||||
|
that.table1.multipleSelection = list; |
||||
|
}, |
||||
|
// 显示添加页面 |
||||
|
addBtn() { |
||||
|
that.resetForm(); |
||||
|
that.form1.props.action = 'admin/contract/template/sys/add'; |
||||
|
that.form1.props.formType = 'add'; |
||||
|
that.form1.props.title = '添加'; |
||||
|
that.form1.props.show = true; |
||||
|
}, |
||||
|
// 显示修改页面 |
||||
|
updateBtn({ |
||||
|
item |
||||
|
}) { |
||||
|
that.form1.props.action = 'admin/contract/template/sys/update'; |
||||
|
that.form1.props.formType = 'update'; |
||||
|
that.form1.props.title = '编辑'; |
||||
|
that.form1.props.show = true; |
||||
|
that.form1.data = item; |
||||
|
}, |
||||
|
// 删除按钮 |
||||
|
deleteBtn({ |
||||
|
item, |
||||
|
deleteFn |
||||
|
}) { |
||||
|
deleteFn({ |
||||
|
action: "admin/contract/template/sys/delete", |
||||
|
data: { |
||||
|
_id: item._id |
||||
|
}, |
||||
|
}); |
||||
|
}, |
||||
|
// 监听 - 批量操作的按钮点击事件 |
||||
|
batchBtn(index) { |
||||
|
switch (index) { |
||||
|
case 1: |
||||
|
vk.toast("批量操作按钮1"); |
||||
|
break; |
||||
|
case 2: |
||||
|
vk.toast("批量操作按钮2"); |
||||
|
break; |
||||
|
default: |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
// 监听属性 |
||||
|
watch: { |
||||
|
|
||||
|
}, |
||||
|
// 过滤器 |
||||
|
filters: { |
||||
|
|
||||
|
}, |
||||
|
// 计算属性 |
||||
|
computed: { |
||||
|
|
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
.page-body {} |
||||
|
</style> |
Loading…
Reference in new issue