去除无效的代码

This commit is contained in:
Chopper 2021-06-17 10:41:53 +08:00
parent 0995a3b75f
commit bf023ccad5
9 changed files with 1 additions and 1423 deletions

View File

@ -101,7 +101,7 @@ public class CodeGenerator {
*/
public static void main(String[] args) throws IOException {
// 模板路径
ClasspathResourceLoader resourceLoader = new ClasspathResourceLoader("/templates/java/");
ClasspathResourceLoader resourceLoader = new ClasspathResourceLoader("/templates/");
Configuration cfg = Configuration.defaultConfiguration();
GroupTemplate gt = new GroupTemplate(resourceLoader, cfg);
// 生成代码

View File

@ -1,735 +0,0 @@
<template>
<div class="search">
<Row>
<Col>
<Card>
<%
if(searchSize>0&&!hideSearch){
%>
<Row <% if(searchSize>0){ %>v-show="openSearch"<% } %> @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="70">
<%
for(item in fields){
if(item.searchable){
%>
<%
if(item.searchType=="text"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<Input type="text" v-model="searchForm.${item.field}" placeholder="请输入${item.name}" clearable style="width: 200px"/>
</Form-item>
<%
}
%>
<%
if(item.searchType=="select"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<Select v-model="searchForm.${item.field}" placeholder="请选择" clearable style="width: 200px">
<Option value="0">请自行编辑下拉菜单</Option>
</Select>
</Form-item>
<%
}
%>
<%
if(item.searchType=="date"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<DatePicker type="date" v-model="searchForm.${item.field}" placeholder="请选择" readonly clearable style="width: 200px"></DatePicker>
</Form-item>
<%
}
%>
<%
if(item.searchType=="daterange"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd" clearable @on-change="selectDateRange" placeholder="选择起始时间" readonly style="width: 200px"></DatePicker>
</Form-item>
<%
}
%>
<%
if(item.searchType=="area"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<al-cascader v-model="searchForm.${item.field}" data-type="code" level="${item.searchLevel}" style="width:200px"/>
</Form-item>
<%
}
%>
<%
}
}
%>
<Form-item style="margin-left:-35px;" class="br">
<Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
<Button @click="handleReset">重置</Button>
</Form-item>
</Form>
</Row>
<%
}
%>
<%
if(searchSize>0&&hideSearch){
%>
<Row @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
<%
for(item in firstTwo){
%>
<%
if(item.searchType=="text"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<Input type="text" v-model="searchForm.${item.field}" placeholder="请输入${item.name}" clearable style="width: 200px"/>
</Form-item>
<%
}
%>
<%
if(item.searchType=="select"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<Select v-model="searchForm.${item.field}" placeholder="请选择" clearable style="width: 200px">
<Option value="0">请自行编辑下拉菜单</Option>
</Select>
</Form-item>
<%
}
%>
<%
if(item.searchType=="date"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<DatePicker type="date" v-model="searchForm.${item.field}" placeholder="请选择" readonly clearable style="width: 200px"></DatePicker>
</Form-item>
<%
}
%>
<%
if(item.searchType=="daterange"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd" clearable @on-change="selectDateRange" readonly placeholder="选择起始时间" style="width: 200px"></DatePicker>
</Form-item>
<%
}
%>
<%
if(item.searchType=="area"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<al-cascader v-model="searchForm.${item.field}" data-type="code" level="${item.searchLevel}" style="width:200px"/>
</Form-item>
<%
}
%>
<%
}
%>
<span v-if="drop">
<%
for(item in rest){
%>
<%
if(item.searchType=="text"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<Input type="text" v-model="searchForm.${item.field}" placeholder="请输入${item.name}" clearable style="width: 200px"/>
</Form-item>
<%
}
%>
<%
if(item.searchType=="select"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<Select v-model="searchForm.${item.field}" placeholder="请选择" clearable style="width: 200px">
<Option value="0">请自行编辑下拉菜单</Option>
</Select>
</Form-item>
<%
}
%>
<%
if(item.searchType=="date"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<DatePicker type="date" v-model="searchForm.${item.field}" placeholder="请选择" clearable style="width: 200px" readonly format="yyyy-MM-dd HH:mm:ss"></DatePicker>
</Form-item>
<%
}
%>
<%
if(item.searchType=="daterange"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd" clearable @on-change="selectDateRange" placeholder="选择起始时间" readonly style="width: 200px"></DatePicker>
</Form-item>
<%
}
%>
<%
if(item.searchType=="area"){
%>
<Form-item label="${item.name}" prop="${item.field}">
<al-cascader v-model="searchForm.${item.field}" data-type="code" level="${item.searchLevel}" style="width:200px"/>
</Form-item>
<%
}
%>
<%
}
%>
</span>
<Form-item style="margin-left:-35px;" class="br">
<Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
<Button @click="handleReset">重置</Button>
<a class="drop-down" @click="dropDown">
{{dropDownContent}}
<Icon :type="dropDownIcon"></Icon>
</a>
</Form-item>
</Form>
</Row>
<%
}
%>
<Row class="operation">
<Button @click="add" type="primary" icon="md-add">添加</Button>
<Button @click="delAll" icon="md-trash">批量删除</Button>
<Button @click="getDataList" icon="md-refresh">刷新</Button>
<% if(searchSize>0){ %>
<Button type="dashed" @click="openSearch=!openSearch">{{openSearch ? "关闭搜索" : "开启搜索"}}</Button>
<% } %>
<Button type="dashed" @click="openTip=!openTip">{{openTip ? "关闭提示" : "开启提示"}}</Button>
</Row>
<Row v-show="openTip">
<Alert show-icon>
已选择 <span class="select-count">{{selectCount}}</span> 项
<a class="select-clear" @click="clearSelectAll">清空</a>
</Alert>
</Row>
<Row>
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
</Row>
<Row type="flex" justify="end" class="page">
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10,20,50]" size="small" show-total show-elevator show-sizer></Page>
</Row>
</Card>
</Col>
</Row>
<Modal :title="modalTitle" v-model="modalVisible" :mask-closable='false' :width="${modalWidth}">
<Form ref="form" :model="form" :label-width="100" :rules="formValidate" <% if(rowNum>1){ %>inline<% } %>>
<%
for(item in fields){
if(item.editable){
%>
<FormItem label="${item.name}" prop="${item.field}" <% if(rowNum>1&&(item.type=="switch"||item.type=="radio")){ %>style="width:${itemWidth}"<% } %>>
<%
if(item.type=="text"){
%>
<Input v-model="form.${item.field}" clearable style="width:${width}"/>
<%
}
%>
<%
if(item.type=="select"){
%>
<Select v-model="form.${item.field}" clearable style="width:${width}">
<Option value="0">请自行编辑下拉菜单</Option>
</Select>
<%
}
%>
<%
if(item.type=="switch"){
%>
<i-switch v-model="form.${item.field}"></i-switch>
<%
}
%>
<%
if(item.type=="radio"){
%>
<RadioGroup v-model="form.${item.field}">
<Radio label="0">请自行编辑单选框</Radio>
<Radio label="1">请自行编辑单选框</Radio>
</RadioGroup>
<%
}
%>
<%
if(item.type=="number"){
%>
<InputNumber v-model="form.${item.field}" style="width:${width}"></InputNumber>
<%
}
%>
<%
if(item.type=="date"){
%>
<DatePicker type="date" v-model="form.${item.field}" readonly clearable style="width:${width}"></DatePicker>
<%
}
%>
<%
if(item.type=="daterange"){
%>
<DatePicker type="daterange" v-model="form.${item.field}" readonly clearable style="width:${width}"></DatePicker>
<%
}
%>
<%
if(item.type=="time"){
%>
<TimePicker type="time" v-model="form.${item.field}" clearable style="width:${width}"></TimePicker>
<%
}
%>
<%
if(item.type=="area"){
%>
<al-cascader v-model="form.${item.field}" data-type="code" level="${item.level}" style="width:${width}"/>
<%
}
%>
<%
if(item.type=="slider"){
%>
<Slider v-model="form.${item.field}" style="width:${width}"></Slider>
<%
}
%>
<%
if(item.type=="upload"){
%>
<upload-pic-input v-model="form.${item.field}" style="width:${width}"></upload-pic-input>
<%
}
%>
</FormItem>
<%
}
}
%>
</Form>
<div slot="footer">
<Button type="text" @click="modalVisible=false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
</div>
</Modal>
</div>
</template>
<script>
<%
if(upload){
%>
import uploadPicInput from "@/views/my-components/lili/upload-pic-input";
<%
}
%>
export default {
name: "${vueName}",
components: {
<%
if(upload){
%>
uploadPicInput
<%
}
%>
},
data() {
return {
<% if(searchSize>0){ %>
openSearch: true, // 显示搜索
<% }%>
openTip: true, // 显示提示
loading: true, // 表单加载状态
modalType: 0, // 添加或编辑标识
modalVisible: false, // 添加或编辑显示
modalTitle: "", // 添加或编辑标题
<% if(hideSearch) { %>
drop: false,
dropDownContent: "展开",
dropDownIcon: "ios-arrow-down",
<% } %>
searchForm: { // 搜索框初始化对象
pageNumber: 1, // 当前页数
pageSize: 10, // 页面大小
sort: "createTime", // 默认排序字段
order: "desc", // 默认排序方式
<% if(daterangeSearch){ %>
startDate: "", // 起始时间
endDate: "" // 终止时间
<% } %>
},
<% if(daterangeSearch){ %>
selectDate: null,
<% } %>
form: { // 添加或编辑表单对象初始化数据
<%
for(item in fields){
if(item.editable){
%>
<% if(item.type=="switch"){ %>
${item.field}: true,
<% }else if(item.type=="number"||item.type=="slider"){ %>
${item.field}: 0,
<% }else if(item.type=="area"){ %>
${item.field}: [],
<% }else{ %>
${item.field}: "",
<% } %>
<%
}
}
%>
},
// 表单验证规则
formValidate: {
<%
for(item in fields){
if(item.editable&&item.validate){
%>
<% if(item.type=="daterange"||item.type=="area"){ %>
${item.field}: [{ type: "array", required: true, message: "不能为空", trigger: "blur" }],
<% }else if(item.type=="date"){ %>
${item.field}: [{ type: "date", required: true, message: "不能为空", trigger: "blur" }],
<% }else if(item.type=="number"||item.type=="slider"){ %>
${item.field}: [{ type: "number", required: true, message: "不能为空", trigger: "blur" }],
<% }else if(item.type=="switch"){ %>
${item.field}: [{ type: "boolean", required: true, message: "不能为空", trigger: "blur" }],
<% }else{ %>
${item.field}: [{ required: true, message: "不能为空", trigger: "blur" }],
<% } %>
<%
}
}
%>
},
submitLoading: false, // 添加或编辑提交状态
selectList: [], // 多选数据
selectCount: 0, // 多选计数
columns: [
// 表头
{
type: "selection",
width: 60,
align: "center"
},
{
type: "index",
width: 60,
align: "center"
},
<%
for(item in fields){
if(item.tableShow){
%>
{
title: "${item.name}",
key: "${item.field}",
minWidth: 120,
<%
if(item.sortable){
%>
sortable: true,
<%
}else{
%>
sortable: false,
<%
}
%>
<%
if(item.defaultSort){
%>
sortType: "${item.defaultSortType}"
<%
}
%>
},
<%
}
}
%>
{
title: "操作",
key: "action",
align: "center",
width: 200,
render: (h, params) => {
return h("div", [
h(
"Button",
{
props: {
type: "primary",
size: "small",
icon: "ios-create-outline"
},
style: {
marginRight: "5px"
},
on: {
click: () => {
this.edit(params.row);
}
}
},
"编辑"
),
h(
"Button",
{
props: {
type: "error",
size: "small",
icon: "md-trash"
},
on: {
click: () => {
this.remove(params.row);
}
}
},
"删除"
)
]);
}
}
],
data: [], // 表单数据
total: 0 // 表单数据总数
};
},
methods: {
init() {
this.getDataList();
},
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
this.clearSelectAll();
},
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
handleSearch() {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
handleReset() {
this.$refs.searchForm.resetFields();
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
<% if(daterangeSearch){ %>
this.selectDate = null;
this.searchForm.startDate = "";
this.searchForm.endDate = "";
<% } %>
// 重新加载数据
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
this.selectCount = e.length;
},
<% if(daterangeSearch){ %>
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
<% } %>
<% if(hideSearch){ %>
dropDown() {
if (this.drop) {
this.dropDownContent = "展开";
this.dropDownIcon = "ios-arrow-down";
} else {
this.dropDownContent = "收起";
this.dropDownIcon = "ios-arrow-up";
}
this.drop = !this.drop;
},
<% } %>
getDataList() {
this.loading = true;
// 带多条件搜索参数获取表单数据 请自行修改接口
this.getRequest("/${vueName}/getByPage", this.searchForm).then(res => {
this.loading = false;
if (res.success) {
this.data = res.result.records;
this.total = res.result.total;
}
});
// 以下为模拟数据
//this.data = [
//];
this.total = this.data.length;
this.loading = false;
},
handleSubmit() {
this.$refs.form.validate(valid => {
if (valid) {
this.submitLoading = true;
if (this.modalType === 0) {
// 添加 避免编辑后传入id等数据 记得删除
delete this.form.id;
this.postRequest("/${vueName}/insertOrUpdate", this.form).then(res => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.getDataList();
this.modalVisible = false;
}
});
// 模拟请求成功
//this.submitLoading = false;
//this.$Message.success("操作成功");
//this.getDataList();
//this.modalVisible = false;
} else {
// 编辑
this.postRequest("/${vueName}/insertOrUpdate", this.form).then(res => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.getDataList();
this.modalVisible = false;
}
});
// 模拟请求成功
//this.submitLoading = false;
//this.$Message.success("操作成功");
//this.getDataList();
//this.modalVisible = false;
}
}
});
},
add() {
this.modalType = 0;
this.modalTitle = "添加";
this.$refs.form.resetFields();
delete this.form.id;
this.modalVisible = true;
},
edit(v) {
this.modalType = 1;
this.modalTitle = "编辑";
this.$refs.form.resetFields();
// 转换null为""
for (let attr in v) {
if (v[attr] === null) {
v[attr] = "";
}
}
let str = JSON.stringify(v);
let data = JSON.parse(str);
this.form = data;
this.modalVisible = true;
},
remove(v) {
this.$Modal.confirm({
title: "确认删除",
// 记得确认修改此处
content: "您确认要删除么?",
loading: true,
onOk: () => {
// 删除
this.deleteRequest("/${vueName}/delByIds/" + v.id).then(res => {
this.$Modal.remove();
if (res.success) {
this.$Message.success("操作成功");
this.getDataList();
}
});
// 模拟请求成功
//this.$Message.success("操作成功");
//this.$Modal.remove();
//this.getDataList();
}
});
},
delAll() {
if (this.selectCount <= 0) {
this.$Message.warning("您还未选择要删除的数据");
return;
}
this.$Modal.confirm({
title: "确认删除",
content: "您确认要删除所选的 " + this.selectCount + " 条数据?",
loading: true,
onOk: () => {
let ids = "";
this.selectList.forEach(function(e) {
ids += e.id + ",";
});
ids = ids.substring(0, ids.length - 1);
// 批量删除
this.deleteRequest("/${vueName}/delByIds/" + ids).then(res => {
this.$Modal.remove();
if (res.success) {
this.$Message.success("操作成功");
this.clearSelectAll();
this.getDataList();
}
});
// 模拟请求成功
//this.$Message.success("操作成功");
//this.$Modal.remove();
//this.clearSelectAll();
//this.getDataList();
}
});
}
},
mounted() {
this.init();
}
};
</script>
<style lang="less">
// 建议引入通用样式 可删除下面样式代码
// @import "../../../styles/table-common.less";
.search {
.operation {
margin-bottom: 2vh;
}
.select-count {
font-weight: 600;
color: #40a9ff;
}
.select-clear {
margin-left: 10px;
}
.page {
margin-top: 2vh;
}
.drop-down {
margin-left: 5px;
}
}
</style>

