remove all semicolons
This commit is contained in:
parent
79c885decb
commit
7b6fdb3a89
@ -283,9 +283,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
|
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}"
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect"
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "${BusinessName}",
|
name: "${BusinessName}",
|
||||||
@ -346,18 +346,18 @@ export default {
|
|||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询${functionName}列表 */
|
/** 查询${functionName}列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
this.queryParams.params = {};
|
this.queryParams.params = {}
|
||||||
#break
|
#break
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
@ -365,40 +365,40 @@ export default {
|
|||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) {
|
if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) {
|
||||||
this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0];
|
this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0]
|
||||||
this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1];
|
this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1]
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
list${BusinessName}(this.queryParams).then(response => {
|
list${BusinessName}(this.queryParams).then(response => {
|
||||||
this.${businessName}List = this.handleTree(response.data, "${treeCode}", "${treeParentCode}");
|
this.${businessName}List = this.handleTree(response.data, "${treeCode}", "${treeParentCode}")
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 转换${functionName}数据结构 */
|
/** 转换${functionName}数据结构 */
|
||||||
normalizer(node) {
|
normalizer(node) {
|
||||||
if (node.children && !node.children.length) {
|
if (node.children && !node.children.length) {
|
||||||
delete node.children;
|
delete node.children
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
id: node.${treeCode},
|
id: node.${treeCode},
|
||||||
label: node.${treeName},
|
label: node.${treeName},
|
||||||
children: node.children
|
children: node.children
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
/** 查询${functionName}下拉树结构 */
|
/** 查询${functionName}下拉树结构 */
|
||||||
getTreeselect() {
|
getTreeselect() {
|
||||||
list${BusinessName}().then(response => {
|
list${BusinessName}().then(response => {
|
||||||
this.${businessName}Options = [];
|
this.${businessName}Options = []
|
||||||
const data = { ${treeCode}: 0, ${treeName}: '顶级节点', children: [] };
|
const data = { ${treeCode}: 0, ${treeName}: '顶级节点', children: [] }
|
||||||
data.children = this.handleTree(response.data, "${treeCode}", "${treeParentCode}");
|
data.children = this.handleTree(response.data, "${treeCode}", "${treeParentCode}")
|
||||||
this.${businessName}Options.push(data);
|
this.${businessName}Options.push(data)
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -410,61 +410,61 @@ export default {
|
|||||||
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
this.daterange${AttrName} = [];
|
this.daterange${AttrName} = []
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd(row) {
|
handleAdd(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.getTreeselect();
|
this.getTreeselect()
|
||||||
if (row != null && row.${treeCode}) {
|
if (row != null && row.${treeCode}) {
|
||||||
this.form.${treeParentCode} = row.${treeCode};
|
this.form.${treeParentCode} = row.${treeCode}
|
||||||
} else {
|
} else {
|
||||||
this.form.${treeParentCode} = 0;
|
this.form.${treeParentCode} = 0
|
||||||
}
|
}
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加${functionName}";
|
this.title = "添加${functionName}"
|
||||||
},
|
},
|
||||||
/** 展开/折叠操作 */
|
/** 展开/折叠操作 */
|
||||||
toggleExpandAll() {
|
toggleExpandAll() {
|
||||||
this.refreshTable = false;
|
this.refreshTable = false
|
||||||
this.isExpandAll = !this.isExpandAll;
|
this.isExpandAll = !this.isExpandAll
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.refreshTable = true;
|
this.refreshTable = true
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.getTreeselect();
|
this.getTreeselect()
|
||||||
if (row != null) {
|
if (row != null) {
|
||||||
this.form.${treeParentCode} = row.${treeParentCode};
|
this.form.${treeParentCode} = row.${treeParentCode}
|
||||||
}
|
}
|
||||||
get${BusinessName}(row.${pkColumn.javaField}).then(response => {
|
get${BusinessName}(row.${pkColumn.javaField}).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
this.form.$column.javaField = this.form.${column.javaField}.split(",");
|
this.form.$column.javaField = this.form.${column.javaField}.split(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改${functionName}";
|
this.title = "修改${functionName}"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
@ -472,34 +472,34 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
this.form.$column.javaField = this.form.${column.javaField}.join(",");
|
this.form.$column.javaField = this.form.${column.javaField}.join(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
if (this.form.${pkColumn.javaField} != null) {
|
if (this.form.${pkColumn.javaField} != null) {
|
||||||
update${BusinessName}(this.form).then(response => {
|
update${BusinessName}(this.form).then(response => {
|
||||||
this.#[[$modal]]#.msgSuccess("修改成功");
|
this.#[[$modal]]#.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
add${BusinessName}(this.form).then(response => {
|
add${BusinessName}(this.form).then(response => {
|
||||||
this.#[[$modal]]#.msgSuccess("新增成功");
|
this.#[[$modal]]#.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() {
|
this.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() {
|
||||||
return del${BusinessName}(row.${pkColumn.javaField});
|
return del${BusinessName}(row.${pkColumn.javaField})
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.#[[$modal]]#.msgSuccess("删除成功");
|
this.#[[$modal]]#.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -353,7 +353,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
|
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "${BusinessName}",
|
name: "${BusinessName}",
|
||||||
@ -423,18 +423,18 @@ export default {
|
|||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询${functionName}列表 */
|
/** 查询${functionName}列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
this.queryParams.params = {};
|
this.queryParams.params = {}
|
||||||
#break
|
#break
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
@ -442,21 +442,21 @@ export default {
|
|||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) {
|
if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) {
|
||||||
this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0];
|
this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0]
|
||||||
this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1];
|
this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1]
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
list${BusinessName}(this.queryParams).then(response => {
|
list${BusinessName}(this.queryParams).then(response => {
|
||||||
this.${businessName}List = response.rows;
|
this.${businessName}List = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -468,27 +468,27 @@ export default {
|
|||||||
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
};
|
}
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
this.${subclassName}List = [];
|
this.${subclassName}List = []
|
||||||
#end
|
#end
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
this.daterange${AttrName} = [];
|
this.daterange${AttrName} = []
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -498,27 +498,27 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加${functionName}";
|
this.title = "添加${functionName}"
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids
|
const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids
|
||||||
get${BusinessName}(${pkColumn.javaField}).then(response => {
|
get${BusinessName}(${pkColumn.javaField}).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
this.form.$column.javaField = this.form.${column.javaField}.split(",");
|
this.form.$column.javaField = this.form.${column.javaField}.split(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
this.${subclassName}List = response.data.${subclassName}List;
|
this.${subclassName}List = response.data.${subclassName}List
|
||||||
#end
|
#end
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改${functionName}";
|
this.title = "修改${functionName}"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
@ -526,64 +526,64 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
this.form.$column.javaField = this.form.${column.javaField}.join(",");
|
this.form.$column.javaField = this.form.${column.javaField}.join(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
this.form.${subclassName}List = this.${subclassName}List;
|
this.form.${subclassName}List = this.${subclassName}List
|
||||||
#end
|
#end
|
||||||
if (this.form.${pkColumn.javaField} != null) {
|
if (this.form.${pkColumn.javaField} != null) {
|
||||||
update${BusinessName}(this.form).then(response => {
|
update${BusinessName}(this.form).then(response => {
|
||||||
this.#[[$modal]]#.msgSuccess("修改成功");
|
this.#[[$modal]]#.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
add${BusinessName}(this.form).then(response => {
|
add${BusinessName}(this.form).then(response => {
|
||||||
this.#[[$modal]]#.msgSuccess("新增成功");
|
this.#[[$modal]]#.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const ${pkColumn.javaField}s = row.${pkColumn.javaField} || this.ids;
|
const ${pkColumn.javaField}s = row.${pkColumn.javaField} || this.ids
|
||||||
this.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + ${pkColumn.javaField}s + '"的数据项?').then(function() {
|
this.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + ${pkColumn.javaField}s + '"的数据项?').then(function() {
|
||||||
return del${BusinessName}(${pkColumn.javaField}s);
|
return del${BusinessName}(${pkColumn.javaField}s)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.#[[$modal]]#.msgSuccess("删除成功");
|
this.#[[$modal]]#.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
/** ${subTable.functionName}序号 */
|
/** ${subTable.functionName}序号 */
|
||||||
row${subClassName}Index({ row, rowIndex }) {
|
row${subClassName}Index({ row, rowIndex }) {
|
||||||
row.index = rowIndex + 1;
|
row.index = rowIndex + 1
|
||||||
},
|
},
|
||||||
/** ${subTable.functionName}添加按钮操作 */
|
/** ${subTable.functionName}添加按钮操作 */
|
||||||
handleAdd${subClassName}() {
|
handleAdd${subClassName}() {
|
||||||
let obj = {};
|
let obj = {}
|
||||||
#foreach($column in $subTable.columns)
|
#foreach($column in $subTable.columns)
|
||||||
#if($column.pk || $column.javaField == ${subTableFkclassName})
|
#if($column.pk || $column.javaField == ${subTableFkclassName})
|
||||||
#elseif($column.list && "" != $javaField)
|
#elseif($column.list && "" != $javaField)
|
||||||
obj.$column.javaField = "";
|
obj.$column.javaField = ""
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
this.${subclassName}List.push(obj);
|
this.${subclassName}List.push(obj)
|
||||||
},
|
},
|
||||||
/** ${subTable.functionName}删除按钮操作 */
|
/** ${subTable.functionName}删除按钮操作 */
|
||||||
handleDelete${subClassName}() {
|
handleDelete${subClassName}() {
|
||||||
if (this.checked${subClassName}.length == 0) {
|
if (this.checked${subClassName}.length == 0) {
|
||||||
this.#[[$modal]]#.msgError("请先选择要删除的${subTable.functionName}数据");
|
this.#[[$modal]]#.msgError("请先选择要删除的${subTable.functionName}数据")
|
||||||
} else {
|
} else {
|
||||||
const ${subclassName}List = this.${subclassName}List;
|
const ${subclassName}List = this.${subclassName}List
|
||||||
const checked${subClassName} = this.checked${subClassName};
|
const checked${subClassName} = this.checked${subClassName}
|
||||||
this.${subclassName}List = ${subclassName}List.filter(function(item) {
|
this.${subclassName}List = ${subclassName}List.filter(function(item) {
|
||||||
return checked${subClassName}.indexOf(item.index) == -1
|
return checked${subClassName}.indexOf(item.index) == -1
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 复选框选中数据 */
|
/** 复选框选中数据 */
|
||||||
@ -598,5 +598,5 @@ export default {
|
|||||||
}, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
|
}, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -271,26 +271,26 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="${BusinessName}">
|
<script setup name="${BusinessName}">
|
||||||
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
|
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}"
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance()
|
||||||
#if(${dicts} != '')
|
#if(${dicts} != '')
|
||||||
#set($dictsNoSymbol=$dicts.replace("'", ""))
|
#set($dictsNoSymbol=$dicts.replace("'", ""))
|
||||||
const { ${dictsNoSymbol} } = proxy.useDict(${dicts});
|
const { ${dictsNoSymbol} } = proxy.useDict(${dicts})
|
||||||
#end
|
#end
|
||||||
|
|
||||||
const ${businessName}List = ref([]);
|
const ${businessName}List = ref([])
|
||||||
const ${businessName}Options = ref([]);
|
const ${businessName}Options = ref([])
|
||||||
const open = ref(false);
|
const open = ref(false)
|
||||||
const loading = ref(true);
|
const loading = ref(true)
|
||||||
const showSearch = ref(true);
|
const showSearch = ref(true)
|
||||||
const title = ref("");
|
const title = ref("")
|
||||||
const isExpandAll = ref(true);
|
const isExpandAll = ref(true)
|
||||||
const refreshTable = ref(true);
|
const refreshTable = ref(true)
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
const daterange${AttrName} = ref([]);
|
const daterange${AttrName} = ref([])
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
|
|
||||||
@ -318,16 +318,16 @@ const data = reactive({
|
|||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
|
||||||
/** 查询${functionName}列表 */
|
/** 查询${functionName}列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true;
|
loading.value = true
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
queryParams.value.params = {};
|
queryParams.value.params = {}
|
||||||
#break
|
#break
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
@ -335,31 +335,31 @@ function getList() {
|
|||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
if (null != daterange${AttrName} && '' != daterange${AttrName}) {
|
if (null != daterange${AttrName} && '' != daterange${AttrName}) {
|
||||||
queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
|
queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0]
|
||||||
queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
|
queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1]
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
list${BusinessName}(queryParams.value).then(response => {
|
list${BusinessName}(queryParams.value).then(response => {
|
||||||
${businessName}List.value = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}");
|
${businessName}List.value = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}")
|
||||||
loading.value = false;
|
loading.value = false
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 查询${functionName}下拉树结构 */
|
/** 查询${functionName}下拉树结构 */
|
||||||
function getTreeselect() {
|
function getTreeselect() {
|
||||||
list${BusinessName}().then(response => {
|
list${BusinessName}().then(response => {
|
||||||
${businessName}Options.value = [];
|
${businessName}Options.value = []
|
||||||
const data = { ${treeCode}: 0, ${treeName}: '顶级节点', children: [] };
|
const data = { ${treeCode}: 0, ${treeName}: '顶级节点', children: [] }
|
||||||
data.children = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}");
|
data.children = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}")
|
||||||
${businessName}Options.value.push(data);
|
${businessName}Options.value.push(data)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
function cancel() {
|
function cancel() {
|
||||||
open.value = false;
|
open.value = false
|
||||||
reset();
|
reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 表单重置
|
// 表单重置
|
||||||
@ -372,13 +372,13 @@ function reset() {
|
|||||||
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
};
|
}
|
||||||
proxy.resetForm("${businessName}Ref");
|
proxy.resetForm("${businessName}Ref")
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
function handleQuery() {
|
function handleQuery() {
|
||||||
getList();
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
@ -386,52 +386,52 @@ function resetQuery() {
|
|||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
daterange${AttrName}.value = [];
|
daterange${AttrName}.value = []
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
proxy.resetForm("queryRef");
|
proxy.resetForm("queryRef")
|
||||||
handleQuery();
|
handleQuery()
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
function handleAdd(row) {
|
function handleAdd(row) {
|
||||||
reset();
|
reset()
|
||||||
getTreeselect();
|
getTreeselect()
|
||||||
if (row != null && row.${treeCode}) {
|
if (row != null && row.${treeCode}) {
|
||||||
form.value.${treeParentCode} = row.${treeCode};
|
form.value.${treeParentCode} = row.${treeCode}
|
||||||
} else {
|
} else {
|
||||||
form.value.${treeParentCode} = 0;
|
form.value.${treeParentCode} = 0
|
||||||
}
|
}
|
||||||
open.value = true;
|
open.value = true
|
||||||
title.value = "添加${functionName}";
|
title.value = "添加${functionName}"
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 展开/折叠操作 */
|
/** 展开/折叠操作 */
|
||||||
function toggleExpandAll() {
|
function toggleExpandAll() {
|
||||||
refreshTable.value = false;
|
refreshTable.value = false
|
||||||
isExpandAll.value = !isExpandAll.value;
|
isExpandAll.value = !isExpandAll.value
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
refreshTable.value = true;
|
refreshTable.value = true
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
async function handleUpdate(row) {
|
async function handleUpdate(row) {
|
||||||
reset();
|
reset()
|
||||||
await getTreeselect();
|
await getTreeselect()
|
||||||
if (row != null) {
|
if (row != null) {
|
||||||
form.value.${treeParentCode} = row.${treeParentCode};
|
form.value.${treeParentCode} = row.${treeParentCode}
|
||||||
}
|
}
|
||||||
get${BusinessName}(row.${pkColumn.javaField}).then(response => {
|
get${BusinessName}(row.${pkColumn.javaField}).then(response => {
|
||||||
form.value = response.data;
|
form.value = response.data
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
form.value.$column.javaField = form.value.${column.javaField}.split(",");
|
form.value.$column.javaField = form.value.${column.javaField}.split(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
open.value = true;
|
open.value = true
|
||||||
title.value = "修改${functionName}";
|
title.value = "修改${functionName}"
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
@ -440,35 +440,35 @@ function submitForm() {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
form.value.$column.javaField = form.value.${column.javaField}.join(",");
|
form.value.$column.javaField = form.value.${column.javaField}.join(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
if (form.value.${pkColumn.javaField} != null) {
|
if (form.value.${pkColumn.javaField} != null) {
|
||||||
update${BusinessName}(form.value).then(response => {
|
update${BusinessName}(form.value).then(response => {
|
||||||
proxy.#[[$modal]]#.msgSuccess("修改成功");
|
proxy.#[[$modal]]#.msgSuccess("修改成功")
|
||||||
open.value = false;
|
open.value = false
|
||||||
getList();
|
getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
add${BusinessName}(form.value).then(response => {
|
add${BusinessName}(form.value).then(response => {
|
||||||
proxy.#[[$modal]]#.msgSuccess("新增成功");
|
proxy.#[[$modal]]#.msgSuccess("新增成功")
|
||||||
open.value = false;
|
open.value = false
|
||||||
getList();
|
getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
function handleDelete(row) {
|
function handleDelete(row) {
|
||||||
proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() {
|
proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() {
|
||||||
return del${BusinessName}(row.${pkColumn.javaField});
|
return del${BusinessName}(row.${pkColumn.javaField})
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
getList();
|
getList()
|
||||||
proxy.#[[$modal]]#.msgSuccess("删除成功");
|
proxy.#[[$modal]]#.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
|
|
||||||
getList();
|
getList()
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -343,33 +343,33 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="${BusinessName}">
|
<script setup name="${BusinessName}">
|
||||||
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
|
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}"
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance()
|
||||||
#if(${dicts} != '')
|
#if(${dicts} != '')
|
||||||
#set($dictsNoSymbol=$dicts.replace("'", ""))
|
#set($dictsNoSymbol=$dicts.replace("'", ""))
|
||||||
const { ${dictsNoSymbol} } = proxy.useDict(${dicts});
|
const { ${dictsNoSymbol} } = proxy.useDict(${dicts})
|
||||||
#end
|
#end
|
||||||
|
|
||||||
const ${businessName}List = ref([]);
|
const ${businessName}List = ref([])
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
const ${subclassName}List = ref([]);
|
const ${subclassName}List = ref([])
|
||||||
#end
|
#end
|
||||||
const open = ref(false);
|
const open = ref(false)
|
||||||
const loading = ref(true);
|
const loading = ref(true)
|
||||||
const showSearch = ref(true);
|
const showSearch = ref(true)
|
||||||
const ids = ref([]);
|
const ids = ref([])
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
const checked${subClassName} = ref([]);
|
const checked${subClassName} = ref([])
|
||||||
#end
|
#end
|
||||||
const single = ref(true);
|
const single = ref(true)
|
||||||
const multiple = ref(true);
|
const multiple = ref(true)
|
||||||
const total = ref(0);
|
const total = ref(0)
|
||||||
const title = ref("");
|
const title = ref("")
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
const daterange${AttrName} = ref([]);
|
const daterange${AttrName} = ref([])
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
|
|
||||||
@ -399,16 +399,16 @@ const data = reactive({
|
|||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
|
||||||
/** 查询${functionName}列表 */
|
/** 查询${functionName}列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true;
|
loading.value = true
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
queryParams.value.params = {};
|
queryParams.value.params = {}
|
||||||
#break
|
#break
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
@ -416,22 +416,22 @@ function getList() {
|
|||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
if (null != daterange${AttrName} && '' != daterange${AttrName}) {
|
if (null != daterange${AttrName} && '' != daterange${AttrName}) {
|
||||||
queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
|
queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0]
|
||||||
queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
|
queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1]
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
list${BusinessName}(queryParams.value).then(response => {
|
list${BusinessName}(queryParams.value).then(response => {
|
||||||
${businessName}List.value = response.rows;
|
${businessName}List.value = response.rows
|
||||||
total.value = response.total;
|
total.value = response.total
|
||||||
loading.value = false;
|
loading.value = false
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
function cancel() {
|
function cancel() {
|
||||||
open.value = false;
|
open.value = false
|
||||||
reset();
|
reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 表单重置
|
// 表单重置
|
||||||
@ -444,17 +444,17 @@ function reset() {
|
|||||||
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
$column.javaField: null#if($foreach.count != $columns.size()),#end
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
};
|
}
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
${subclassName}List.value = [];
|
${subclassName}List.value = []
|
||||||
#end
|
#end
|
||||||
proxy.resetForm("${businessName}Ref");
|
proxy.resetForm("${businessName}Ref")
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
function handleQuery() {
|
function handleQuery() {
|
||||||
queryParams.value.pageNum = 1;
|
queryParams.value.pageNum = 1
|
||||||
getList();
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
@ -462,44 +462,44 @@ function resetQuery() {
|
|||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
|
||||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||||
daterange${AttrName}.value = [];
|
daterange${AttrName}.value = []
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
proxy.resetForm("queryRef");
|
proxy.resetForm("queryRef")
|
||||||
handleQuery();
|
handleQuery()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
function handleSelectionChange(selection) {
|
function handleSelectionChange(selection) {
|
||||||
ids.value = selection.map(item => item.${pkColumn.javaField});
|
ids.value = selection.map(item => item.${pkColumn.javaField})
|
||||||
single.value = selection.length != 1;
|
single.value = selection.length != 1
|
||||||
multiple.value = !selection.length;
|
multiple.value = !selection.length
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
function handleAdd() {
|
function handleAdd() {
|
||||||
reset();
|
reset()
|
||||||
open.value = true;
|
open.value = true
|
||||||
title.value = "添加${functionName}";
|
title.value = "添加${functionName}"
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
reset();
|
reset()
|
||||||
const _${pkColumn.javaField} = row.${pkColumn.javaField} || ids.value
|
const _${pkColumn.javaField} = row.${pkColumn.javaField} || ids.value
|
||||||
get${BusinessName}(_${pkColumn.javaField}).then(response => {
|
get${BusinessName}(_${pkColumn.javaField}).then(response => {
|
||||||
form.value = response.data;
|
form.value = response.data
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
form.value.$column.javaField = form.value.${column.javaField}.split(",");
|
form.value.$column.javaField = form.value.${column.javaField}.split(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
${subclassName}List.value = response.data.${subclassName}List;
|
${subclassName}List.value = response.data.${subclassName}List
|
||||||
#end
|
#end
|
||||||
open.value = true;
|
open.value = true
|
||||||
title.value = "修改${functionName}";
|
title.value = "修改${functionName}"
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
@ -508,68 +508,68 @@ function submitForm() {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
#foreach ($column in $columns)
|
#foreach ($column in $columns)
|
||||||
#if($column.htmlType == "checkbox")
|
#if($column.htmlType == "checkbox")
|
||||||
form.value.$column.javaField = form.value.${column.javaField}.join(",");
|
form.value.$column.javaField = form.value.${column.javaField}.join(",")
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
form.value.${subclassName}List = ${subclassName}List.value;
|
form.value.${subclassName}List = ${subclassName}List.value
|
||||||
#end
|
#end
|
||||||
if (form.value.${pkColumn.javaField} != null) {
|
if (form.value.${pkColumn.javaField} != null) {
|
||||||
update${BusinessName}(form.value).then(response => {
|
update${BusinessName}(form.value).then(response => {
|
||||||
proxy.#[[$modal]]#.msgSuccess("修改成功");
|
proxy.#[[$modal]]#.msgSuccess("修改成功")
|
||||||
open.value = false;
|
open.value = false
|
||||||
getList();
|
getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
add${BusinessName}(form.value).then(response => {
|
add${BusinessName}(form.value).then(response => {
|
||||||
proxy.#[[$modal]]#.msgSuccess("新增成功");
|
proxy.#[[$modal]]#.msgSuccess("新增成功")
|
||||||
open.value = false;
|
open.value = false
|
||||||
getList();
|
getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
function handleDelete(row) {
|
function handleDelete(row) {
|
||||||
const _${pkColumn.javaField}s = row.${pkColumn.javaField} || ids.value;
|
const _${pkColumn.javaField}s = row.${pkColumn.javaField} || ids.value
|
||||||
proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + _${pkColumn.javaField}s + '"的数据项?').then(function() {
|
proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + _${pkColumn.javaField}s + '"的数据项?').then(function() {
|
||||||
return del${BusinessName}(_${pkColumn.javaField}s);
|
return del${BusinessName}(_${pkColumn.javaField}s)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
getList();
|
getList()
|
||||||
proxy.#[[$modal]]#.msgSuccess("删除成功");
|
proxy.#[[$modal]]#.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
|
|
||||||
#if($table.sub)
|
#if($table.sub)
|
||||||
/** ${subTable.functionName}序号 */
|
/** ${subTable.functionName}序号 */
|
||||||
function row${subClassName}Index({ row, rowIndex }) {
|
function row${subClassName}Index({ row, rowIndex }) {
|
||||||
row.index = rowIndex + 1;
|
row.index = rowIndex + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ${subTable.functionName}添加按钮操作 */
|
/** ${subTable.functionName}添加按钮操作 */
|
||||||
function handleAdd${subClassName}() {
|
function handleAdd${subClassName}() {
|
||||||
let obj = {};
|
let obj = {}
|
||||||
#foreach($column in $subTable.columns)
|
#foreach($column in $subTable.columns)
|
||||||
#if($column.pk || $column.javaField == ${subTableFkclassName})
|
#if($column.pk || $column.javaField == ${subTableFkclassName})
|
||||||
#elseif($column.list && "" != $javaField)
|
#elseif($column.list && "" != $javaField)
|
||||||
obj.$column.javaField = "";
|
obj.$column.javaField = ""
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
${subclassName}List.value.push(obj);
|
${subclassName}List.value.push(obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ${subTable.functionName}删除按钮操作 */
|
/** ${subTable.functionName}删除按钮操作 */
|
||||||
function handleDelete${subClassName}() {
|
function handleDelete${subClassName}() {
|
||||||
if (checked${subClassName}.value.length == 0) {
|
if (checked${subClassName}.value.length == 0) {
|
||||||
proxy.#[[$modal]]#.msgError("请先选择要删除的${subTable.functionName}数据");
|
proxy.#[[$modal]]#.msgError("请先选择要删除的${subTable.functionName}数据")
|
||||||
} else {
|
} else {
|
||||||
const ${subclassName}s = ${subclassName}List.value;
|
const ${subclassName}s = ${subclassName}List.value
|
||||||
const checked${subClassName}s = checked${subClassName}.value;
|
const checked${subClassName}s = checked${subClassName}.value
|
||||||
${subclassName}List.value = ${subclassName}s.filter(function(item) {
|
${subclassName}List.value = ${subclassName}s.filter(function(item) {
|
||||||
return checked${subClassName}s.indexOf(item.index) == -1
|
return checked${subClassName}s.indexOf(item.index) == -1
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -586,5 +586,5 @@ function handleExport() {
|
|||||||
}, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
|
}, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
|
||||||
}
|
}
|
||||||
|
|
||||||
getList();
|
getList()
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ThemePicker from "@/components/ThemePicker";
|
import ThemePicker from "@/components/ThemePicker"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "App",
|
name: "App",
|
||||||
@ -19,7 +19,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
#app .theme-picker {
|
#app .theme-picker {
|
||||||
|
|||||||
@ -71,58 +71,58 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
// 单选按钮值变化时
|
// 单选按钮值变化时
|
||||||
radioChange() {
|
radioChange() {
|
||||||
('day rachange');
|
('day rachange')
|
||||||
if (this.radioValue !== 2 && this.cron.week !== '?') {
|
if (this.radioValue !== 2 && this.cron.week !== '?') {
|
||||||
this.$emit('update', 'week', '?', 'day')
|
this.$emit('update', 'week', '?', 'day')
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (this.radioValue) {
|
switch (this.radioValue) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$emit('update', 'day', '*');
|
this.$emit('update', 'day', '*')
|
||||||
break;
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.$emit('update', 'day', '?');
|
this.$emit('update', 'day', '?')
|
||||||
break;
|
break
|
||||||
case 3:
|
case 3:
|
||||||
this.$emit('update', 'day', this.cycleTotal);
|
this.$emit('update', 'day', this.cycleTotal)
|
||||||
break;
|
break
|
||||||
case 4:
|
case 4:
|
||||||
this.$emit('update', 'day', this.averageTotal);
|
this.$emit('update', 'day', this.averageTotal)
|
||||||
break;
|
break
|
||||||
case 5:
|
case 5:
|
||||||
this.$emit('update', 'day', this.workday + 'W');
|
this.$emit('update', 'day', this.workday + 'W')
|
||||||
break;
|
break
|
||||||
case 6:
|
case 6:
|
||||||
this.$emit('update', 'day', 'L');
|
this.$emit('update', 'day', 'L')
|
||||||
break;
|
break
|
||||||
case 7:
|
case 7:
|
||||||
this.$emit('update', 'day', this.checkboxString);
|
this.$emit('update', 'day', this.checkboxString)
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
('day rachange end');
|
('day rachange end')
|
||||||
},
|
},
|
||||||
// 周期两个值变化时
|
// 周期两个值变化时
|
||||||
cycleChange() {
|
cycleChange() {
|
||||||
if (this.radioValue == '3') {
|
if (this.radioValue == '3') {
|
||||||
this.$emit('update', 'day', this.cycleTotal);
|
this.$emit('update', 'day', this.cycleTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 平均两个值变化时
|
// 平均两个值变化时
|
||||||
averageChange() {
|
averageChange() {
|
||||||
if (this.radioValue == '4') {
|
if (this.radioValue == '4') {
|
||||||
this.$emit('update', 'day', this.averageTotal);
|
this.$emit('update', 'day', this.averageTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 最近工作日值变化时
|
// 最近工作日值变化时
|
||||||
workdayChange() {
|
workdayChange() {
|
||||||
if (this.radioValue == '5') {
|
if (this.radioValue == '5') {
|
||||||
this.$emit('update', 'day', this.workdayCheck + 'W');
|
this.$emit('update', 'day', this.workdayCheck + 'W')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// checkbox值变化时
|
// checkbox值变化时
|
||||||
checkboxChange() {
|
checkboxChange() {
|
||||||
if (this.radioValue == '7') {
|
if (this.radioValue == '7') {
|
||||||
this.$emit('update', 'day', this.checkboxString);
|
this.$emit('update', 'day', this.checkboxString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -138,23 +138,23 @@ export default {
|
|||||||
cycleTotal: function () {
|
cycleTotal: function () {
|
||||||
const cycle01 = this.checkNum(this.cycle01, 1, 30)
|
const cycle01 = this.checkNum(this.cycle01, 1, 30)
|
||||||
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 31, 31)
|
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 31, 31)
|
||||||
return cycle01 + '-' + cycle02;
|
return cycle01 + '-' + cycle02
|
||||||
},
|
},
|
||||||
// 计算平均用到的值
|
// 计算平均用到的值
|
||||||
averageTotal: function () {
|
averageTotal: function () {
|
||||||
const average01 = this.checkNum(this.average01, 1, 30)
|
const average01 = this.checkNum(this.average01, 1, 30)
|
||||||
const average02 = this.checkNum(this.average02, 1, 31 - average01 || 0)
|
const average02 = this.checkNum(this.average02, 1, 31 - average01 || 0)
|
||||||
return average01 + '/' + average02;
|
return average01 + '/' + average02
|
||||||
},
|
},
|
||||||
// 计算工作日格式
|
// 计算工作日格式
|
||||||
workdayCheck: function () {
|
workdayCheck: function () {
|
||||||
const workday = this.checkNum(this.workday, 1, 31)
|
const workday = this.checkNum(this.workday, 1, 31)
|
||||||
return workday;
|
return workday
|
||||||
},
|
},
|
||||||
// 计算勾选的checkbox值合集
|
// 计算勾选的checkbox值合集
|
||||||
checkboxString: function () {
|
checkboxString: function () {
|
||||||
let str = this.checkboxList.join();
|
let str = this.checkboxList.join()
|
||||||
return str == '' ? '*' : str;
|
return str == '' ? '*' : str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,37 +51,43 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
// 单选按钮值变化时
|
// 单选按钮值变化时
|
||||||
radioChange() {
|
radioChange() {
|
||||||
|
if (this.cron.min === '*') {
|
||||||
|
this.$emit('update', 'min', '0', 'hour')
|
||||||
|
}
|
||||||
|
if (this.cron.second === '*') {
|
||||||
|
this.$emit('update', 'second', '0', 'hour')
|
||||||
|
}
|
||||||
switch (this.radioValue) {
|
switch (this.radioValue) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$emit('update', 'hour', '*')
|
this.$emit('update', 'hour', '*')
|
||||||
break;
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.$emit('update', 'hour', this.cycleTotal);
|
this.$emit('update', 'hour', this.cycleTotal)
|
||||||
break;
|
break
|
||||||
case 3:
|
case 3:
|
||||||
this.$emit('update', 'hour', this.averageTotal);
|
this.$emit('update', 'hour', this.averageTotal)
|
||||||
break;
|
break
|
||||||
case 4:
|
case 4:
|
||||||
this.$emit('update', 'hour', this.checkboxString);
|
this.$emit('update', 'hour', this.checkboxString)
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 周期两个值变化时
|
// 周期两个值变化时
|
||||||
cycleChange() {
|
cycleChange() {
|
||||||
if (this.radioValue == '2') {
|
if (this.radioValue == '2') {
|
||||||
this.$emit('update', 'hour', this.cycleTotal);
|
this.$emit('update', 'hour', this.cycleTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 平均两个值变化时
|
// 平均两个值变化时
|
||||||
averageChange() {
|
averageChange() {
|
||||||
if (this.radioValue == '3') {
|
if (this.radioValue == '3') {
|
||||||
this.$emit('update', 'hour', this.averageTotal);
|
this.$emit('update', 'hour', this.averageTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// checkbox值变化时
|
// checkbox值变化时
|
||||||
checkboxChange() {
|
checkboxChange() {
|
||||||
if (this.radioValue == '4') {
|
if (this.radioValue == '4') {
|
||||||
this.$emit('update', 'hour', this.checkboxString);
|
this.$emit('update', 'hour', this.checkboxString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -96,18 +102,18 @@ export default {
|
|||||||
cycleTotal: function () {
|
cycleTotal: function () {
|
||||||
const cycle01 = this.checkNum(this.cycle01, 0, 22)
|
const cycle01 = this.checkNum(this.cycle01, 0, 22)
|
||||||
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 23)
|
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 23)
|
||||||
return cycle01 + '-' + cycle02;
|
return cycle01 + '-' + cycle02
|
||||||
},
|
},
|
||||||
// 计算平均用到的值
|
// 计算平均用到的值
|
||||||
averageTotal: function () {
|
averageTotal: function () {
|
||||||
const average01 = this.checkNum(this.average01, 0, 22)
|
const average01 = this.checkNum(this.average01, 0, 22)
|
||||||
const average02 = this.checkNum(this.average02, 1, 23 - average01 || 0)
|
const average02 = this.checkNum(this.average02, 1, 23 - average01 || 0)
|
||||||
return average01 + '/' + average02;
|
return average01 + '/' + average02
|
||||||
},
|
},
|
||||||
// 计算勾选的checkbox值合集
|
// 计算勾选的checkbox值合集
|
||||||
checkboxString: function () {
|
checkboxString: function () {
|
||||||
let str = this.checkboxList.join();
|
let str = this.checkboxList.join()
|
||||||
return str == '' ? '*' : str;
|
return str == '' ? '*' : str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -113,14 +113,14 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CrontabSecond from "./second.vue";
|
import CrontabSecond from "./second.vue"
|
||||||
import CrontabMin from "./min.vue";
|
import CrontabMin from "./min.vue"
|
||||||
import CrontabHour from "./hour.vue";
|
import CrontabHour from "./hour.vue"
|
||||||
import CrontabDay from "./day.vue";
|
import CrontabDay from "./day.vue"
|
||||||
import CrontabMonth from "./month.vue";
|
import CrontabMonth from "./month.vue"
|
||||||
import CrontabWeek from "./week.vue";
|
import CrontabWeek from "./week.vue"
|
||||||
import CrontabYear from "./year.vue";
|
import CrontabYear from "./year.vue"
|
||||||
import CrontabResult from "./result.vue";
|
import CrontabResult from "./result.vue"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -137,19 +137,19 @@ export default {
|
|||||||
week: "?",
|
week: "?",
|
||||||
year: "",
|
year: "",
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
name: "vcrontab",
|
name: "vcrontab",
|
||||||
props: ["expression", "hideComponent"],
|
props: ["expression", "hideComponent"],
|
||||||
methods: {
|
methods: {
|
||||||
shouldHide(key) {
|
shouldHide(key) {
|
||||||
if (this.hideComponent && this.hideComponent.includes(key)) return false;
|
if (this.hideComponent && this.hideComponent.includes(key)) return false
|
||||||
return true;
|
return true
|
||||||
},
|
},
|
||||||
resolveExp() {
|
resolveExp() {
|
||||||
// 反解析 表达式
|
// 反解析 表达式
|
||||||
if (this.expression) {
|
if (this.expression) {
|
||||||
let arr = this.expression.split(" ");
|
let arr = this.expression.split(" ")
|
||||||
if (arr.length >= 6) {
|
if (arr.length >= 6) {
|
||||||
//6 位以上是合法表达式
|
//6 位以上是合法表达式
|
||||||
let obj = {
|
let obj = {
|
||||||
@ -160,160 +160,160 @@ export default {
|
|||||||
month: arr[4],
|
month: arr[4],
|
||||||
week: arr[5],
|
week: arr[5],
|
||||||
year: arr[6] ? arr[6] : "",
|
year: arr[6] ? arr[6] : "",
|
||||||
};
|
}
|
||||||
this.crontabValueObj = {
|
this.crontabValueObj = {
|
||||||
...obj,
|
...obj,
|
||||||
};
|
}
|
||||||
for (let i in obj) {
|
for (let i in obj) {
|
||||||
if (obj[i]) this.changeRadio(i, obj[i]);
|
if (obj[i]) this.changeRadio(i, obj[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 没有传入的表达式 则还原
|
// 没有传入的表达式 则还原
|
||||||
this.clearCron();
|
this.clearCron()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// tab切换值
|
// tab切换值
|
||||||
tabCheck(index) {
|
tabCheck(index) {
|
||||||
this.tabActive = index;
|
this.tabActive = index
|
||||||
},
|
},
|
||||||
// 由子组件触发,更改表达式组成的字段值
|
// 由子组件触发,更改表达式组成的字段值
|
||||||
updateCrontabValue(name, value, from) {
|
updateCrontabValue(name, value, from) {
|
||||||
"updateCrontabValue", name, value, from;
|
"updateCrontabValue", name, value, from
|
||||||
this.crontabValueObj[name] = value;
|
this.crontabValueObj[name] = value
|
||||||
if (from && from !== name) {
|
if (from && from !== name) {
|
||||||
console.log(`来自组件 ${from} 改变了 ${name} ${value}`);
|
console.log(`来自组件 ${from} 改变了 ${name} ${value}`)
|
||||||
this.changeRadio(name, value);
|
this.changeRadio(name, value)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 赋值到组件
|
// 赋值到组件
|
||||||
changeRadio(name, value) {
|
changeRadio(name, value) {
|
||||||
let arr = ["second", "min", "hour", "month"],
|
let arr = ["second", "min", "hour", "month"],
|
||||||
refName = "cron" + name,
|
refName = "cron" + name,
|
||||||
insValue;
|
insValue
|
||||||
|
|
||||||
if (!this.$refs[refName]) return;
|
if (!this.$refs[refName]) return
|
||||||
|
|
||||||
if (arr.includes(name)) {
|
if (arr.includes(name)) {
|
||||||
if (value === "*") {
|
if (value === "*") {
|
||||||
insValue = 1;
|
insValue = 1
|
||||||
} else if (value.indexOf("-") > -1) {
|
} else if (value.indexOf("-") > -1) {
|
||||||
let indexArr = value.split("-");
|
let indexArr = value.split("-")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].cycle01 = 0)
|
? (this.$refs[refName].cycle01 = 0)
|
||||||
: (this.$refs[refName].cycle01 = indexArr[0]);
|
: (this.$refs[refName].cycle01 = indexArr[0])
|
||||||
this.$refs[refName].cycle02 = indexArr[1];
|
this.$refs[refName].cycle02 = indexArr[1]
|
||||||
insValue = 2;
|
insValue = 2
|
||||||
} else if (value.indexOf("/") > -1) {
|
} else if (value.indexOf("/") > -1) {
|
||||||
let indexArr = value.split("/");
|
let indexArr = value.split("/")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].average01 = 0)
|
? (this.$refs[refName].average01 = 0)
|
||||||
: (this.$refs[refName].average01 = indexArr[0]);
|
: (this.$refs[refName].average01 = indexArr[0])
|
||||||
this.$refs[refName].average02 = indexArr[1];
|
this.$refs[refName].average02 = indexArr[1]
|
||||||
insValue = 3;
|
insValue = 3
|
||||||
} else {
|
} else {
|
||||||
insValue = 4;
|
insValue = 4
|
||||||
this.$refs[refName].checkboxList = value.split(",");
|
this.$refs[refName].checkboxList = value.split(",")
|
||||||
}
|
}
|
||||||
} else if (name == "day") {
|
} else if (name == "day") {
|
||||||
if (value === "*") {
|
if (value === "*") {
|
||||||
insValue = 1;
|
insValue = 1
|
||||||
} else if (value == "?") {
|
} else if (value == "?") {
|
||||||
insValue = 2;
|
insValue = 2
|
||||||
} else if (value.indexOf("-") > -1) {
|
} else if (value.indexOf("-") > -1) {
|
||||||
let indexArr = value.split("-");
|
let indexArr = value.split("-")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].cycle01 = 0)
|
? (this.$refs[refName].cycle01 = 0)
|
||||||
: (this.$refs[refName].cycle01 = indexArr[0]);
|
: (this.$refs[refName].cycle01 = indexArr[0])
|
||||||
this.$refs[refName].cycle02 = indexArr[1];
|
this.$refs[refName].cycle02 = indexArr[1]
|
||||||
insValue = 3;
|
insValue = 3
|
||||||
} else if (value.indexOf("/") > -1) {
|
} else if (value.indexOf("/") > -1) {
|
||||||
let indexArr = value.split("/");
|
let indexArr = value.split("/")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].average01 = 0)
|
? (this.$refs[refName].average01 = 0)
|
||||||
: (this.$refs[refName].average01 = indexArr[0]);
|
: (this.$refs[refName].average01 = indexArr[0])
|
||||||
this.$refs[refName].average02 = indexArr[1];
|
this.$refs[refName].average02 = indexArr[1]
|
||||||
insValue = 4;
|
insValue = 4
|
||||||
} else if (value.indexOf("W") > -1) {
|
} else if (value.indexOf("W") > -1) {
|
||||||
let indexArr = value.split("W");
|
let indexArr = value.split("W")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].workday = 0)
|
? (this.$refs[refName].workday = 0)
|
||||||
: (this.$refs[refName].workday = indexArr[0]);
|
: (this.$refs[refName].workday = indexArr[0])
|
||||||
insValue = 5;
|
insValue = 5
|
||||||
} else if (value === "L") {
|
} else if (value === "L") {
|
||||||
insValue = 6;
|
insValue = 6
|
||||||
} else {
|
} else {
|
||||||
this.$refs[refName].checkboxList = value.split(",");
|
this.$refs[refName].checkboxList = value.split(",")
|
||||||
insValue = 7;
|
insValue = 7
|
||||||
}
|
}
|
||||||
} else if (name == "week") {
|
} else if (name == "week") {
|
||||||
if (value === "*") {
|
if (value === "*") {
|
||||||
insValue = 1;
|
insValue = 1
|
||||||
} else if (value == "?") {
|
} else if (value == "?") {
|
||||||
insValue = 2;
|
insValue = 2
|
||||||
} else if (value.indexOf("-") > -1) {
|
} else if (value.indexOf("-") > -1) {
|
||||||
let indexArr = value.split("-");
|
let indexArr = value.split("-")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].cycle01 = 0)
|
? (this.$refs[refName].cycle01 = 0)
|
||||||
: (this.$refs[refName].cycle01 = indexArr[0]);
|
: (this.$refs[refName].cycle01 = indexArr[0])
|
||||||
this.$refs[refName].cycle02 = indexArr[1];
|
this.$refs[refName].cycle02 = indexArr[1]
|
||||||
insValue = 3;
|
insValue = 3
|
||||||
} else if (value.indexOf("#") > -1) {
|
} else if (value.indexOf("#") > -1) {
|
||||||
let indexArr = value.split("#");
|
let indexArr = value.split("#")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].average01 = 1)
|
? (this.$refs[refName].average01 = 1)
|
||||||
: (this.$refs[refName].average01 = indexArr[0]);
|
: (this.$refs[refName].average01 = indexArr[0])
|
||||||
this.$refs[refName].average02 = indexArr[1];
|
this.$refs[refName].average02 = indexArr[1]
|
||||||
insValue = 4;
|
insValue = 4
|
||||||
} else if (value.indexOf("L") > -1) {
|
} else if (value.indexOf("L") > -1) {
|
||||||
let indexArr = value.split("L");
|
let indexArr = value.split("L")
|
||||||
isNaN(indexArr[0])
|
isNaN(indexArr[0])
|
||||||
? (this.$refs[refName].weekday = 1)
|
? (this.$refs[refName].weekday = 1)
|
||||||
: (this.$refs[refName].weekday = indexArr[0]);
|
: (this.$refs[refName].weekday = indexArr[0])
|
||||||
insValue = 5;
|
insValue = 5
|
||||||
} else {
|
} else {
|
||||||
this.$refs[refName].checkboxList = value.split(",");
|
this.$refs[refName].checkboxList = value.split(",")
|
||||||
insValue = 6;
|
insValue = 6
|
||||||
}
|
}
|
||||||
} else if (name == "year") {
|
} else if (name == "year") {
|
||||||
if (value == "") {
|
if (value == "") {
|
||||||
insValue = 1;
|
insValue = 1
|
||||||
} else if (value == "*") {
|
} else if (value == "*") {
|
||||||
insValue = 2;
|
insValue = 2
|
||||||
} else if (value.indexOf("-") > -1) {
|
} else if (value.indexOf("-") > -1) {
|
||||||
insValue = 3;
|
insValue = 3
|
||||||
} else if (value.indexOf("/") > -1) {
|
} else if (value.indexOf("/") > -1) {
|
||||||
insValue = 4;
|
insValue = 4
|
||||||
} else {
|
} else {
|
||||||
this.$refs[refName].checkboxList = value.split(",");
|
this.$refs[refName].checkboxList = value.split(",")
|
||||||
insValue = 5;
|
insValue = 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$refs[refName].radioValue = insValue;
|
this.$refs[refName].radioValue = insValue
|
||||||
},
|
},
|
||||||
// 表单选项的子组件校验数字格式(通过-props传递)
|
// 表单选项的子组件校验数字格式(通过-props传递)
|
||||||
checkNumber(value, minLimit, maxLimit) {
|
checkNumber(value, minLimit, maxLimit) {
|
||||||
// 检查必须为整数
|
// 检查必须为整数
|
||||||
value = Math.floor(value);
|
value = Math.floor(value)
|
||||||
if (value < minLimit) {
|
if (value < minLimit) {
|
||||||
value = minLimit;
|
value = minLimit
|
||||||
} else if (value > maxLimit) {
|
} else if (value > maxLimit) {
|
||||||
value = maxLimit;
|
value = maxLimit
|
||||||
}
|
}
|
||||||
return value;
|
return value
|
||||||
},
|
},
|
||||||
// 隐藏弹窗
|
// 隐藏弹窗
|
||||||
hidePopup() {
|
hidePopup() {
|
||||||
this.$emit("hide");
|
this.$emit("hide")
|
||||||
},
|
},
|
||||||
// 填充表达式
|
// 填充表达式
|
||||||
submitFill() {
|
submitFill() {
|
||||||
this.$emit("fill", this.crontabValueString);
|
this.$emit("fill", this.crontabValueString)
|
||||||
this.hidePopup();
|
this.hidePopup()
|
||||||
},
|
},
|
||||||
clearCron() {
|
clearCron() {
|
||||||
// 还原选择项
|
// 还原选择项
|
||||||
("准备还原");
|
("准备还原")
|
||||||
this.crontabValueObj = {
|
this.crontabValueObj = {
|
||||||
second: "*",
|
second: "*",
|
||||||
min: "*",
|
min: "*",
|
||||||
@ -322,15 +322,15 @@ export default {
|
|||||||
month: "*",
|
month: "*",
|
||||||
week: "?",
|
week: "?",
|
||||||
year: "",
|
year: "",
|
||||||
};
|
}
|
||||||
for (let j in this.crontabValueObj) {
|
for (let j in this.crontabValueObj) {
|
||||||
this.changeRadio(j, this.crontabValueObj[j]);
|
this.changeRadio(j, this.crontabValueObj[j])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
crontabValueString: function() {
|
crontabValueString: function() {
|
||||||
let obj = this.crontabValueObj;
|
let obj = this.crontabValueObj
|
||||||
let str =
|
let str =
|
||||||
obj.second +
|
obj.second +
|
||||||
" " +
|
" " +
|
||||||
@ -343,8 +343,8 @@ export default {
|
|||||||
obj.month +
|
obj.month +
|
||||||
" " +
|
" " +
|
||||||
obj.week +
|
obj.week +
|
||||||
(obj.year == "" ? "" : " " + obj.year);
|
(obj.year == "" ? "" : " " + obj.year)
|
||||||
return str;
|
return str
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@ -364,9 +364,9 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted: function() {
|
mounted: function() {
|
||||||
this.resolveExp();
|
this.resolveExp()
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.pop_btn {
|
.pop_btn {
|
||||||
|
|||||||
@ -54,35 +54,35 @@ export default {
|
|||||||
radioChange() {
|
radioChange() {
|
||||||
switch (this.radioValue) {
|
switch (this.radioValue) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$emit('update', 'min', '*', 'min');
|
this.$emit('update', 'min', '*', 'min')
|
||||||
break;
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.$emit('update', 'min', this.cycleTotal, 'min');
|
this.$emit('update', 'min', this.cycleTotal, 'min')
|
||||||
break;
|
break
|
||||||
case 3:
|
case 3:
|
||||||
this.$emit('update', 'min', this.averageTotal, 'min');
|
this.$emit('update', 'min', this.averageTotal, 'min')
|
||||||
break;
|
break
|
||||||
case 4:
|
case 4:
|
||||||
this.$emit('update', 'min', this.checkboxString, 'min');
|
this.$emit('update', 'min', this.checkboxString, 'min')
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 周期两个值变化时
|
// 周期两个值变化时
|
||||||
cycleChange() {
|
cycleChange() {
|
||||||
if (this.radioValue == '2') {
|
if (this.radioValue == '2') {
|
||||||
this.$emit('update', 'min', this.cycleTotal, 'min');
|
this.$emit('update', 'min', this.cycleTotal, 'min')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 平均两个值变化时
|
// 平均两个值变化时
|
||||||
averageChange() {
|
averageChange() {
|
||||||
if (this.radioValue == '3') {
|
if (this.radioValue == '3') {
|
||||||
this.$emit('update', 'min', this.averageTotal, 'min');
|
this.$emit('update', 'min', this.averageTotal, 'min')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// checkbox值变化时
|
// checkbox值变化时
|
||||||
checkboxChange() {
|
checkboxChange() {
|
||||||
if (this.radioValue == '4') {
|
if (this.radioValue == '4') {
|
||||||
this.$emit('update', 'min', this.checkboxString, 'min');
|
this.$emit('update', 'min', this.checkboxString, 'min')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -98,18 +98,18 @@ export default {
|
|||||||
cycleTotal: function () {
|
cycleTotal: function () {
|
||||||
const cycle01 = this.checkNum(this.cycle01, 0, 58)
|
const cycle01 = this.checkNum(this.cycle01, 0, 58)
|
||||||
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59)
|
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59)
|
||||||
return cycle01 + '-' + cycle02;
|
return cycle01 + '-' + cycle02
|
||||||
},
|
},
|
||||||
// 计算平均用到的值
|
// 计算平均用到的值
|
||||||
averageTotal: function () {
|
averageTotal: function () {
|
||||||
const average01 = this.checkNum(this.average01, 0, 58)
|
const average01 = this.checkNum(this.average01, 0, 58)
|
||||||
const average02 = this.checkNum(this.average02, 1, 59 - average01 || 0)
|
const average02 = this.checkNum(this.average02, 1, 59 - average01 || 0)
|
||||||
return average01 + '/' + average02;
|
return average01 + '/' + average02
|
||||||
},
|
},
|
||||||
// 计算勾选的checkbox值合集
|
// 计算勾选的checkbox值合集
|
||||||
checkboxString: function () {
|
checkboxString: function () {
|
||||||
let str = this.checkboxList.join();
|
let str = this.checkboxList.join()
|
||||||
return str == '' ? '*' : str;
|
return str == '' ? '*' : str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,35 +53,35 @@ export default {
|
|||||||
radioChange() {
|
radioChange() {
|
||||||
switch (this.radioValue) {
|
switch (this.radioValue) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$emit('update', 'month', '*');
|
this.$emit('update', 'month', '*')
|
||||||
break;
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.$emit('update', 'month', this.cycleTotal);
|
this.$emit('update', 'month', this.cycleTotal)
|
||||||
break;
|
break
|
||||||
case 3:
|
case 3:
|
||||||
this.$emit('update', 'month', this.averageTotal);
|
this.$emit('update', 'month', this.averageTotal)
|
||||||
break;
|
break
|
||||||
case 4:
|
case 4:
|
||||||
this.$emit('update', 'month', this.checkboxString);
|
this.$emit('update', 'month', this.checkboxString)
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 周期两个值变化时
|
// 周期两个值变化时
|
||||||
cycleChange() {
|
cycleChange() {
|
||||||
if (this.radioValue == '2') {
|
if (this.radioValue == '2') {
|
||||||
this.$emit('update', 'month', this.cycleTotal);
|
this.$emit('update', 'month', this.cycleTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 平均两个值变化时
|
// 平均两个值变化时
|
||||||
averageChange() {
|
averageChange() {
|
||||||
if (this.radioValue == '3') {
|
if (this.radioValue == '3') {
|
||||||
this.$emit('update', 'month', this.averageTotal);
|
this.$emit('update', 'month', this.averageTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// checkbox值变化时
|
// checkbox值变化时
|
||||||
checkboxChange() {
|
checkboxChange() {
|
||||||
if (this.radioValue == '4') {
|
if (this.radioValue == '4') {
|
||||||
this.$emit('update', 'month', this.checkboxString);
|
this.$emit('update', 'month', this.checkboxString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -96,18 +96,18 @@ export default {
|
|||||||
cycleTotal: function () {
|
cycleTotal: function () {
|
||||||
const cycle01 = this.checkNum(this.cycle01, 1, 11)
|
const cycle01 = this.checkNum(this.cycle01, 1, 11)
|
||||||
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 12)
|
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 12)
|
||||||
return cycle01 + '-' + cycle02;
|
return cycle01 + '-' + cycle02
|
||||||
},
|
},
|
||||||
// 计算平均用到的值
|
// 计算平均用到的值
|
||||||
averageTotal: function () {
|
averageTotal: function () {
|
||||||
const average01 = this.checkNum(this.average01, 1, 11)
|
const average01 = this.checkNum(this.average01, 1, 11)
|
||||||
const average02 = this.checkNum(this.average02, 1, 12 - average01 || 0)
|
const average02 = this.checkNum(this.average02, 1, 12 - average01 || 0)
|
||||||
return average01 + '/' + average02;
|
return average01 + '/' + average02
|
||||||
},
|
},
|
||||||
// 计算勾选的checkbox值合集
|
// 计算勾选的checkbox值合集
|
||||||
checkboxString: function () {
|
checkboxString: function () {
|
||||||
let str = this.checkboxList.join();
|
let str = this.checkboxList.join()
|
||||||
return str == '' ? '*' : str;
|
return str == '' ? '*' : str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,135 +27,135 @@ export default {
|
|||||||
expressionChange() {
|
expressionChange() {
|
||||||
|
|
||||||
// 计算开始-隐藏结果
|
// 计算开始-隐藏结果
|
||||||
this.isShow = false;
|
this.isShow = false
|
||||||
// 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]
|
// 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]
|
||||||
let ruleArr = this.$options.propsData.ex.split(' ');
|
let ruleArr = this.$options.propsData.ex.split(' ')
|
||||||
// 用于记录进入循环的次数
|
// 用于记录进入循环的次数
|
||||||
let nums = 0;
|
let nums = 0
|
||||||
// 用于暂时存符号时间规则结果的数组
|
// 用于暂时存符号时间规则结果的数组
|
||||||
let resultArr = [];
|
let resultArr = []
|
||||||
// 获取当前时间精确至[年、月、日、时、分、秒]
|
// 获取当前时间精确至[年、月、日、时、分、秒]
|
||||||
let nTime = new Date();
|
let nTime = new Date()
|
||||||
let nYear = nTime.getFullYear();
|
let nYear = nTime.getFullYear()
|
||||||
let nMonth = nTime.getMonth() + 1;
|
let nMonth = nTime.getMonth() + 1
|
||||||
let nDay = nTime.getDate();
|
let nDay = nTime.getDate()
|
||||||
let nHour = nTime.getHours();
|
let nHour = nTime.getHours()
|
||||||
let nMin = nTime.getMinutes();
|
let nMin = nTime.getMinutes()
|
||||||
let nSecond = nTime.getSeconds();
|
let nSecond = nTime.getSeconds()
|
||||||
// 根据规则获取到近100年可能年数组、月数组等等
|
// 根据规则获取到近100年可能年数组、月数组等等
|
||||||
this.getSecondArr(ruleArr[0]);
|
this.getSecondArr(ruleArr[0])
|
||||||
this.getMinArr(ruleArr[1]);
|
this.getMinArr(ruleArr[1])
|
||||||
this.getHourArr(ruleArr[2]);
|
this.getHourArr(ruleArr[2])
|
||||||
this.getDayArr(ruleArr[3]);
|
this.getDayArr(ruleArr[3])
|
||||||
this.getMonthArr(ruleArr[4]);
|
this.getMonthArr(ruleArr[4])
|
||||||
this.getWeekArr(ruleArr[5]);
|
this.getWeekArr(ruleArr[5])
|
||||||
this.getYearArr(ruleArr[6], nYear);
|
this.getYearArr(ruleArr[6], nYear)
|
||||||
// 将获取到的数组赋值-方便使用
|
// 将获取到的数组赋值-方便使用
|
||||||
let sDate = this.dateArr[0];
|
let sDate = this.dateArr[0]
|
||||||
let mDate = this.dateArr[1];
|
let mDate = this.dateArr[1]
|
||||||
let hDate = this.dateArr[2];
|
let hDate = this.dateArr[2]
|
||||||
let DDate = this.dateArr[3];
|
let DDate = this.dateArr[3]
|
||||||
let MDate = this.dateArr[4];
|
let MDate = this.dateArr[4]
|
||||||
let YDate = this.dateArr[5];
|
let YDate = this.dateArr[5]
|
||||||
// 获取当前时间在数组中的索引
|
// 获取当前时间在数组中的索引
|
||||||
let sIdx = this.getIndex(sDate, nSecond);
|
let sIdx = this.getIndex(sDate, nSecond)
|
||||||
let mIdx = this.getIndex(mDate, nMin);
|
let mIdx = this.getIndex(mDate, nMin)
|
||||||
let hIdx = this.getIndex(hDate, nHour);
|
let hIdx = this.getIndex(hDate, nHour)
|
||||||
let DIdx = this.getIndex(DDate, nDay);
|
let DIdx = this.getIndex(DDate, nDay)
|
||||||
let MIdx = this.getIndex(MDate, nMonth);
|
let MIdx = this.getIndex(MDate, nMonth)
|
||||||
let YIdx = this.getIndex(YDate, nYear);
|
let YIdx = this.getIndex(YDate, nYear)
|
||||||
// 重置月日时分秒的函数(后面用的比较多)
|
// 重置月日时分秒的函数(后面用的比较多)
|
||||||
const resetSecond = function () {
|
const resetSecond = function () {
|
||||||
sIdx = 0;
|
sIdx = 0
|
||||||
nSecond = sDate[sIdx]
|
nSecond = sDate[sIdx]
|
||||||
}
|
}
|
||||||
const resetMin = function () {
|
const resetMin = function () {
|
||||||
mIdx = 0;
|
mIdx = 0
|
||||||
nMin = mDate[mIdx]
|
nMin = mDate[mIdx]
|
||||||
resetSecond();
|
resetSecond()
|
||||||
}
|
}
|
||||||
const resetHour = function () {
|
const resetHour = function () {
|
||||||
hIdx = 0;
|
hIdx = 0
|
||||||
nHour = hDate[hIdx]
|
nHour = hDate[hIdx]
|
||||||
resetMin();
|
resetMin()
|
||||||
}
|
}
|
||||||
const resetDay = function () {
|
const resetDay = function () {
|
||||||
DIdx = 0;
|
DIdx = 0
|
||||||
nDay = DDate[DIdx]
|
nDay = DDate[DIdx]
|
||||||
resetHour();
|
resetHour()
|
||||||
}
|
}
|
||||||
const resetMonth = function () {
|
const resetMonth = function () {
|
||||||
MIdx = 0;
|
MIdx = 0
|
||||||
nMonth = MDate[MIdx]
|
nMonth = MDate[MIdx]
|
||||||
resetDay();
|
resetDay()
|
||||||
}
|
}
|
||||||
// 如果当前年份不为数组中当前值
|
// 如果当前年份不为数组中当前值
|
||||||
if (nYear !== YDate[YIdx]) {
|
if (nYear !== YDate[YIdx]) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
}
|
}
|
||||||
// 如果当前月份不为数组中当前值
|
// 如果当前月份不为数组中当前值
|
||||||
if (nMonth !== MDate[MIdx]) {
|
if (nMonth !== MDate[MIdx]) {
|
||||||
resetDay();
|
resetDay()
|
||||||
}
|
}
|
||||||
// 如果当前“日”不为数组中当前值
|
// 如果当前“日”不为数组中当前值
|
||||||
if (nDay !== DDate[DIdx]) {
|
if (nDay !== DDate[DIdx]) {
|
||||||
resetHour();
|
resetHour()
|
||||||
}
|
}
|
||||||
// 如果当前“时”不为数组中当前值
|
// 如果当前“时”不为数组中当前值
|
||||||
if (nHour !== hDate[hIdx]) {
|
if (nHour !== hDate[hIdx]) {
|
||||||
resetMin();
|
resetMin()
|
||||||
}
|
}
|
||||||
// 如果当前“分”不为数组中当前值
|
// 如果当前“分”不为数组中当前值
|
||||||
if (nMin !== mDate[mIdx]) {
|
if (nMin !== mDate[mIdx]) {
|
||||||
resetSecond();
|
resetSecond()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 循环年份数组
|
// 循环年份数组
|
||||||
goYear: for (let Yi = YIdx; Yi < YDate.length; Yi++) {
|
goYear: for (let Yi = YIdx; Yi < YDate.length; Yi++) {
|
||||||
let YY = YDate[Yi];
|
let YY = YDate[Yi]
|
||||||
// 如果到达最大值时
|
// 如果到达最大值时
|
||||||
if (nMonth > MDate[MDate.length - 1]) {
|
if (nMonth > MDate[MDate.length - 1]) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
continue;
|
continue
|
||||||
}
|
}
|
||||||
// 循环月份数组
|
// 循环月份数组
|
||||||
goMonth: for (let Mi = MIdx; Mi < MDate.length; Mi++) {
|
goMonth: for (let Mi = MIdx; Mi < MDate.length; Mi++) {
|
||||||
// 赋值、方便后面运算
|
// 赋值、方便后面运算
|
||||||
let MM = MDate[Mi];
|
let MM = MDate[Mi];
|
||||||
MM = MM < 10 ? '0' + MM : MM;
|
MM = MM < 10 ? '0' + MM : MM
|
||||||
// 如果到达最大值时
|
// 如果到达最大值时
|
||||||
if (nDay > DDate[DDate.length - 1]) {
|
if (nDay > DDate[DDate.length - 1]) {
|
||||||
resetDay();
|
resetDay()
|
||||||
if (Mi == MDate.length - 1) {
|
if (Mi == MDate.length - 1) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
continue goYear;
|
continue goYear
|
||||||
}
|
}
|
||||||
continue;
|
continue
|
||||||
}
|
}
|
||||||
// 循环日期数组
|
// 循环日期数组
|
||||||
goDay: for (let Di = DIdx; Di < DDate.length; Di++) {
|
goDay: for (let Di = DIdx; Di < DDate.length; Di++) {
|
||||||
// 赋值、方便后面运算
|
// 赋值、方便后面运算
|
||||||
let DD = DDate[Di];
|
let DD = DDate[Di]
|
||||||
let thisDD = DD < 10 ? '0' + DD : DD;
|
let thisDD = DD < 10 ? '0' + DD : DD
|
||||||
|
|
||||||
// 如果到达最大值时
|
// 如果到达最大值时
|
||||||
if (nHour > hDate[hDate.length - 1]) {
|
if (nHour > hDate[hDate.length - 1]) {
|
||||||
resetHour();
|
resetHour()
|
||||||
if (Di == DDate.length - 1) {
|
if (Di == DDate.length - 1) {
|
||||||
resetDay();
|
resetDay()
|
||||||
if (Mi == MDate.length - 1) {
|
if (Mi == MDate.length - 1) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
continue goYear;
|
continue goYear
|
||||||
}
|
}
|
||||||
continue goMonth;
|
continue goMonth
|
||||||
}
|
}
|
||||||
continue;
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断日期的合法性,不合法的话也是跳出当前循环
|
// 判断日期的合法性,不合法的话也是跳出当前循环
|
||||||
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true && this.dayRule !== 'workDay' && this.dayRule !== 'lastWeek' && this.dayRule !== 'lastDay') {
|
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true && this.dayRule !== 'workDay' && this.dayRule !== 'lastWeek' && this.dayRule !== 'lastDay') {
|
||||||
resetDay();
|
resetDay()
|
||||||
continue goMonth;
|
continue goMonth
|
||||||
}
|
}
|
||||||
// 如果日期规则中有值时
|
// 如果日期规则中有值时
|
||||||
if (this.dayRule == 'lastDay') {
|
if (this.dayRule == 'lastDay') {
|
||||||
@ -163,84 +163,83 @@ export default {
|
|||||||
|
|
||||||
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
||||||
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
||||||
DD--;
|
DD--
|
||||||
|
thisDD = DD < 10 ? '0' + DD : DD
|
||||||
thisDD = DD < 10 ? '0' + DD : DD;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (this.dayRule == 'workDay') {
|
} else if (this.dayRule == 'workDay') {
|
||||||
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
|
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
|
||||||
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
||||||
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
||||||
DD--;
|
DD--
|
||||||
thisDD = DD < 10 ? '0' + DD : DD;
|
thisDD = DD < 10 ? '0' + DD : DD
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 获取达到条件的日期是星期X
|
// 获取达到条件的日期是星期X
|
||||||
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
|
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week')
|
||||||
// 当星期日时
|
// 当星期日时
|
||||||
if (thisWeek == 1) {
|
if (thisWeek == 1) {
|
||||||
// 先找下一个日,并判断是否为月底
|
// 先找下一个日,并判断是否为月底
|
||||||
DD++;
|
DD++
|
||||||
thisDD = DD < 10 ? '0' + DD : DD;
|
thisDD = DD < 10 ? '0' + DD : DD
|
||||||
// 判断下一日已经不是合法日期
|
// 判断下一日已经不是合法日期
|
||||||
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
||||||
DD -= 3;
|
DD -= 3
|
||||||
}
|
}
|
||||||
} else if (thisWeek == 7) {
|
} else if (thisWeek == 7) {
|
||||||
// 当星期6时只需判断不是1号就可进行操作
|
// 当星期6时只需判断不是1号就可进行操作
|
||||||
if (this.dayRuleSup !== 1) {
|
if (this.dayRuleSup !== 1) {
|
||||||
DD--;
|
DD--
|
||||||
} else {
|
} else {
|
||||||
DD += 2;
|
DD += 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (this.dayRule == 'weekDay') {
|
} else if (this.dayRule == 'weekDay') {
|
||||||
// 如果指定了是星期几
|
// 如果指定了是星期几
|
||||||
// 获取当前日期是属于星期几
|
// 获取当前日期是属于星期几
|
||||||
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
|
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week')
|
||||||
// 校验当前星期是否在星期池(dayRuleSup)中
|
// 校验当前星期是否在星期池(dayRuleSup)中
|
||||||
if (this.dayRuleSup.indexOf(thisWeek) < 0) {
|
if (this.dayRuleSup.indexOf(thisWeek) < 0) {
|
||||||
// 如果到达最大值时
|
// 如果到达最大值时
|
||||||
if (Di == DDate.length - 1) {
|
if (Di == DDate.length - 1) {
|
||||||
resetDay();
|
resetDay()
|
||||||
if (Mi == MDate.length - 1) {
|
if (Mi == MDate.length - 1) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
continue goYear;
|
continue goYear
|
||||||
}
|
}
|
||||||
continue goMonth;
|
continue goMonth
|
||||||
}
|
}
|
||||||
continue;
|
continue
|
||||||
}
|
}
|
||||||
} else if (this.dayRule == 'assWeek') {
|
} else if (this.dayRule == 'assWeek') {
|
||||||
// 如果指定了是第几周的星期几
|
// 如果指定了是第几周的星期几
|
||||||
// 获取每月1号是属于星期几
|
// 获取每月1号是属于星期几
|
||||||
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
|
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week')
|
||||||
if (this.dayRuleSup[1] >= thisWeek) {
|
if (this.dayRuleSup[1] >= thisWeek) {
|
||||||
DD = (this.dayRuleSup[0] - 1) * 7 + this.dayRuleSup[1] - thisWeek + 1;
|
DD = (this.dayRuleSup[0] - 1) * 7 + this.dayRuleSup[1] - thisWeek + 1
|
||||||
} else {
|
} else {
|
||||||
DD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - thisWeek + 1;
|
DD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - thisWeek + 1
|
||||||
}
|
}
|
||||||
} else if (this.dayRule == 'lastWeek') {
|
} else if (this.dayRule == 'lastWeek') {
|
||||||
// 如果指定了每月最后一个星期几
|
// 如果指定了每月最后一个星期几
|
||||||
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
|
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
|
||||||
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
||||||
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
|
||||||
DD--;
|
DD--
|
||||||
thisDD = DD < 10 ? '0' + DD : DD;
|
thisDD = DD < 10 ? '0' + DD : DD
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 获取月末最后一天是星期几
|
// 获取月末最后一天是星期几
|
||||||
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
|
let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week')
|
||||||
// 找到要求中最近的那个星期几
|
// 找到要求中最近的那个星期几
|
||||||
if (this.dayRuleSup < thisWeek) {
|
if (this.dayRuleSup < thisWeek) {
|
||||||
DD -= thisWeek - this.dayRuleSup;
|
DD -= thisWeek - this.dayRuleSup
|
||||||
} else if (this.dayRuleSup > thisWeek) {
|
} else if (this.dayRuleSup > thisWeek) {
|
||||||
DD -= 7 - (this.dayRuleSup - thisWeek)
|
DD -= 7 - (this.dayRuleSup - thisWeek)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 判断时间值是否小于10置换成“05”这种格式
|
// 判断时间值是否小于10置换成“05”这种格式
|
||||||
DD = DD < 10 ? '0' + DD : DD;
|
DD = DD < 10 ? '0' + DD : DD
|
||||||
|
|
||||||
// 循环“时”数组
|
// 循环“时”数组
|
||||||
goHour: for (let hi = hIdx; hi < hDate.length; hi++) {
|
goHour: for (let hi = hIdx; hi < hDate.length; hi++) {
|
||||||
@ -248,76 +247,76 @@ export default {
|
|||||||
|
|
||||||
// 如果到达最大值时
|
// 如果到达最大值时
|
||||||
if (nMin > mDate[mDate.length - 1]) {
|
if (nMin > mDate[mDate.length - 1]) {
|
||||||
resetMin();
|
resetMin()
|
||||||
if (hi == hDate.length - 1) {
|
if (hi == hDate.length - 1) {
|
||||||
resetHour();
|
resetHour()
|
||||||
if (Di == DDate.length - 1) {
|
if (Di == DDate.length - 1) {
|
||||||
resetDay();
|
resetDay()
|
||||||
if (Mi == MDate.length - 1) {
|
if (Mi == MDate.length - 1) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
continue goYear;
|
continue goYear
|
||||||
}
|
}
|
||||||
continue goMonth;
|
continue goMonth
|
||||||
}
|
}
|
||||||
continue goDay;
|
continue goDay
|
||||||
}
|
}
|
||||||
continue;
|
continue
|
||||||
}
|
}
|
||||||
// 循环"分"数组
|
// 循环"分"数组
|
||||||
goMin: for (let mi = mIdx; mi < mDate.length; mi++) {
|
goMin: for (let mi = mIdx; mi < mDate.length; mi++) {
|
||||||
let mm = mDate[mi] < 10 ? '0' + mDate[mi] : mDate[mi];
|
let mm = mDate[mi] < 10 ? '0' + mDate[mi] : mDate[mi]
|
||||||
|
|
||||||
// 如果到达最大值时
|
// 如果到达最大值时
|
||||||
if (nSecond > sDate[sDate.length - 1]) {
|
if (nSecond > sDate[sDate.length - 1]) {
|
||||||
resetSecond();
|
resetSecond()
|
||||||
if (mi == mDate.length - 1) {
|
if (mi == mDate.length - 1) {
|
||||||
resetMin();
|
resetMin()
|
||||||
if (hi == hDate.length - 1) {
|
if (hi == hDate.length - 1) {
|
||||||
resetHour();
|
resetHour()
|
||||||
if (Di == DDate.length - 1) {
|
if (Di == DDate.length - 1) {
|
||||||
resetDay();
|
resetDay()
|
||||||
if (Mi == MDate.length - 1) {
|
if (Mi == MDate.length - 1) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
continue goYear;
|
continue goYear
|
||||||
}
|
}
|
||||||
continue goMonth;
|
continue goMonth
|
||||||
}
|
}
|
||||||
continue goDay;
|
continue goDay
|
||||||
}
|
}
|
||||||
continue goHour;
|
continue goHour
|
||||||
}
|
}
|
||||||
continue;
|
continue
|
||||||
}
|
}
|
||||||
// 循环"秒"数组
|
// 循环"秒"数组
|
||||||
goSecond: for (let si = sIdx; si <= sDate.length - 1; si++) {
|
goSecond: for (let si = sIdx; si <= sDate.length - 1; si++) {
|
||||||
let ss = sDate[si] < 10 ? '0' + sDate[si] : sDate[si];
|
let ss = sDate[si] < 10 ? '0' + sDate[si] : sDate[si]
|
||||||
// 添加当前时间(时间合法性在日期循环时已经判断)
|
// 添加当前时间(时间合法性在日期循环时已经判断)
|
||||||
if (MM !== '00' && DD !== '00') {
|
if (MM !== '00' && DD !== '00') {
|
||||||
resultArr.push(YY + '-' + MM + '-' + DD + ' ' + hh + ':' + mm + ':' + ss)
|
resultArr.push(YY + '-' + MM + '-' + DD + ' ' + hh + ':' + mm + ':' + ss)
|
||||||
nums++;
|
nums++
|
||||||
}
|
}
|
||||||
// 如果条数满了就退出循环
|
// 如果条数满了就退出循环
|
||||||
if (nums == 5) break goYear;
|
if (nums == 5) break goYear
|
||||||
// 如果到达最大值时
|
// 如果到达最大值时
|
||||||
if (si == sDate.length - 1) {
|
if (si == sDate.length - 1) {
|
||||||
resetSecond();
|
resetSecond()
|
||||||
if (mi == mDate.length - 1) {
|
if (mi == mDate.length - 1) {
|
||||||
resetMin();
|
resetMin()
|
||||||
if (hi == hDate.length - 1) {
|
if (hi == hDate.length - 1) {
|
||||||
resetHour();
|
resetHour()
|
||||||
if (Di == DDate.length - 1) {
|
if (Di == DDate.length - 1) {
|
||||||
resetDay();
|
resetDay()
|
||||||
if (Mi == MDate.length - 1) {
|
if (Mi == MDate.length - 1) {
|
||||||
resetMonth();
|
resetMonth()
|
||||||
continue goYear;
|
continue goYear
|
||||||
}
|
}
|
||||||
continue goMonth;
|
continue goMonth
|
||||||
}
|
}
|
||||||
continue goDay;
|
continue goDay
|
||||||
}
|
}
|
||||||
continue goHour;
|
continue goHour
|
||||||
}
|
}
|
||||||
continue goMin;
|
continue goMin
|
||||||
}
|
}
|
||||||
} //goSecond
|
} //goSecond
|
||||||
} //goMin
|
} //goMin
|
||||||
@ -327,33 +326,33 @@ export default {
|
|||||||
}
|
}
|
||||||
// 判断100年内的结果条数
|
// 判断100年内的结果条数
|
||||||
if (resultArr.length == 0) {
|
if (resultArr.length == 0) {
|
||||||
this.resultList = ['没有达到条件的结果!'];
|
this.resultList = ['没有达到条件的结果!']
|
||||||
} else {
|
} else {
|
||||||
this.resultList = resultArr;
|
this.resultList = resultArr
|
||||||
if (resultArr.length !== 5) {
|
if (resultArr.length !== 5) {
|
||||||
this.resultList.push('最近100年内只有上面' + resultArr.length + '条结果!')
|
this.resultList.push('最近100年内只有上面' + resultArr.length + '条结果!')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 计算完成-显示结果
|
// 计算完成-显示结果
|
||||||
this.isShow = true;
|
this.isShow = true
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
// 用于计算某位数字在数组中的索引
|
// 用于计算某位数字在数组中的索引
|
||||||
getIndex(arr, value) {
|
getIndex(arr, value) {
|
||||||
if (value <= arr[0] || value > arr[arr.length - 1]) {
|
if (value <= arr[0] || value > arr[arr.length - 1]) {
|
||||||
return 0;
|
return 0
|
||||||
} else {
|
} else {
|
||||||
for (let i = 0; i < arr.length - 1; i++) {
|
for (let i = 0; i < arr.length - 1; i++) {
|
||||||
if (value > arr[i] && value <= arr[i + 1]) {
|
if (value > arr[i] && value <= arr[i + 1]) {
|
||||||
return i + 1;
|
return i + 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 获取"年"数组
|
// 获取"年"数组
|
||||||
getYearArr(rule, year) {
|
getYearArr(rule, year) {
|
||||||
this.dateArr[5] = this.getOrderArr(year, year + 100);
|
this.dateArr[5] = this.getOrderArr(year, year + 100)
|
||||||
if (rule !== undefined) {
|
if (rule !== undefined) {
|
||||||
if (rule.indexOf('-') >= 0) {
|
if (rule.indexOf('-') >= 0) {
|
||||||
this.dateArr[5] = this.getCycleArr(rule, year + 100, false)
|
this.dateArr[5] = this.getCycleArr(rule, year + 100, false)
|
||||||
@ -366,7 +365,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 获取"月"数组
|
// 获取"月"数组
|
||||||
getMonthArr(rule) {
|
getMonthArr(rule) {
|
||||||
this.dateArr[4] = this.getOrderArr(1, 12);
|
this.dateArr[4] = this.getOrderArr(1, 12)
|
||||||
if (rule.indexOf('-') >= 0) {
|
if (rule.indexOf('-') >= 0) {
|
||||||
this.dateArr[4] = this.getCycleArr(rule, 12, false)
|
this.dateArr[4] = this.getCycleArr(rule, 12, false)
|
||||||
} else if (rule.indexOf('/') >= 0) {
|
} else if (rule.indexOf('/') >= 0) {
|
||||||
@ -380,58 +379,58 @@ export default {
|
|||||||
// 只有当日期规则的两个值均为“”时则表达日期是有选项的
|
// 只有当日期规则的两个值均为“”时则表达日期是有选项的
|
||||||
if (this.dayRule == '' && this.dayRuleSup == '') {
|
if (this.dayRule == '' && this.dayRuleSup == '') {
|
||||||
if (rule.indexOf('-') >= 0) {
|
if (rule.indexOf('-') >= 0) {
|
||||||
this.dayRule = 'weekDay';
|
this.dayRule = 'weekDay'
|
||||||
this.dayRuleSup = this.getCycleArr(rule, 7, false)
|
this.dayRuleSup = this.getCycleArr(rule, 7, false)
|
||||||
} else if (rule.indexOf('#') >= 0) {
|
} else if (rule.indexOf('#') >= 0) {
|
||||||
this.dayRule = 'assWeek';
|
this.dayRule = 'assWeek'
|
||||||
let matchRule = rule.match(/[0-9]{1}/g);
|
let matchRule = rule.match(/[0-9]{1}/g)
|
||||||
this.dayRuleSup = [Number(matchRule[1]), Number(matchRule[0])];
|
this.dayRuleSup = [Number(matchRule[1]), Number(matchRule[0])]
|
||||||
this.dateArr[3] = [1];
|
this.dateArr[3] = [1]
|
||||||
if (this.dayRuleSup[1] == 7) {
|
if (this.dayRuleSup[1] == 7) {
|
||||||
this.dayRuleSup[1] = 0;
|
this.dayRuleSup[1] = 0
|
||||||
}
|
}
|
||||||
} else if (rule.indexOf('L') >= 0) {
|
} else if (rule.indexOf('L') >= 0) {
|
||||||
this.dayRule = 'lastWeek';
|
this.dayRule = 'lastWeek'
|
||||||
this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);
|
this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0])
|
||||||
this.dateArr[3] = [31];
|
this.dateArr[3] = [31]
|
||||||
if (this.dayRuleSup == 7) {
|
if (this.dayRuleSup == 7) {
|
||||||
this.dayRuleSup = 0;
|
this.dayRuleSup = 0
|
||||||
}
|
}
|
||||||
} else if (rule !== '*' && rule !== '?') {
|
} else if (rule !== '*' && rule !== '?') {
|
||||||
this.dayRule = 'weekDay';
|
this.dayRule = 'weekDay'
|
||||||
this.dayRuleSup = this.getAssignArr(rule)
|
this.dayRuleSup = this.getAssignArr(rule)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 获取"日"数组-少量为日期规则
|
// 获取"日"数组-少量为日期规则
|
||||||
getDayArr(rule) {
|
getDayArr(rule) {
|
||||||
this.dateArr[3] = this.getOrderArr(1, 31);
|
this.dateArr[3] = this.getOrderArr(1, 31)
|
||||||
this.dayRule = '';
|
this.dayRule = ''
|
||||||
this.dayRuleSup = '';
|
this.dayRuleSup = ''
|
||||||
if (rule.indexOf('-') >= 0) {
|
if (rule.indexOf('-') >= 0) {
|
||||||
this.dateArr[3] = this.getCycleArr(rule, 31, false)
|
this.dateArr[3] = this.getCycleArr(rule, 31, false)
|
||||||
this.dayRuleSup = 'null';
|
this.dayRuleSup = 'null'
|
||||||
} else if (rule.indexOf('/') >= 0) {
|
} else if (rule.indexOf('/') >= 0) {
|
||||||
this.dateArr[3] = this.getAverageArr(rule, 31)
|
this.dateArr[3] = this.getAverageArr(rule, 31)
|
||||||
this.dayRuleSup = 'null';
|
this.dayRuleSup = 'null'
|
||||||
} else if (rule.indexOf('W') >= 0) {
|
} else if (rule.indexOf('W') >= 0) {
|
||||||
this.dayRule = 'workDay';
|
this.dayRule = 'workDay'
|
||||||
this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);
|
this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0])
|
||||||
this.dateArr[3] = [this.dayRuleSup];
|
this.dateArr[3] = [this.dayRuleSup]
|
||||||
} else if (rule.indexOf('L') >= 0) {
|
} else if (rule.indexOf('L') >= 0) {
|
||||||
this.dayRule = 'lastDay';
|
this.dayRule = 'lastDay'
|
||||||
this.dayRuleSup = 'null';
|
this.dayRuleSup = 'null'
|
||||||
this.dateArr[3] = [31];
|
this.dateArr[3] = [31]
|
||||||
} else if (rule !== '*' && rule !== '?') {
|
} else if (rule !== '*' && rule !== '?') {
|
||||||
this.dateArr[3] = this.getAssignArr(rule)
|
this.dateArr[3] = this.getAssignArr(rule)
|
||||||
this.dayRuleSup = 'null';
|
this.dayRuleSup = 'null'
|
||||||
} else if (rule == '*') {
|
} else if (rule == '*') {
|
||||||
this.dayRuleSup = 'null';
|
this.dayRuleSup = 'null'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 获取"时"数组
|
// 获取"时"数组
|
||||||
getHourArr(rule) {
|
getHourArr(rule) {
|
||||||
this.dateArr[2] = this.getOrderArr(0, 23);
|
this.dateArr[2] = this.getOrderArr(0, 23)
|
||||||
if (rule.indexOf('-') >= 0) {
|
if (rule.indexOf('-') >= 0) {
|
||||||
this.dateArr[2] = this.getCycleArr(rule, 24, true)
|
this.dateArr[2] = this.getCycleArr(rule, 24, true)
|
||||||
} else if (rule.indexOf('/') >= 0) {
|
} else if (rule.indexOf('/') >= 0) {
|
||||||
@ -442,7 +441,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 获取"分"数组
|
// 获取"分"数组
|
||||||
getMinArr(rule) {
|
getMinArr(rule) {
|
||||||
this.dateArr[1] = this.getOrderArr(0, 59);
|
this.dateArr[1] = this.getOrderArr(0, 59)
|
||||||
if (rule.indexOf('-') >= 0) {
|
if (rule.indexOf('-') >= 0) {
|
||||||
this.dateArr[1] = this.getCycleArr(rule, 60, true)
|
this.dateArr[1] = this.getCycleArr(rule, 60, true)
|
||||||
} else if (rule.indexOf('/') >= 0) {
|
} else if (rule.indexOf('/') >= 0) {
|
||||||
@ -453,7 +452,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 获取"秒"数组
|
// 获取"秒"数组
|
||||||
getSecondArr(rule) {
|
getSecondArr(rule) {
|
||||||
this.dateArr[0] = this.getOrderArr(0, 59);
|
this.dateArr[0] = this.getOrderArr(0, 59)
|
||||||
if (rule.indexOf('-') >= 0) {
|
if (rule.indexOf('-') >= 0) {
|
||||||
this.dateArr[0] = this.getCycleArr(rule, 60, true)
|
this.dateArr[0] = this.getCycleArr(rule, 60, true)
|
||||||
} else if (rule.indexOf('/') >= 0) {
|
} else if (rule.indexOf('/') >= 0) {
|
||||||
@ -464,86 +463,86 @@ export default {
|
|||||||
},
|
},
|
||||||
// 根据传进来的min-max返回一个顺序的数组
|
// 根据传进来的min-max返回一个顺序的数组
|
||||||
getOrderArr(min, max) {
|
getOrderArr(min, max) {
|
||||||
let arr = [];
|
let arr = []
|
||||||
for (let i = min; i <= max; i++) {
|
for (let i = min; i <= max; i++) {
|
||||||
arr.push(i);
|
arr.push(i)
|
||||||
}
|
}
|
||||||
return arr;
|
return arr
|
||||||
},
|
},
|
||||||
// 根据规则中指定的零散值返回一个数组
|
// 根据规则中指定的零散值返回一个数组
|
||||||
getAssignArr(rule) {
|
getAssignArr(rule) {
|
||||||
let arr = [];
|
let arr = []
|
||||||
let assiginArr = rule.split(',');
|
let assiginArr = rule.split(',')
|
||||||
for (let i = 0; i < assiginArr.length; i++) {
|
for (let i = 0; i < assiginArr.length; i++) {
|
||||||
arr[i] = Number(assiginArr[i])
|
arr[i] = Number(assiginArr[i])
|
||||||
}
|
}
|
||||||
arr.sort(this.compare)
|
arr.sort(this.compare)
|
||||||
return arr;
|
return arr
|
||||||
},
|
},
|
||||||
// 根据一定算术规则计算返回一个数组
|
// 根据一定算术规则计算返回一个数组
|
||||||
getAverageArr(rule, limit) {
|
getAverageArr(rule, limit) {
|
||||||
let arr = [];
|
let arr = []
|
||||||
let agArr = rule.split('/');
|
let agArr = rule.split('/')
|
||||||
let min = Number(agArr[0]);
|
let min = Number(agArr[0])
|
||||||
let step = Number(agArr[1]);
|
let step = Number(agArr[1])
|
||||||
while (min <= limit) {
|
while (min <= limit) {
|
||||||
arr.push(min);
|
arr.push(min)
|
||||||
min += step;
|
min += step
|
||||||
}
|
}
|
||||||
return arr;
|
return arr
|
||||||
},
|
},
|
||||||
// 根据规则返回一个具有周期性的数组
|
// 根据规则返回一个具有周期性的数组
|
||||||
getCycleArr(rule, limit, status) {
|
getCycleArr(rule, limit, status) {
|
||||||
// status--表示是否从0开始(则从1开始)
|
// status--表示是否从0开始(则从1开始)
|
||||||
let arr = [];
|
let arr = []
|
||||||
let cycleArr = rule.split('-');
|
let cycleArr = rule.split('-')
|
||||||
let min = Number(cycleArr[0]);
|
let min = Number(cycleArr[0])
|
||||||
let max = Number(cycleArr[1]);
|
let max = Number(cycleArr[1])
|
||||||
if (min > max) {
|
if (min > max) {
|
||||||
max += limit;
|
max += limit
|
||||||
}
|
}
|
||||||
for (let i = min; i <= max; i++) {
|
for (let i = min; i <= max; i++) {
|
||||||
let add = 0;
|
let add = 0
|
||||||
if (status == false && i % limit == 0) {
|
if (status == false && i % limit == 0) {
|
||||||
add = limit;
|
add = limit
|
||||||
}
|
}
|
||||||
arr.push(Math.round(i % limit + add))
|
arr.push(Math.round(i % limit + add))
|
||||||
}
|
}
|
||||||
arr.sort(this.compare)
|
arr.sort(this.compare)
|
||||||
return arr;
|
return arr
|
||||||
},
|
},
|
||||||
// 比较数字大小(用于Array.sort)
|
// 比较数字大小(用于Array.sort)
|
||||||
compare(value1, value2) {
|
compare(value1, value2) {
|
||||||
if (value2 - value1 > 0) {
|
if (value2 - value1 > 0) {
|
||||||
return -1;
|
return -1
|
||||||
} else {
|
} else {
|
||||||
return 1;
|
return 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 格式化日期格式如:2017-9-19 18:04:33
|
// 格式化日期格式如:2017-9-19 18:04:33
|
||||||
formatDate(value, type) {
|
formatDate(value, type) {
|
||||||
// 计算日期相关值
|
// 计算日期相关值
|
||||||
let time = typeof value == 'number' ? new Date(value) : value;
|
let time = typeof value == 'number' ? new Date(value) : value
|
||||||
let Y = time.getFullYear();
|
let Y = time.getFullYear()
|
||||||
let M = time.getMonth() + 1;
|
let M = time.getMonth() + 1
|
||||||
let D = time.getDate();
|
let D = time.getDate()
|
||||||
let h = time.getHours();
|
let h = time.getHours()
|
||||||
let m = time.getMinutes();
|
let m = time.getMinutes()
|
||||||
let s = time.getSeconds();
|
let s = time.getSeconds()
|
||||||
let week = time.getDay();
|
let week = time.getDay()
|
||||||
// 如果传递了type的话
|
// 如果传递了type的话
|
||||||
if (type == undefined) {
|
if (type == undefined) {
|
||||||
return Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s);
|
return Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s)
|
||||||
} else if (type == 'week') {
|
} else if (type == 'week') {
|
||||||
// 在quartz中 1为星期日
|
// 在quartz中 1为星期日
|
||||||
return week + 1;
|
return week + 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 检查日期是否存在
|
// 检查日期是否存在
|
||||||
checkDate(value) {
|
checkDate(value) {
|
||||||
let time = new Date(value);
|
let time = new Date(value)
|
||||||
let format = this.formatDate(time)
|
let format = this.formatDate(time)
|
||||||
return value === format;
|
return value === format
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -552,7 +551,7 @@ export default {
|
|||||||
props: ['ex'],
|
props: ['ex'],
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
// 初始化 获取一次结果
|
// 初始化 获取一次结果
|
||||||
this.expressionChange();
|
this.expressionChange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -53,35 +53,35 @@ export default {
|
|||||||
radioChange() {
|
radioChange() {
|
||||||
switch (this.radioValue) {
|
switch (this.radioValue) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$emit('update', 'second', '*', 'second');
|
this.$emit('update', 'second', '*', 'second')
|
||||||
break;
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.$emit('update', 'second', this.cycleTotal);
|
this.$emit('update', 'second', this.cycleTotal)
|
||||||
break;
|
break
|
||||||
case 3:
|
case 3:
|
||||||
this.$emit('update', 'second', this.averageTotal);
|
this.$emit('update', 'second', this.averageTotal)
|
||||||
break;
|
break
|
||||||
case 4:
|
case 4:
|
||||||
this.$emit('update', 'second', this.checkboxString);
|
this.$emit('update', 'second', this.checkboxString)
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 周期两个值变化时
|
// 周期两个值变化时
|
||||||
cycleChange() {
|
cycleChange() {
|
||||||
if (this.radioValue == '2') {
|
if (this.radioValue == '2') {
|
||||||
this.$emit('update', 'second', this.cycleTotal);
|
this.$emit('update', 'second', this.cycleTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 平均两个值变化时
|
// 平均两个值变化时
|
||||||
averageChange() {
|
averageChange() {
|
||||||
if (this.radioValue == '3') {
|
if (this.radioValue == '3') {
|
||||||
this.$emit('update', 'second', this.averageTotal);
|
this.$emit('update', 'second', this.averageTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// checkbox值变化时
|
// checkbox值变化时
|
||||||
checkboxChange() {
|
checkboxChange() {
|
||||||
if (this.radioValue == '4') {
|
if (this.radioValue == '4') {
|
||||||
this.$emit('update', 'second', this.checkboxString);
|
this.$emit('update', 'second', this.checkboxString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -99,18 +99,18 @@ export default {
|
|||||||
cycleTotal: function () {
|
cycleTotal: function () {
|
||||||
const cycle01 = this.checkNum(this.cycle01, 0, 58)
|
const cycle01 = this.checkNum(this.cycle01, 0, 58)
|
||||||
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59)
|
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59)
|
||||||
return cycle01 + '-' + cycle02;
|
return cycle01 + '-' + cycle02
|
||||||
},
|
},
|
||||||
// 计算平均用到的值
|
// 计算平均用到的值
|
||||||
averageTotal: function () {
|
averageTotal: function () {
|
||||||
const average01 = this.checkNum(this.average01, 0, 58)
|
const average01 = this.checkNum(this.average01, 0, 58)
|
||||||
const average02 = this.checkNum(this.average02, 1, 59 - average01 || 0)
|
const average02 = this.checkNum(this.average02, 1, 59 - average01 || 0)
|
||||||
return average01 + '/' + average02;
|
return average01 + '/' + average02
|
||||||
},
|
},
|
||||||
// 计算勾选的checkbox值合集
|
// 计算勾选的checkbox值合集
|
||||||
checkboxString: function () {
|
checkboxString: function () {
|
||||||
let str = this.checkboxList.join();
|
let str = this.checkboxList.join()
|
||||||
return str == '' ? '*' : str;
|
return str == '' ? '*' : str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -118,52 +118,52 @@ export default {
|
|||||||
// 单选按钮值变化时
|
// 单选按钮值变化时
|
||||||
radioChange() {
|
radioChange() {
|
||||||
if (this.radioValue !== 2 && this.cron.day !== '?') {
|
if (this.radioValue !== 2 && this.cron.day !== '?') {
|
||||||
this.$emit('update', 'day', '?', 'week');
|
this.$emit('update', 'day', '?', 'week')
|
||||||
}
|
}
|
||||||
switch (this.radioValue) {
|
switch (this.radioValue) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$emit('update', 'week', '*');
|
this.$emit('update', 'week', '*')
|
||||||
break;
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.$emit('update', 'week', '?');
|
this.$emit('update', 'week', '?')
|
||||||
break;
|
break
|
||||||
case 3:
|
case 3:
|
||||||
this.$emit('update', 'week', this.cycleTotal);
|
this.$emit('update', 'week', this.cycleTotal)
|
||||||
break;
|
break
|
||||||
case 4:
|
case 4:
|
||||||
this.$emit('update', 'week', this.averageTotal);
|
this.$emit('update', 'week', this.averageTotal)
|
||||||
break;
|
break
|
||||||
case 5:
|
case 5:
|
||||||
this.$emit('update', 'week', this.weekdayCheck + 'L');
|
this.$emit('update', 'week', this.weekdayCheck + 'L')
|
||||||
break;
|
break
|
||||||
case 6:
|
case 6:
|
||||||
this.$emit('update', 'week', this.checkboxString);
|
this.$emit('update', 'week', this.checkboxString)
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 周期两个值变化时
|
// 周期两个值变化时
|
||||||
cycleChange() {
|
cycleChange() {
|
||||||
if (this.radioValue == '3') {
|
if (this.radioValue == '3') {
|
||||||
this.$emit('update', 'week', this.cycleTotal);
|
this.$emit('update', 'week', this.cycleTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 平均两个值变化时
|
// 平均两个值变化时
|
||||||
averageChange() {
|
averageChange() {
|
||||||
if (this.radioValue == '4') {
|
if (this.radioValue == '4') {
|
||||||
this.$emit('update', 'week', this.averageTotal);
|
this.$emit('update', 'week', this.averageTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 最近工作日值变化时
|
// 最近工作日值变化时
|
||||||
weekdayChange() {
|
weekdayChange() {
|
||||||
if (this.radioValue == '5') {
|
if (this.radioValue == '5') {
|
||||||
this.$emit('update', 'week', this.weekday + 'L');
|
this.$emit('update', 'week', this.weekday + 'L')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// checkbox值变化时
|
// checkbox值变化时
|
||||||
checkboxChange() {
|
checkboxChange() {
|
||||||
if (this.radioValue == '6') {
|
if (this.radioValue == '6') {
|
||||||
this.$emit('update', 'week', this.checkboxString);
|
this.$emit('update', 'week', this.checkboxString)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -179,23 +179,23 @@ export default {
|
|||||||
cycleTotal: function () {
|
cycleTotal: function () {
|
||||||
this.cycle01 = this.checkNum(this.cycle01, 1, 7)
|
this.cycle01 = this.checkNum(this.cycle01, 1, 7)
|
||||||
this.cycle02 = this.checkNum(this.cycle02, 1, 7)
|
this.cycle02 = this.checkNum(this.cycle02, 1, 7)
|
||||||
return this.cycle01 + '-' + this.cycle02;
|
return this.cycle01 + '-' + this.cycle02
|
||||||
},
|
},
|
||||||
// 计算平均用到的值
|
// 计算平均用到的值
|
||||||
averageTotal: function () {
|
averageTotal: function () {
|
||||||
this.average01 = this.checkNum(this.average01, 1, 4)
|
this.average01 = this.checkNum(this.average01, 1, 4)
|
||||||
this.average02 = this.checkNum(this.average02, 1, 7)
|
this.average02 = this.checkNum(this.average02, 1, 7)
|
||||||
return this.average02 + '#' + this.average01;
|
return this.average02 + '#' + this.average01
|
||||||
},
|
},
|
||||||
// 最近的工作日(格式)
|
// 最近的工作日(格式)
|
||||||
weekdayCheck: function () {
|
weekdayCheck: function () {
|
||||||
this.weekday = this.checkNum(this.weekday, 1, 7)
|
this.weekday = this.checkNum(this.weekday, 1, 7)
|
||||||
return this.weekday;
|
return this.weekday
|
||||||
},
|
},
|
||||||
// 计算勾选的checkbox值合集
|
// 计算勾选的checkbox值合集
|
||||||
checkboxString: function () {
|
checkboxString: function () {
|
||||||
let str = this.checkboxList.join();
|
let str = this.checkboxList.join()
|
||||||
return str == '' ? '*' : str;
|
return str == '' ? '*' : str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -61,38 +61,38 @@ export default {
|
|||||||
radioChange() {
|
radioChange() {
|
||||||
switch (this.radioValue) {
|
switch (this.radioValue) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$emit('update', 'year', '');
|
this.$emit('update', 'year', '')
|
||||||
break;
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.$emit('update', 'year', '*');
|
this.$emit('update', 'year', '*')
|
||||||
break;
|
break
|
||||||
case 3:
|
case 3:
|
||||||
this.$emit('update', 'year', this.cycleTotal);
|
this.$emit('update', 'year', this.cycleTotal)
|
||||||
break;
|
break
|
||||||
case 4:
|
case 4:
|
||||||
this.$emit('update', 'year', this.averageTotal);
|
this.$emit('update', 'year', this.averageTotal)
|
||||||
break;
|
break
|
||||||
case 5:
|
case 5:
|
||||||
this.$emit('update', 'year', this.checkboxString);
|
this.$emit('update', 'year', this.checkboxString)
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 周期两个值变化时
|
// 周期两个值变化时
|
||||||
cycleChange() {
|
cycleChange() {
|
||||||
if (this.radioValue == '3') {
|
if (this.radioValue == '3') {
|
||||||
this.$emit('update', 'year', this.cycleTotal);
|
this.$emit('update', 'year', this.cycleTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 平均两个值变化时
|
// 平均两个值变化时
|
||||||
averageChange() {
|
averageChange() {
|
||||||
if (this.radioValue == '4') {
|
if (this.radioValue == '4') {
|
||||||
this.$emit('update', 'year', this.averageTotal);
|
this.$emit('update', 'year', this.averageTotal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// checkbox值变化时
|
// checkbox值变化时
|
||||||
checkboxChange() {
|
checkboxChange() {
|
||||||
if (this.radioValue == '5') {
|
if (this.radioValue == '5') {
|
||||||
this.$emit('update', 'year', this.checkboxString);
|
this.$emit('update', 'year', this.checkboxString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -107,23 +107,23 @@ export default {
|
|||||||
cycleTotal: function () {
|
cycleTotal: function () {
|
||||||
const cycle01 = this.checkNum(this.cycle01, this.fullYear, 2098)
|
const cycle01 = this.checkNum(this.cycle01, this.fullYear, 2098)
|
||||||
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : this.fullYear + 1, 2099)
|
const cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : this.fullYear + 1, 2099)
|
||||||
return cycle01 + '-' + cycle02;
|
return cycle01 + '-' + cycle02
|
||||||
},
|
},
|
||||||
// 计算平均用到的值
|
// 计算平均用到的值
|
||||||
averageTotal: function () {
|
averageTotal: function () {
|
||||||
const average01 = this.checkNum(this.average01, this.fullYear, 2098)
|
const average01 = this.checkNum(this.average01, this.fullYear, 2098)
|
||||||
const average02 = this.checkNum(this.average02, 1, 2099 - average01 || this.fullYear)
|
const average02 = this.checkNum(this.average02, 1, 2099 - average01 || this.fullYear)
|
||||||
return average01 + '/' + average02;
|
return average01 + '/' + average02
|
||||||
},
|
},
|
||||||
// 计算勾选的checkbox值合集
|
// 计算勾选的checkbox值合集
|
||||||
checkboxString: function () {
|
checkboxString: function () {
|
||||||
let str = this.checkboxList.join();
|
let str = this.checkboxList.join()
|
||||||
return str;
|
return str
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
// 仅获取当前年份
|
// 仅获取当前年份
|
||||||
this.fullYear = Number(new Date().getFullYear());
|
this.fullYear = Number(new Date().getFullYear())
|
||||||
this.cycle01 = this.fullYear
|
this.cycle01 = this.fullYear
|
||||||
this.average01 = this.fullYear
|
this.average01 = this.fullYear
|
||||||
}
|
}
|
||||||
|
|||||||
@ -74,13 +74,13 @@ export default {
|
|||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
handleArray(array) {
|
handleArray(array) {
|
||||||
if (array.length === 0) return '';
|
if (array.length === 0) return ''
|
||||||
return array.reduce((pre, cur) => {
|
return array.reduce((pre, cur) => {
|
||||||
return pre + ' ' + cur;
|
return pre + ' ' + cur
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.el-tag + .el-tag {
|
.el-tag + .el-tag {
|
||||||
|
|||||||
@ -18,12 +18,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import axios from "axios";
|
import axios from "axios"
|
||||||
import Quill from "quill";
|
import Quill from "quill"
|
||||||
import "quill/dist/quill.core.css";
|
import "quill/dist/quill.core.css"
|
||||||
import "quill/dist/quill.snow.css";
|
import "quill/dist/quill.snow.css"
|
||||||
import "quill/dist/quill.bubble.css";
|
import "quill/dist/quill.bubble.css"
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Editor",
|
name: "Editor",
|
||||||
@ -89,27 +89,27 @@ export default {
|
|||||||
placeholder: "请输入内容",
|
placeholder: "请输入内容",
|
||||||
readOnly: this.readOnly,
|
readOnly: this.readOnly,
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
styles() {
|
styles() {
|
||||||
let style = {};
|
let style = {}
|
||||||
if (this.minHeight) {
|
if (this.minHeight) {
|
||||||
style.minHeight = `${this.minHeight}px`;
|
style.minHeight = `${this.minHeight}px`
|
||||||
}
|
}
|
||||||
if (this.height) {
|
if (this.height) {
|
||||||
style.height = `${this.height}px`;
|
style.height = `${this.height}px`
|
||||||
|
}
|
||||||
|
return style
|
||||||
}
|
}
|
||||||
return style;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
value: {
|
value: {
|
||||||
handler(val) {
|
handler(val) {
|
||||||
if (val !== this.currentValue) {
|
if (val !== this.currentValue) {
|
||||||
this.currentValue = val === null ? "" : val;
|
this.currentValue = val === null ? "" : val
|
||||||
if (this.Quill) {
|
if (this.Quill) {
|
||||||
this.Quill.clipboard.dangerouslyPasteHTML(this.currentValue);
|
this.Quill.clipboard.dangerouslyPasteHTML(this.currentValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -117,102 +117,102 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.init();
|
this.init()
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
this.Quill = null;
|
this.Quill = null
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init() {
|
init() {
|
||||||
const editor = this.$refs.editor;
|
const editor = this.$refs.editor
|
||||||
this.Quill = new Quill(editor, this.options);
|
this.Quill = new Quill(editor, this.options)
|
||||||
// 如果设置了上传地址则自定义图片上传事件
|
// 如果设置了上传地址则自定义图片上传事件
|
||||||
if (this.type == 'url') {
|
if (this.type == 'url') {
|
||||||
let toolbar = this.Quill.getModule("toolbar");
|
let toolbar = this.Quill.getModule("toolbar")
|
||||||
toolbar.addHandler("image", (value) => {
|
toolbar.addHandler("image", (value) => {
|
||||||
if (value) {
|
if (value) {
|
||||||
this.$refs.upload.$children[0].$refs.input.click();
|
this.$refs.upload.$children[0].$refs.input.click()
|
||||||
} else {
|
} else {
|
||||||
this.quill.format("image", false);
|
this.quill.format("image", false)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
this.Quill.root.addEventListener('paste', this.handlePasteCapture, true);
|
this.Quill.root.addEventListener('paste', this.handlePasteCapture, true)
|
||||||
}
|
}
|
||||||
this.Quill.clipboard.dangerouslyPasteHTML(this.currentValue);
|
this.Quill.clipboard.dangerouslyPasteHTML(this.currentValue)
|
||||||
this.Quill.on("text-change", (delta, oldDelta, source) => {
|
this.Quill.on("text-change", (delta, oldDelta, source) => {
|
||||||
const html = this.$refs.editor.children[0].innerHTML;
|
const html = this.$refs.editor.children[0].innerHTML
|
||||||
const text = this.Quill.getText();
|
const text = this.Quill.getText()
|
||||||
const quill = this.Quill;
|
const quill = this.Quill
|
||||||
this.currentValue = html;
|
this.currentValue = html
|
||||||
this.$emit("input", html);
|
this.$emit("input", html)
|
||||||
this.$emit("on-change", { html, text, quill });
|
this.$emit("on-change", { html, text, quill })
|
||||||
});
|
})
|
||||||
this.Quill.on("text-change", (delta, oldDelta, source) => {
|
this.Quill.on("text-change", (delta, oldDelta, source) => {
|
||||||
this.$emit("on-text-change", delta, oldDelta, source);
|
this.$emit("on-text-change", delta, oldDelta, source)
|
||||||
});
|
})
|
||||||
this.Quill.on("selection-change", (range, oldRange, source) => {
|
this.Quill.on("selection-change", (range, oldRange, source) => {
|
||||||
this.$emit("on-selection-change", range, oldRange, source);
|
this.$emit("on-selection-change", range, oldRange, source)
|
||||||
});
|
})
|
||||||
this.Quill.on("editor-change", (eventName, ...args) => {
|
this.Quill.on("editor-change", (eventName, ...args) => {
|
||||||
this.$emit("on-editor-change", eventName, ...args);
|
this.$emit("on-editor-change", eventName, ...args)
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 上传前校检格式和大小
|
// 上传前校检格式和大小
|
||||||
handleBeforeUpload(file) {
|
handleBeforeUpload(file) {
|
||||||
const type = ["image/jpeg", "image/jpg", "image/png", "image/svg"];
|
const type = ["image/jpeg", "image/jpg", "image/png", "image/svg"]
|
||||||
const isJPG = type.includes(file.type);
|
const isJPG = type.includes(file.type)
|
||||||
// 检验文件格式
|
// 检验文件格式
|
||||||
if (!isJPG) {
|
if (!isJPG) {
|
||||||
this.$message.error(`图片格式错误!`);
|
this.$message.error(`图片格式错误!`)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
// 校检文件大小
|
// 校检文件大小
|
||||||
if (this.fileSize) {
|
if (this.fileSize) {
|
||||||
const isLt = file.size / 1024 / 1024 < this.fileSize;
|
const isLt = file.size / 1024 / 1024 < this.fileSize
|
||||||
if (!isLt) {
|
if (!isLt) {
|
||||||
this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
|
this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true
|
||||||
},
|
},
|
||||||
handleUploadSuccess(res, file) {
|
handleUploadSuccess(res, file) {
|
||||||
// 如果上传成功
|
// 如果上传成功
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
// 获取富文本组件实例
|
// 获取富文本组件实例
|
||||||
let quill = this.Quill;
|
let quill = this.Quill
|
||||||
// 获取光标所在位置
|
// 获取光标所在位置
|
||||||
let length = quill.getSelection().index;
|
let length = quill.getSelection().index
|
||||||
// 插入图片 res.url为服务器返回的图片地址
|
// 插入图片 res.url为服务器返回的图片地址
|
||||||
quill.insertEmbed(length, "image", res.data.url);
|
quill.insertEmbed(length, "image", res.data.url)
|
||||||
// 调整光标到最后
|
// 调整光标到最后
|
||||||
quill.setSelection(length + 1);
|
quill.setSelection(length + 1)
|
||||||
} else {
|
} else {
|
||||||
this.$message.error("图片插入失败");
|
this.$message.error("图片插入失败")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleUploadError() {
|
handleUploadError() {
|
||||||
this.$message.error("图片插入失败");
|
this.$message.error("图片插入失败")
|
||||||
},
|
},
|
||||||
// 复制粘贴图片处理
|
// 复制粘贴图片处理
|
||||||
handlePasteCapture(e) {
|
handlePasteCapture(e) {
|
||||||
const clipboard = e.clipboardData || window.clipboardData;
|
const clipboard = e.clipboardData || window.clipboardData
|
||||||
if (clipboard && clipboard.items) {
|
if (clipboard && clipboard.items) {
|
||||||
for (let i = 0; i < clipboard.items.length; i++) {
|
for (let i = 0; i < clipboard.items.length; i++) {
|
||||||
const item = clipboard.items[i];
|
const item = clipboard.items[i]
|
||||||
if (item.type.indexOf('image') !== -1) {
|
if (item.type.indexOf('image') !== -1) {
|
||||||
e.preventDefault();
|
e.preventDefault()
|
||||||
const file = item.getAsFile();
|
const file = item.getAsFile()
|
||||||
this.insertImage(file);
|
this.insertImage(file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
insertImage(file) {
|
insertImage(file) {
|
||||||
const formData = new FormData();
|
const formData = new FormData()
|
||||||
formData.append("file", file);
|
formData.append("file", file)
|
||||||
axios.post(this.uploadUrl, formData, { headers: { "Content-Type": "multipart/form-data", Authorization: this.headers.Authorization } }).then(res => {
|
axios.post(this.uploadUrl, formData, { headers: { "Content-Type": "multipart/form-data", Authorization: this.headers.Authorization } }).then(res => {
|
||||||
this.handleUploadSuccess(res.data);
|
this.handleUploadSuccess(res.data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,7 +42,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "FileUpload",
|
name: "FileUpload",
|
||||||
@ -93,26 +93,26 @@ export default {
|
|||||||
Authorization: "Bearer " + getToken(),
|
Authorization: "Bearer " + getToken(),
|
||||||
},
|
},
|
||||||
fileList: [],
|
fileList: [],
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
value: {
|
value: {
|
||||||
handler(val) {
|
handler(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
let temp = 1;
|
let temp = 1
|
||||||
// 首先将值转为数组
|
// 首先将值转为数组
|
||||||
const list = Array.isArray(val) ? val : this.value.split(',');
|
const list = Array.isArray(val) ? val : this.value.split(',')
|
||||||
// 然后将数组转为对象数组
|
// 然后将数组转为对象数组
|
||||||
this.fileList = list.map(item => {
|
this.fileList = list.map(item => {
|
||||||
if (typeof item === "string") {
|
if (typeof item === "string") {
|
||||||
item = { name: item, url: item };
|
item = { name: item, url: item }
|
||||||
}
|
}
|
||||||
item.uid = item.uid || new Date().getTime() + temp++;
|
item.uid = item.uid || new Date().getTime() + temp++
|
||||||
return item;
|
return item
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
this.fileList = [];
|
this.fileList = []
|
||||||
return [];
|
return []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
@ -122,7 +122,7 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
// 是否显示提示
|
// 是否显示提示
|
||||||
showTip() {
|
showTip() {
|
||||||
return this.isShowTip && (this.fileType || this.fileSize);
|
return this.isShowTip && (this.fileType || this.fileSize)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -130,88 +130,88 @@ export default {
|
|||||||
handleBeforeUpload(file) {
|
handleBeforeUpload(file) {
|
||||||
// 校检文件类型
|
// 校检文件类型
|
||||||
if (this.fileType) {
|
if (this.fileType) {
|
||||||
const fileName = file.name.split('.');
|
const fileName = file.name.split('.')
|
||||||
const fileExt = fileName[fileName.length - 1];
|
const fileExt = fileName[fileName.length - 1]
|
||||||
const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
|
const isTypeOk = this.fileType.indexOf(fileExt) >= 0
|
||||||
if (!isTypeOk) {
|
if (!isTypeOk) {
|
||||||
this.$modal.msgError(`文件格式不正确,请上传${this.fileType.join("/")}格式文件!`);
|
this.$modal.msgError(`文件格式不正确,请上传${this.fileType.join("/")}格式文件!`)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 校检文件名是否包含特殊字符
|
// 校检文件名是否包含特殊字符
|
||||||
if (file.name.includes(',')) {
|
if (file.name.includes(',')) {
|
||||||
this.$modal.msgError('文件名不正确,不能包含英文逗号!');
|
this.$modal.msgError('文件名不正确,不能包含英文逗号!')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
// 校检文件大小
|
// 校检文件大小
|
||||||
if (this.fileSize) {
|
if (this.fileSize) {
|
||||||
const isLt = file.size / 1024 / 1024 < this.fileSize;
|
const isLt = file.size / 1024 / 1024 < this.fileSize
|
||||||
if (!isLt) {
|
if (!isLt) {
|
||||||
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
|
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$modal.loading("正在上传文件,请稍候...");
|
this.$modal.loading("正在上传文件,请稍候...")
|
||||||
this.number++;
|
this.number++
|
||||||
return true;
|
return true
|
||||||
},
|
},
|
||||||
// 文件个数超出
|
// 文件个数超出
|
||||||
handleExceed() {
|
handleExceed() {
|
||||||
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
|
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`)
|
||||||
},
|
},
|
||||||
// 上传失败
|
// 上传失败
|
||||||
handleUploadError(err) {
|
handleUploadError(err) {
|
||||||
this.$modal.msgError("上传文件失败,请重试");
|
this.$modal.msgError("上传文件失败,请重试")
|
||||||
this.$modal.closeLoading();
|
this.$modal.closeLoading()
|
||||||
},
|
},
|
||||||
// 上传成功回调
|
// 上传成功回调
|
||||||
handleUploadSuccess(res, file) {
|
handleUploadSuccess(res, file) {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.uploadList.push({ name: res.data.url, url: res.data.url });
|
this.uploadList.push({ name: res.data.url, url: res.data.url })
|
||||||
this.uploadedSuccessfully();
|
this.uploadedSuccessfully()
|
||||||
} else {
|
} else {
|
||||||
this.number--;
|
this.number--
|
||||||
this.$modal.closeLoading();
|
this.$modal.closeLoading()
|
||||||
this.$modal.msgError(res.msg);
|
this.$modal.msgError(res.msg)
|
||||||
this.$refs.fileUpload.handleRemove(file);
|
this.$refs.fileUpload.handleRemove(file)
|
||||||
this.uploadedSuccessfully();
|
this.uploadedSuccessfully()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 删除文件
|
// 删除文件
|
||||||
handleDelete(index) {
|
handleDelete(index) {
|
||||||
this.fileList.splice(index, 1);
|
this.fileList.splice(index, 1)
|
||||||
this.$emit("input", this.listToString(this.fileList));
|
this.$emit("input", this.listToString(this.fileList))
|
||||||
},
|
},
|
||||||
// 上传结束处理
|
// 上传结束处理
|
||||||
uploadedSuccessfully() {
|
uploadedSuccessfully() {
|
||||||
if (this.number > 0 && this.uploadList.length === this.number) {
|
if (this.number > 0 && this.uploadList.length === this.number) {
|
||||||
this.fileList = this.fileList.concat(this.uploadList);
|
this.fileList = this.fileList.concat(this.uploadList)
|
||||||
this.uploadList = [];
|
this.uploadList = []
|
||||||
this.number = 0;
|
this.number = 0
|
||||||
this.$emit("input", this.listToString(this.fileList));
|
this.$emit("input", this.listToString(this.fileList))
|
||||||
this.$modal.closeLoading();
|
this.$modal.closeLoading()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 获取文件名称
|
// 获取文件名称
|
||||||
getFileName(name) {
|
getFileName(name) {
|
||||||
// 如果是url那么取最后的名字 如果不是直接返回
|
// 如果是url那么取最后的名字 如果不是直接返回
|
||||||
if (name.lastIndexOf("/") > -1) {
|
if (name.lastIndexOf("/") > -1) {
|
||||||
return name.slice(name.lastIndexOf("/") + 1);
|
return name.slice(name.lastIndexOf("/") + 1)
|
||||||
} else {
|
} else {
|
||||||
return name;
|
return name
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 对象转成指定字符串分隔
|
// 对象转成指定字符串分隔
|
||||||
listToString(list, separator) {
|
listToString(list, separator) {
|
||||||
let strs = "";
|
let strs = ""
|
||||||
separator = separator || ",";
|
separator = separator || ","
|
||||||
for (let i in list) {
|
for (let i in list) {
|
||||||
strs += list[i].url + separator;
|
strs += list[i].url + separator
|
||||||
}
|
}
|
||||||
return strs != '' ? strs.substr(0, strs.length - 1) : '';
|
return strs != '' ? strs.substr(0, strs.length - 1) : ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|||||||
@ -90,7 +90,7 @@ export default {
|
|||||||
const query = val.query
|
const query = val.query
|
||||||
if(isHttp(val.path)) {
|
if(isHttp(val.path)) {
|
||||||
// http(s):// 路径新窗口打开
|
// http(s):// 路径新窗口打开
|
||||||
const pindex = path.indexOf("http");
|
const pindex = path.indexOf("http")
|
||||||
window.open(path.substr(pindex, path.length), "_blank")
|
window.open(path.substr(pindex, path.length), "_blank")
|
||||||
} else {
|
} else {
|
||||||
if (query) {
|
if (query) {
|
||||||
|
|||||||
@ -31,30 +31,30 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
realSrc() {
|
realSrc() {
|
||||||
if (!this.src) {
|
if (!this.src) {
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
let real_src = this.src.split(",")[0];
|
let real_src = this.src.split(",")[0]
|
||||||
return real_src;
|
return real_src
|
||||||
},
|
},
|
||||||
realSrcList() {
|
realSrcList() {
|
||||||
if (!this.src) {
|
if (!this.src) {
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
let real_src_list = this.src.split(",");
|
let real_src_list = this.src.split(",")
|
||||||
let srcList = [];
|
let srcList = []
|
||||||
real_src_list.forEach(item => {
|
real_src_list.forEach(item => {
|
||||||
return srcList.push(item);
|
return srcList.push(item)
|
||||||
});
|
})
|
||||||
return srcList;
|
return srcList
|
||||||
},
|
},
|
||||||
realWidth() {
|
realWidth() {
|
||||||
return typeof this.width == "string" ? this.width : `${this.width}px`;
|
return typeof this.width == "string" ? this.width : `${this.width}px`
|
||||||
},
|
},
|
||||||
realHeight() {
|
realHeight() {
|
||||||
return typeof this.height == "string" ? this.height : `${this.height}px`;
|
return typeof this.height == "string" ? this.height : `${this.height}px`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
@ -91,24 +91,24 @@ export default {
|
|||||||
Authorization: "Bearer " + getToken(),
|
Authorization: "Bearer " + getToken(),
|
||||||
},
|
},
|
||||||
fileList: []
|
fileList: []
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
value: {
|
value: {
|
||||||
handler(val) {
|
handler(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
// 首先将值转为数组
|
// 首先将值转为数组
|
||||||
const list = Array.isArray(val) ? val : this.value.split(',');
|
const list = Array.isArray(val) ? val : this.value.split(',')
|
||||||
// 然后将数组转为对象数组
|
// 然后将数组转为对象数组
|
||||||
this.fileList = list.map(item => {
|
this.fileList = list.map(item => {
|
||||||
if (typeof item === "string") {
|
if (typeof item === "string") {
|
||||||
item = { name: item, url: item };
|
item = { name: item, url: item }
|
||||||
}
|
}
|
||||||
return item;
|
return item
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
this.fileList = [];
|
this.fileList = []
|
||||||
return [];
|
return []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
@ -118,103 +118,103 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
// 是否显示提示
|
// 是否显示提示
|
||||||
showTip() {
|
showTip() {
|
||||||
return this.isShowTip && (this.fileType || this.fileSize);
|
return this.isShowTip && (this.fileType || this.fileSize)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 上传前loading加载
|
// 上传前loading加载
|
||||||
handleBeforeUpload(file) {
|
handleBeforeUpload(file) {
|
||||||
let isImg = false;
|
let isImg = false
|
||||||
if (this.fileType.length) {
|
if (this.fileType.length) {
|
||||||
let fileExtension = "";
|
let fileExtension = ""
|
||||||
if (file.name.lastIndexOf(".") > -1) {
|
if (file.name.lastIndexOf(".") > -1) {
|
||||||
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
|
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1)
|
||||||
}
|
}
|
||||||
isImg = this.fileType.some(type => {
|
isImg = this.fileType.some(type => {
|
||||||
if (file.type.indexOf(type) > -1) return true;
|
if (file.type.indexOf(type) > -1) return true
|
||||||
if (fileExtension && fileExtension.indexOf(type) > -1) return true;
|
if (fileExtension && fileExtension.indexOf(type) > -1) return true
|
||||||
return false;
|
return false
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
isImg = file.type.indexOf("image") > -1;
|
isImg = file.type.indexOf("image") > -1
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isImg) {
|
if (!isImg) {
|
||||||
this.$modal.msgError(`文件格式不正确,请上传${this.fileType.join("/")}图片格式文件!`);
|
this.$modal.msgError(`文件格式不正确,请上传${this.fileType.join("/")}图片格式文件!`)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (file.name.includes(',')) {
|
if (file.name.includes(',')) {
|
||||||
this.$modal.msgError('文件名不正确,不能包含英文逗号!');
|
this.$modal.msgError('文件名不正确,不能包含英文逗号!')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (this.fileSize) {
|
if (this.fileSize) {
|
||||||
const isLt = file.size / 1024 / 1024 < this.fileSize;
|
const isLt = file.size / 1024 / 1024 < this.fileSize
|
||||||
if (!isLt) {
|
if (!isLt) {
|
||||||
this.$modal.msgError(`上传头像图片大小不能超过 ${this.fileSize} MB!`);
|
this.$modal.msgError(`上传头像图片大小不能超过 ${this.fileSize} MB!`)
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$modal.loading("正在上传图片,请稍候...");
|
this.$modal.loading("正在上传图片,请稍候...")
|
||||||
this.number++;
|
this.number++
|
||||||
},
|
},
|
||||||
// 文件个数超出
|
// 文件个数超出
|
||||||
handleExceed() {
|
handleExceed() {
|
||||||
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
|
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`)
|
||||||
},
|
},
|
||||||
// 上传成功回调
|
// 上传成功回调
|
||||||
handleUploadSuccess(res, file) {
|
handleUploadSuccess(res, file) {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.uploadList.push({ name: res.data.url, url: res.data.url });
|
this.uploadList.push({ name: res.data.url, url: res.data.url })
|
||||||
this.uploadedSuccessfully();
|
this.uploadedSuccessfully()
|
||||||
} else {
|
} else {
|
||||||
this.number--;
|
this.number--
|
||||||
this.$modal.closeLoading();
|
this.$modal.closeLoading()
|
||||||
this.$modal.msgError(res.msg);
|
this.$modal.msgError(res.msg)
|
||||||
this.$refs.imageUpload.handleRemove(file);
|
this.$refs.imageUpload.handleRemove(file)
|
||||||
this.uploadedSuccessfully();
|
this.uploadedSuccessfully()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 删除图片
|
// 删除图片
|
||||||
handleDelete(file) {
|
handleDelete(file) {
|
||||||
const findex = this.fileList.map(f => f.name).indexOf(file.name);
|
const findex = this.fileList.map(f => f.name).indexOf(file.name)
|
||||||
if (findex > -1) {
|
if (findex > -1) {
|
||||||
this.fileList.splice(findex, 1);
|
this.fileList.splice(findex, 1)
|
||||||
this.$emit("input", this.listToString(this.fileList));
|
this.$emit("input", this.listToString(this.fileList))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 上传失败
|
// 上传失败
|
||||||
handleUploadError() {
|
handleUploadError() {
|
||||||
this.$modal.msgError("上传图片失败,请重试");
|
this.$modal.msgError("上传图片失败,请重试")
|
||||||
this.$modal.closeLoading();
|
this.$modal.closeLoading()
|
||||||
},
|
},
|
||||||
// 上传结束处理
|
// 上传结束处理
|
||||||
uploadedSuccessfully() {
|
uploadedSuccessfully() {
|
||||||
if (this.number > 0 && this.uploadList.length === this.number) {
|
if (this.number > 0 && this.uploadList.length === this.number) {
|
||||||
this.fileList = this.fileList.concat(this.uploadList);
|
this.fileList = this.fileList.concat(this.uploadList)
|
||||||
this.uploadList = [];
|
this.uploadList = []
|
||||||
this.number = 0;
|
this.number = 0
|
||||||
this.$emit("input", this.listToString(this.fileList));
|
this.$emit("input", this.listToString(this.fileList))
|
||||||
this.$modal.closeLoading();
|
this.$modal.closeLoading()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 预览
|
// 预览
|
||||||
handlePictureCardPreview(file) {
|
handlePictureCardPreview(file) {
|
||||||
this.dialogImageUrl = file.url;
|
this.dialogImageUrl = file.url
|
||||||
this.dialogVisible = true;
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
// 对象转成指定字符串分隔
|
// 对象转成指定字符串分隔
|
||||||
listToString(list, separator) {
|
listToString(list, separator) {
|
||||||
let strs = "";
|
let strs = ""
|
||||||
separator = separator || ",";
|
separator = separator || ","
|
||||||
for (let i in list) {
|
for (let i in list) {
|
||||||
if (list[i].url) {
|
if (list[i].url) {
|
||||||
strs += list[i].url.replace(this.baseUrl, "") + separator;
|
strs += list[i].url.replace(this.baseUrl, "") + separator
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return strs != '' ? strs.substr(0, strs.length - 1) : '';
|
return strs != '' ? strs.substr(0, strs.length - 1) : ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
// .el-upload--picture-card 控制加号部分
|
// .el-upload--picture-card 控制加号部分
|
||||||
|
|||||||
@ -63,7 +63,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
currentPage: {
|
currentPage: {
|
||||||
|
|||||||
@ -47,7 +47,7 @@ export default {
|
|||||||
title: "显示/隐藏",
|
title: "显示/隐藏",
|
||||||
// 是否显示弹出层
|
// 是否显示弹出层
|
||||||
open: false
|
open: false
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
/* 是否显示检索条件 */
|
/* 是否显示检索条件 */
|
||||||
@ -77,20 +77,20 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
style() {
|
style() {
|
||||||
const ret = {};
|
const ret = {}
|
||||||
if (this.gutter) {
|
if (this.gutter) {
|
||||||
ret.marginRight = `${this.gutter / 2}px`;
|
ret.marginRight = `${this.gutter / 2}px`
|
||||||
}
|
}
|
||||||
return ret;
|
return ret
|
||||||
},
|
},
|
||||||
isChecked: {
|
isChecked: {
|
||||||
get() {
|
get() {
|
||||||
return this.columns.every((col) => col.visible);
|
return this.columns.every((col) => col.visible)
|
||||||
},
|
},
|
||||||
set() {}
|
set() {}
|
||||||
},
|
},
|
||||||
isIndeterminate() {
|
isIndeterminate() {
|
||||||
return this.columns.some((col) => col.visible) && !this.isChecked;
|
return this.columns.some((col) => col.visible) && !this.isChecked
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -98,7 +98,7 @@ export default {
|
|||||||
// 显隐列初始默认隐藏列
|
// 显隐列初始默认隐藏列
|
||||||
for (let item in this.columns) {
|
for (let item in this.columns) {
|
||||||
if (this.columns[item].visible === false) {
|
if (this.columns[item].visible === false) {
|
||||||
this.value.push(parseInt(item));
|
this.value.push(parseInt(item))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -106,34 +106,34 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
// 搜索
|
// 搜索
|
||||||
toggleSearch() {
|
toggleSearch() {
|
||||||
this.$emit("update:showSearch", !this.showSearch);
|
this.$emit("update:showSearch", !this.showSearch)
|
||||||
},
|
},
|
||||||
// 刷新
|
// 刷新
|
||||||
refresh() {
|
refresh() {
|
||||||
this.$emit("queryTable");
|
this.$emit("queryTable")
|
||||||
},
|
},
|
||||||
// 右侧列表元素变化
|
// 右侧列表元素变化
|
||||||
dataChange(data) {
|
dataChange(data) {
|
||||||
for (let item in this.columns) {
|
for (let item in this.columns) {
|
||||||
const key = this.columns[item].key;
|
const key = this.columns[item].key
|
||||||
this.columns[item].visible = !data.includes(key);
|
this.columns[item].visible = !data.includes(key)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 打开显隐列dialog
|
// 打开显隐列dialog
|
||||||
showColumn() {
|
showColumn() {
|
||||||
this.open = true;
|
this.open = true
|
||||||
},
|
},
|
||||||
// 单勾选
|
// 单勾选
|
||||||
checkboxChange(event, label) {
|
checkboxChange(event, label) {
|
||||||
this.columns.filter(item => item.label == label)[0].visible = event;
|
this.columns.filter(item => item.label == label)[0].visible = event
|
||||||
},
|
},
|
||||||
// 切换全选/反选
|
// 切换全选/反选
|
||||||
toggleCheckAll() {
|
toggleCheckAll() {
|
||||||
const newValue = !this.isChecked;
|
const newValue = !this.isChecked
|
||||||
this.columns.forEach((col) => (col.visible = newValue))
|
this.columns.forEach((col) => (col.visible = newValue))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep .el-transfer__button {
|
::v-deep .el-transfer__button {
|
||||||
|
|||||||
@ -51,6 +51,5 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -32,11 +32,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { constantRoutes } from "@/router";
|
import { constantRoutes } from "@/router"
|
||||||
import { isHttp } from "@/utils/validate";
|
import { isHttp } from "@/utils/validate"
|
||||||
|
|
||||||
// 隐藏侧边栏路由
|
// 隐藏侧边栏路由
|
||||||
const hideList = ['/index', '/user/profile'];
|
const hideList = ['/index', '/user/profile']
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -45,67 +45,67 @@ export default {
|
|||||||
visibleNumber: 5,
|
visibleNumber: 5,
|
||||||
// 当前激活菜单的 index
|
// 当前激活菜单的 index
|
||||||
currentIndex: undefined
|
currentIndex: undefined
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
theme() {
|
theme() {
|
||||||
return this.$store.state.settings.theme;
|
return this.$store.state.settings.theme
|
||||||
},
|
},
|
||||||
// 顶部显示菜单
|
// 顶部显示菜单
|
||||||
topMenus() {
|
topMenus() {
|
||||||
let topMenus = [];
|
let topMenus = []
|
||||||
this.routers.map((menu) => {
|
this.routers.map((menu) => {
|
||||||
if (menu.hidden !== true) {
|
if (menu.hidden !== true) {
|
||||||
// 兼容顶部栏一级菜单内部跳转
|
// 兼容顶部栏一级菜单内部跳转
|
||||||
if (menu.path === '/' && menu.children) {
|
if (menu.path === '/' && menu.children) {
|
||||||
topMenus.push(menu.children[0]);
|
topMenus.push(menu.children[0])
|
||||||
} else {
|
} else {
|
||||||
topMenus.push(menu);
|
topMenus.push(menu)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
return topMenus;
|
return topMenus
|
||||||
},
|
},
|
||||||
// 所有的路由信息
|
// 所有的路由信息
|
||||||
routers() {
|
routers() {
|
||||||
return this.$store.state.permission.topbarRouters;
|
return this.$store.state.permission.topbarRouters
|
||||||
},
|
},
|
||||||
// 设置子路由
|
// 设置子路由
|
||||||
childrenMenus() {
|
childrenMenus() {
|
||||||
var childrenMenus = [];
|
var childrenMenus = []
|
||||||
this.routers.map((router) => {
|
this.routers.map((router) => {
|
||||||
for (var item in router.children) {
|
for (var item in router.children) {
|
||||||
if (router.children[item].parentPath === undefined) {
|
if (router.children[item].parentPath === undefined) {
|
||||||
if(router.path === "/") {
|
if(router.path === "/") {
|
||||||
router.children[item].path = "/" + router.children[item].path;
|
router.children[item].path = "/" + router.children[item].path
|
||||||
} else {
|
} else {
|
||||||
if(!isHttp(router.children[item].path)) {
|
if(!isHttp(router.children[item].path)) {
|
||||||
router.children[item].path = router.path + "/" + router.children[item].path;
|
router.children[item].path = router.path + "/" + router.children[item].path
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
router.children[item].parentPath = router.path;
|
router.children[item].parentPath = router.path
|
||||||
}
|
}
|
||||||
childrenMenus.push(router.children[item]);
|
childrenMenus.push(router.children[item])
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
return constantRoutes.concat(childrenMenus);
|
return constantRoutes.concat(childrenMenus)
|
||||||
},
|
},
|
||||||
// 默认激活的菜单
|
// 默认激活的菜单
|
||||||
activeMenu() {
|
activeMenu() {
|
||||||
const path = this.$route.path;
|
const path = this.$route.path
|
||||||
let activePath = path;
|
let activePath = path
|
||||||
if (path !== undefined && path.lastIndexOf("/") > 0 && hideList.indexOf(path) === -1) {
|
if (path !== undefined && path.lastIndexOf("/") > 0 && hideList.indexOf(path) === -1) {
|
||||||
const tmpPath = path.substring(1, path.length);
|
const tmpPath = path.substring(1, path.length)
|
||||||
if (!this.$route.meta.link) {
|
if (!this.$route.meta.link) {
|
||||||
activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/"));
|
activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/"))
|
||||||
this.$store.dispatch('app/toggleSideBarHide', false);
|
this.$store.dispatch('app/toggleSideBarHide', false)
|
||||||
}
|
}
|
||||||
} else if(!this.$route.children) {
|
} else if(!this.$route.children) {
|
||||||
activePath = path;
|
activePath = path
|
||||||
this.$store.dispatch('app/toggleSideBarHide', true);
|
this.$store.dispatch('app/toggleSideBarHide', true)
|
||||||
}
|
}
|
||||||
this.activeRoutes(activePath);
|
this.activeRoutes(activePath)
|
||||||
return activePath;
|
return activePath
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
@ -115,55 +115,55 @@ export default {
|
|||||||
window.removeEventListener('resize', this.setVisibleNumber)
|
window.removeEventListener('resize', this.setVisibleNumber)
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.setVisibleNumber();
|
this.setVisibleNumber()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 根据宽度计算设置显示栏数
|
// 根据宽度计算设置显示栏数
|
||||||
setVisibleNumber() {
|
setVisibleNumber() {
|
||||||
const width = document.body.getBoundingClientRect().width / 3;
|
const width = document.body.getBoundingClientRect().width / 3
|
||||||
this.visibleNumber = parseInt(width / 85);
|
this.visibleNumber = parseInt(width / 85)
|
||||||
},
|
},
|
||||||
// 菜单选择事件
|
// 菜单选择事件
|
||||||
handleSelect(key, keyPath) {
|
handleSelect(key, keyPath) {
|
||||||
this.currentIndex = key;
|
this.currentIndex = key
|
||||||
const route = this.routers.find(item => item.path === key);
|
const route = this.routers.find(item => item.path === key)
|
||||||
if (isHttp(key)) {
|
if (isHttp(key)) {
|
||||||
// http(s):// 路径新窗口打开
|
// http(s):// 路径新窗口打开
|
||||||
window.open(key, "_blank");
|
window.open(key, "_blank")
|
||||||
} else if (!route || !route.children) {
|
} else if (!route || !route.children) {
|
||||||
// 没有子路由路径内部打开
|
// 没有子路由路径内部打开
|
||||||
const routeMenu = this.childrenMenus.find(item => item.path === key);
|
const routeMenu = this.childrenMenus.find(item => item.path === key)
|
||||||
if (routeMenu && routeMenu.query) {
|
if (routeMenu && routeMenu.query) {
|
||||||
let query = JSON.parse(routeMenu.query);
|
let query = JSON.parse(routeMenu.query)
|
||||||
this.$router.push({ path: key, query: query });
|
this.$router.push({ path: key, query: query })
|
||||||
} else {
|
} else {
|
||||||
this.$router.push({ path: key });
|
this.$router.push({ path: key })
|
||||||
}
|
}
|
||||||
this.$store.dispatch('app/toggleSideBarHide', true);
|
this.$store.dispatch('app/toggleSideBarHide', true)
|
||||||
} else {
|
} else {
|
||||||
// 显示左侧联动菜单
|
// 显示左侧联动菜单
|
||||||
this.activeRoutes(key);
|
this.activeRoutes(key)
|
||||||
this.$store.dispatch('app/toggleSideBarHide', false);
|
this.$store.dispatch('app/toggleSideBarHide', false)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 当前激活的路由
|
// 当前激活的路由
|
||||||
activeRoutes(key) {
|
activeRoutes(key) {
|
||||||
var routes = [];
|
var routes = []
|
||||||
if (this.childrenMenus && this.childrenMenus.length > 0) {
|
if (this.childrenMenus && this.childrenMenus.length > 0) {
|
||||||
this.childrenMenus.map((item) => {
|
this.childrenMenus.map((item) => {
|
||||||
if (key == item.parentPath || (key == "index" && "" == item.path)) {
|
if (key == item.parentPath || (key == "index" && "" == item.path)) {
|
||||||
routes.push(item);
|
routes.push(item)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
if(routes.length > 0) {
|
if(routes.length > 0) {
|
||||||
this.$store.commit("SET_SIDEBAR_ROUTERS", routes);
|
this.$store.commit("SET_SIDEBAR_ROUTERS", routes)
|
||||||
} else {
|
} else {
|
||||||
this.$store.dispatch('app/toggleSideBarHide', true);
|
this.$store.dispatch('app/toggleSideBarHide', true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
@ -21,16 +21,16 @@ export default {
|
|||||||
height: document.documentElement.clientHeight - 94.5 + "px;",
|
height: document.documentElement.clientHeight - 94.5 + "px;",
|
||||||
loading: true,
|
loading: true,
|
||||||
url: this.src
|
url: this.src
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}, 300);
|
}, 300)
|
||||||
const that = this;
|
const that = this
|
||||||
window.onresize = function temp() {
|
window.onresize = function temp() {
|
||||||
that.height = document.documentElement.clientHeight - 94.5 + "px;";
|
that.height = document.documentElement.clientHeight - 94.5 + "px;"
|
||||||
};
|
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -8,57 +8,57 @@ export default {
|
|||||||
const value = binding.value
|
const value = binding.value
|
||||||
if (value == false) return
|
if (value == false) return
|
||||||
// 获取拖拽内容头部
|
// 获取拖拽内容头部
|
||||||
const dialogHeaderEl = el.querySelector('.el-dialog__header');
|
const dialogHeaderEl = el.querySelector('.el-dialog__header')
|
||||||
const dragDom = el.querySelector('.el-dialog');
|
const dragDom = el.querySelector('.el-dialog')
|
||||||
dialogHeaderEl.style.cursor = 'move';
|
dialogHeaderEl.style.cursor = 'move'
|
||||||
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
|
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null)
|
||||||
const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
|
const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
|
||||||
dragDom.style.position = 'absolute';
|
dragDom.style.position = 'absolute'
|
||||||
dragDom.style.marginTop = 0;
|
dragDom.style.marginTop = 0
|
||||||
let width = dragDom.style.width;
|
let width = dragDom.style.width
|
||||||
if (width.includes('%')) {
|
if (width.includes('%')) {
|
||||||
width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100);
|
width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100)
|
||||||
} else {
|
} else {
|
||||||
width = +width.replace(/\px/g, '');
|
width = +width.replace(/\px/g, '')
|
||||||
}
|
}
|
||||||
dragDom.style.left = `${(document.body.clientWidth - width) / 2}px`;
|
dragDom.style.left = `${(document.body.clientWidth - width) / 2}px`
|
||||||
// 鼠标按下事件
|
// 鼠标按下事件
|
||||||
dialogHeaderEl.onmousedown = (e) => {
|
dialogHeaderEl.onmousedown = (e) => {
|
||||||
// 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
|
// 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
|
||||||
const disX = e.clientX - dialogHeaderEl.offsetLeft;
|
const disX = e.clientX - dialogHeaderEl.offsetLeft
|
||||||
const disY = e.clientY - dialogHeaderEl.offsetTop;
|
const disY = e.clientY - dialogHeaderEl.offsetTop
|
||||||
|
|
||||||
// 获取到的值带px 正则匹配替换
|
// 获取到的值带px 正则匹配替换
|
||||||
let styL, styT;
|
let styL, styT
|
||||||
|
|
||||||
// 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
|
// 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
|
||||||
if (sty.left.includes('%')) {
|
if (sty.left.includes('%')) {
|
||||||
styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);
|
styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100)
|
||||||
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
|
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100)
|
||||||
} else {
|
} else {
|
||||||
styL = +sty.left.replace(/\px/g, '');
|
styL = +sty.left.replace(/\px/g, '')
|
||||||
styT = +sty.top.replace(/\px/g, '');
|
styT = +sty.top.replace(/\px/g, '')
|
||||||
};
|
}
|
||||||
|
|
||||||
// 鼠标拖拽事件
|
// 鼠标拖拽事件
|
||||||
document.onmousemove = function (e) {
|
document.onmousemove = function (e) {
|
||||||
// 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
|
// 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
|
||||||
const l = e.clientX - disX;
|
const l = e.clientX - disX
|
||||||
const t = e.clientY - disY;
|
const t = e.clientY - disY
|
||||||
|
|
||||||
let finallyL = l + styL
|
let finallyL = l + styL
|
||||||
let finallyT = t + styT
|
let finallyT = t + styT
|
||||||
|
|
||||||
// 移动当前元素
|
// 移动当前元素
|
||||||
dragDom.style.left = `${finallyL}px`;
|
dragDom.style.left = `${finallyL}px`
|
||||||
dragDom.style.top = `${finallyT}px`;
|
dragDom.style.top = `${finallyT}px`
|
||||||
|
|
||||||
};
|
}
|
||||||
|
|
||||||
document.onmouseup = function (e) {
|
document.onmouseup = function (e) {
|
||||||
document.onmousemove = null;
|
document.onmousemove = null
|
||||||
document.onmouseup = null;
|
document.onmouseup = null
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
}
|
||||||
@ -5,30 +5,30 @@
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
bind(el) {
|
bind(el) {
|
||||||
const dragDom = el.querySelector('.el-dialog');
|
const dragDom = el.querySelector('.el-dialog')
|
||||||
const lineEl = document.createElement('div');
|
const lineEl = document.createElement('div')
|
||||||
lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
|
lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;'
|
||||||
lineEl.addEventListener('mousedown',
|
lineEl.addEventListener('mousedown',
|
||||||
function(e) {
|
function(e) {
|
||||||
// 鼠标按下,计算当前元素距离可视区的距离
|
// 鼠标按下,计算当前元素距离可视区的距离
|
||||||
const disX = e.clientX - el.offsetLeft;
|
const disX = e.clientX - el.offsetLeft
|
||||||
const disY = e.clientY - el.offsetTop;
|
const disY = e.clientY - el.offsetTop
|
||||||
// 当前宽度 高度
|
// 当前宽度 高度
|
||||||
const curWidth = dragDom.offsetWidth;
|
const curWidth = dragDom.offsetWidth
|
||||||
const curHeight = dragDom.offsetHeight;
|
const curHeight = dragDom.offsetHeight
|
||||||
document.onmousemove = function(e) {
|
document.onmousemove = function(e) {
|
||||||
e.preventDefault(); // 移动时禁用默认事件
|
e.preventDefault() // 移动时禁用默认事件
|
||||||
// 通过事件委托,计算移动的距离
|
// 通过事件委托,计算移动的距离
|
||||||
const xl = e.clientX - disX;
|
const xl = e.clientX - disX
|
||||||
const yl = e.clientY - disY
|
const yl = e.clientY - disY
|
||||||
dragDom.style.width = `${curWidth + xl}px`;
|
dragDom.style.width = `${curWidth + xl}px`
|
||||||
dragDom.style.height = `${curHeight + yl}px`;
|
dragDom.style.height = `${curHeight + yl}px`
|
||||||
};
|
}
|
||||||
document.onmouseup = function(e) {
|
document.onmouseup = function(e) {
|
||||||
document.onmousemove = null;
|
document.onmousemove = null
|
||||||
document.onmouseup = null;
|
document.onmouseup = null
|
||||||
};
|
}
|
||||||
}, false);
|
}, false)
|
||||||
dragDom.appendChild(lineEl);
|
dragDom.appendChild(lineEl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,26 +5,26 @@
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
bind(el) {
|
bind(el) {
|
||||||
const dragDom = el.querySelector('.el-dialog');
|
const dragDom = el.querySelector('.el-dialog')
|
||||||
const lineEl = document.createElement('div');
|
const lineEl = document.createElement('div')
|
||||||
lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
|
lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;'
|
||||||
lineEl.addEventListener('mousedown',
|
lineEl.addEventListener('mousedown',
|
||||||
function (e) {
|
function (e) {
|
||||||
// 鼠标按下,计算当前元素距离可视区的距离
|
// 鼠标按下,计算当前元素距离可视区的距离
|
||||||
const disX = e.clientX - el.offsetLeft;
|
const disX = e.clientX - el.offsetLeft
|
||||||
// 当前宽度
|
// 当前宽度
|
||||||
const curWidth = dragDom.offsetWidth;
|
const curWidth = dragDom.offsetWidth
|
||||||
document.onmousemove = function (e) {
|
document.onmousemove = function (e) {
|
||||||
e.preventDefault(); // 移动时禁用默认事件
|
e.preventDefault() // 移动时禁用默认事件
|
||||||
// 通过事件委托,计算移动的距离
|
// 通过事件委托,计算移动的距离
|
||||||
const l = e.clientX - disX;
|
const l = e.clientX - disX
|
||||||
dragDom.style.width = `${curWidth + l}px`;
|
dragDom.style.width = `${curWidth + l}px`
|
||||||
};
|
}
|
||||||
document.onmouseup = function (e) {
|
document.onmouseup = function (e) {
|
||||||
document.onmousemove = null;
|
document.onmousemove = null
|
||||||
document.onmouseup = null;
|
document.onmouseup = null
|
||||||
};
|
}
|
||||||
}, false);
|
}, false)
|
||||||
dragDom.appendChild(lineEl);
|
dragDom.appendChild(lineEl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ const install = function(Vue) {
|
|||||||
if (window.Vue) {
|
if (window.Vue) {
|
||||||
window['hasRole'] = hasRole
|
window['hasRole'] = hasRole
|
||||||
window['hasPermi'] = hasPermi
|
window['hasPermi'] = hasPermi
|
||||||
Vue.use(install); // eslint-disable-line
|
Vue.use(install) // eslint-disable-line
|
||||||
}
|
}
|
||||||
|
|
||||||
export default install
|
export default install
|
||||||
|
|||||||
@ -8,47 +8,47 @@ export default {
|
|||||||
bind(el, binding, vnode) {
|
bind(el, binding, vnode) {
|
||||||
switch (binding.arg) {
|
switch (binding.arg) {
|
||||||
case 'success':
|
case 'success':
|
||||||
el._vClipBoard_success = binding.value;
|
el._vClipBoard_success = binding.value
|
||||||
break;
|
break
|
||||||
case 'error':
|
case 'error':
|
||||||
el._vClipBoard_error = binding.value;
|
el._vClipBoard_error = binding.value
|
||||||
break;
|
break
|
||||||
default: {
|
default: {
|
||||||
const clipboard = new Clipboard(el, {
|
const clipboard = new Clipboard(el, {
|
||||||
text: () => binding.value,
|
text: () => binding.value,
|
||||||
action: () => binding.arg === 'cut' ? 'cut' : 'copy'
|
action: () => binding.arg === 'cut' ? 'cut' : 'copy'
|
||||||
});
|
})
|
||||||
clipboard.on('success', e => {
|
clipboard.on('success', e => {
|
||||||
const callback = el._vClipBoard_success;
|
const callback = el._vClipBoard_success
|
||||||
callback && callback(e);
|
callback && callback(e)
|
||||||
});
|
})
|
||||||
clipboard.on('error', e => {
|
clipboard.on('error', e => {
|
||||||
const callback = el._vClipBoard_error;
|
const callback = el._vClipBoard_error
|
||||||
callback && callback(e);
|
callback && callback(e)
|
||||||
});
|
})
|
||||||
el._vClipBoard = clipboard;
|
el._vClipBoard = clipboard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
update(el, binding) {
|
update(el, binding) {
|
||||||
if (binding.arg === 'success') {
|
if (binding.arg === 'success') {
|
||||||
el._vClipBoard_success = binding.value;
|
el._vClipBoard_success = binding.value
|
||||||
} else if (binding.arg === 'error') {
|
} else if (binding.arg === 'error') {
|
||||||
el._vClipBoard_error = binding.value;
|
el._vClipBoard_error = binding.value
|
||||||
} else {
|
} else {
|
||||||
el._vClipBoard.text = function () { return binding.value; };
|
el._vClipBoard.text = function () { return binding.value }
|
||||||
el._vClipBoard.action = () => binding.arg === 'cut' ? 'cut' : 'copy';
|
el._vClipBoard.action = () => binding.arg === 'cut' ? 'cut' : 'copy'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
unbind(el, binding) {
|
unbind(el, binding) {
|
||||||
if (!el._vClipboard) return
|
if (!el._vClipboard) return
|
||||||
if (binding.arg === 'success') {
|
if (binding.arg === 'success') {
|
||||||
delete el._vClipBoard_success;
|
delete el._vClipBoard_success
|
||||||
} else if (binding.arg === 'error') {
|
} else if (binding.arg === 'error') {
|
||||||
delete el._vClipBoard_error;
|
delete el._vClipBoard_error
|
||||||
} else {
|
} else {
|
||||||
el._vClipBoard.destroy();
|
el._vClipBoard.destroy()
|
||||||
delete el._vClipBoard;
|
delete el._vClipBoard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import store from '@/store'
|
|||||||
export default {
|
export default {
|
||||||
inserted(el, binding, vnode) {
|
inserted(el, binding, vnode) {
|
||||||
const { value } = binding
|
const { value } = binding
|
||||||
const all_permission = "*:*:*";
|
const all_permission = "*:*:*"
|
||||||
const permissions = store.getters && store.getters.permissions
|
const permissions = store.getters && store.getters.permissions
|
||||||
|
|
||||||
if (value && value instanceof Array && value.length > 0) {
|
if (value && value instanceof Array && value.length > 0) {
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import store from '@/store'
|
|||||||
export default {
|
export default {
|
||||||
inserted(el, binding, vnode) {
|
inserted(el, binding, vnode) {
|
||||||
const { value } = binding
|
const { value } = binding
|
||||||
const super_admin = "admin";
|
const super_admin = "admin"
|
||||||
const roles = store.getters && store.getters.roles
|
const roles = store.getters && store.getters.roles
|
||||||
|
|
||||||
if (value && value instanceof Array && value.length > 0) {
|
if (value && value instanceof Array && value.length > 0) {
|
||||||
|
|||||||
@ -11,22 +11,22 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import InnerLink from "../InnerLink/index";
|
import InnerLink from "../InnerLink/index"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { InnerLink },
|
components: { InnerLink },
|
||||||
computed: {
|
computed: {
|
||||||
iframeViews() {
|
iframeViews() {
|
||||||
return this.$store.state.tagsView.iframeViews;
|
return this.$store.state.tagsView.iframeViews
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
iframeUrl(url, query) {
|
iframeUrl(url, query) {
|
||||||
if (Object.keys(query).length > 0) {
|
if (Object.keys(query).length > 0) {
|
||||||
let params = Object.keys(query).map((key) => key + "=" + query[key]).join("&");
|
let params = Object.keys(query).map((key) => key + "=" + query[key]).join("&")
|
||||||
return url + "?" + params;
|
return url + "?" + params
|
||||||
}
|
}
|
||||||
return url;
|
return url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,24 +24,24 @@ export default {
|
|||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
height: document.documentElement.clientHeight - 94.5 + "px;"
|
height: document.documentElement.clientHeight - 94.5 + "px;"
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
var _this = this;
|
var _this = this
|
||||||
const iframeId = ("#" + this.iframeId).replace(/\//g, "\\/");
|
const iframeId = ("#" + this.iframeId).replace(/\//g, "\\/")
|
||||||
const iframe = document.querySelector(iframeId);
|
const iframe = document.querySelector(iframeId)
|
||||||
// iframe页面loading控制
|
// iframe页面loading控制
|
||||||
if (iframe.attachEvent) {
|
if (iframe.attachEvent) {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
iframe.attachEvent("onload", function () {
|
iframe.attachEvent("onload", function () {
|
||||||
_this.loading = false;
|
_this.loading = false
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
iframe.onload = function () {
|
iframe.onload = function () {
|
||||||
_this.loading = false;
|
_this.loading = false
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -95,16 +95,16 @@ export default {
|
|||||||
toggleSideBar() {
|
toggleSideBar() {
|
||||||
this.$store.dispatch('app/toggleSideBar')
|
this.$store.dispatch('app/toggleSideBar')
|
||||||
},
|
},
|
||||||
async logout() {
|
logout() {
|
||||||
this.$confirm('确定注销并退出系统吗?', '提示', {
|
this.$confirm('确定注销并退出系统吗?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$store.dispatch('LogOut').then(() => {
|
this.$store.dispatch('LogOut').then(() => {
|
||||||
location.href = '/index';
|
location.href = '/index'
|
||||||
})
|
})
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -82,7 +82,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
theme: this.$store.state.settings.theme,
|
theme: this.$store.state.settings.theme,
|
||||||
sideTheme: this.$store.state.settings.sideTheme
|
sideTheme: this.$store.state.settings.sideTheme
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
visible: {
|
visible: {
|
||||||
@ -111,8 +111,8 @@ export default {
|
|||||||
value: val
|
value: val
|
||||||
})
|
})
|
||||||
if (!val) {
|
if (!val) {
|
||||||
this.$store.dispatch('app/toggleSideBarHide', false);
|
this.$store.dispatch('app/toggleSideBarHide', false)
|
||||||
this.$store.commit("SET_SIDEBAR_ROUTERS", this.$store.state.permission.defaultRoutes);
|
this.$store.commit("SET_SIDEBAR_ROUTERS", this.$store.state.permission.defaultRoutes)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -156,17 +156,17 @@ export default {
|
|||||||
key: 'theme',
|
key: 'theme',
|
||||||
value: val
|
value: val
|
||||||
})
|
})
|
||||||
this.theme = val;
|
this.theme = val
|
||||||
},
|
},
|
||||||
handleTheme(val) {
|
handleTheme(val) {
|
||||||
this.$store.dispatch('settings/changeSetting', {
|
this.$store.dispatch('settings/changeSetting', {
|
||||||
key: 'sideTheme',
|
key: 'sideTheme',
|
||||||
value: val
|
value: val
|
||||||
})
|
})
|
||||||
this.sideTheme = val;
|
this.sideTheme = val
|
||||||
},
|
},
|
||||||
saveSetting() {
|
saveSetting() {
|
||||||
this.$modal.loading("正在保存到本地,请稍候...");
|
this.$modal.loading("正在保存到本地,请稍候...")
|
||||||
this.$cache.local.set(
|
this.$cache.local.set(
|
||||||
"layout-setting",
|
"layout-setting",
|
||||||
`{
|
`{
|
||||||
@ -178,11 +178,11 @@ export default {
|
|||||||
"sideTheme":"${this.sideTheme}",
|
"sideTheme":"${this.sideTheme}",
|
||||||
"theme":"${this.theme}"
|
"theme":"${this.theme}"
|
||||||
}`
|
}`
|
||||||
);
|
)
|
||||||
setTimeout(this.$modal.closeLoading(), 1000)
|
setTimeout(this.$modal.closeLoading(), 1000)
|
||||||
},
|
},
|
||||||
resetSetting() {
|
resetSetting() {
|
||||||
this.$modal.loading("正在清除设置缓存并刷新,请稍候...");
|
this.$modal.loading("正在清除设置缓存并刷新,请稍候...")
|
||||||
this.$cache.local.remove("layout-setting")
|
this.$cache.local.remove("layout-setting")
|
||||||
setTimeout("window.location.reload()", 1000)
|
setTimeout("window.location.reload()", 1000)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,7 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
variables() {
|
variables() {
|
||||||
return variables;
|
return variables
|
||||||
},
|
},
|
||||||
sideTheme() {
|
sideTheme() {
|
||||||
return this.$store.state.settings.sideTheme
|
return this.$store.state.settings.sideTheme
|
||||||
|
|||||||
@ -57,7 +57,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
hasOneShowingChild(children = [], parent) {
|
hasOneShowingChild(children = [], parent) {
|
||||||
if (!children) {
|
if (!children) {
|
||||||
children = [];
|
children = []
|
||||||
}
|
}
|
||||||
const showingChildren = children.filter(item => {
|
const showingChildren = children.filter(item => {
|
||||||
if (item.hidden) {
|
if (item.hidden) {
|
||||||
@ -89,7 +89,7 @@ export default {
|
|||||||
return this.basePath
|
return this.basePath
|
||||||
}
|
}
|
||||||
if (routeQuery) {
|
if (routeQuery) {
|
||||||
let query = JSON.parse(routeQuery);
|
let query = JSON.parse(routeQuery)
|
||||||
return { path: path.resolve(this.basePath, routePath), query: query }
|
return { path: path.resolve(this.basePath, routePath), query: query }
|
||||||
}
|
}
|
||||||
return path.resolve(this.basePath, routePath)
|
return path.resolve(this.basePath, routePath)
|
||||||
|
|||||||
@ -24,10 +24,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters, mapState } from "vuex";
|
import { mapGetters, mapState } from "vuex"
|
||||||
import Logo from "./Logo";
|
import Logo from "./Logo"
|
||||||
import SidebarItem from "./SidebarItem";
|
import SidebarItem from "./SidebarItem"
|
||||||
import variables from "@/assets/styles/variables.scss";
|
import variables from "@/assets/styles/variables.scss"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { SidebarItem, Logo },
|
components: { SidebarItem, Logo },
|
||||||
@ -35,23 +35,23 @@ export default {
|
|||||||
...mapState(["settings"]),
|
...mapState(["settings"]),
|
||||||
...mapGetters(["sidebarRouters", "sidebar"]),
|
...mapGetters(["sidebarRouters", "sidebar"]),
|
||||||
activeMenu() {
|
activeMenu() {
|
||||||
const route = this.$route;
|
const route = this.$route
|
||||||
const { meta, path } = route;
|
const { meta, path } = route
|
||||||
// if set path, the sidebar will highlight the path you set
|
// if set path, the sidebar will highlight the path you set
|
||||||
if (meta.activeMenu) {
|
if (meta.activeMenu) {
|
||||||
return meta.activeMenu;
|
return meta.activeMenu
|
||||||
}
|
}
|
||||||
return path;
|
return path
|
||||||
},
|
},
|
||||||
showLogo() {
|
showLogo() {
|
||||||
return this.$store.state.settings.sidebarLogo;
|
return this.$store.state.settings.sidebarLogo
|
||||||
},
|
},
|
||||||
variables() {
|
variables() {
|
||||||
return variables;
|
return variables
|
||||||
},
|
},
|
||||||
isCollapse() {
|
isCollapse() {
|
||||||
return !this.sidebar.opened;
|
return !this.sidebar.opened
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -51,7 +51,7 @@ export default {
|
|||||||
return this.$store.state.permission.routes
|
return this.$store.state.permission.routes
|
||||||
},
|
},
|
||||||
theme() {
|
theme() {
|
||||||
return this.$store.state.settings.theme;
|
return this.$store.state.settings.theme
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -76,11 +76,11 @@ export default {
|
|||||||
return route.path === this.$route.path
|
return route.path === this.$route.path
|
||||||
},
|
},
|
||||||
activeStyle(tag) {
|
activeStyle(tag) {
|
||||||
if (!this.isActive(tag)) return {};
|
if (!this.isActive(tag)) return {}
|
||||||
return {
|
return {
|
||||||
"background-color": this.theme,
|
"background-color": this.theme,
|
||||||
"border-color": this.theme
|
"border-color": this.theme
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
isAffix(tag) {
|
isAffix(tag) {
|
||||||
return tag.meta && tag.meta.affix
|
return tag.meta && tag.meta.affix
|
||||||
@ -151,7 +151,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
refreshSelectedTag(view) {
|
refreshSelectedTag(view) {
|
||||||
this.$tab.refreshPage(view);
|
this.$tab.refreshPage(view)
|
||||||
if (this.$route.meta.link) {
|
if (this.$route.meta.link) {
|
||||||
this.$store.dispatch('tagsView/delIframeView', this.$route)
|
this.$store.dispatch('tagsView/delIframeView', this.$route)
|
||||||
}
|
}
|
||||||
@ -178,7 +178,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
closeOthersTags() {
|
closeOthersTags() {
|
||||||
this.$router.push(this.selectedTag.fullPath).catch(()=>{});
|
this.$router.push(this.selectedTag.fullPath).catch(()=>{})
|
||||||
this.$tab.closeOtherPage(this.selectedTag).then(() => {
|
this.$tab.closeOtherPage(this.selectedTag).then(() => {
|
||||||
this.moveToCurrentTag()
|
this.moveToCurrentTag()
|
||||||
})
|
})
|
||||||
|
|||||||
@ -51,7 +51,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
variables() {
|
variables() {
|
||||||
return variables;
|
return variables
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@ -16,11 +16,11 @@ import { download } from '@/utils/request'
|
|||||||
|
|
||||||
import './assets/icons' // icon
|
import './assets/icons' // icon
|
||||||
import './permission' // permission control
|
import './permission' // permission control
|
||||||
import { getDicts } from "@/api/system/dict/data";
|
import { getDicts } from "@/api/system/dict/data"
|
||||||
import { getConfigKey } from "@/api/system/config";
|
import { getConfigKey } from "@/api/system/config"
|
||||||
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
|
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"
|
||||||
// 分页组件
|
// 分页组件
|
||||||
import Pagination from "@/components/Pagination";
|
import Pagination from "@/components/Pagination"
|
||||||
// 自定义表格工具组件
|
// 自定义表格工具组件
|
||||||
import RightToolbar from "@/components/RightToolbar"
|
import RightToolbar from "@/components/RightToolbar"
|
||||||
// 富文本组件
|
// 富文本组件
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
|
|
||||||
function authPermission(permission) {
|
function authPermission(permission) {
|
||||||
const all_permission = "*:*:*";
|
const all_permission = "*:*:*"
|
||||||
const permissions = store.getters && store.getters.permissions
|
const permissions = store.getters && store.getters.permissions
|
||||||
if (permission && permission.length > 0) {
|
if (permission && permission.length > 0) {
|
||||||
return permissions.some(v => {
|
return permissions.some(v => {
|
||||||
@ -13,7 +13,7 @@ function authPermission(permission) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function authRole(role) {
|
function authRole(role) {
|
||||||
const super_admin = "admin";
|
const super_admin = "admin"
|
||||||
const roles = store.getters && store.getters.roles
|
const roles = store.getters && store.getters.roles
|
||||||
if (role && role.length > 0) {
|
if (role && role.length > 0) {
|
||||||
return roles.some(v => {
|
return roles.some(v => {
|
||||||
@ -27,7 +27,7 @@ function authRole(role) {
|
|||||||
export default {
|
export default {
|
||||||
// 验证用户是否具备某权限
|
// 验证用户是否具备某权限
|
||||||
hasPermi(permission) {
|
hasPermi(permission) {
|
||||||
return authPermission(permission);
|
return authPermission(permission)
|
||||||
},
|
},
|
||||||
// 验证用户是否含有指定权限,只需包含其中一个
|
// 验证用户是否含有指定权限,只需包含其中一个
|
||||||
hasPermiOr(permissions) {
|
hasPermiOr(permissions) {
|
||||||
@ -43,7 +43,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 验证用户是否具备某角色
|
// 验证用户是否具备某角色
|
||||||
hasRole(role) {
|
hasRole(role) {
|
||||||
return authRole(role);
|
return authRole(role)
|
||||||
},
|
},
|
||||||
// 验证用户是否含有指定角色,只需包含其中一个
|
// 验证用户是否含有指定角色,只需包含其中一个
|
||||||
hasRoleOr(roles) {
|
hasRoleOr(roles) {
|
||||||
|
|||||||
@ -29,7 +29,7 @@ const sessionCache = {
|
|||||||
return null
|
return null
|
||||||
},
|
},
|
||||||
remove (key) {
|
remove (key) {
|
||||||
sessionStorage.removeItem(key);
|
sessionStorage.removeItem(key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const localCache = {
|
const localCache = {
|
||||||
@ -63,7 +63,7 @@ const localCache = {
|
|||||||
return null
|
return null
|
||||||
},
|
},
|
||||||
remove (key) {
|
remove (key) {
|
||||||
localStorage.removeItem(key);
|
localStorage.removeItem(key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,10 +3,10 @@ import {Loading, Message} from 'element-ui'
|
|||||||
import { saveAs } from 'file-saver'
|
import { saveAs } from 'file-saver'
|
||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import errorCode from '@/utils/errorCode'
|
import errorCode from '@/utils/errorCode'
|
||||||
import { blobValidate } from "@/utils/ruoyi";
|
import { blobValidate } from "@/utils/ruoyi"
|
||||||
|
|
||||||
const baseURL = process.env.VUE_APP_BASE_API
|
const baseURL = process.env.VUE_APP_BASE_API
|
||||||
let downloadLoadingInstance;
|
let downloadLoadingInstance
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
zip(url, name) {
|
zip(url, name) {
|
||||||
@ -18,28 +18,28 @@ export default {
|
|||||||
responseType: 'blob',
|
responseType: 'blob',
|
||||||
headers: { 'Authorization': 'Bearer ' + getToken() }
|
headers: { 'Authorization': 'Bearer ' + getToken() }
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
const isBlob = blobValidate(res.data);
|
const isBlob = blobValidate(res.data)
|
||||||
if (isBlob) {
|
if (isBlob) {
|
||||||
const blob = new Blob([res.data], { type: 'application/zip' })
|
const blob = new Blob([res.data], { type: 'application/zip' })
|
||||||
this.saveAs(blob, name)
|
this.saveAs(blob, name)
|
||||||
} else {
|
} else {
|
||||||
this.printErrMsg(res.data);
|
this.printErrMsg(res.data)
|
||||||
}
|
}
|
||||||
downloadLoadingInstance.close();
|
downloadLoadingInstance.close()
|
||||||
}).catch((r) => {
|
}).catch((r) => {
|
||||||
console.error(r)
|
console.error(r)
|
||||||
Message.error('下载文件出现错误,请联系管理员!')
|
Message.error('下载文件出现错误,请联系管理员!')
|
||||||
downloadLoadingInstance.close();
|
downloadLoadingInstance.close()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
saveAs(text, name, opts) {
|
saveAs(text, name, opts) {
|
||||||
saveAs(text, name, opts);
|
saveAs(text, name, opts)
|
||||||
},
|
},
|
||||||
async printErrMsg(data) {
|
async printErrMsg(data) {
|
||||||
const resText = await data.text();
|
const resText = await data.text()
|
||||||
const rspObj = JSON.parse(resText);
|
const rspObj = JSON.parse(resText)
|
||||||
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
|
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
|
||||||
Message.error(errMsg);
|
Message.error(errMsg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Message, MessageBox, Notification, Loading } from 'element-ui'
|
import { Message, MessageBox, Notification, Loading } from 'element-ui'
|
||||||
|
|
||||||
let loadingInstance;
|
let loadingInstance
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// 消息提示
|
// 消息提示
|
||||||
@ -41,7 +41,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 错误通知
|
// 错误通知
|
||||||
notifyError(content) {
|
notifyError(content) {
|
||||||
Notification.error(content);
|
Notification.error(content)
|
||||||
},
|
},
|
||||||
// 成功通知
|
// 成功通知
|
||||||
notifySuccess(content) {
|
notifySuccess(content) {
|
||||||
@ -78,6 +78,6 @@ export default {
|
|||||||
},
|
},
|
||||||
// 关闭遮罩层
|
// 关闭遮罩层
|
||||||
closeLoading() {
|
closeLoading() {
|
||||||
loadingInstance.close();
|
loadingInstance.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,18 +1,18 @@
|
|||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import router from '@/router';
|
import router from '@/router'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// 刷新当前tab页签
|
// 刷新当前tab页签
|
||||||
refreshPage(obj) {
|
refreshPage(obj) {
|
||||||
const { path, query, matched } = router.currentRoute;
|
const { path, query, matched } = router.currentRoute
|
||||||
if (obj === undefined) {
|
if (obj === undefined) {
|
||||||
matched.forEach((m) => {
|
matched.forEach((m) => {
|
||||||
if (m.components && m.components.default && m.components.default.name) {
|
if (m.components && m.components.default && m.components.default.name) {
|
||||||
if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
|
if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
|
||||||
obj = { name: m.components.default.name, path: path, query: query };
|
obj = { name: m.components.default.name, path: path, query: query }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
return store.dispatch('tagsView/delCachedView', obj).then(() => {
|
return store.dispatch('tagsView/delCachedView', obj).then(() => {
|
||||||
const { path, query } = obj
|
const { path, query } = obj
|
||||||
@ -24,9 +24,9 @@ export default {
|
|||||||
},
|
},
|
||||||
// 关闭当前tab页签,打开新页签
|
// 关闭当前tab页签,打开新页签
|
||||||
closeOpenPage(obj) {
|
closeOpenPage(obj) {
|
||||||
store.dispatch("tagsView/delView", router.currentRoute);
|
store.dispatch("tagsView/delView", router.currentRoute)
|
||||||
if (obj !== undefined) {
|
if (obj !== undefined) {
|
||||||
return router.push(obj);
|
return router.push(obj)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 关闭指定tab页签
|
// 关闭指定tab页签
|
||||||
@ -37,35 +37,35 @@ export default {
|
|||||||
if (latestView) {
|
if (latestView) {
|
||||||
return router.push(latestView.fullPath)
|
return router.push(latestView.fullPath)
|
||||||
}
|
}
|
||||||
return router.push('/');
|
return router.push('/')
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
return store.dispatch('tagsView/delView', obj);
|
return store.dispatch('tagsView/delView', obj)
|
||||||
},
|
},
|
||||||
// 关闭所有tab页签
|
// 关闭所有tab页签
|
||||||
closeAllPage() {
|
closeAllPage() {
|
||||||
return store.dispatch('tagsView/delAllViews');
|
return store.dispatch('tagsView/delAllViews')
|
||||||
},
|
},
|
||||||
// 关闭左侧tab页签
|
// 关闭左侧tab页签
|
||||||
closeLeftPage(obj) {
|
closeLeftPage(obj) {
|
||||||
return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute);
|
return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute)
|
||||||
},
|
},
|
||||||
// 关闭右侧tab页签
|
// 关闭右侧tab页签
|
||||||
closeRightPage(obj) {
|
closeRightPage(obj) {
|
||||||
return store.dispatch('tagsView/delRightTags', obj || router.currentRoute);
|
return store.dispatch('tagsView/delRightTags', obj || router.currentRoute)
|
||||||
},
|
},
|
||||||
// 关闭其他tab页签
|
// 关闭其他tab页签
|
||||||
closeOtherPage(obj) {
|
closeOtherPage(obj) {
|
||||||
return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute);
|
return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute)
|
||||||
},
|
},
|
||||||
// 添加tab页签
|
// 添加tab页签
|
||||||
openPage(title, url, params) {
|
openPage(title, url, params) {
|
||||||
const obj = { path: url, meta: { title: title } }
|
const obj = { path: url, meta: { title: title } }
|
||||||
store.dispatch('tagsView/addView', obj);
|
store.dispatch('tagsView/addView', obj)
|
||||||
return router.push({ path: url, query: params });
|
return router.push({ path: url, query: params })
|
||||||
},
|
},
|
||||||
// 修改tab页签
|
// 修改tab页签
|
||||||
updatePage(obj) {
|
updatePage(obj) {
|
||||||
return store.dispatch('tagsView/updateVisitedView', obj);
|
return store.dispatch('tagsView/updateVisitedView', obj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -165,8 +165,8 @@ export const dynamicRoutes = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
// 防止连续点击多次路由报错
|
// 防止连续点击多次路由报错
|
||||||
let routerPush = Router.prototype.push;
|
let routerPush = Router.prototype.push
|
||||||
let routerReplace = Router.prototype.replace;
|
let routerReplace = Router.prototype.replace
|
||||||
// push
|
// push
|
||||||
Router.prototype.push = function push(location) {
|
Router.prototype.push = function push(location) {
|
||||||
return routerPush.call(this, location).catch(err => err)
|
return routerPush.call(this, location).catch(err => err)
|
||||||
|
|||||||
@ -14,6 +14,6 @@ const getters = {
|
|||||||
permission_routes: state => state.permission.routes,
|
permission_routes: state => state.permission.routes,
|
||||||
topbarRouters:state => state.permission.topbarRouters,
|
topbarRouters:state => state.permission.topbarRouters,
|
||||||
defaultRoutes:state => state.permission.defaultRoutes,
|
defaultRoutes:state => state.permission.defaultRoutes,
|
||||||
sidebarRouters:state => state.permission.sidebarRouters,
|
sidebarRouters:state => state.permission.sidebarRouters
|
||||||
}
|
}
|
||||||
export default getters
|
export default getters
|
||||||
|
|||||||
@ -13,7 +13,7 @@ const state = {
|
|||||||
const mutations = {
|
const mutations = {
|
||||||
TOGGLE_SIDEBAR: state => {
|
TOGGLE_SIDEBAR: state => {
|
||||||
if (state.sidebar.hide) {
|
if (state.sidebar.hide) {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
state.sidebar.opened = !state.sidebar.opened
|
state.sidebar.opened = !state.sidebar.opened
|
||||||
state.sidebar.withoutAnimation = false
|
state.sidebar.withoutAnimation = false
|
||||||
|
|||||||
@ -38,9 +38,9 @@ const permission = {
|
|||||||
const rdata = JSON.parse(JSON.stringify(res.data))
|
const rdata = JSON.parse(JSON.stringify(res.data))
|
||||||
const sidebarRoutes = filterAsyncRouter(sdata)
|
const sidebarRoutes = filterAsyncRouter(sdata)
|
||||||
const rewriteRoutes = filterAsyncRouter(rdata, false, true)
|
const rewriteRoutes = filterAsyncRouter(rdata, false, true)
|
||||||
const asyncRoutes = filterDynamicRoutes(dynamicRoutes);
|
const asyncRoutes = filterDynamicRoutes(dynamicRoutes)
|
||||||
rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
|
rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
|
||||||
router.addRoutes(asyncRoutes);
|
router.addRoutes(asyncRoutes)
|
||||||
commit('SET_ROUTES', rewriteRoutes)
|
commit('SET_ROUTES', rewriteRoutes)
|
||||||
commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes))
|
commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes))
|
||||||
commit('SET_DEFAULT_ROUTES', sidebarRoutes)
|
commit('SET_DEFAULT_ROUTES', sidebarRoutes)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import { mergeRecursive } from "@/utils/ruoyi";
|
import { mergeRecursive } from "@/utils/ruoyi"
|
||||||
import DictMeta from './DictMeta'
|
import DictMeta from './DictMeta'
|
||||||
import DictData from './DictData'
|
import DictData from './DictData'
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { mergeRecursive } from "@/utils/ruoyi";
|
import { mergeRecursive } from "@/utils/ruoyi"
|
||||||
import DictOptions from './DictOptions'
|
import DictOptions from './DictOptions'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { mergeRecursive } from "@/utils/ruoyi";
|
import { mergeRecursive } from "@/utils/ruoyi"
|
||||||
import dictConverter from './DictConverter'
|
import dictConverter from './DictConverter'
|
||||||
|
|
||||||
export const options = {
|
export const options = {
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { parseTime } from './ruoyi'
|
|||||||
* 表格时间格式化
|
* 表格时间格式化
|
||||||
*/
|
*/
|
||||||
export function formatDate(cellValue) {
|
export function formatDate(cellValue) {
|
||||||
if (cellValue == null || cellValue == "") return "";
|
if (cellValue == null || cellValue == "") return ""
|
||||||
var date = new Date(cellValue)
|
var date = new Date(cellValue)
|
||||||
var year = date.getFullYear()
|
var year = date.getFullYear()
|
||||||
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
|
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
|
||||||
|
|||||||
@ -9,13 +9,13 @@ export function checkPermi(value) {
|
|||||||
if (value && value instanceof Array && value.length > 0) {
|
if (value && value instanceof Array && value.length > 0) {
|
||||||
const permissions = store.getters && store.getters.permissions
|
const permissions = store.getters && store.getters.permissions
|
||||||
const permissionDatas = value
|
const permissionDatas = value
|
||||||
const all_permission = "*:*:*";
|
const all_permission = "*:*:*"
|
||||||
|
|
||||||
const hasPermission = permissions.some(permission => {
|
const hasPermission = permissions.some(permission => {
|
||||||
return all_permission === permission || permissionDatas.includes(permission)
|
return all_permission === permission || permissionDatas.includes(permission)
|
||||||
})
|
})
|
||||||
|
|
||||||
return hasPermission;
|
return hasPermission
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
|
console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
|
||||||
@ -32,13 +32,13 @@ export function checkRole(value) {
|
|||||||
if (value && value instanceof Array && value.length > 0) {
|
if (value && value instanceof Array && value.length > 0) {
|
||||||
const roles = store.getters && store.getters.roles
|
const roles = store.getters && store.getters.roles
|
||||||
const permissionRoles = value
|
const permissionRoles = value
|
||||||
const super_admin = "admin";
|
const super_admin = "admin"
|
||||||
|
|
||||||
const hasRole = roles.some(role => {
|
const hasRole = roles.some(role => {
|
||||||
return super_admin === role || permissionRoles.includes(role)
|
return super_admin === role || permissionRoles.includes(role)
|
||||||
})
|
})
|
||||||
|
|
||||||
return hasRole;
|
return hasRole
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.error(`need roles! Like checkRole="['admin','editor']"`)
|
console.error(`need roles! Like checkRole="['admin','editor']"`)
|
||||||
|
|||||||
@ -3,13 +3,13 @@ import { Notification, MessageBox, Message, Loading } from 'element-ui'
|
|||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import errorCode from '@/utils/errorCode'
|
import errorCode from '@/utils/errorCode'
|
||||||
import { tansParams, blobValidate } from "@/utils/ruoyi";
|
import { tansParams, blobValidate } from "@/utils/ruoyi"
|
||||||
import cache from '@/plugins/cache'
|
import cache from '@/plugins/cache'
|
||||||
import { saveAs } from 'file-saver'
|
import { saveAs } from 'file-saver'
|
||||||
|
|
||||||
let downloadLoadingInstance;
|
let downloadLoadingInstance
|
||||||
// 是否显示重新登录
|
// 是否显示重新登录
|
||||||
export let isRelogin = { show: false };
|
export let isRelogin = { show: false }
|
||||||
|
|
||||||
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
|
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
|
||||||
// 创建axios实例
|
// 创建axios实例
|
||||||
@ -31,10 +31,10 @@ service.interceptors.request.use(config => {
|
|||||||
}
|
}
|
||||||
// get请求映射params参数
|
// get请求映射params参数
|
||||||
if (config.method === 'get' && config.params) {
|
if (config.method === 'get' && config.params) {
|
||||||
let url = config.url + '?' + tansParams(config.params);
|
let url = config.url + '?' + tansParams(config.params)
|
||||||
url = url.slice(0, -1);
|
url = url.slice(0, -1)
|
||||||
config.params = {};
|
config.params = {}
|
||||||
config.url = url;
|
config.url = url
|
||||||
}
|
}
|
||||||
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
|
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
|
||||||
const requestObj = {
|
const requestObj = {
|
||||||
@ -42,22 +42,22 @@ service.interceptors.request.use(config => {
|
|||||||
data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
|
data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
|
||||||
time: new Date().getTime()
|
time: new Date().getTime()
|
||||||
}
|
}
|
||||||
const requestSize = Object.keys(JSON.stringify(requestObj)).length; // 请求数据大小
|
const requestSize = Object.keys(JSON.stringify(requestObj)).length // 请求数据大小
|
||||||
const limitSize = 5 * 1024 * 1024; // 限制存放数据5M
|
const limitSize = 5 * 1024 * 1024 // 限制存放数据5M
|
||||||
if (requestSize >= limitSize) {
|
if (requestSize >= limitSize) {
|
||||||
console.warn(`[${config.url}]: ` + '请求数据大小超出允许的5M限制,无法进行防重复提交验证。')
|
console.warn(`[${config.url}]: ` + '请求数据大小超出允许的5M限制,无法进行防重复提交验证。')
|
||||||
return config;
|
return config
|
||||||
}
|
}
|
||||||
const sessionObj = cache.session.getJSON('sessionObj')
|
const sessionObj = cache.session.getJSON('sessionObj')
|
||||||
if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
|
if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
|
||||||
cache.session.setJSON('sessionObj', requestObj)
|
cache.session.setJSON('sessionObj', requestObj)
|
||||||
} else {
|
} else {
|
||||||
const s_url = sessionObj.url; // 请求地址
|
const s_url = sessionObj.url // 请求地址
|
||||||
const s_data = sessionObj.data; // 请求数据
|
const s_data = sessionObj.data // 请求数据
|
||||||
const s_time = sessionObj.time; // 请求时间
|
const s_time = sessionObj.time // 请求时间
|
||||||
const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
|
const interval = 1000 // 间隔时间(ms),小于此时间视为重复提交
|
||||||
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
|
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
|
||||||
const message = '数据正在处理,请勿重复提交';
|
const message = '数据正在处理,请勿重复提交'
|
||||||
console.warn(`[${s_url}]: ` + message)
|
console.warn(`[${s_url}]: ` + message)
|
||||||
return Promise.reject(new Error(message))
|
return Promise.reject(new Error(message))
|
||||||
} else {
|
} else {
|
||||||
@ -74,7 +74,7 @@ service.interceptors.request.use(config => {
|
|||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
service.interceptors.response.use(res => {
|
service.interceptors.response.use(res => {
|
||||||
// 未设置状态码则默认成功状态
|
// 未设置状态码则默认成功状态
|
||||||
const code = res.data.code || 200;
|
const code = res.data.code || 200
|
||||||
// 获取错误信息
|
// 获取错误信息
|
||||||
const msg = errorCode[code] || res.data.msg || errorCode['default']
|
const msg = errorCode[code] || res.data.msg || errorCode['default']
|
||||||
// 二进制数据则直接返回
|
// 二进制数据则直接返回
|
||||||
@ -83,15 +83,15 @@ service.interceptors.response.use(res => {
|
|||||||
}
|
}
|
||||||
if (code === 401) {
|
if (code === 401) {
|
||||||
if (!isRelogin.show) {
|
if (!isRelogin.show) {
|
||||||
isRelogin.show = true;
|
isRelogin.show = true
|
||||||
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
|
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
|
||||||
isRelogin.show = false;
|
isRelogin.show = false
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
location.href = '/index';
|
location.href = '/index'
|
||||||
})
|
})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
isRelogin.show = false;
|
isRelogin.show = false
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
|
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
|
||||||
} else if (code === 500) {
|
} else if (code === 500) {
|
||||||
@ -109,13 +109,13 @@ service.interceptors.response.use(res => {
|
|||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
console.log('err' + error)
|
console.log('err' + error)
|
||||||
let { message } = error;
|
let { message } = error
|
||||||
if (message == "Network Error") {
|
if (message == "Network Error") {
|
||||||
message = "后端接口连接异常";
|
message = "后端接口连接异常"
|
||||||
} else if (message.includes("timeout")) {
|
} else if (message.includes("timeout")) {
|
||||||
message = "系统接口请求超时";
|
message = "系统接口请求超时"
|
||||||
} else if (message.includes("Request failed with status code")) {
|
} else if (message.includes("Request failed with status code")) {
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
message = "系统接口" + message.substr(message.length - 3) + "异常"
|
||||||
}
|
}
|
||||||
Message({ message: message, type: 'error', duration: 5 * 1000 })
|
Message({ message: message, type: 'error', duration: 5 * 1000 })
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
@ -131,21 +131,21 @@ export function download(url, params, filename, config) {
|
|||||||
responseType: 'blob',
|
responseType: 'blob',
|
||||||
...config
|
...config
|
||||||
}).then(async (data) => {
|
}).then(async (data) => {
|
||||||
const isBlob = blobValidate(data);
|
const isBlob = blobValidate(data)
|
||||||
if (isBlob) {
|
if (isBlob) {
|
||||||
const blob = new Blob([data])
|
const blob = new Blob([data])
|
||||||
saveAs(blob, filename)
|
saveAs(blob, filename)
|
||||||
} else {
|
} else {
|
||||||
const resText = await data.text();
|
const resText = await data.text()
|
||||||
const rspObj = JSON.parse(resText);
|
const rspObj = JSON.parse(resText)
|
||||||
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
|
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
|
||||||
Message.error(errMsg);
|
Message.error(errMsg)
|
||||||
}
|
}
|
||||||
downloadLoadingInstance.close();
|
downloadLoadingInstance.close()
|
||||||
}).catch((r) => {
|
}).catch((r) => {
|
||||||
console.error(r)
|
console.error(r)
|
||||||
Message.error('下载文件出现错误,请联系管理员!')
|
Message.error('下载文件出现错误,请联系管理员!')
|
||||||
downloadLoadingInstance.close();
|
downloadLoadingInstance.close()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@ export function parseTime(time, pattern) {
|
|||||||
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
|
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
|
||||||
time = parseInt(time)
|
time = parseInt(time)
|
||||||
} else if (typeof time === 'string') {
|
} else if (typeof time === 'string') {
|
||||||
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
|
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '')
|
||||||
}
|
}
|
||||||
if ((typeof time === 'number') && (time.toString().length === 10)) {
|
if ((typeof time === 'number') && (time.toString().length === 10)) {
|
||||||
time = time * 1000
|
time = time * 1000
|
||||||
@ -47,89 +47,89 @@ export function parseTime(time, pattern) {
|
|||||||
// 表单重置
|
// 表单重置
|
||||||
export function resetForm(refName) {
|
export function resetForm(refName) {
|
||||||
if (this.$refs[refName]) {
|
if (this.$refs[refName]) {
|
||||||
this.$refs[refName].resetFields();
|
this.$refs[refName].resetFields()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加日期范围
|
// 添加日期范围
|
||||||
export function addDateRange(params, dateRange, propName) {
|
export function addDateRange(params, dateRange, propName) {
|
||||||
let search = params;
|
let search = params
|
||||||
search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
|
search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {}
|
||||||
dateRange = Array.isArray(dateRange) ? dateRange : [];
|
dateRange = Array.isArray(dateRange) ? dateRange : []
|
||||||
if (typeof (propName) === 'undefined') {
|
if (typeof (propName) === 'undefined') {
|
||||||
search.params['beginTime'] = dateRange[0];
|
search.params['beginTime'] = dateRange[0]
|
||||||
search.params['endTime'] = dateRange[1];
|
search.params['endTime'] = dateRange[1]
|
||||||
} else {
|
} else {
|
||||||
search.params['begin' + propName] = dateRange[0];
|
search.params['begin' + propName] = dateRange[0]
|
||||||
search.params['end' + propName] = dateRange[1];
|
search.params['end' + propName] = dateRange[1]
|
||||||
}
|
}
|
||||||
return search;
|
return search
|
||||||
}
|
}
|
||||||
|
|
||||||
// 回显数据字典
|
// 回显数据字典
|
||||||
export function selectDictLabel(datas, value) {
|
export function selectDictLabel(datas, value) {
|
||||||
if (value === undefined) {
|
if (value === undefined) {
|
||||||
return "";
|
return ""
|
||||||
}
|
}
|
||||||
var actions = [];
|
var actions = []
|
||||||
Object.keys(datas).some((key) => {
|
Object.keys(datas).some((key) => {
|
||||||
if (datas[key].value == ('' + value)) {
|
if (datas[key].value == ('' + value)) {
|
||||||
actions.push(datas[key].label);
|
actions.push(datas[key].label)
|
||||||
return true;
|
return true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (actions.length === 0) {
|
if (actions.length === 0) {
|
||||||
actions.push(value);
|
actions.push(value)
|
||||||
}
|
}
|
||||||
return actions.join('');
|
return actions.join('')
|
||||||
}
|
}
|
||||||
|
|
||||||
// 回显数据字典(字符串、数组)
|
// 回显数据字典(字符串、数组)
|
||||||
export function selectDictLabels(datas, value, separator) {
|
export function selectDictLabels(datas, value, separator) {
|
||||||
if (value === undefined || value.length ===0) {
|
if (value === undefined || value.length ===0) {
|
||||||
return "";
|
return ""
|
||||||
}
|
}
|
||||||
if (Array.isArray(value)) {
|
if (Array.isArray(value)) {
|
||||||
value = value.join(",");
|
value = value.join(",")
|
||||||
}
|
}
|
||||||
var actions = [];
|
var actions = []
|
||||||
var currentSeparator = undefined === separator ? "," : separator;
|
var currentSeparator = undefined === separator ? "," : separator
|
||||||
var temp = value.split(currentSeparator);
|
var temp = value.split(currentSeparator)
|
||||||
Object.keys(value.split(currentSeparator)).some((val) => {
|
Object.keys(value.split(currentSeparator)).some((val) => {
|
||||||
var match = false;
|
var match = false
|
||||||
Object.keys(datas).some((key) => {
|
Object.keys(datas).some((key) => {
|
||||||
if (datas[key].value == ('' + temp[val])) {
|
if (datas[key].value == ('' + temp[val])) {
|
||||||
actions.push(datas[key].label + currentSeparator);
|
actions.push(datas[key].label + currentSeparator)
|
||||||
match = true;
|
match = true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (!match) {
|
if (!match) {
|
||||||
actions.push(temp[val] + currentSeparator);
|
actions.push(temp[val] + currentSeparator)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return actions.join('').substring(0, actions.join('').length - 1);
|
return actions.join('').substring(0, actions.join('').length - 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 字符串格式化(%s )
|
// 字符串格式化(%s )
|
||||||
export function sprintf(str) {
|
export function sprintf(str) {
|
||||||
var args = arguments, flag = true, i = 1;
|
var args = arguments, flag = true, i = 1
|
||||||
str = str.replace(/%s/g, function () {
|
str = str.replace(/%s/g, function () {
|
||||||
var arg = args[i++];
|
var arg = args[i++]
|
||||||
if (typeof arg === 'undefined') {
|
if (typeof arg === 'undefined') {
|
||||||
flag = false;
|
flag = false
|
||||||
return '';
|
return ''
|
||||||
}
|
}
|
||||||
return arg;
|
return arg
|
||||||
});
|
})
|
||||||
return flag ? str : '';
|
return flag ? str : ''
|
||||||
}
|
}
|
||||||
|
|
||||||
// 转换字符串,undefined,null等转化为""
|
// 转换字符串,undefined,null等转化为""
|
||||||
export function parseStrEmpty(str) {
|
export function parseStrEmpty(str) {
|
||||||
if (!str || str == "undefined" || str == "null") {
|
if (!str || str == "undefined" || str == "null") {
|
||||||
return "";
|
return ""
|
||||||
}
|
}
|
||||||
return str;
|
return str
|
||||||
}
|
}
|
||||||
|
|
||||||
// 数据合并
|
// 数据合并
|
||||||
@ -137,16 +137,16 @@ export function mergeRecursive(source, target) {
|
|||||||
for (var p in target) {
|
for (var p in target) {
|
||||||
try {
|
try {
|
||||||
if (target[p].constructor == Object) {
|
if (target[p].constructor == Object) {
|
||||||
source[p] = mergeRecursive(source[p], target[p]);
|
source[p] = mergeRecursive(source[p], target[p])
|
||||||
} else {
|
} else {
|
||||||
source[p] = target[p];
|
source[p] = target[p]
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
source[p] = target[p];
|
source[p] = target[p]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return source;
|
return source
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造树型结构数据
|
* 构造树型结构数据
|
||||||
@ -160,15 +160,15 @@ export function handleTree(data, id, parentId, children) {
|
|||||||
id: id || 'id',
|
id: id || 'id',
|
||||||
parentId: parentId || 'parentId',
|
parentId: parentId || 'parentId',
|
||||||
childrenList: children || 'children'
|
childrenList: children || 'children'
|
||||||
};
|
}
|
||||||
|
|
||||||
var childrenListMap = {};
|
var childrenListMap = {}
|
||||||
var tree = [];
|
var tree = []
|
||||||
for (let d of data) {
|
for (let d of data) {
|
||||||
let id = d[config.id];
|
let id = d[config.id]
|
||||||
childrenListMap[id] = d;
|
childrenListMap[id] = d
|
||||||
if (!d[config.childrenList]) {
|
if (!d[config.childrenList]) {
|
||||||
d[config.childrenList] = [];
|
d[config.childrenList] = []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,12 +176,12 @@ export function handleTree(data, id, parentId, children) {
|
|||||||
let parentId = d[config.parentId]
|
let parentId = d[config.parentId]
|
||||||
let parentObj = childrenListMap[parentId]
|
let parentObj = childrenListMap[parentId]
|
||||||
if (!parentObj) {
|
if (!parentObj) {
|
||||||
tree.push(d);
|
tree.push(d)
|
||||||
} else {
|
} else {
|
||||||
parentObj[config.childrenList].push(d)
|
parentObj[config.childrenList].push(d)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tree;
|
return tree
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -191,19 +191,19 @@ export function handleTree(data, id, parentId, children) {
|
|||||||
export function tansParams(params) {
|
export function tansParams(params) {
|
||||||
let result = ''
|
let result = ''
|
||||||
for (const propName of Object.keys(params)) {
|
for (const propName of Object.keys(params)) {
|
||||||
const value = params[propName];
|
const value = params[propName]
|
||||||
var part = encodeURIComponent(propName) + "=";
|
var part = encodeURIComponent(propName) + "="
|
||||||
if (value !== null && value !== "" && typeof (value) !== "undefined") {
|
if (value !== null && value !== "" && typeof (value) !== "undefined") {
|
||||||
if (typeof value === 'object') {
|
if (typeof value === 'object') {
|
||||||
for (const key of Object.keys(value)) {
|
for (const key of Object.keys(value)) {
|
||||||
if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
|
if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
|
||||||
let params = propName + '[' + key + ']';
|
let params = propName + '[' + key + ']'
|
||||||
var subPart = encodeURIComponent(params) + "=";
|
var subPart = encodeURIComponent(params) + "="
|
||||||
result += subPart + encodeURIComponent(value[key]) + "&";
|
result += subPart + encodeURIComponent(value[key]) + "&"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result += part + encodeURIComponent(value) + "&";
|
result += part + encodeURIComponent(value) + "&"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -214,7 +214,7 @@ export function tansParams(params) {
|
|||||||
export function getNormalPath(p) {
|
export function getNormalPath(p) {
|
||||||
if (p.length === 0 || !p || p == 'undefined') {
|
if (p.length === 0 || !p || p == 'undefined') {
|
||||||
return p
|
return p
|
||||||
};
|
}
|
||||||
let res = p.replace('//', '/')
|
let res = p.replace('//', '/')
|
||||||
if (res[res.length - 1] === '/') {
|
if (res[res.length - 1] === '/') {
|
||||||
return res.slice(0, res.length - 1)
|
return res.slice(0, res.length - 1)
|
||||||
|
|||||||
@ -909,15 +909,15 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 版本号
|
// 版本号
|
||||||
version: "3.6.5",
|
version: "3.6.5"
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
goTarget(href) {
|
goTarget(href) {
|
||||||
window.open(href, "_blank");
|
window.open(href, "_blank")
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|||||||
@ -62,8 +62,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCodeImg } from "@/api/login";
|
import { getCodeImg } from "@/api/login"
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie"
|
||||||
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -94,66 +94,66 @@ export default {
|
|||||||
// 注册开关
|
// 注册开关
|
||||||
register: false,
|
register: false,
|
||||||
redirect: undefined
|
redirect: undefined
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
$route: {
|
$route: {
|
||||||
handler: function(route) {
|
handler: function(route) {
|
||||||
this.redirect = route.query && route.query.redirect;
|
this.redirect = route.query && route.query.redirect
|
||||||
},
|
},
|
||||||
immediate: true
|
immediate: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getCode();
|
this.getCode()
|
||||||
this.getCookie();
|
this.getCookie()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getCode() {
|
getCode() {
|
||||||
getCodeImg().then(res => {
|
getCodeImg().then(res => {
|
||||||
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;
|
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
this.codeUrl = "data:image/gif;base64," + res.img;
|
this.codeUrl = "data:image/gif;base64," + res.img
|
||||||
this.loginForm.uuid = res.uuid;
|
this.loginForm.uuid = res.uuid
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
getCookie() {
|
getCookie() {
|
||||||
const username = Cookies.get("username");
|
const username = Cookies.get("username")
|
||||||
const password = Cookies.get("password");
|
const password = Cookies.get("password")
|
||||||
const rememberMe = Cookies.get('rememberMe')
|
const rememberMe = Cookies.get('rememberMe')
|
||||||
this.loginForm = {
|
this.loginForm = {
|
||||||
username: username === undefined ? this.loginForm.username : username,
|
username: username === undefined ? this.loginForm.username : username,
|
||||||
password: password === undefined ? this.loginForm.password : decrypt(password),
|
password: password === undefined ? this.loginForm.password : decrypt(password),
|
||||||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
|
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
this.$refs.loginForm.validate(valid => {
|
this.$refs.loginForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
if (this.loginForm.rememberMe) {
|
if (this.loginForm.rememberMe) {
|
||||||
Cookies.set("username", this.loginForm.username, { expires: 30 });
|
Cookies.set("username", this.loginForm.username, { expires: 30 })
|
||||||
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
|
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 })
|
||||||
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
|
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 })
|
||||||
} else {
|
} else {
|
||||||
Cookies.remove("username");
|
Cookies.remove("username")
|
||||||
Cookies.remove("password");
|
Cookies.remove("password")
|
||||||
Cookies.remove('rememberMe');
|
Cookies.remove('rememberMe')
|
||||||
}
|
}
|
||||||
this.$store.dispatch("Login", this.loginForm).then(() => {
|
this.$store.dispatch("Login", this.loginForm).then(() => {
|
||||||
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
|
this.$router.push({ path: this.redirect || "/" }).catch(()=>{})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
this.getCode();
|
this.getCode()
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style rel="stylesheet/scss" lang="scss">
|
<style rel="stylesheet/scss" lang="scss">
|
||||||
|
|||||||
@ -67,18 +67,18 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCodeImg, register } from "@/api/login";
|
import { getCodeImg, register } from "@/api/login"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Register",
|
name: "Register",
|
||||||
data() {
|
data() {
|
||||||
const equalToPassword = (rule, value, callback) => {
|
const equalToPassword = (rule, value, callback) => {
|
||||||
if (this.registerForm.password !== value) {
|
if (this.registerForm.password !== value) {
|
||||||
callback(new Error("两次输入的密码不一致"));
|
callback(new Error("两次输入的密码不一致"))
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
title: process.env.VUE_APP_TITLE,
|
title: process.env.VUE_APP_TITLE,
|
||||||
codeUrl: "",
|
codeUrl: "",
|
||||||
@ -107,44 +107,44 @@ export default {
|
|||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
captchaEnabled: true
|
captchaEnabled: true
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getCode();
|
this.getCode()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getCode() {
|
getCode() {
|
||||||
getCodeImg().then(res => {
|
getCodeImg().then(res => {
|
||||||
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;
|
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
this.codeUrl = "data:image/gif;base64," + res.img;
|
this.codeUrl = "data:image/gif;base64," + res.img
|
||||||
this.registerForm.uuid = res.uuid;
|
this.registerForm.uuid = res.uuid
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
handleRegister() {
|
handleRegister() {
|
||||||
this.$refs.registerForm.validate(valid => {
|
this.$refs.registerForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
register(this.registerForm).then(res => {
|
register(this.registerForm).then(res => {
|
||||||
const username = this.registerForm.username;
|
const username = this.registerForm.username
|
||||||
this.$alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', {
|
this.$alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', {
|
||||||
dangerouslyUseHTMLString: true,
|
dangerouslyUseHTMLString: true,
|
||||||
type: 'success'
|
type: 'success'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$router.push("/login");
|
this.$router.push("/login")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
this.getCode();
|
this.getCode()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style rel="stylesheet/scss" lang="scss">
|
<style rel="stylesheet/scss" lang="scss">
|
||||||
|
|||||||
@ -181,7 +181,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listConfig, getConfig, delConfig, addConfig, updateConfig, refreshCache } from "@/api/system/config";
|
import { listConfig, getConfig, delConfig, addConfig, updateConfig, refreshCache } from "@/api/system/config"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Config",
|
name: "Config",
|
||||||
@ -230,26 +230,26 @@ export default {
|
|||||||
{ required: true, message: "参数键值不能为空", trigger: "blur" }
|
{ required: true, message: "参数键值不能为空", trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询参数列表 */
|
/** 查询参数列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
this.configList = response.rows;
|
this.configList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -260,25 +260,25 @@ export default {
|
|||||||
configValue: undefined,
|
configValue: undefined,
|
||||||
configType: "Y",
|
configType: "Y",
|
||||||
remark: undefined
|
remark: undefined
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRange = [];
|
this.dateRange = []
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加参数";
|
this.title = "添加参数"
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -288,13 +288,13 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const configId = row.configId || this.ids
|
const configId = row.configId || this.ids
|
||||||
getConfig(configId).then(response => {
|
getConfig(configId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改参数";
|
this.title = "修改参数"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -302,29 +302,29 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.configId != undefined) {
|
if (this.form.configId != undefined) {
|
||||||
updateConfig(this.form).then(response => {
|
updateConfig(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addConfig(this.form).then(response => {
|
addConfig(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const configIds = row.configId || this.ids;
|
const configIds = row.configId || this.ids
|
||||||
this.$modal.confirm('是否确认删除参数编号为"' + configIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除参数编号为"' + configIds + '"的数据项?').then(function() {
|
||||||
return delConfig(configIds);
|
return delConfig(configIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -335,9 +335,9 @@ export default {
|
|||||||
/** 刷新缓存按钮操作 */
|
/** 刷新缓存按钮操作 */
|
||||||
handleRefreshCache() {
|
handleRefreshCache() {
|
||||||
refreshCache().then(() => {
|
refreshCache().then(() => {
|
||||||
this.$modal.msgSuccess("刷新成功");
|
this.$modal.msgSuccess("刷新成功")
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -158,9 +158,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept";
|
import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept"
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect"
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Dept",
|
name: "Dept",
|
||||||
@ -217,35 +217,35 @@ export default {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询部门列表 */
|
/** 查询部门列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listDept(this.queryParams).then(response => {
|
listDept(this.queryParams).then(response => {
|
||||||
this.deptList = this.handleTree(response.data, "deptId");
|
this.deptList = this.handleTree(response.data, "deptId")
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 转换部门数据结构 */
|
/** 转换部门数据结构 */
|
||||||
normalizer(node) {
|
normalizer(node) {
|
||||||
if (node.children && !node.children.length) {
|
if (node.children && !node.children.length) {
|
||||||
delete node.children;
|
delete node.children
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
id: node.deptId,
|
id: node.deptId,
|
||||||
label: node.deptName,
|
label: node.deptName,
|
||||||
children: node.children
|
children: node.children
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -258,49 +258,53 @@ export default {
|
|||||||
phone: undefined,
|
phone: undefined,
|
||||||
email: undefined,
|
email: undefined,
|
||||||
status: "0"
|
status: "0"
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd(row) {
|
handleAdd(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
if (row != undefined) {
|
if (row != undefined) {
|
||||||
this.form.parentId = row.deptId;
|
this.form.parentId = row.deptId
|
||||||
}
|
}
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加部门";
|
this.title = "添加部门"
|
||||||
listDept().then(response => {
|
listDept().then(response => {
|
||||||
this.deptOptions = this.handleTree(response.data, "deptId");
|
this.deptOptions = this.handleTree(response.data, "deptId")
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 展开/折叠操作 */
|
/** 展开/折叠操作 */
|
||||||
toggleExpandAll() {
|
toggleExpandAll() {
|
||||||
this.refreshTable = false;
|
this.refreshTable = false
|
||||||
this.isExpandAll = !this.isExpandAll;
|
this.isExpandAll = !this.isExpandAll
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.refreshTable = true;
|
this.refreshTable = true
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
getDept(row.deptId).then(response => {
|
getDept(row.deptId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改部门";
|
this.title = "修改部门"
|
||||||
});
|
|
||||||
listDeptExcludeChild(row.deptId).then(response => {
|
listDeptExcludeChild(row.deptId).then(response => {
|
||||||
this.deptOptions = this.handleTree(response.data, "deptId");
|
this.deptOptions = this.handleTree(response.data, "deptId")
|
||||||
});
|
if (this.deptOptions.length == 0) {
|
||||||
|
const noResultsOptions = { deptId: this.form.parentId, deptName: this.form.parentName, children: [] }
|
||||||
|
this.deptOptions.push(noResultsOptions)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -308,29 +312,29 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.deptId != undefined) {
|
if (this.form.deptId != undefined) {
|
||||||
updateDept(this.form).then(response => {
|
updateDept(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addDept(this.form).then(response => {
|
addDept(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function() {
|
||||||
return delDept(row.deptId);
|
return delDept(row.deptId)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -190,8 +190,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data";
|
import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data"
|
||||||
import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type";
|
import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Data",
|
name: "Data",
|
||||||
@ -269,41 +269,41 @@ export default {
|
|||||||
{ required: true, message: "数据顺序不能为空", trigger: "blur" }
|
{ required: true, message: "数据顺序不能为空", trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
const dictId = this.$route.params && this.$route.params.dictId;
|
const dictId = this.$route.params && this.$route.params.dictId
|
||||||
this.getType(dictId);
|
this.getType(dictId)
|
||||||
this.getTypeList();
|
this.getTypeList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询字典类型详细 */
|
/** 查询字典类型详细 */
|
||||||
getType(dictId) {
|
getType(dictId) {
|
||||||
getType(dictId).then(response => {
|
getType(dictId).then(response => {
|
||||||
this.queryParams.dictType = response.data.dictType;
|
this.queryParams.dictType = response.data.dictType
|
||||||
this.defaultDictType = response.data.dictType;
|
this.defaultDictType = response.data.dictType
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 查询字典类型列表 */
|
/** 查询字典类型列表 */
|
||||||
getTypeList() {
|
getTypeList() {
|
||||||
getDictOptionselect().then(response => {
|
getDictOptionselect().then(response => {
|
||||||
this.typeOptions = response.data;
|
this.typeOptions = response.data
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 查询字典数据列表 */
|
/** 查询字典数据列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listData(this.queryParams).then(response => {
|
listData(this.queryParams).then(response => {
|
||||||
this.dataList = response.rows;
|
this.dataList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -316,31 +316,31 @@ export default {
|
|||||||
dictSort: 0,
|
dictSort: 0,
|
||||||
status: "0",
|
status: "0",
|
||||||
remark: undefined
|
remark: undefined
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 返回按钮操作 */
|
/** 返回按钮操作 */
|
||||||
handleClose() {
|
handleClose() {
|
||||||
const obj = { path: "/system/dict" };
|
const obj = { path: "/system/dict" }
|
||||||
this.$tab.closeOpenPage(obj);
|
this.$tab.closeOpenPage(obj)
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.queryParams.dictType = this.defaultDictType;
|
this.queryParams.dictType = this.defaultDictType
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加字典数据";
|
this.title = "添加字典数据"
|
||||||
this.form.dictType = this.queryParams.dictType;
|
this.form.dictType = this.queryParams.dictType
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -350,13 +350,13 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const dictCode = row.dictCode || this.ids
|
const dictCode = row.dictCode || this.ids
|
||||||
getData(dictCode).then(response => {
|
getData(dictCode).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改字典数据";
|
this.title = "修改字典数据"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -364,32 +364,32 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.dictCode != undefined) {
|
if (this.form.dictCode != undefined) {
|
||||||
updateData(this.form).then(response => {
|
updateData(this.form).then(response => {
|
||||||
this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
|
this.$store.dispatch('dict/removeDict', this.queryParams.dictType)
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addData(this.form).then(response => {
|
addData(this.form).then(response => {
|
||||||
this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
|
this.$store.dispatch('dict/removeDict', this.queryParams.dictType)
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const dictCodes = row.dictCode || this.ids;
|
const dictCodes = row.dictCode || this.ids
|
||||||
this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function() {
|
||||||
return delData(dictCodes);
|
return delData(dictCodes)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
|
this.$store.dispatch('dict/removeDict', this.queryParams.dictType)
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -398,5 +398,5 @@ export default {
|
|||||||
}, `data_${new Date().getTime()}.xlsx`)
|
}, `data_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -188,7 +188,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
|
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Dict",
|
name: "Dict",
|
||||||
@ -234,26 +234,26 @@ export default {
|
|||||||
{ required: true, message: "字典类型不能为空", trigger: "blur" }
|
{ required: true, message: "字典类型不能为空", trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询字典类型列表 */
|
/** 查询字典类型列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
this.typeList = response.rows;
|
this.typeList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -263,25 +263,25 @@ export default {
|
|||||||
dictType: undefined,
|
dictType: undefined,
|
||||||
status: "0",
|
status: "0",
|
||||||
remark: undefined
|
remark: undefined
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRange = [];
|
this.dateRange = []
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加字典类型";
|
this.title = "添加字典类型"
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -291,13 +291,13 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const dictId = row.dictId || this.ids
|
const dictId = row.dictId || this.ids
|
||||||
getType(dictId).then(response => {
|
getType(dictId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改字典类型";
|
this.title = "修改字典类型"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -305,29 +305,29 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.dictId != undefined) {
|
if (this.form.dictId != undefined) {
|
||||||
updateType(this.form).then(response => {
|
updateType(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addType(this.form).then(response => {
|
addType(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const dictIds = row.dictId || this.ids;
|
const dictIds = row.dictId || this.ids
|
||||||
this.$modal.confirm('是否确认删除字典编号为"' + dictIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除字典编号为"' + dictIds + '"的数据项?').then(function() {
|
||||||
return delType(dictIds);
|
return delType(dictIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -338,10 +338,10 @@ export default {
|
|||||||
/** 刷新缓存按钮操作 */
|
/** 刷新缓存按钮操作 */
|
||||||
handleRefreshCache() {
|
handleRefreshCache() {
|
||||||
refreshCache().then(() => {
|
refreshCache().then(() => {
|
||||||
this.$modal.msgSuccess("刷新成功");
|
this.$modal.msgSuccess("刷新成功")
|
||||||
this.$store.dispatch('dict/cleanDict');
|
this.$store.dispatch('dict/cleanDict')
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -127,7 +127,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { list, delLogininfor, cleanLogininfor, unlockLogininfor } from "@/api/system/logininfor";
|
import { list, delLogininfor, cleanLogininfor, unlockLogininfor } from "@/api/system/logininfor"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Logininfor",
|
name: "Logininfor",
|
||||||
@ -162,32 +162,32 @@ export default {
|
|||||||
userName: undefined,
|
userName: undefined,
|
||||||
status: undefined
|
status: undefined
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询登录日志列表 */
|
/** 查询登录日志列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
this.list = response.rows;
|
this.list = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRange = [];
|
this.dateRange = []
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
|
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
|
||||||
},
|
},
|
||||||
/** 多选框选中数据 */
|
/** 多选框选中数据 */
|
||||||
@ -195,41 +195,41 @@ export default {
|
|||||||
this.ids = selection.map(item => item.infoId)
|
this.ids = selection.map(item => item.infoId)
|
||||||
this.single = selection.length!=1
|
this.single = selection.length!=1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
this.selectName = selection.map(item => item.userName);
|
this.selectName = selection.map(item => item.userName)
|
||||||
},
|
},
|
||||||
/** 排序触发事件 */
|
/** 排序触发事件 */
|
||||||
handleSortChange(column, prop, order) {
|
handleSortChange(column, prop, order) {
|
||||||
this.queryParams.orderByColumn = column.prop;
|
this.queryParams.orderByColumn = column.prop
|
||||||
this.queryParams.isAsc = column.order;
|
this.queryParams.isAsc = column.order
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const infoIds = row.infoId || this.ids;
|
const infoIds = row.infoId || this.ids
|
||||||
this.$modal.confirm('是否确认删除访问编号为"' + infoIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除访问编号为"' + infoIds + '"的数据项?').then(function() {
|
||||||
return delLogininfor(infoIds);
|
return delLogininfor(infoIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 清空按钮操作 */
|
/** 清空按钮操作 */
|
||||||
handleClean() {
|
handleClean() {
|
||||||
this.$modal.confirm('是否确认清空所有登录日志数据项?').then(function() {
|
this.$modal.confirm('是否确认清空所有登录日志数据项?').then(function() {
|
||||||
return cleanLogininfor();
|
return cleanLogininfor()
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("清空成功");
|
this.$modal.msgSuccess("清空成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 解锁按钮操作 */
|
/** 解锁按钮操作 */
|
||||||
handleUnlock() {
|
handleUnlock() {
|
||||||
const username = this.selectName;
|
const username = this.selectName
|
||||||
this.$modal.confirm('是否确认解锁用户"' + username + '"数据项?').then(function() {
|
this.$modal.confirm('是否确认解锁用户"' + username + '"数据项?').then(function() {
|
||||||
return unlockLogininfor(username);
|
return unlockLogininfor(username)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess("用户" + username + "解锁成功");
|
this.$modal.msgSuccess("用户" + username + "解锁成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -238,6 +238,6 @@ export default {
|
|||||||
}, `logininfor_${new Date().getTime()}.xlsx`)
|
}, `logininfor_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -299,10 +299,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listMenu, getMenu, delMenu, addMenu, updateMenu } from "@/api/system/menu";
|
import { listMenu, getMenu, delMenu, addMenu, updateMenu } from "@/api/system/menu"
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect"
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
|
||||||
import IconSelect from "@/components/IconSelect";
|
import IconSelect from "@/components/IconSelect"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Menu",
|
name: "Menu",
|
||||||
@ -345,48 +345,48 @@ export default {
|
|||||||
{ required: true, message: "路由地址不能为空", trigger: "blur" }
|
{ required: true, message: "路由地址不能为空", trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 选择图标
|
// 选择图标
|
||||||
selected(name) {
|
selected(name) {
|
||||||
this.form.icon = name;
|
this.form.icon = name
|
||||||
},
|
},
|
||||||
/** 查询菜单列表 */
|
/** 查询菜单列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listMenu(this.queryParams).then(response => {
|
listMenu(this.queryParams).then(response => {
|
||||||
this.menuList = this.handleTree(response.data, "menuId");
|
this.menuList = this.handleTree(response.data, "menuId")
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 转换菜单数据结构 */
|
/** 转换菜单数据结构 */
|
||||||
normalizer(node) {
|
normalizer(node) {
|
||||||
if (node.children && !node.children.length) {
|
if (node.children && !node.children.length) {
|
||||||
delete node.children;
|
delete node.children
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
id: node.menuId,
|
id: node.menuId,
|
||||||
label: node.menuName,
|
label: node.menuName,
|
||||||
children: node.children
|
children: node.children
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
/** 查询菜单下拉树结构 */
|
/** 查询菜单下拉树结构 */
|
||||||
getTreeselect() {
|
getTreeselect() {
|
||||||
listMenu().then(response => {
|
listMenu().then(response => {
|
||||||
this.menuOptions = [];
|
this.menuOptions = []
|
||||||
const menu = { menuId: 0, menuName: '主类目', children: [] };
|
const menu = { menuId: 0, menuName: '主类目', children: [] }
|
||||||
menu.children = this.handleTree(response.data, "menuId");
|
menu.children = this.handleTree(response.data, "menuId")
|
||||||
this.menuOptions.push(menu);
|
this.menuOptions.push(menu)
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -401,47 +401,47 @@ export default {
|
|||||||
isCache: "0",
|
isCache: "0",
|
||||||
visible: "0",
|
visible: "0",
|
||||||
status: "0"
|
status: "0"
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd(row) {
|
handleAdd(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.getTreeselect();
|
this.getTreeselect()
|
||||||
if (row != null && row.menuId) {
|
if (row != null && row.menuId) {
|
||||||
this.form.parentId = row.menuId;
|
this.form.parentId = row.menuId
|
||||||
} else {
|
} else {
|
||||||
this.form.parentId = 0;
|
this.form.parentId = 0
|
||||||
}
|
}
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加菜单";
|
this.title = "添加菜单"
|
||||||
},
|
},
|
||||||
/** 展开/折叠操作 */
|
/** 展开/折叠操作 */
|
||||||
toggleExpandAll() {
|
toggleExpandAll() {
|
||||||
this.refreshTable = false;
|
this.refreshTable = false
|
||||||
this.isExpandAll = !this.isExpandAll;
|
this.isExpandAll = !this.isExpandAll
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.refreshTable = true;
|
this.refreshTable = true
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.getTreeselect();
|
this.getTreeselect()
|
||||||
getMenu(row.menuId).then(response => {
|
getMenu(row.menuId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改菜单";
|
this.title = "修改菜单"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -449,29 +449,29 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.menuId != undefined) {
|
if (this.form.menuId != undefined) {
|
||||||
updateMenu(this.form).then(response => {
|
updateMenu(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addMenu(this.form).then(response => {
|
addMenu(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$modal.confirm('是否确认删除名称为"' + row.menuName + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除名称为"' + row.menuName + '"的数据项?').then(function() {
|
||||||
return delMenu(row.menuId);
|
return delMenu(row.menuId)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -170,7 +170,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/system/notice";
|
import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/system/notice"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Notice",
|
name: "Notice",
|
||||||
@ -214,25 +214,25 @@ export default {
|
|||||||
{ required: true, message: "公告类型不能为空", trigger: "change" }
|
{ required: true, message: "公告类型不能为空", trigger: "change" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询公告列表 */
|
/** 查询公告列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listNotice(this.queryParams).then(response => {
|
listNotice(this.queryParams).then(response => {
|
||||||
this.noticeList = response.rows;
|
this.noticeList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -242,18 +242,18 @@ export default {
|
|||||||
noticeType: undefined,
|
noticeType: undefined,
|
||||||
noticeContent: undefined,
|
noticeContent: undefined,
|
||||||
status: "0"
|
status: "0"
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -263,19 +263,19 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加公告";
|
this.title = "添加公告"
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const noticeId = row.noticeId || this.ids
|
const noticeId = row.noticeId || this.ids
|
||||||
getNotice(noticeId).then(response => {
|
getNotice(noticeId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改公告";
|
this.title = "修改公告"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -283,30 +283,30 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.noticeId != undefined) {
|
if (this.form.noticeId != undefined) {
|
||||||
updateNotice(this.form).then(response => {
|
updateNotice(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addNotice(this.form).then(response => {
|
addNotice(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const noticeIds = row.noticeId || this.ids
|
const noticeIds = row.noticeId || this.ids
|
||||||
this.$modal.confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?').then(function() {
|
||||||
return delNotice(noticeIds);
|
return delNotice(noticeIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -207,7 +207,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { list, delOperlog, cleanOperlog } from "@/api/system/operlog";
|
import { list, delOperlog, cleanOperlog } from "@/api/system/operlog"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Operlog",
|
name: "Operlog",
|
||||||
@ -244,36 +244,36 @@ export default {
|
|||||||
businessType: undefined,
|
businessType: undefined,
|
||||||
status: undefined
|
status: undefined
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询登录日志 */
|
/** 查询登录日志 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
list(this.addDateRange(this.queryParams, this.dateRange)).then( response => {
|
list(this.addDateRange(this.queryParams, this.dateRange)).then( response => {
|
||||||
this.list = response.rows;
|
this.list = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
// 操作日志类型字典翻译
|
// 操作日志类型字典翻译
|
||||||
typeFormat(row, column) {
|
typeFormat(row, column) {
|
||||||
return this.selectDictLabel(this.dict.type.sys_oper_type, row.businessType);
|
return this.selectDictLabel(this.dict.type.sys_oper_type, row.businessType)
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRange = [];
|
this.dateRange = []
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
|
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
|
||||||
},
|
},
|
||||||
/** 多选框选中数据 */
|
/** 多选框选中数据 */
|
||||||
@ -283,33 +283,33 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 排序触发事件 */
|
/** 排序触发事件 */
|
||||||
handleSortChange(column, prop, order) {
|
handleSortChange(column, prop, order) {
|
||||||
this.queryParams.orderByColumn = column.prop;
|
this.queryParams.orderByColumn = column.prop
|
||||||
this.queryParams.isAsc = column.order;
|
this.queryParams.isAsc = column.order
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 详细按钮操作 */
|
/** 详细按钮操作 */
|
||||||
handleView(row) {
|
handleView(row) {
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.form = row;
|
this.form = row
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const operIds = row.operId || this.ids;
|
const operIds = row.operId || this.ids
|
||||||
this.$modal.confirm('是否确认删除日志编号为"' + operIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除日志编号为"' + operIds + '"的数据项?').then(function() {
|
||||||
return delOperlog(operIds);
|
return delOperlog(operIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 清空按钮操作 */
|
/** 清空按钮操作 */
|
||||||
handleClean() {
|
handleClean() {
|
||||||
this.$modal.confirm('是否确认清空所有操作日志数据项?').then(function() {
|
this.$modal.confirm('是否确认清空所有操作日志数据项?').then(function() {
|
||||||
return cleanOperlog();
|
return cleanOperlog()
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("清空成功");
|
this.$modal.msgSuccess("清空成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -318,6 +318,6 @@ export default {
|
|||||||
}, `operlog_${new Date().getTime()}.xlsx`)
|
}, `operlog_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -157,7 +157,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post";
|
import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Post",
|
name: "Post",
|
||||||
@ -204,25 +204,25 @@ export default {
|
|||||||
{ required: true, message: "岗位顺序不能为空", trigger: "blur" }
|
{ required: true, message: "岗位顺序不能为空", trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询岗位列表 */
|
/** 查询岗位列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listPost(this.queryParams).then(response => {
|
listPost(this.queryParams).then(response => {
|
||||||
this.postList = response.rows;
|
this.postList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -233,18 +233,18 @@ export default {
|
|||||||
postSort: 0,
|
postSort: 0,
|
||||||
status: "0",
|
status: "0",
|
||||||
remark: undefined
|
remark: undefined
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -254,19 +254,19 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加岗位";
|
this.title = "添加岗位"
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const postId = row.postId || this.ids
|
const postId = row.postId || this.ids
|
||||||
getPost(postId).then(response => {
|
getPost(postId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改岗位";
|
this.title = "修改岗位"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -274,29 +274,29 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.postId != undefined) {
|
if (this.form.postId != undefined) {
|
||||||
updatePost(this.form).then(response => {
|
updatePost(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addPost(this.form).then(response => {
|
addPost(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const postIds = row.postId || this.ids;
|
const postIds = row.postId || this.ids
|
||||||
this.$modal.confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?').then(function() {
|
||||||
return delPost(postIds);
|
return delPost(postIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -305,5 +305,5 @@ export default {
|
|||||||
}, `post_${new Date().getTime()}.xlsx`)
|
}, `post_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -100,8 +100,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role";
|
import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role"
|
||||||
import selectUser from "./selectUser";
|
import selectUser from "./selectUser"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AuthUser",
|
name: "AuthUser",
|
||||||
@ -129,40 +129,40 @@ export default {
|
|||||||
userName: undefined,
|
userName: undefined,
|
||||||
phonenumber: undefined
|
phonenumber: undefined
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
const roleId = this.$route.params && this.$route.params.roleId;
|
const roleId = this.$route.params && this.$route.params.roleId
|
||||||
if (roleId) {
|
if (roleId) {
|
||||||
this.queryParams.roleId = roleId;
|
this.queryParams.roleId = roleId
|
||||||
this.getList();
|
this.getList()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询授权用户列表 */
|
/** 查询授权用户列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
allocatedUserList(this.queryParams).then(response => {
|
allocatedUserList(this.queryParams).then(response => {
|
||||||
this.userList = response.rows;
|
this.userList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
// 返回按钮
|
// 返回按钮
|
||||||
handleClose() {
|
handleClose() {
|
||||||
const obj = { path: "/system/role" };
|
const obj = { path: "/system/role" }
|
||||||
this.$tab.closeOpenPage(obj);
|
this.$tab.closeOpenPage(obj)
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -171,29 +171,29 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 打开授权用户表弹窗 */
|
/** 打开授权用户表弹窗 */
|
||||||
openSelectUser() {
|
openSelectUser() {
|
||||||
this.$refs.select.show();
|
this.$refs.select.show()
|
||||||
},
|
},
|
||||||
/** 取消授权按钮操作 */
|
/** 取消授权按钮操作 */
|
||||||
cancelAuthUser(row) {
|
cancelAuthUser(row) {
|
||||||
const roleId = this.queryParams.roleId;
|
const roleId = this.queryParams.roleId
|
||||||
this.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function() {
|
this.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function() {
|
||||||
return authUserCancel({ userId: row.userId, roleId: roleId });
|
return authUserCancel({ userId: row.userId, roleId: roleId })
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("取消授权成功");
|
this.$modal.msgSuccess("取消授权成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 批量取消授权按钮操作 */
|
/** 批量取消授权按钮操作 */
|
||||||
cancelAuthUserAll(row) {
|
cancelAuthUserAll(row) {
|
||||||
const roleId = this.queryParams.roleId;
|
const roleId = this.queryParams.roleId
|
||||||
const userIds = this.userIds.join(",");
|
const userIds = this.userIds.join(",")
|
||||||
this.$modal.confirm('是否取消选中用户授权数据项?').then(function() {
|
this.$modal.confirm('是否取消选中用户授权数据项?').then(function() {
|
||||||
return authUserCancelAll({ roleId: roleId, userIds: userIds });
|
return authUserCancelAll({ roleId: roleId, userIds: userIds })
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("取消授权成功");
|
this.$modal.msgSuccess("取消授权成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -252,8 +252,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
|
import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"
|
||||||
import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
|
import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Role",
|
name: "Role",
|
||||||
@ -339,85 +339,85 @@ export default {
|
|||||||
{ required: true, message: "角色顺序不能为空", trigger: "blur" }
|
{ required: true, message: "角色顺序不能为空", trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询角色列表 */
|
/** 查询角色列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
this.roleList = response.rows;
|
this.roleList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
/** 查询菜单树结构 */
|
/** 查询菜单树结构 */
|
||||||
getMenuTreeselect() {
|
getMenuTreeselect() {
|
||||||
menuTreeselect().then(response => {
|
menuTreeselect().then(response => {
|
||||||
this.menuOptions = response.data;
|
this.menuOptions = response.data
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 所有菜单节点数据
|
// 所有菜单节点数据
|
||||||
getMenuAllCheckedKeys() {
|
getMenuAllCheckedKeys() {
|
||||||
// 目前被选中的菜单节点
|
// 目前被选中的菜单节点
|
||||||
let checkedKeys = this.$refs.menu.getCheckedKeys();
|
let checkedKeys = this.$refs.menu.getCheckedKeys()
|
||||||
// 半选中的菜单节点
|
// 半选中的菜单节点
|
||||||
let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
|
let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys()
|
||||||
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
|
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys)
|
||||||
return checkedKeys;
|
return checkedKeys
|
||||||
},
|
},
|
||||||
// 所有部门节点数据
|
// 所有部门节点数据
|
||||||
getDeptAllCheckedKeys() {
|
getDeptAllCheckedKeys() {
|
||||||
// 目前被选中的部门节点
|
// 目前被选中的部门节点
|
||||||
let checkedKeys = this.$refs.dept.getCheckedKeys();
|
let checkedKeys = this.$refs.dept.getCheckedKeys()
|
||||||
// 半选中的部门节点
|
// 半选中的部门节点
|
||||||
let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
|
let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys()
|
||||||
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
|
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys)
|
||||||
return checkedKeys;
|
return checkedKeys
|
||||||
},
|
},
|
||||||
/** 根据角色ID查询菜单树结构 */
|
/** 根据角色ID查询菜单树结构 */
|
||||||
getRoleMenuTreeselect(roleId) {
|
getRoleMenuTreeselect(roleId) {
|
||||||
return roleMenuTreeselect(roleId).then(response => {
|
return roleMenuTreeselect(roleId).then(response => {
|
||||||
this.menuOptions = response.menus;
|
this.menuOptions = response.menus
|
||||||
return response;
|
return response
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 根据角色ID查询部门树结构 */
|
/** 根据角色ID查询部门树结构 */
|
||||||
getDeptTree(roleId) {
|
getDeptTree(roleId) {
|
||||||
return deptTreeSelect(roleId).then(response => {
|
return deptTreeSelect(roleId).then(response => {
|
||||||
this.deptOptions = response.depts;
|
this.deptOptions = response.depts
|
||||||
return response;
|
return response
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 角色状态修改
|
// 角色状态修改
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用";
|
let text = row.status === "0" ? "启用" : "停用"
|
||||||
this.$modal.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?').then(function() {
|
this.$modal.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?').then(function() {
|
||||||
return changeRoleStatus(row.roleId, row.status);
|
return changeRoleStatus(row.roleId, row.status)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess(text + "成功");
|
this.$modal.msgSuccess(text + "成功")
|
||||||
}).catch(function() {
|
}).catch(function() {
|
||||||
row.status = row.status === "0" ? "1" : "0";
|
row.status = row.status === "0" ? "1" : "0"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 取消按钮(数据权限)
|
// 取消按钮(数据权限)
|
||||||
cancelDataScope() {
|
cancelDataScope() {
|
||||||
this.openDataScope = false;
|
this.openDataScope = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
if (this.$refs.menu != undefined) {
|
if (this.$refs.menu != undefined) {
|
||||||
this.$refs.menu.setCheckedKeys([]);
|
this.$refs.menu.setCheckedKeys([])
|
||||||
}
|
}
|
||||||
this.menuExpand = false,
|
this.menuExpand = false,
|
||||||
this.menuNodeAll = false,
|
this.menuNodeAll = false,
|
||||||
@ -434,19 +434,19 @@ export default {
|
|||||||
menuCheckStrictly: true,
|
menuCheckStrictly: true,
|
||||||
deptCheckStrictly: true,
|
deptCheckStrictly: true,
|
||||||
remark: undefined
|
remark: undefined
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRange = [];
|
this.dateRange = []
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
@ -458,141 +458,141 @@ export default {
|
|||||||
handleCommand(command, row) {
|
handleCommand(command, row) {
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case "handleDataScope":
|
case "handleDataScope":
|
||||||
this.handleDataScope(row);
|
this.handleDataScope(row)
|
||||||
break;
|
break
|
||||||
case "handleAuthUser":
|
case "handleAuthUser":
|
||||||
this.handleAuthUser(row);
|
this.handleAuthUser(row)
|
||||||
break;
|
break
|
||||||
default:
|
default:
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 树权限(展开/折叠)
|
// 树权限(展开/折叠)
|
||||||
handleCheckedTreeExpand(value, type) {
|
handleCheckedTreeExpand(value, type) {
|
||||||
if (type == 'menu') {
|
if (type == 'menu') {
|
||||||
let treeList = this.menuOptions;
|
let treeList = this.menuOptions
|
||||||
for (let i = 0; i < treeList.length; i++) {
|
for (let i = 0; i < treeList.length; i++) {
|
||||||
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
|
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value
|
||||||
}
|
}
|
||||||
} else if (type == 'dept') {
|
} else if (type == 'dept') {
|
||||||
let treeList = this.deptOptions;
|
let treeList = this.deptOptions
|
||||||
for (let i = 0; i < treeList.length; i++) {
|
for (let i = 0; i < treeList.length; i++) {
|
||||||
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
|
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 树权限(全选/全不选)
|
// 树权限(全选/全不选)
|
||||||
handleCheckedTreeNodeAll(value, type) {
|
handleCheckedTreeNodeAll(value, type) {
|
||||||
if (type == 'menu') {
|
if (type == 'menu') {
|
||||||
this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
|
this.$refs.menu.setCheckedNodes(value ? this.menuOptions: [])
|
||||||
} else if (type == 'dept') {
|
} else if (type == 'dept') {
|
||||||
this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
|
this.$refs.dept.setCheckedNodes(value ? this.deptOptions: [])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 树权限(父子联动)
|
// 树权限(父子联动)
|
||||||
handleCheckedTreeConnect(value, type) {
|
handleCheckedTreeConnect(value, type) {
|
||||||
if (type == 'menu') {
|
if (type == 'menu') {
|
||||||
this.form.menuCheckStrictly = value ? true: false;
|
this.form.menuCheckStrictly = value ? true: false
|
||||||
} else if (type == 'dept') {
|
} else if (type == 'dept') {
|
||||||
this.form.deptCheckStrictly = value ? true: false;
|
this.form.deptCheckStrictly = value ? true: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
this.getMenuTreeselect();
|
this.getMenuTreeselect()
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加角色";
|
this.title = "添加角色"
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const roleId = row.roleId || this.ids
|
const roleId = row.roleId || this.ids
|
||||||
const roleMenu = this.getRoleMenuTreeselect(roleId);
|
const roleMenu = this.getRoleMenuTreeselect(roleId)
|
||||||
getRole(roleId).then(response => {
|
getRole(roleId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
roleMenu.then(res => {
|
roleMenu.then(res => {
|
||||||
let checkedKeys = res.checkedKeys
|
let checkedKeys = res.checkedKeys
|
||||||
checkedKeys.forEach((v) => {
|
checkedKeys.forEach((v) => {
|
||||||
this.$nextTick(()=>{
|
this.$nextTick(()=>{
|
||||||
this.$refs.menu.setChecked(v, true ,false);
|
this.$refs.menu.setChecked(v, true ,false)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
this.title = "修改角色";
|
this.title = "修改角色"
|
||||||
},
|
},
|
||||||
/** 选择角色权限范围触发 */
|
/** 选择角色权限范围触发 */
|
||||||
dataScopeSelectChange(value) {
|
dataScopeSelectChange(value) {
|
||||||
if(value !== '2') {
|
if(value !== '2') {
|
||||||
this.$refs.dept.setCheckedKeys([]);
|
this.$refs.dept.setCheckedKeys([])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 分配数据权限操作 */
|
/** 分配数据权限操作 */
|
||||||
handleDataScope(row) {
|
handleDataScope(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const deptTreeSelect = this.getDeptTree(row.roleId);
|
const deptTreeSelect = this.getDeptTree(row.roleId)
|
||||||
getRole(row.roleId).then(response => {
|
getRole(row.roleId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.openDataScope = true;
|
this.openDataScope = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
deptTreeSelect.then(res => {
|
deptTreeSelect.then(res => {
|
||||||
this.$refs.dept.setCheckedKeys(res.checkedKeys);
|
this.$refs.dept.setCheckedKeys(res.checkedKeys)
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
this.title = "分配数据权限";
|
this.title = "分配数据权限"
|
||||||
},
|
},
|
||||||
/** 分配用户操作 */
|
/** 分配用户操作 */
|
||||||
handleAuthUser: function(row) {
|
handleAuthUser: function(row) {
|
||||||
const roleId = row.roleId;
|
const roleId = row.roleId
|
||||||
this.$router.push("/system/role-auth/user/" + roleId);
|
this.$router.push("/system/role-auth/user/" + roleId)
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.roleId != undefined) {
|
if (this.form.roleId != undefined) {
|
||||||
this.form.menuIds = this.getMenuAllCheckedKeys();
|
this.form.menuIds = this.getMenuAllCheckedKeys()
|
||||||
updateRole(this.form).then(response => {
|
updateRole(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
this.form.menuIds = this.getMenuAllCheckedKeys();
|
this.form.menuIds = this.getMenuAllCheckedKeys()
|
||||||
addRole(this.form).then(response => {
|
addRole(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮(数据权限) */
|
/** 提交按钮(数据权限) */
|
||||||
submitDataScope: function() {
|
submitDataScope: function() {
|
||||||
if (this.form.roleId != undefined) {
|
if (this.form.roleId != undefined) {
|
||||||
this.form.deptIds = this.getDeptAllCheckedKeys();
|
this.form.deptIds = this.getDeptAllCheckedKeys()
|
||||||
dataScope(this.form).then(response => {
|
dataScope(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.openDataScope = false;
|
this.openDataScope = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const roleIds = row.roleId || this.ids;
|
const roleIds = row.roleId || this.ids
|
||||||
this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function() {
|
||||||
return delRole(roleIds);
|
return delRole(roleIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -601,5 +601,5 @@ export default {
|
|||||||
}, `role_${new Date().getTime()}.xlsx`)
|
}, `role_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -57,7 +57,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { unallocatedUserList, authUserSelectAll } from "@/api/system/role";
|
import { unallocatedUserList, authUserSelectAll } from "@/api/system/role"
|
||||||
export default {
|
export default {
|
||||||
dicts: ['sys_normal_disable'],
|
dicts: ['sys_normal_disable'],
|
||||||
props: {
|
props: {
|
||||||
@ -84,53 +84,53 @@ export default {
|
|||||||
userName: undefined,
|
userName: undefined,
|
||||||
phonenumber: undefined
|
phonenumber: undefined
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 显示弹框
|
// 显示弹框
|
||||||
show() {
|
show() {
|
||||||
this.queryParams.roleId = this.roleId;
|
this.queryParams.roleId = this.roleId
|
||||||
this.getList();
|
this.getList()
|
||||||
this.visible = true;
|
this.visible = true
|
||||||
},
|
},
|
||||||
clickRow(row) {
|
clickRow(row) {
|
||||||
this.$refs.table.toggleRowSelection(row);
|
this.$refs.table.toggleRowSelection(row)
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.userIds = selection.map(item => item.userId);
|
this.userIds = selection.map(item => item.userId)
|
||||||
},
|
},
|
||||||
// 查询表数据
|
// 查询表数据
|
||||||
getList() {
|
getList() {
|
||||||
unallocatedUserList(this.queryParams).then(res => {
|
unallocatedUserList(this.queryParams).then(res => {
|
||||||
this.userList = res.rows;
|
this.userList = res.rows
|
||||||
this.total = res.total;
|
this.total = res.total
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 选择授权用户操作 */
|
/** 选择授权用户操作 */
|
||||||
handleSelectUser() {
|
handleSelectUser() {
|
||||||
const roleId = this.queryParams.roleId;
|
const roleId = this.queryParams.roleId
|
||||||
const userIds = this.userIds.join(",");
|
const userIds = this.userIds.join(",")
|
||||||
if (userIds == "") {
|
if (userIds == "") {
|
||||||
this.$modal.msgError("请选择要分配的用户");
|
this.$modal.msgError("请选择要分配的用户")
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => {
|
authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => {
|
||||||
this.$modal.msgSuccess(res.msg);
|
this.$modal.msgSuccess(res.msg)
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
this.$emit("ok");
|
this.$emit("ok")
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -46,7 +46,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getAuthRole, updateAuthRole } from "@/api/system/user";
|
import { getAuthRole, updateAuthRole } from "@/api/system/user"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AuthRole",
|
name: "AuthRole",
|
||||||
@ -64,60 +64,60 @@ export default {
|
|||||||
roles: [],
|
roles: [],
|
||||||
// 用户信息
|
// 用户信息
|
||||||
form: {}
|
form: {}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
const userId = this.$route.params && this.$route.params.userId;
|
const userId = this.$route.params && this.$route.params.userId
|
||||||
if (userId) {
|
if (userId) {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
getAuthRole(userId).then((response) => {
|
getAuthRole(userId).then((response) => {
|
||||||
this.form = response.user;
|
this.form = response.user
|
||||||
this.roles = response.roles;
|
this.roles = response.roles
|
||||||
this.total = this.roles.length;
|
this.total = this.roles.length
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.roles.forEach((row) => {
|
this.roles.forEach((row) => {
|
||||||
if (row.flag) {
|
if (row.flag) {
|
||||||
this.$refs.table.toggleRowSelection(row);
|
this.$refs.table.toggleRowSelection(row)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 单击选中行数据 */
|
/** 单击选中行数据 */
|
||||||
clickRow(row) {
|
clickRow(row) {
|
||||||
if (this.checkSelectable(row)) {
|
if (this.checkSelectable(row)) {
|
||||||
this.$refs.table.toggleRowSelection(row);
|
this.$refs.table.toggleRowSelection(row)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.roleIds = selection.map((item) => item.roleId);
|
this.roleIds = selection.map((item) => item.roleId)
|
||||||
},
|
},
|
||||||
// 保存选中的数据编号
|
// 保存选中的数据编号
|
||||||
getRowKey(row) {
|
getRowKey(row) {
|
||||||
return row.roleId;
|
return row.roleId
|
||||||
},
|
},
|
||||||
// 检查角色状态
|
// 检查角色状态
|
||||||
checkSelectable(row) {
|
checkSelectable(row) {
|
||||||
return row.status === "0" ? true : false;
|
return row.status === "0" ? true : false
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
const userId = this.form.userId;
|
const userId = this.form.userId
|
||||||
const roleIds = this.roleIds.join(",");
|
const roleIds = this.roleIds.join(",")
|
||||||
updateAuthRole({ userId: userId, roleIds: roleIds }).then((response) => {
|
updateAuthRole({ userId: userId, roleIds: roleIds }).then((response) => {
|
||||||
this.$modal.msgSuccess("授权成功");
|
this.$modal.msgSuccess("授权成功")
|
||||||
this.close();
|
this.close()
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 关闭按钮 */
|
/** 关闭按钮 */
|
||||||
close() {
|
close() {
|
||||||
const obj = { path: "/system/user" };
|
const obj = { path: "/system/user" }
|
||||||
this.$tab.closeOpenPage(obj);
|
this.$tab.closeOpenPage(obj)
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -201,12 +201,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
|
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth"
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect"
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
|
||||||
import { Splitpanes, Pane } from "splitpanes";
|
import { Splitpanes, Pane } from "splitpanes"
|
||||||
import "splitpanes/dist/splitpanes.css";
|
import "splitpanes/dist/splitpanes.css"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "User",
|
name: "User",
|
||||||
@ -315,76 +315,76 @@ export default {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
// 根据名称筛选部门树
|
// 根据名称筛选部门树
|
||||||
deptName(val) {
|
deptName(val) {
|
||||||
this.$refs.tree.filter(val);
|
this.$refs.tree.filter(val)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.getDeptTree();
|
this.getDeptTree()
|
||||||
this.getConfigKey("sys.user.initPassword").then(response => {
|
this.getConfigKey("sys.user.initPassword").then(response => {
|
||||||
this.initPassword = response.msg;
|
this.initPassword = response.msg
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询用户列表 */
|
/** 查询用户列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
this.userList = response.rows;
|
this.userList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
/** 查询部门下拉树结构 */
|
/** 查询部门下拉树结构 */
|
||||||
getDeptTree() {
|
getDeptTree() {
|
||||||
deptTreeSelect().then(response => {
|
deptTreeSelect().then(response => {
|
||||||
this.deptOptions = response.data;
|
this.deptOptions = response.data
|
||||||
this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)));
|
this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 过滤禁用的部门
|
// 过滤禁用的部门
|
||||||
filterDisabledDept(deptList) {
|
filterDisabledDept(deptList) {
|
||||||
return deptList.filter(dept => {
|
return deptList.filter(dept => {
|
||||||
if (dept.disabled) {
|
if (dept.disabled) {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (dept.children && dept.children.length) {
|
if (dept.children && dept.children.length) {
|
||||||
dept.children = this.filterDisabledDept(dept.children);
|
dept.children = this.filterDisabledDept(dept.children)
|
||||||
}
|
}
|
||||||
return true;
|
return true
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 筛选节点
|
// 筛选节点
|
||||||
filterNode(value, data) {
|
filterNode(value, data) {
|
||||||
if (!value) return true;
|
if (!value) return true
|
||||||
return data.label.indexOf(value) !== -1;
|
return data.label.indexOf(value) !== -1
|
||||||
},
|
},
|
||||||
// 节点单击事件
|
// 节点单击事件
|
||||||
handleNodeClick(data) {
|
handleNodeClick(data) {
|
||||||
this.queryParams.deptId = data.id;
|
this.queryParams.deptId = data.id
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
// 用户状态修改
|
// 用户状态修改
|
||||||
handleStatusChange(row) {
|
handleStatusChange(row) {
|
||||||
let text = row.status === "0" ? "启用" : "停用";
|
let text = row.status === "0" ? "启用" : "停用"
|
||||||
this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
|
this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
|
||||||
return changeUserStatus(row.userId, row.status);
|
return changeUserStatus(row.userId, row.status)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess(text + "成功");
|
this.$modal.msgSuccess(text + "成功")
|
||||||
}).catch(function() {
|
}).catch(function() {
|
||||||
row.status = row.status === "0" ? "1" : "0";
|
row.status = row.status === "0" ? "1" : "0"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.reset();
|
this.reset()
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
@ -401,66 +401,66 @@ export default {
|
|||||||
remark: undefined,
|
remark: undefined,
|
||||||
postIds: [],
|
postIds: [],
|
||||||
roleIds: []
|
roleIds: []
|
||||||
};
|
}
|
||||||
this.resetForm("form");
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRange = [];
|
this.dateRange = []
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.queryParams.deptId = undefined;
|
this.queryParams.deptId = undefined
|
||||||
this.$refs.tree.setCurrentKey(null);
|
this.$refs.tree.setCurrentKey(null)
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.ids = selection.map(item => item.userId);
|
this.ids = selection.map(item => item.userId)
|
||||||
this.single = selection.length != 1;
|
this.single = selection.length != 1
|
||||||
this.multiple = !selection.length;
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
// 更多操作触发
|
// 更多操作触发
|
||||||
handleCommand(command, row) {
|
handleCommand(command, row) {
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case "handleResetPwd":
|
case "handleResetPwd":
|
||||||
this.handleResetPwd(row);
|
this.handleResetPwd(row)
|
||||||
break;
|
break
|
||||||
case "handleAuthRole":
|
case "handleAuthRole":
|
||||||
this.handleAuthRole(row);
|
this.handleAuthRole(row)
|
||||||
break;
|
break
|
||||||
default:
|
default:
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset()
|
||||||
getUser().then(response => {
|
getUser().then(response => {
|
||||||
this.postOptions = response.posts;
|
this.postOptions = response.posts
|
||||||
this.roleOptions = response.roles;
|
this.roleOptions = response.roles
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "添加用户";
|
this.title = "添加用户"
|
||||||
this.form.password = this.initPassword;
|
this.form.password = this.initPassword
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset()
|
||||||
const userId = row.userId || this.ids;
|
const userId = row.userId || this.ids
|
||||||
getUser(userId).then(response => {
|
getUser(userId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data
|
||||||
this.postOptions = response.posts;
|
this.postOptions = response.posts
|
||||||
this.roleOptions = response.roles;
|
this.roleOptions = response.roles
|
||||||
this.$set(this.form, "postIds", response.postIds);
|
this.$set(this.form, "postIds", response.postIds)
|
||||||
this.$set(this.form, "roleIds", response.roleIds);
|
this.$set(this.form, "roleIds", response.roleIds)
|
||||||
this.open = true;
|
this.open = true
|
||||||
this.title = "修改用户";
|
this.title = "修改用户"
|
||||||
this.form.password = "";
|
this.form.password = ""
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 重置密码按钮操作 */
|
/** 重置密码按钮操作 */
|
||||||
handleResetPwd(row) {
|
handleResetPwd(row) {
|
||||||
@ -477,14 +477,14 @@ export default {
|
|||||||
},
|
},
|
||||||
}).then(({ value }) => {
|
}).then(({ value }) => {
|
||||||
resetUserPwd(row.userId, value).then(response => {
|
resetUserPwd(row.userId, value).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功,新密码是:" + value);
|
this.$modal.msgSuccess("修改成功,新密码是:" + value)
|
||||||
});
|
})
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 分配角色操作 */
|
/** 分配角色操作 */
|
||||||
handleAuthRole: function(row) {
|
handleAuthRole: function(row) {
|
||||||
const userId = row.userId;
|
const userId = row.userId
|
||||||
this.$router.push("/system/user-auth/role/" + userId);
|
this.$router.push("/system/user-auth/role/" + userId)
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
@ -492,29 +492,29 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.userId != undefined) {
|
if (this.form.userId != undefined) {
|
||||||
updateUser(this.form).then(response => {
|
updateUser(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
addUser(this.form).then(response => {
|
addUser(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功")
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.getList();
|
this.getList()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const userIds = row.userId || this.ids;
|
const userIds = row.userId || this.ids
|
||||||
this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
|
||||||
return delUser(userIds);
|
return delUser(userIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
@ -524,8 +524,8 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 导入按钮操作 */
|
/** 导入按钮操作 */
|
||||||
handleImport() {
|
handleImport() {
|
||||||
this.upload.title = "用户导入";
|
this.upload.title = "用户导入"
|
||||||
this.upload.open = true;
|
this.upload.open = true
|
||||||
},
|
},
|
||||||
/** 下载模板操作 */
|
/** 下载模板操作 */
|
||||||
importTemplate() {
|
importTemplate() {
|
||||||
@ -534,20 +534,20 @@ export default {
|
|||||||
},
|
},
|
||||||
// 文件上传中处理
|
// 文件上传中处理
|
||||||
handleFileUploadProgress(event, file, fileList) {
|
handleFileUploadProgress(event, file, fileList) {
|
||||||
this.upload.isUploading = true;
|
this.upload.isUploading = true
|
||||||
},
|
},
|
||||||
// 文件上传成功处理
|
// 文件上传成功处理
|
||||||
handleFileSuccess(response, file, fileList) {
|
handleFileSuccess(response, file, fileList) {
|
||||||
this.upload.open = false;
|
this.upload.open = false
|
||||||
this.upload.isUploading = false;
|
this.upload.isUploading = false
|
||||||
this.$refs.upload.clearFiles();
|
this.$refs.upload.clearFiles()
|
||||||
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true })
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
// 提交上传文件
|
// 提交上传文件
|
||||||
submitFileForm() {
|
submitFileForm() {
|
||||||
this.$refs.upload.submit();
|
this.$refs.upload.submit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -59,10 +59,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import userAvatar from "./userAvatar";
|
import userAvatar from "./userAvatar"
|
||||||
import userInfo from "./userInfo";
|
import userInfo from "./userInfo"
|
||||||
import resetPwd from "./resetPwd";
|
import resetPwd from "./resetPwd"
|
||||||
import { getUserProfile } from "@/api/system/user";
|
import { getUserProfile } from "@/api/system/user"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Profile",
|
name: "Profile",
|
||||||
@ -73,19 +73,19 @@ export default {
|
|||||||
roleGroup: {},
|
roleGroup: {},
|
||||||
postGroup: {},
|
postGroup: {},
|
||||||
activeTab: "userinfo"
|
activeTab: "userinfo"
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getUser();
|
this.getUser()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getUser() {
|
getUser() {
|
||||||
getUserProfile().then(response => {
|
getUserProfile().then(response => {
|
||||||
this.user = response.data;
|
this.user = response.data
|
||||||
this.roleGroup = response.roleGroup;
|
this.roleGroup = response.roleGroup
|
||||||
this.postGroup = response.postGroup;
|
this.postGroup = response.postGroup
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -17,17 +17,17 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { updateUserPwd } from "@/api/system/user";
|
import { updateUserPwd } from "@/api/system/user"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
const equalToPassword = (rule, value, callback) => {
|
const equalToPassword = (rule, value, callback) => {
|
||||||
if (this.user.newPassword !== value) {
|
if (this.user.newPassword !== value) {
|
||||||
callback(new Error("两次输入的密码不一致"));
|
callback(new Error("两次输入的密码不一致"))
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
user: {
|
user: {
|
||||||
oldPassword: undefined,
|
oldPassword: undefined,
|
||||||
@ -49,21 +49,21 @@ export default {
|
|||||||
{ required: true, validator: equalToPassword, trigger: "blur" }
|
{ required: true, validator: equalToPassword, trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
submit() {
|
submit() {
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
|
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
this.$tab.closePage();
|
this.$tab.closePage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -54,9 +54,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import store from "@/store";
|
import store from "@/store"
|
||||||
import { VueCropper } from "vue-cropper";
|
import { VueCropper } from "vue-cropper"
|
||||||
import { uploadAvatar } from "@/api/system/user";
|
import { uploadAvatar } from "@/api/system/user"
|
||||||
import { debounce } from '@/utils'
|
import { debounce } from '@/utils'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -80,16 +80,16 @@ export default {
|
|||||||
},
|
},
|
||||||
previews: {},
|
previews: {},
|
||||||
resizeHandler: null
|
resizeHandler: null
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 编辑头像
|
// 编辑头像
|
||||||
editCropper() {
|
editCropper() {
|
||||||
this.open = true;
|
this.open = true
|
||||||
},
|
},
|
||||||
// 打开弹出层结束时的回调
|
// 打开弹出层结束时的回调
|
||||||
modalOpened() {
|
modalOpened() {
|
||||||
this.visible = true;
|
this.visible = true
|
||||||
if (!this.resizeHandler) {
|
if (!this.resizeHandler) {
|
||||||
this.resizeHandler = debounce(() => {
|
this.resizeHandler = debounce(() => {
|
||||||
this.refresh()
|
this.refresh()
|
||||||
@ -99,63 +99,63 @@ export default {
|
|||||||
},
|
},
|
||||||
// 刷新组件
|
// 刷新组件
|
||||||
refresh() {
|
refresh() {
|
||||||
this.$refs.cropper.refresh();
|
this.$refs.cropper.refresh()
|
||||||
},
|
},
|
||||||
// 覆盖默认的上传行为
|
// 覆盖默认的上传行为
|
||||||
requestUpload() {
|
requestUpload() {
|
||||||
},
|
},
|
||||||
// 向左旋转
|
// 向左旋转
|
||||||
rotateLeft() {
|
rotateLeft() {
|
||||||
this.$refs.cropper.rotateLeft();
|
this.$refs.cropper.rotateLeft()
|
||||||
},
|
},
|
||||||
// 向右旋转
|
// 向右旋转
|
||||||
rotateRight() {
|
rotateRight() {
|
||||||
this.$refs.cropper.rotateRight();
|
this.$refs.cropper.rotateRight()
|
||||||
},
|
},
|
||||||
// 图片缩放
|
// 图片缩放
|
||||||
changeScale(num) {
|
changeScale(num) {
|
||||||
num = num || 1;
|
num = num || 1
|
||||||
this.$refs.cropper.changeScale(num);
|
this.$refs.cropper.changeScale(num)
|
||||||
},
|
},
|
||||||
// 上传预处理
|
// 上传预处理
|
||||||
beforeUpload(file) {
|
beforeUpload(file) {
|
||||||
if (file.type.indexOf("image/") == -1) {
|
if (file.type.indexOf("image/") == -1) {
|
||||||
this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。");
|
this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。")
|
||||||
} else {
|
} else {
|
||||||
const reader = new FileReader();
|
const reader = new FileReader()
|
||||||
reader.readAsDataURL(file);
|
reader.readAsDataURL(file)
|
||||||
reader.onload = () => {
|
reader.onload = () => {
|
||||||
this.options.img = reader.result;
|
this.options.img = reader.result
|
||||||
this.options.filename = file.name;
|
this.options.filename = file.name
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 上传图片
|
// 上传图片
|
||||||
uploadImg() {
|
uploadImg() {
|
||||||
this.$refs.cropper.getCropBlob(data => {
|
this.$refs.cropper.getCropBlob(data => {
|
||||||
let formData = new FormData();
|
let formData = new FormData()
|
||||||
formData.append("avatarfile", data, this.options.filename);
|
formData.append("avatarfile", data, this.options.filename)
|
||||||
uploadAvatar(formData).then(response => {
|
uploadAvatar(formData).then(response => {
|
||||||
this.open = false;
|
this.open = false
|
||||||
this.options.img = response.imgUrl;
|
this.options.img = response.imgUrl
|
||||||
store.commit('SET_AVATAR', this.options.img);
|
store.commit('SET_AVATAR', this.options.img)
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 实时预览
|
// 实时预览
|
||||||
realTime(data) {
|
realTime(data) {
|
||||||
this.previews = data;
|
this.previews = data
|
||||||
},
|
},
|
||||||
// 关闭窗口
|
// 关闭窗口
|
||||||
closeDialog() {
|
closeDialog() {
|
||||||
this.options.img = store.getters.avatar
|
this.options.img = store.getters.avatar
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
window.removeEventListener("resize", this.resizeHandler)
|
window.removeEventListener("resize", this.resizeHandler)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.user-info-head {
|
.user-info-head {
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { updateUserProfile } from "@/api/system/user";
|
import { updateUserProfile } from "@/api/system/user"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
@ -56,13 +56,13 @@ export default {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
user: {
|
user: {
|
||||||
handler(user) {
|
handler(user) {
|
||||||
if (user) {
|
if (user) {
|
||||||
this.form = { nickName: user.nickName, phonenumber: user.phonenumber, email: user.email, sex: user.sex };
|
this.form = { nickName: user.nickName, phonenumber: user.phonenumber, email: user.email, sex: user.sex }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
immediate: true
|
immediate: true
|
||||||
@ -73,16 +73,16 @@ export default {
|
|||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
updateUserProfile(this.form).then(response => {
|
updateUserProfile(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功")
|
||||||
this.user.phonenumber = this.form.phonenumber;
|
this.user.phonenumber = this.form.phonenumber
|
||||||
this.user.email = this.form.email;
|
this.user.email = this.form.email
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
this.$tab.closePage();
|
this.$tab.closePage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -54,7 +54,7 @@ export default {
|
|||||||
{ required: true, message: "请输入作者", trigger: "blur" }
|
{ required: true, message: "请输入作者", trigger: "blur" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -127,11 +127,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getGenTable, updateGenTable } from "@/api/tool/gen";
|
import { getGenTable, updateGenTable } from "@/api/tool/gen"
|
||||||
import { optionselect as getDictOptionselect } from "@/api/system/dict/type";
|
import { optionselect as getDictOptionselect } from "@/api/system/dict/type"
|
||||||
import { listMenu as getMenuTreeselect } from "@/api/system/menu";
|
import { listMenu as getMenuTreeselect } from "@/api/system/menu"
|
||||||
import basicInfoForm from "./basicInfoForm";
|
import basicInfoForm from "./basicInfoForm"
|
||||||
import genInfoForm from "./genInfoForm";
|
import genInfoForm from "./genInfoForm"
|
||||||
import Sortable from 'sortablejs'
|
import Sortable from 'sortablejs'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -156,79 +156,79 @@ export default {
|
|||||||
menus: [],
|
menus: [],
|
||||||
// 表详细信息
|
// 表详细信息
|
||||||
info: {}
|
info: {}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
const tableId = this.$route.params && this.$route.params.tableId;
|
const tableId = this.$route.params && this.$route.params.tableId
|
||||||
if (tableId) {
|
if (tableId) {
|
||||||
// 获取表详细信息
|
// 获取表详细信息
|
||||||
getGenTable(tableId).then(res => {
|
getGenTable(tableId).then(res => {
|
||||||
this.columns = res.data.rows;
|
this.columns = res.data.rows
|
||||||
this.info = res.data.info;
|
this.info = res.data.info
|
||||||
this.tables = res.data.tables;
|
this.tables = res.data.tables
|
||||||
});
|
})
|
||||||
/** 查询字典下拉列表 */
|
/** 查询字典下拉列表 */
|
||||||
getDictOptionselect().then(response => {
|
getDictOptionselect().then(response => {
|
||||||
this.dictOptions = response.data;
|
this.dictOptions = response.data
|
||||||
});
|
})
|
||||||
/** 查询菜单下拉列表 */
|
/** 查询菜单下拉列表 */
|
||||||
getMenuTreeselect().then(response => {
|
getMenuTreeselect().then(response => {
|
||||||
this.menus = this.handleTree(response.data, "menuId");
|
this.menus = this.handleTree(response.data, "menuId")
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
const basicForm = this.$refs.basicInfo.$refs.basicInfoForm;
|
const basicForm = this.$refs.basicInfo.$refs.basicInfoForm
|
||||||
const genForm = this.$refs.genInfo.$refs.genInfoForm;
|
const genForm = this.$refs.genInfo.$refs.genInfoForm
|
||||||
Promise.all([basicForm, genForm].map(this.getFormPromise)).then(res => {
|
Promise.all([basicForm, genForm].map(this.getFormPromise)).then(res => {
|
||||||
const validateResult = res.every(item => !!item);
|
const validateResult = res.every(item => !!item)
|
||||||
if (validateResult) {
|
if (validateResult) {
|
||||||
const genTable = Object.assign({}, basicForm.model, genForm.model);
|
const genTable = Object.assign({}, basicForm.model, genForm.model)
|
||||||
genTable.columns = this.columns;
|
genTable.columns = this.columns
|
||||||
genTable.params = {
|
genTable.params = {
|
||||||
treeCode: genTable.treeCode,
|
treeCode: genTable.treeCode,
|
||||||
treeName: genTable.treeName,
|
treeName: genTable.treeName,
|
||||||
treeParentCode: genTable.treeParentCode,
|
treeParentCode: genTable.treeParentCode,
|
||||||
parentMenuId: genTable.parentMenuId
|
parentMenuId: genTable.parentMenuId
|
||||||
};
|
}
|
||||||
updateGenTable(genTable).then(res => {
|
updateGenTable(genTable).then(res => {
|
||||||
this.$modal.msgSuccess(res.msg);
|
this.$modal.msgSuccess(res.msg)
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.close();
|
this.close()
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$modal.msgError("表单校验未通过,请重新检查提交内容");
|
this.$modal.msgError("表单校验未通过,请重新检查提交内容")
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
getFormPromise(form) {
|
getFormPromise(form) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
form.validate(res => {
|
form.validate(res => {
|
||||||
resolve(res);
|
resolve(res)
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 关闭按钮 */
|
/** 关闭按钮 */
|
||||||
close() {
|
close() {
|
||||||
const obj = { path: "/tool/gen", query: { t: Date.now(), pageNum: this.$route.query.pageNum } };
|
const obj = { path: "/tool/gen", query: { t: Date.now(), pageNum: this.$route.query.pageNum } }
|
||||||
this.$tab.closeOpenPage(obj);
|
this.$tab.closeOpenPage(obj)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
const el = this.$refs.dragTable.$el.querySelectorAll(".el-table__body-wrapper > table > tbody")[0];
|
const el = this.$refs.dragTable.$el.querySelectorAll(".el-table__body-wrapper > table > tbody")[0]
|
||||||
const sortable = Sortable.create(el, {
|
const sortable = Sortable.create(el, {
|
||||||
handle: ".allowDrag",
|
handle: ".allowDrag",
|
||||||
onEnd: evt => {
|
onEnd: evt => {
|
||||||
const targetRow = this.columns.splice(evt.oldIndex, 1)[0];
|
const targetRow = this.columns.splice(evt.oldIndex, 1)[0]
|
||||||
this.columns.splice(evt.newIndex, 0, targetRow);
|
this.columns.splice(evt.newIndex, 0, targetRow)
|
||||||
for (let index in this.columns) {
|
for (let index in this.columns) {
|
||||||
this.columns[index].sort = parseInt(index) + 1;
|
this.columns[index].sort = parseInt(index) + 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -223,8 +223,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect"
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Treeselect },
|
components: { Treeselect },
|
||||||
@ -240,7 +240,7 @@ export default {
|
|||||||
menus: {
|
menus: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: []
|
default: []
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -260,17 +260,17 @@ export default {
|
|||||||
],
|
],
|
||||||
functionName: [
|
functionName: [
|
||||||
{ required: true, message: "请输入生成功能名", trigger: "blur" }
|
{ required: true, message: "请输入生成功能名", trigger: "blur" }
|
||||||
],
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'info.subTableName': function(val) {
|
'info.subTableName': function(val) {
|
||||||
this.setSubTableColumns(val);
|
this.setSubTableColumns(val)
|
||||||
},
|
},
|
||||||
'info.tplWebType': function(val) {
|
'info.tplWebType': function(val) {
|
||||||
if (val === '') {
|
if (val === '') {
|
||||||
this.info.tplWebType = "element-ui";
|
this.info.tplWebType = "element-ui"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -278,35 +278,35 @@ export default {
|
|||||||
/** 转换菜单数据结构 */
|
/** 转换菜单数据结构 */
|
||||||
normalizer(node) {
|
normalizer(node) {
|
||||||
if (node.children && !node.children.length) {
|
if (node.children && !node.children.length) {
|
||||||
delete node.children;
|
delete node.children
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
id: node.menuId,
|
id: node.menuId,
|
||||||
label: node.menuName,
|
label: node.menuName,
|
||||||
children: node.children
|
children: node.children
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
/** 选择子表名触发 */
|
/** 选择子表名触发 */
|
||||||
subSelectChange(value) {
|
subSelectChange(value) {
|
||||||
this.info.subTableFkName = '';
|
this.info.subTableFkName = ''
|
||||||
},
|
},
|
||||||
/** 选择生成模板触发 */
|
/** 选择生成模板触发 */
|
||||||
tplSelectChange(value) {
|
tplSelectChange(value) {
|
||||||
if(value !== 'sub') {
|
if(value !== 'sub') {
|
||||||
this.info.subTableName = '';
|
this.info.subTableName = ''
|
||||||
this.info.subTableFkName = '';
|
this.info.subTableFkName = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 设置关联外键 */
|
/** 设置关联外键 */
|
||||||
setSubTableColumns(value) {
|
setSubTableColumns(value) {
|
||||||
for (var item in this.tables) {
|
for (var item in this.tables) {
|
||||||
const name = this.tables[item].tableName;
|
const name = this.tables[item].tableName
|
||||||
if (value === name) {
|
if (value === name) {
|
||||||
this.subColumns = this.tables[item].columns;
|
this.subColumns = this.tables[item].columns
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -47,7 +47,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listDbTable, importTable } from "@/api/tool/gen";
|
import { listDbTable, importTable } from "@/api/tool/gen"
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -66,55 +66,55 @@ export default {
|
|||||||
tableName: undefined,
|
tableName: undefined,
|
||||||
tableComment: undefined
|
tableComment: undefined
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 显示弹框
|
// 显示弹框
|
||||||
show() {
|
show() {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.visible = true;
|
this.visible = true
|
||||||
},
|
},
|
||||||
clickRow(row) {
|
clickRow(row) {
|
||||||
this.$refs.table.toggleRowSelection(row);
|
this.$refs.table.toggleRowSelection(row)
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.tables = selection.map(item => item.tableName);
|
this.tables = selection.map(item => item.tableName)
|
||||||
},
|
},
|
||||||
// 查询表数据
|
// 查询表数据
|
||||||
getList() {
|
getList() {
|
||||||
listDbTable(this.queryParams).then(res => {
|
listDbTable(this.queryParams).then(res => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.dbTableList = res.rows;
|
this.dbTableList = res.rows
|
||||||
this.total = res.total;
|
this.total = res.total
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.handleQuery();
|
this.handleQuery()
|
||||||
},
|
},
|
||||||
/** 导入按钮操作 */
|
/** 导入按钮操作 */
|
||||||
handleImportTable() {
|
handleImportTable() {
|
||||||
const tableNames = this.tables.join(",");
|
const tableNames = this.tables.join(",")
|
||||||
if (tableNames == "") {
|
if (tableNames == "") {
|
||||||
this.$modal.msgError("请选择要导入的表");
|
this.$modal.msgError("请选择要导入的表")
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
importTable({ tables: tableNames }).then(res => {
|
importTable({ tables: tableNames }).then(res => {
|
||||||
this.$modal.msgSuccess(res.msg);
|
this.$modal.msgSuccess(res.msg)
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
this.$emit("ok");
|
this.$emit("ok")
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -158,16 +158,16 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen";
|
import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen"
|
||||||
import importTable from "./importTable";
|
import importTable from "./importTable"
|
||||||
import hljs from "highlight.js/lib/highlight";
|
import hljs from "highlight.js/lib/highlight"
|
||||||
import "highlight.js/styles/github-gist.css";
|
import "highlight.js/styles/github-gist.css"
|
||||||
hljs.registerLanguage("java", require("highlight.js/lib/languages/java"));
|
hljs.registerLanguage("java", require("highlight.js/lib/languages/java"))
|
||||||
hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml"));
|
hljs.registerLanguage("xml", require("highlight.js/lib/languages/xml"))
|
||||||
hljs.registerLanguage("html", require("highlight.js/lib/languages/xml"));
|
hljs.registerLanguage("html", require("highlight.js/lib/languages/xml"))
|
||||||
hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml"));
|
hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml"))
|
||||||
hljs.registerLanguage("javascript", require("highlight.js/lib/languages/javascript"));
|
hljs.registerLanguage("javascript", require("highlight.js/lib/languages/javascript"))
|
||||||
hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql"));
|
hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql"))
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Gen",
|
name: "Gen",
|
||||||
@ -210,121 +210,121 @@ export default {
|
|||||||
data: {},
|
data: {},
|
||||||
activeName: "domain.java"
|
activeName: "domain.java"
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.queryParams.orderByColumn = this.defaultSort.prop;
|
this.queryParams.orderByColumn = this.defaultSort.prop
|
||||||
this.queryParams.isAsc = this.defaultSort.order;
|
this.queryParams.isAsc = this.defaultSort.order
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
activated() {
|
activated() {
|
||||||
const time = this.$route.query.t;
|
const time = this.$route.query.t
|
||||||
if (time != null && time != this.uniqueId) {
|
if (time != null && time != this.uniqueId) {
|
||||||
this.uniqueId = time;
|
this.uniqueId = time
|
||||||
this.queryParams.pageNum = Number(this.$route.query.pageNum);
|
this.queryParams.pageNum = Number(this.$route.query.pageNum)
|
||||||
this.getList();
|
this.getList()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询表集合 */
|
/** 查询表集合 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
this.tableList = response.rows;
|
this.tableList = response.rows
|
||||||
this.total = response.total;
|
this.total = response.total
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
}
|
}
|
||||||
);
|
)
|
||||||
},
|
},
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 生成代码操作 */
|
/** 生成代码操作 */
|
||||||
handleGenTable(row) {
|
handleGenTable(row) {
|
||||||
const tableNames = row.tableName || this.tableNames;
|
const tableNames = row.tableName || this.tableNames
|
||||||
if (tableNames == "") {
|
if (tableNames == "") {
|
||||||
this.$modal.msgError("请选择要生成的数据");
|
this.$modal.msgError("请选择要生成的数据")
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
if(row.genType === "1") {
|
if(row.genType === "1") {
|
||||||
genCode(row.tableName).then(response => {
|
genCode(row.tableName).then(response => {
|
||||||
this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath);
|
this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath)
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$download.zip("/code/gen/batchGenCode?tables=" + tableNames, "ruoyi.zip");
|
this.$download.zip("/code/gen/batchGenCode?tables=" + tableNames, "ruoyi.zip")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** 同步数据库操作 */
|
/** 同步数据库操作 */
|
||||||
handleSynchDb(row) {
|
handleSynchDb(row) {
|
||||||
const tableName = row.tableName;
|
const tableName = row.tableName
|
||||||
this.$modal.confirm('确认要强制同步"' + tableName + '"表结构吗?').then(function() {
|
this.$modal.confirm('确认要强制同步"' + tableName + '"表结构吗?').then(function() {
|
||||||
return synchDb(tableName);
|
return synchDb(tableName)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess("同步成功");
|
this.$modal.msgSuccess("同步成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 打开导入表弹窗 */
|
/** 打开导入表弹窗 */
|
||||||
openImportTable() {
|
openImportTable() {
|
||||||
this.$refs.import.show();
|
this.$refs.import.show()
|
||||||
},
|
},
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRange = [];
|
this.dateRange = []
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm")
|
||||||
this.queryParams.pageNum = 1;
|
this.queryParams.pageNum = 1
|
||||||
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
|
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
|
||||||
},
|
},
|
||||||
/** 预览按钮 */
|
/** 预览按钮 */
|
||||||
handlePreview(row) {
|
handlePreview(row) {
|
||||||
previewTable(row.tableId).then(response => {
|
previewTable(row.tableId).then(response => {
|
||||||
this.preview.data = response.data;
|
this.preview.data = response.data
|
||||||
this.preview.open = true;
|
this.preview.open = true
|
||||||
this.preview.activeName = "domain.java";
|
this.preview.activeName = "domain.java"
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
/** 高亮显示 */
|
/** 高亮显示 */
|
||||||
highlightedCode(code, key) {
|
highlightedCode(code, key) {
|
||||||
const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm"));
|
const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm"))
|
||||||
var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length);
|
var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length)
|
||||||
const result = hljs.highlight(language, code || "", true);
|
const result = hljs.highlight(language, code || "", true)
|
||||||
return result.value || ' ';
|
return result.value || ' '
|
||||||
},
|
},
|
||||||
/** 复制代码成功 */
|
/** 复制代码成功 */
|
||||||
clipboardSuccess() {
|
clipboardSuccess() {
|
||||||
this.$modal.msgSuccess("复制成功");
|
this.$modal.msgSuccess("复制成功")
|
||||||
},
|
},
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.ids = selection.map(item => item.tableId);
|
this.ids = selection.map(item => item.tableId)
|
||||||
this.tableNames = selection.map(item => item.tableName);
|
this.tableNames = selection.map(item => item.tableName)
|
||||||
this.single = selection.length != 1;
|
this.single = selection.length != 1
|
||||||
this.multiple = !selection.length;
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
/** 排序触发事件 */
|
/** 排序触发事件 */
|
||||||
handleSortChange(column, prop, order) {
|
handleSortChange(column, prop, order) {
|
||||||
this.queryParams.orderByColumn = column.prop;
|
this.queryParams.orderByColumn = column.prop
|
||||||
this.queryParams.isAsc = column.order;
|
this.queryParams.isAsc = column.order
|
||||||
this.getList();
|
this.getList()
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleEditTable(row) {
|
handleEditTable(row) {
|
||||||
const tableId = row.tableId || this.ids[0];
|
const tableId = row.tableId || this.ids[0]
|
||||||
const tableName = row.tableName || this.tableNames[0];
|
const tableName = row.tableName || this.tableNames[0]
|
||||||
const params = { pageNum: this.queryParams.pageNum };
|
const params = { pageNum: this.queryParams.pageNum }
|
||||||
this.$tab.openPage("修改[" + tableName + "]生成配置", '/tool/gen-edit/index/' + tableId, params);
|
this.$tab.openPage("修改[" + tableName + "]生成配置", '/tool/gen-edit/index/' + tableId, params)
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const tableIds = row.tableId || this.ids;
|
const tableIds = row.tableId || this.ids
|
||||||
this.$modal.confirm('是否确认删除表编号为"' + tableIds + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除表编号为"' + tableIds + '"的数据项?').then(function() {
|
||||||
return delTable(tableIds);
|
return delTable(tableIds)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList()
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {});
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user