功能变化: npm run lint
parent
8cd32c952e
commit
685ac0f5f0
|
@ -1,165 +1,148 @@
|
|||
/*
|
||||
* @Author: H0nGzA1
|
||||
* @Date: 2022-05-16 15:47:21
|
||||
* @LastEditors: hongzai 2505811377@qq.com
|
||||
* @LastEditTime: 2022-05-16 16:50:33
|
||||
* @FilePath: /web/src/views/system/dept/api.js
|
||||
* @Description:
|
||||
* email:2505811377@qq.com
|
||||
*/
|
||||
/*
|
||||
* @创建文件时间: 2021-06-01 22:41:21
|
||||
* @Auther: 猿小天
|
||||
* @最后修改人: 猿小天
|
||||
* @最后修改时间: 2021-09-26 21:17:30
|
||||
* 联系Qq:1638245306
|
||||
* @文件介绍: 部门管理接口
|
||||
*/
|
||||
import { request } from "@/api/service";
|
||||
import XEUtils from "xe-utils";
|
||||
export const urlPrefix = "/api/system/dept/";
|
||||
import { request } from '@/api/service'
|
||||
import XEUtils from 'xe-utils'
|
||||
export const urlPrefix = '/api/system/dept/'
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
export function GetList(query) {
|
||||
export function GetList (query) {
|
||||
// query.limit = 999;
|
||||
return request({
|
||||
url: urlPrefix,
|
||||
method: "get",
|
||||
params: query,
|
||||
method: 'get',
|
||||
params: query
|
||||
}).then((res) => {
|
||||
// 将列表数据转换为树形数据
|
||||
res.data.data = XEUtils.toArrayTree(res.data.data, {
|
||||
parentKey: "parent",
|
||||
strict: false,
|
||||
});
|
||||
return res;
|
||||
});
|
||||
parentKey: 'parent',
|
||||
strict: false
|
||||
})
|
||||
return res
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
export function createObj(obj) {
|
||||
export function createObj (obj) {
|
||||
return request({
|
||||
url: urlPrefix,
|
||||
method: "post",
|
||||
data: obj,
|
||||
});
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
export function UpdateObj(obj) {
|
||||
export function UpdateObj (obj) {
|
||||
return request({
|
||||
url: urlPrefix + obj.id + "/",
|
||||
method: "put",
|
||||
data: obj,
|
||||
});
|
||||
url: urlPrefix + obj.id + '/',
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
export function DelObj(id) {
|
||||
export function DelObj (id) {
|
||||
return request({
|
||||
url: urlPrefix + id + "/",
|
||||
method: "delete",
|
||||
data: { id },
|
||||
});
|
||||
url: urlPrefix + id + '/',
|
||||
method: 'delete',
|
||||
data: { id }
|
||||
})
|
||||
}
|
||||
|
||||
export function GetTreeChildrenByParentId(parentId) {
|
||||
return TreeNodesLazyLoader.getChildren(parentId);
|
||||
export function GetTreeChildrenByParentId (parentId) {
|
||||
return TreeNodesLazyLoader.getChildren(parentId)
|
||||
}
|
||||
|
||||
export function GetNodesByValues(values) {
|
||||
return TreeNodesLazyLoader.getNodesByValues(values);
|
||||
export function GetNodesByValues (values) {
|
||||
return TreeNodesLazyLoader.getNodesByValues(values)
|
||||
}
|
||||
|
||||
const getPcasData = request({
|
||||
url: "/api/system/dept_query/",
|
||||
method: "get",
|
||||
url: '/api/system/dept_query/',
|
||||
method: 'get'
|
||||
}).then((res) => {
|
||||
// 将列表数据转换为树形数据
|
||||
res.data.data = XEUtils.toArrayTree(res.data.data, {
|
||||
parentKey: "parent",
|
||||
strict: false,
|
||||
});
|
||||
return res.data.data;
|
||||
});
|
||||
export default getPcasData;
|
||||
parentKey: 'parent',
|
||||
strict: false
|
||||
})
|
||||
return res.data.data
|
||||
})
|
||||
export default getPcasData
|
||||
export const TreeNodesLazyLoader = {
|
||||
getNodesByValues(values) {
|
||||
getNodesByValues (values) {
|
||||
// console.log("getNodesByValues", values);
|
||||
if (!(values instanceof Array)) {
|
||||
values = [values];
|
||||
values = [values]
|
||||
}
|
||||
return getPcasData.then((data) => {
|
||||
const nodes = [];
|
||||
const nodes = []
|
||||
for (const value of values) {
|
||||
const found = this.getNode(data, value);
|
||||
const found = this.getNode(data, value)
|
||||
if (found) {
|
||||
nodes.push(found);
|
||||
nodes.push(found)
|
||||
}
|
||||
}
|
||||
return nodes;
|
||||
});
|
||||
return nodes
|
||||
})
|
||||
},
|
||||
getNode(list, value) {
|
||||
getNode (list, value) {
|
||||
for (const item of list) {
|
||||
if (item.code === value) {
|
||||
return item;
|
||||
return item
|
||||
}
|
||||
if (item.children && item.children.length > 0) {
|
||||
const found = this.getNode(item.children, value);
|
||||
const found = this.getNode(item.children, value)
|
||||
if (found) {
|
||||
return found;
|
||||
return found
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
getChildren(parent) {
|
||||
getChildren (parent) {
|
||||
return getPcasData.then((data) => {
|
||||
const list = this.getChildrenByParent(parent, data);
|
||||
const list = this.getChildrenByParent(parent, data)
|
||||
if (list == null) {
|
||||
return [];
|
||||
return []
|
||||
}
|
||||
return this.cloneAndDeleteChildren(list);
|
||||
});
|
||||
return this.cloneAndDeleteChildren(list)
|
||||
})
|
||||
},
|
||||
getChildrenByParent(parentId, tree) {
|
||||
getChildrenByParent (parentId, tree) {
|
||||
if (!parentId) {
|
||||
// 取第一级
|
||||
return tree;
|
||||
return tree
|
||||
} else {
|
||||
for (const node of tree) {
|
||||
if (node.code === parentId) {
|
||||
return node.children;
|
||||
return node.children
|
||||
}
|
||||
if (node.children && node.children.length > 0) {
|
||||
// 递归查找
|
||||
const list = this.getChildrenByParent(parentId, node.children);
|
||||
const list = this.getChildrenByParent(parentId, node.children)
|
||||
if (list) {
|
||||
return list;
|
||||
return list
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
cloneAndDeleteChildren(list) {
|
||||
const newList = [];
|
||||
cloneAndDeleteChildren (list) {
|
||||
const newList = []
|
||||
for (const node of list) {
|
||||
const newNode = {};
|
||||
Object.assign(newNode, node);
|
||||
const newNode = {}
|
||||
Object.assign(newNode, node)
|
||||
if (newNode.children == null || newNode.children.length === 0) {
|
||||
newNode.isLeaf = true;
|
||||
newNode.leaf = true;
|
||||
newNode.isLeaf = true
|
||||
newNode.leaf = true
|
||||
}
|
||||
delete newNode.children;
|
||||
newList.push(newNode);
|
||||
delete newNode.children
|
||||
newList.push(newNode)
|
||||
}
|
||||
// console.log("found children:", newList);
|
||||
return newList;
|
||||
},
|
||||
};
|
||||
return newList
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,133 +1,130 @@
|
|||
import { request } from "@/api/service";
|
||||
import { urlPrefix as deptPrefix } from "./api";
|
||||
import XEUtils from "xe-utils";
|
||||
import * as Api from "./api";
|
||||
import * as Api from './api'
|
||||
export const crudOptions = (vm) => {
|
||||
return {
|
||||
// pagination: false,
|
||||
pageOptions: {
|
||||
compact: true,
|
||||
compact: true
|
||||
},
|
||||
options: {
|
||||
tableType: "vxe-table",
|
||||
tableType: 'vxe-table',
|
||||
rowKey: true, // 必须设置,true or false
|
||||
rowId: "id",
|
||||
height: "100%", // 表格高度100%, 使用toolbar必须设置
|
||||
rowId: 'id',
|
||||
height: '100%', // 表格高度100%, 使用toolbar必须设置
|
||||
highlightCurrentRow: false,
|
||||
defaultExpandAll: true,
|
||||
treeConfig: {
|
||||
lazy: true,
|
||||
},
|
||||
lazy: true
|
||||
}
|
||||
},
|
||||
rowHandle: {
|
||||
width: 140,
|
||||
view: {
|
||||
thin: true,
|
||||
text: "",
|
||||
disabled() {
|
||||
return !vm.hasPermissions("Retrieve");
|
||||
},
|
||||
text: '',
|
||||
disabled () {
|
||||
return !vm.hasPermissions('Retrieve')
|
||||
}
|
||||
},
|
||||
edit: {
|
||||
thin: true,
|
||||
text: "",
|
||||
disabled() {
|
||||
return !vm.hasPermissions("Update");
|
||||
},
|
||||
text: '',
|
||||
disabled () {
|
||||
return !vm.hasPermissions('Update')
|
||||
}
|
||||
},
|
||||
remove: {
|
||||
thin: true,
|
||||
text: "",
|
||||
disabled() {
|
||||
return !vm.hasPermissions("Delete");
|
||||
},
|
||||
},
|
||||
text: '',
|
||||
disabled () {
|
||||
return !vm.hasPermissions('Delete')
|
||||
}
|
||||
}
|
||||
},
|
||||
indexRow: {
|
||||
// 或者直接传true,不显示title,不居中
|
||||
title: "序号",
|
||||
align: "center",
|
||||
width: 100,
|
||||
title: '序号',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
|
||||
viewOptions: {
|
||||
componentType: "form",
|
||||
componentType: 'form'
|
||||
},
|
||||
formOptions: {
|
||||
defaultSpan: 12, // 默认的表单 span
|
||||
defaultSpan: 12 // 默认的表单 span
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: "关键词",
|
||||
key: "search",
|
||||
title: '关键词',
|
||||
key: 'search',
|
||||
show: false,
|
||||
disabled: true,
|
||||
search: {
|
||||
disabled: false,
|
||||
disabled: false
|
||||
},
|
||||
form: {
|
||||
disabled: true,
|
||||
component: {
|
||||
props: {
|
||||
clearable: true,
|
||||
clearable: true
|
||||
},
|
||||
placeholder: "请输入关键词",
|
||||
},
|
||||
placeholder: '请输入关键词'
|
||||
}
|
||||
},
|
||||
view: {
|
||||
// 查看对话框组件的单独配置
|
||||
disabled: true,
|
||||
},
|
||||
disabled: true
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "ID",
|
||||
key: "id",
|
||||
title: 'ID',
|
||||
key: 'id',
|
||||
show: false,
|
||||
disabled: true,
|
||||
width: 90,
|
||||
form: {
|
||||
disabled: true,
|
||||
},
|
||||
disabled: true
|
||||
}
|
||||
},
|
||||
{
|
||||
show: false,
|
||||
title: "上级部门",
|
||||
key: "parent",
|
||||
type: "tree-selector",
|
||||
title: '上级部门',
|
||||
key: 'parent',
|
||||
type: 'tree-selector',
|
||||
dict: {
|
||||
isTree: true,
|
||||
label: "name",
|
||||
value: "code",
|
||||
getNodes(values) {
|
||||
label: 'name',
|
||||
value: 'code',
|
||||
getNodes (values) {
|
||||
// 配置行展示远程获取nodes
|
||||
return Api.GetNodesByValues(values);
|
||||
},
|
||||
return Api.GetNodesByValues(values)
|
||||
}
|
||||
},
|
||||
form: {
|
||||
helper: "默认留空为根节点",
|
||||
helper: '默认留空为根节点',
|
||||
component: {
|
||||
span: 12,
|
||||
props: {
|
||||
multiple: false,
|
||||
elProps: {
|
||||
lazy: true,
|
||||
load(node, resolve) {
|
||||
load (node, resolve) {
|
||||
// 懒加载
|
||||
// console.log("懒加载");
|
||||
if (node.level === 0) {
|
||||
Api.GetTreeChildrenByParentId().then((data) => {
|
||||
resolve(data);
|
||||
});
|
||||
return;
|
||||
resolve(data)
|
||||
})
|
||||
return
|
||||
}
|
||||
Api.GetTreeChildrenByParentId(node.data.code).then((data) => {
|
||||
resolve(data);
|
||||
});
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
resolve(data)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// {
|
||||
// title: '上级部门',
|
||||
|
@ -170,120 +167,120 @@ export const crudOptions = (vm) => {
|
|||
// }
|
||||
// },
|
||||
{
|
||||
title: "部门名称",
|
||||
key: "name",
|
||||
title: '部门名称',
|
||||
key: 'name',
|
||||
sortable: true,
|
||||
treeNode: true, // 设置为树形列
|
||||
search: {
|
||||
disabled: false,
|
||||
component: {
|
||||
props: {
|
||||
clearable: true,
|
||||
},
|
||||
},
|
||||
clearable: true
|
||||
}
|
||||
}
|
||||
},
|
||||
width: 180,
|
||||
type: "input",
|
||||
type: 'input',
|
||||
form: {
|
||||
rules: [
|
||||
// 表单校验规则
|
||||
{ required: true, message: "部门名称必填项" },
|
||||
{ required: true, message: '部门名称必填项' }
|
||||
],
|
||||
component: {
|
||||
span: 12,
|
||||
props: {
|
||||
clearable: true,
|
||||
clearable: true
|
||||
},
|
||||
placeholder: "请输入部门名称",
|
||||
placeholder: '请输入部门名称'
|
||||
},
|
||||
itemProps: {
|
||||
class: { yxtInput: true },
|
||||
},
|
||||
},
|
||||
class: { yxtInput: true }
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "负责人",
|
||||
key: "owner",
|
||||
title: '负责人',
|
||||
key: 'owner',
|
||||
sortable: true,
|
||||
form: {
|
||||
component: {
|
||||
span: 12,
|
||||
props: {
|
||||
clearable: true,
|
||||
clearable: true
|
||||
},
|
||||
placeholder: "请输入负责人",
|
||||
},
|
||||
},
|
||||
placeholder: '请输入负责人'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "联系电话",
|
||||
key: "phone",
|
||||
title: '联系电话',
|
||||
key: 'phone',
|
||||
sortable: true,
|
||||
form: {
|
||||
component: {
|
||||
span: 12,
|
||||
props: {
|
||||
clearable: true,
|
||||
clearable: true
|
||||
},
|
||||
placeholder: "请输入联系电话",
|
||||
},
|
||||
},
|
||||
placeholder: '请输入联系电话'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "邮箱",
|
||||
key: "email",
|
||||
title: '邮箱',
|
||||
key: 'email',
|
||||
sortable: true,
|
||||
form: {
|
||||
component: {
|
||||
span: 12,
|
||||
props: {
|
||||
clearable: true,
|
||||
clearable: true
|
||||
},
|
||||
placeholder: "请输入邮箱",
|
||||
placeholder: '请输入邮箱'
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
type: "email",
|
||||
message: "请输入正确的邮箱地址",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
],
|
||||
},
|
||||
type: 'email',
|
||||
message: '请输入正确的邮箱地址',
|
||||
trigger: ['blur', 'change']
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "排序",
|
||||
key: "sort",
|
||||
title: '排序',
|
||||
key: 'sort',
|
||||
sortable: true,
|
||||
width: 80,
|
||||
type: "number",
|
||||
type: 'number',
|
||||
form: {
|
||||
value: 1,
|
||||
component: {
|
||||
span: 12,
|
||||
placeholder: "请选择序号",
|
||||
},
|
||||
},
|
||||
placeholder: '请选择序号'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "状态",
|
||||
key: "status",
|
||||
title: '状态',
|
||||
key: 'status',
|
||||
sortable: true,
|
||||
search: {
|
||||
disabled: false,
|
||||
disabled: false
|
||||
},
|
||||
width: 90,
|
||||
type: "radio",
|
||||
type: 'radio',
|
||||
dict: {
|
||||
data: vm.dictionary("button_status_bool"),
|
||||
data: vm.dictionary('button_status_bool')
|
||||
},
|
||||
form: {
|
||||
value: true,
|
||||
component: {
|
||||
span: 12,
|
||||
placeholder: "请选择状态",
|
||||
},
|
||||
},
|
||||
},
|
||||
].concat(vm.commonEndColumns()),
|
||||
};
|
||||
};
|
||||
placeholder: '请选择状态'
|
||||
}
|
||||
}
|
||||
}
|
||||
].concat(vm.commonEndColumns())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,3 @@
|
|||
<!--
|
||||
* @创建文件时间: 2021-06-01 22:41:21
|
||||
* @Auther: 猿小天
|
||||
* @最后修改人: 猿小天
|
||||
* @最后修改时间: 2021-07-31 22:35:15
|
||||
* 联系Qq:1638245306
|
||||
* @文件介绍: 部门管理
|
||||
-->
|
||||
<template>
|
||||
<d2-container :class="{ 'page-compact': crud.pageOptions.compact }">
|
||||
<!-- <template slot="header">测试页面1</template>-->
|
||||
|
|
Loading…
Reference in New Issue