View File

@ -1,687 +0,0 @@
<template>
<div class="search">
<Card>
<Row class="operation">
<Button @click="add" type="primary" icon="md-add">添加子节点</Button>
<Button @click="addRoot" icon="md-add">添加一级节点</Button>
<Button @click="delAll" icon="md-trash">批量删除</Button>
<Button @click="getParentList" icon="md-refresh">刷新</Button>
<i-switch v-model="strict" size="large" style="margin-left:5px">
<span slot="open">级联</span>
<span slot="close">单选</span>
</i-switch>
</Row>
<Row type="flex" justify="start">
<Col span="6">
<Alert show-icon>
当前选择编辑:
<span class="select-title">{{editTitle}}</span>
<a class="select-clear" v-if="form.id" @click="cancelEdit">取消选择</a>
</Alert>
<Input
v-model="searchKey"
suffix="ios-search"
@on-change="search"
placeholder="输入节点名搜索"
clearable
/>
<div class="tree-bar" :style="{maxHeight: maxHeight}">
<Tree
ref="tree"
:data="data"
:load-data="loadData"
show-checkbox
@on-check-change="changeSelect"
@on-select-change="selectTree"
:check-strictly="!strict"
></Tree>
<Spin size="large" fix v-if="loading"></Spin>
</div>
</Col>
<Col span="${span}" style="margin-left:10px">
<Form ref="form" :model="form" :label-width="100" :rules="formValidate" <% if(rowNum>1){ %>inline<% } %>>
<FormItem label="上级节点" prop="parentTitle">
<div style="display:flex;">
<Input v-model="form.parentTitle" readonly style="margin-right:10px;"/>
<Poptip transfer trigger="click" placement="right-start" title="选择上级部门" width="250">
<Button icon="md-list">选择部门</Button>
<div slot="content" style="position:relative;min-height:5vh">
<Tree :data="dataEdit" :load-data="loadData" @on-select-change="selectTreeEdit"></Tree>
<Spin size="large" fix v-if="loadingEdit"></Spin>
</div>
</Poptip>
</div>
</FormItem>
<FormItem label="名称" prop="title">
<Input v-model="form.title" />
</FormItem>
<%
for(item in fields){
if(item.editable){
%>
<FormItem label="${item.name}" prop="${item.field}" <% if(rowNum>1&&(item.type=="switch"||item.type=="radio")){ %>style="width:${itemWidth}"<% } %>>
<%
if(item.type=="text"){
%>
<Input v-model="form.${item.field}" style="width:${editWidth}"/>
<%
}
%>
<%
if(item.type=="select"){
%>
<Select v-model="form.${item.field}" style="width:${editWidth}">
<Option value="0">请自行编辑下拉菜单</Option>
</Select>
<%
}
%>
<%
if(item.type=="number"){
%>
<InputNumber v-model="form.${item.field}" style="width:${editWidth}"></InputNumber>
<%
}
%>
<%
if(item.type=="switch"){
%>
<i-switch v-model="form.${item.field}"></i-switch>
<%
}
%>
<%
if(item.type=="radio"){
%>
<RadioGroup v-model="form.${item.field}">
<Radio label="0">请自行编辑单选框</Radio>
<Radio label="1">请自行编辑单选框</Radio>
</RadioGroup>
<%
}
%>
<%
if(item.type=="date"){
%>
<DatePicker type="date" v-model="form.${item.field}" style="width:${editWidth}"></DatePicker>
<%
}
%>
<%
if(item.type=="daterange"){
%>
<DatePicker type="daterange" v-model="form.${item.field}" style="width:${editWidth}"></DatePicker>
<%
}
%>
<%
if(item.type=="time"){
%>
<TimePicker type="time" v-model="form.${item.field}" style="width:${editWidth}"></TimePicker>
<%
}
%>
<%
if(item.type=="area"){
%>
<al-cascader v-model="form.${item.field}" data-type="code" level="${item.level}" style="width:${editWidth}"/>
<%
}
%>
<%
if(item.type=="slider"){
%>
<Slider v-model="form.${item.field}" style="width:${editWidth}"></Slider>
<%
}
%>
<%
if(item.type=="upload"){
%>
<upload-pic-input v-model="form.${item.field}" style="width:${editWidth}"></upload-pic-input>
<%
}
%>
</FormItem>
<%
}
}
%>
<FormItem label="排序值" prop="sortOrder">
<Poptip trigger="hover" placement="right" content="值越小越靠前,支持小数">
<InputNumber :max="1000" :min="0" v-model="form.sortOrder"></InputNumber>
</Poptip>
</FormItem>
<br>
<Form-item>
<Button
@click="submitEdit"
:loading="submitLoading"
type="primary"
icon="ios-create-outline"
style="margin-right:5px"
>修改并保存</Button>
<Button @click="handleReset">重置</Button>
</Form-item>
</Form>
</Col>
</Row>
</Card>
<Modal :title="modalTitle" v-model="modalVisible" :mask-closable="false" :width="${modalWidth}">
<Form ref="formAdd" :model="formAdd" :label-width="100" :rules="formValidate" <% if(rowNum>1){ %>inline<% } %>>
<div v-if="showParent">
<FormItem label="上级节点:">{{form.title}}</FormItem>
</div>
<FormItem label="名称" prop="title">
<Input v-model="form.title" />
</FormItem>
<%
for(item in fields){
if(item.editable){
%>
<FormItem label="${item.name}" prop="${item.field}" <% if(rowNum>1&&(item.type=="number"||item.type=="switch"||item.type=="radio")){ %>style="width:${itemWidth}"<% } %>>
<%
if(item.type=="text"){
%>
<Input v-model="formAdd.${item.field}" style="width:${width}"/>
<%
}
%>
<%
if(item.type=="select"){
%>
<Select v-model="formAdd.${item.field}" style="width:${width}">
<Option value="0">请自行编辑下拉菜单</Option>
</Select>
<%
}
%>
<%
if(item.type=="number"){
%>
<InputNumber v-model="formAdd.${item.field}"></InputNumber>
<%
}
%>
<%
if(item.type=="switch"){
%>
<i-switch v-model="formAdd.${item.field}"></i-switch>
<%
}
%>
<%
if(item.type=="radio"){
%>
<RadioGroup v-model="formAdd.${item.field}">
<Radio label="0">请自行编辑单选框</Radio>
<Radio label="1">请自行编辑单选框</Radio>
</RadioGroup>
<%
}
%>
<%
if(item.type=="date"){
%>
<DatePicker type="date" v-model="formAdd.${item.field}" style="width:${width}"></DatePicker>
<%
}
%>
<%
if(item.type=="daterange"){
%>
<DatePicker type="daterange" v-model="formAdd.${item.field}" style="width:${width}"></DatePicker>
<%
}
%>
<%
if(item.type=="time"){
%>
<TimePicker type="time" v-model="formAdd.${item.field}" style="width:${width}"></TimePicker>
<%
}
%>
<%
if(item.type=="area"){
%>
<al-cascader v-model="formAdd.${item.field}" data-type="code" level="${item.level}" style="width:${width}"/>
<%
}
%>
<%
if(item.type=="slider"){
%>
<Slider v-model="formAdd.${item.field}" style="width:${width}"></Slider>
<%
}
%>
<%
if(item.type=="upload"){
%>
<upload-pic-input v-model="formAdd.${item.field}" style="width:${width}"></upload-pic-input>
<%
}
%>
</FormItem>
<%
}
}
%>
<FormItem label="排序值" prop="sortOrder">
<Poptip trigger="hover" placement="right" content="值越小越靠前,支持小数">
<InputNumber :max="1000" :min="0" v-model="formAdd.sortOrder"></InputNumber>
</Poptip>
</FormItem>
</Form>
<div slot="footer">
<Button type="text" @click="modalVisible=false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="submitAdd">提交</Button>
</div>
</Modal>
</div>
</template>
<script>
<%
if(upload){
%>
import uploadPicInput from "@/views/my-components/lili/upload-pic-input";
<%
}
%>
export default {
name: "${vueName}",
components: {
<%
if(upload){
%>
uploadPicInput
<%
}
%>
},
data() {
return {
maxHeight: "500px",
strict: true,
loading: false, // 树加载状态
loadingEdit: false, // 编辑上级树加载状态
modalVisible: false, // 添加显示
selectList: [], // 多选数据
selectCount: 0, // 多选计数
showParent: false, // 显示上级标识
modalTitle: "", // 添加标题
editTitle: "", // 编辑节点名称
searchKey: "", // 搜索树
form: {
// 编辑对象初始化数据
id: "",
title: "",
parentId: "",
parentTitle: "",
sortOrder: 0,
<%
for(item in fields){
if(item.editable){
%>
<% if(item.type=="switch"){ %>
${item.field}: true,
<% }else if(item.type=="number"||item.type=="slider"){ %>
${item.field}: 0,
<% }else if(item.type=="area"){ %>
${item.field}: [],
<% }else{ %>
${item.field}: "",
<% } %>
<%
}
}
%>
},
formAdd: {
// 添加对象初始化数据
},
formValidate: {
// 表单验证规则
title: [{ required: true, message: "不能为空", trigger: "blur" }],
sortOrder: [
{
required: true,
type: "number",
message: "排序值不能为空",
trigger: "blur"
}
],
<%
for(item in fields){
if(item.editable&&item.validate){
%>
<% if(item.type=="daterange"||item.type=="area"){ %>
${item.field}: [{ type: "array", required: true, message: "不能为空", trigger: "blur" }],
<% }else if(item.type=="date"){ %>
${item.field}: [{ type: "date", required: true, message: "不能为空", trigger: "blur" }],
<% }else if(item.type=="number"||item.type=="slider"){ %>
${item.field}: [{ type: "number", required: true, message: "不能为空", trigger: "blur" }],
<% }else if(item.type=="switch"){ %>
${item.field}: [{ type: "boolean", required: true, message: "不能为空", trigger: "blur" }],
<% }else{ %>
${item.field}: [{ required: true, message: "不能为空", trigger: "blur" }],
<% } %>
<%
}
}
%>
},
submitLoading: false,
data: [],
dataEdit: []
};
},
methods: {
init() {
// 初始化一级节点
this.getParentList();
// 初始化一级节点为编辑上级节点使用
this.getParentListEdit();
},
getParentList() {
// this.loading = true;
// this.getRequest("一级数据请求路径,如/tree/getByParentId/0").then(res => {
// this.loading = false;
// if (res.success) {
// res.result.forEach(function(e) {
// if (e.isParent) {
// e.loading = false;
// e.children = [];
// }
// });
// this.data = res.result;
// }
// });
// 模拟请求成功
this.data = [
];
},
getParentListEdit() {
// this.loadingEdit = true;
// this.getRequest("/tree/getByParentId/0").then(res => {
// this.loadingEdit = false;
// if (res.success) {
// res.result.forEach(function(e) {
// if (e.isParent) {
// e.loading = false;
// e.children = [];
// }
// });
// // 头部加入一级
// let first = {
// id: "0",
// title: "一级节点"
// };
// res.result.unshift(first);
// this.dataEdit = res.result;
// }
// });
// 模拟请求成功
this.dataEdit = [
];
},
loadData(item, callback) {
// 异步加载树子节点数据
// this.getRequest("请求路径,如/tree/getByParentId/" + item.id).then(res => {
// if (res.success) {
// res.result.forEach(function(e) {
// if (e.isParent) {
// e.loading = false;
// e.children = [];
// }
// });
// callback(res.result);
// }
// });
},
search() {
// 搜索树
if (this.searchKey) {
// 模拟请求
// this.loading = true;
// this.getRequest("搜索请求路径", { title: this.searchKey }).then(res => {
// this.loading = false;
// if (res.success) {
// this.data = res.result;
// }
// });
// 模拟请求成功
this.data = [
];
} else {
// 为空重新加载
this.getParentList();
}
},
selectTree(v) {
if (v.length > 0) {
// 转换null为""
for (let attr in v[0]) {
if (v[0][attr] === null) {
v[0][attr] = "";
}
}
let str = JSON.stringify(v[0]);
let data = JSON.parse(str);
this.form = data;
this.editTitle = data.title;
} else {
this.cancelEdit();
}
},
cancelEdit() {
let data = this.$refs.tree.getSelectedNodes()[0];
if (data) {
data.selected = false;
}
this.$refs.form.resetFields();
this.form.id = "";
this.editTitle = "";
},
selectTreeEdit(v) {
if (v.length > 0) {
// 转换null为""
for (let attr in v[0]) {
if (v[0][attr] === null) {
v[0][attr] = "";
}
}
let str = JSON.stringify(v[0]);
let data = JSON.parse(str);
this.form.parentId = data.id;
this.form.parentTitle = data.title;
}
},
handleReset() {
this.$refs.form.resetFields();
this.form.status = 0;
},
submitEdit() {
this.$refs.form.validate(valid => {
if (valid) {
if (!this.form.id) {
this.$Message.warning("请先点击选择要修改的节点");
return;
}
this.submitLoading = true;
// 避免传入null字符串
// this.postRequest("请求路径,如/tree/edit", this.form).then(res => {
// this.submitLoading = false;
// if (res.success) {
// this.$Message.success("编辑成功");
// this.init();
// this.modalVisible = false;
// }
// });
// 模拟成功
this.submitLoading = false;
this.$Message.success("编辑成功");
this.modalVisible = false;
}
});
},
submitAdd() {
this.$refs.formAdd.validate(valid => {
if (valid) {
this.submitLoading = true;
// this.postRequest("请求路径,如/tree/add", this.formAdd).then(res => {
// this.submitLoading = false;
// if (res.success) {
// this.$Message.success("添加成功");
// this.init();
// this.modalVisible = false;
// }
// });
// 模拟成功
this.submitLoading = false;
this.$Message.success("添加成功");
this.modalVisible = false;
}
});
},
add() {
if (this.form.id == "" || this.form.id == null) {
this.$Message.warning("请先点击选择一个节点");
return;
}
this.modalTitle = "添加子节点";
this.showParent = true;
this.formAdd = {
parentId: this.form.id,
sortOrder: 0,
<%
for(item in fields){
if(item.editable){
%>
<% if(item.type=="switch"){ %>
${item.field}: true,
<% }else if(item.type=="number"||item.type=="slider"){ %>
${item.field}: 0,
<% }else if(item.type=="area"){ %>
${item.field}: [],
<% }else{ %>
${item.field}: "",
<% } %>
<%
}
}
%>
};
this.modalVisible = true;
},
addRoot() {
this.modalTitle = "添加一级节点";
this.showParent = false;
this.formAdd = {
parentId: 0,
sortOrder: 0,
title: "",
<%
for(item in fields){
if(item.editable){
%>
<% if(item.type=="switch"){ %>
${item.field}: true,
<% }else if(item.type=="number"||item.type=="slider"){ %>
${item.field}: 0,
<% }else if(item.type=="area"){ %>
${item.field}: [],
<% }else{ %>
${item.field}: "",
<% } %>
<%
}
}
%>
};
this.modalVisible = true;
},
changeSelect(v) {
this.selectCount = v.length;
this.selectList = v;
},
delAll() {
if (this.selectCount <= 0) {
this.$Message.warning("您还未勾选要删除的数据");
return;
}
this.$Modal.confirm({
title: "确认删除",
content: "您确认要删除所选的 " + this.selectCount + " 条数据及其下级所有数据?",
loading: true,
onOk: () => {
let ids = "";
this.selectList.forEach(function(e) {
ids += e.id + ",";
});
ids = ids.substring(0, ids.length - 1);
// this.deleteRequest("请求路径,如/tree/delByIds/" + ids).then(res => {
// this.$Modal.remove();
// if (res.success) {
// this.$Message.success("删除成功");
// this.selectList = [];
// this.selectCount = 0;
// this.cancelEdit();
// this.init();
// }
// });
// 模拟成功
this.$Modal.remove();
this.$Message.success("删除成功");
this.selectList = [];
this.selectCount = 0;
this.cancelEdit();
}
});
}
},
mounted() {
// 计算高度
let height = document.documentElement.clientHeight;
this.maxHeight = Number(height-287) + "px";
this.init();
}
};
</script>
<style lang="less">
// 建议引入通用样式 可删除下面样式代码
// @import "../../../styles/tree-common.less";
.search {
.operation {
margin-bottom: 2vh;
}
.select-title {
font-size: 12px;
font-weight: 600;
color: #40a9ff;
}
.select-clear {
margin-left: 10px;
}
}
.tree-bar {
overflow: auto;
margin-top: 5px;
position: relative;
min-height: 80px;
}
.tree-bar::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.tree-bar::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px #d1d1d1;
background: #e4e4e4;
}
</style>