部门,未回显上级部门
This commit is contained in:
parent
42be12257d
commit
019366ab58
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
VUE_APP_API_BASE_URL=http://36.133.9.26:46000
|
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
|
||||||
VUE_APP_USER_MODEL=AdminUser
|
VUE_APP_USER_MODEL2=AdminUser
|
||||||
VUE_APP_USER_MODEL2=BaseAdmin
|
VUE_APP_USER_MODEL=BaseAdmin
|
||||||
VUE_APP_BEID=1
|
VUE_APP_BEID=3
|
||||||
|
|
@ -10,7 +10,9 @@
|
||||||
|
|
||||||
<vxe-grid :keyboard-config="{ isArrow: true }" auto-resize height="400" ref="xgrid"
|
<vxe-grid :keyboard-config="{ isArrow: true }" auto-resize height="400" ref="xgrid"
|
||||||
:row-config="{ isCurrent: true, isHover: true }" :loading="loading" :pager-config="tablePage" :data="tableData"
|
:row-config="{ isCurrent: true, isHover: true }" :loading="loading" :pager-config="tablePage" :data="tableData"
|
||||||
:columns="tableColumn" @cell-click="selectEvent" @page-change="pageChangeEvent">
|
:columns="tableColumn"
|
||||||
|
:treeConfig="treeConfig"
|
||||||
|
@cell-click="selectEvent" @page-change="pageChangeEvent">
|
||||||
</vxe-grid>
|
</vxe-grid>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -69,6 +71,7 @@ export default {
|
||||||
{ field: 'name', title: '名称' }, // 字段名称,字段标题
|
{ field: 'name', title: '名称' }, // 字段名称,字段标题
|
||||||
{ field: 'code', title: '编码' } // 字段名称,字段标题
|
{ field: 'code', title: '编码' } // 字段名称,字段标题
|
||||||
],
|
],
|
||||||
|
treeConfig:null,
|
||||||
modalWidth: 800, // 弹出框宽度
|
modalWidth: 800, // 弹出框宽度
|
||||||
modalHeight: 600, // 弹出框高度
|
modalHeight: 600, // 弹出框高度
|
||||||
searchFieldNames: ['name'], // 搜索字段
|
searchFieldNames: ['name'], // 搜索字段
|
||||||
|
|
@ -138,6 +141,9 @@ export default {
|
||||||
if (params.columns) { // 如果列存在
|
if (params.columns) { // 如果列存在
|
||||||
this.tableColumn = params.columns; // 表格列
|
this.tableColumn = params.columns; // 表格列
|
||||||
}
|
}
|
||||||
|
if(params.treeConfig){
|
||||||
|
this.treeConfig = params.treeConfig;
|
||||||
|
}
|
||||||
if (params.popup) { // 如果弹出框存在
|
if (params.popup) { // 如果弹出框存在
|
||||||
this.enalbedPopup = true; // 是否启用弹出框
|
this.enalbedPopup = true; // 是否启用弹出框
|
||||||
this.popupPage = params.popup.page; // 弹出框页面
|
this.popupPage = params.popup.page; // 弹出框页面
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,236 @@
|
||||||
|
<template>
|
||||||
|
<basic-page-edit :desc="desc" :dataId="getDataId()" :options="pageOptions"></basic-page-edit>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/mes/api.js';
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
|
||||||
|
i18n: require('./i18n'),
|
||||||
|
components: {},
|
||||||
|
props: {
|
||||||
|
pageMode: {
|
||||||
|
type: String,
|
||||||
|
default: "edit"
|
||||||
|
},
|
||||||
|
dataId: {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
|
||||||
|
return {
|
||||||
|
pageOptions: {}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
desc() {
|
||||||
|
return this.$t('editPageDesc')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
created() {
|
||||||
|
|
||||||
|
this.optionsInit();
|
||||||
|
this.dataInit();
|
||||||
|
|
||||||
|
},
|
||||||
|
// 函数
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
optionsInit() {
|
||||||
|
// 页面数据变量
|
||||||
|
var pageData = {
|
||||||
|
// 当前项目名称
|
||||||
|
currentConfigName: "",
|
||||||
|
// 当前项目ID
|
||||||
|
currentBeid: 0,
|
||||||
|
|
||||||
|
addPageUrl: "/BaseDepartment/BaseDepartmentAdd",
|
||||||
|
editPageUrl: "/BaseDepartment/BaseDepartmentUpdate/",
|
||||||
|
listPageUrl: "/BaseDepartment/BaseDepartmentList",
|
||||||
|
|
||||||
|
|
||||||
|
uploadDefaultImg: null,
|
||||||
|
|
||||||
|
detailDataFieldName: "base_department",
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
|
||||||
|
BaseDepartmentDetail: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/detail`, // 部门详情
|
||||||
|
BaseDepartmentCreate: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/create`, // 创建部门
|
||||||
|
BaseDepartmentUpdate: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/update`, // 更新部门
|
||||||
|
BaseDepartmentDelete: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/detele`, // 删除部门
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
keyName: 'id',
|
||||||
|
// 是否编辑模式
|
||||||
|
isEdit: false,
|
||||||
|
// 表单数据
|
||||||
|
formOptions: {
|
||||||
|
data: {
|
||||||
|
// =============================== 表单数据 自动生成 Start ===============================
|
||||||
|
|
||||||
|
id: 0,
|
||||||
|
code: "",
|
||||||
|
title: "",
|
||||||
|
name: "",
|
||||||
|
create_uid: 0,
|
||||||
|
update_uid: 0,
|
||||||
|
create_time: new Date(2100, 1, 1).getTime() / 10000,
|
||||||
|
update_time: new Date(2100, 1, 1).getTime() / 10000,
|
||||||
|
|
||||||
|
// =============================== 表单数据 自动生成 End ===============================
|
||||||
|
},
|
||||||
|
// 标题宽度
|
||||||
|
titleWidth: 150,
|
||||||
|
// 标题对齐方式
|
||||||
|
titleAlign: 'right',
|
||||||
|
|
||||||
|
// 表单校验规则
|
||||||
|
rules: {
|
||||||
|
// =============================== 表单校验 自动生成 Start ===============================
|
||||||
|
|
||||||
|
code: [
|
||||||
|
{ required: true, message: '请输入编码' }
|
||||||
|
],
|
||||||
|
title: [
|
||||||
|
{ required: true, message: '请输入部门名称' }
|
||||||
|
],
|
||||||
|
name: [
|
||||||
|
{ required: true, message: '请输入部门英文名称' }
|
||||||
|
],
|
||||||
|
|
||||||
|
// =============================== 表单校验 自动生成 End ===============================
|
||||||
|
},
|
||||||
|
// 表单项
|
||||||
|
items: [
|
||||||
|
// =============================== 表单项 自动生成 Start ===============================
|
||||||
|
|
||||||
|
{ field: 'code', title: '编码', span: 24, itemRender: { name: '$input' } },
|
||||||
|
//{ field: 'title', title: '部门名称', span: 24, itemRender: { name: '$input' } },
|
||||||
|
{ field: 'name', title: '部门名称', span: 24, itemRender: { name: '$input' } },
|
||||||
|
|
||||||
|
{
|
||||||
|
title: '部门', span: 24,
|
||||||
|
field: 'parent_department',
|
||||||
|
dataRule: {
|
||||||
|
fromField: "id",
|
||||||
|
saveField: "parent_id" // 如果表单项存储的是对象,将从fromField中取得值保存到saveField
|
||||||
|
},
|
||||||
|
itemRender: {
|
||||||
|
name: 'MkFormDataSelector', props: {
|
||||||
|
params: {
|
||||||
|
dataType: "object",
|
||||||
|
valueField: "id",
|
||||||
|
textField: "name",
|
||||||
|
listdataFieldName: 'BaseDepartment',
|
||||||
|
treeConfig: {
|
||||||
|
transform: true,
|
||||||
|
expandAll: true,
|
||||||
|
rowField: 'id',
|
||||||
|
parentField: 'parent_id'
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{ field: 'name', sortable: true, title: '部门名', showHeaderOverflow: true, treeNode: true },
|
||||||
|
{ field: 'code', sortable: true, title: '编号', showHeaderOverflow: true }
|
||||||
|
],
|
||||||
|
dataUrl: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/list`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// =============================== 表单项 自动生成 End ===============================
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// 新增模式表单项
|
||||||
|
addModeItems: [
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.actions.get = pageData.actions.BaseDepartmentDetail;
|
||||||
|
pageData.actions.create = pageData.actions.BaseDepartmentCreate;
|
||||||
|
pageData.actions.update = pageData.actions.BaseDepartmentUpdate;
|
||||||
|
// 合并表单数据及配置
|
||||||
|
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
|
||||||
|
|
||||||
|
this.pageOptions = pageData;
|
||||||
|
},
|
||||||
|
|
||||||
|
dataInit() {
|
||||||
|
// 获取路由的id参数
|
||||||
|
let dataId = this.getDataId();
|
||||||
|
// 如果有id参数,说明是编辑模式
|
||||||
|
if (dataId) {
|
||||||
|
const json = `{"id":${dataId}}`;
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.pageOptions.actions.get,
|
||||||
|
loading: "加载中...",
|
||||||
|
data: json,
|
||||||
|
config: {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
|
||||||
|
let detailDataFieldName = this.pageOptions.detailDataFieldName;
|
||||||
|
|
||||||
|
if (a.data[detailDataFieldName].create_time) {
|
||||||
|
a.data[detailDataFieldName].create_time = new Date(a.data[detailDataFieldName].create_time * 1000);
|
||||||
|
}
|
||||||
|
if (a.data[detailDataFieldName].update_time) {
|
||||||
|
a.data[detailDataFieldName].update_time = new Date(a.data[detailDataFieldName].update_time * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.pageOptions.formOptions.data = a.data[detailDataFieldName];
|
||||||
|
|
||||||
|
this.$forceUpdate()
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.pageOptions.isEdit = true;
|
||||||
|
|
||||||
|
this.$forceUpdate()
|
||||||
|
} else {
|
||||||
|
// 如果没有id参数,说明是新增模式
|
||||||
|
this.addModeItems.forEach(item => {
|
||||||
|
this.pageOptions.formOptions.items.push(item);
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取路由的id参数
|
||||||
|
getDataId() {
|
||||||
|
let dataId = this.dataId;
|
||||||
|
if (this.$route.params.id) {
|
||||||
|
dataId = this.$route.params.id;
|
||||||
|
}
|
||||||
|
if (!dataId) {
|
||||||
|
dataId = 0;
|
||||||
|
}
|
||||||
|
return dataId;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 监听属性
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
<template>
|
||||||
|
<basic-page-list :desc="desc" :options="pageOptions"></basic-page-list>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/mes/api.js';
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
i18n: require("./i18n"),
|
||||||
|
props: {
|
||||||
|
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageOptions: {}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// 计算属性
|
||||||
|
computed: {
|
||||||
|
// 页面描述
|
||||||
|
desc() {
|
||||||
|
return this.$t("pageDesc");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 创建完成
|
||||||
|
created() {
|
||||||
|
this.optionsInit();
|
||||||
|
},
|
||||||
|
// 动作
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
optionsInit() {
|
||||||
|
// 页面数据
|
||||||
|
var pageData = { // 页面数据变量
|
||||||
|
|
||||||
|
keyName: 'id', // 主键字段名
|
||||||
|
listFieldName: 'BaseDepartment',
|
||||||
|
|
||||||
|
addPageUrl: "/BaseDepartment/BaseDepartmentAdd",
|
||||||
|
editPageUrl: "/BaseDepartment/BaseDepartmentUpdate/",
|
||||||
|
|
||||||
|
// 接口动作
|
||||||
|
actions: { // Api 接口地址
|
||||||
|
BaseDepartmentList: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/list`, // 部门列表
|
||||||
|
BaseDepartmentBatchDelete: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/batchDelete`,
|
||||||
|
},
|
||||||
|
|
||||||
|
start_time: 0, // 开始时间
|
||||||
|
end_time: 0, // 结束时间
|
||||||
|
|
||||||
|
|
||||||
|
//搜索区
|
||||||
|
searchFormData: {
|
||||||
|
title: '',
|
||||||
|
desc: '',
|
||||||
|
},
|
||||||
|
// 搜索区配置
|
||||||
|
searchRules: [
|
||||||
|
{ key: "title", mode: "like" },
|
||||||
|
{ key: "desc", mode: "like" }
|
||||||
|
],
|
||||||
|
//搜索区
|
||||||
|
searchFormItems: [ // 子项
|
||||||
|
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
|
||||||
|
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
||||||
|
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
||||||
|
{
|
||||||
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
|
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, // 搜索按钮
|
||||||
|
{ props: { type: 'reset', content: '重置' } }]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
//数据区
|
||||||
|
gridOptions: { // 表格配置
|
||||||
|
height: '100%', // 表格高度 100% 会自动撑满父容器
|
||||||
|
stripe: true, // 启用斑马纹
|
||||||
|
id: 'datagrid_1', // 表格唯一标识
|
||||||
|
|
||||||
|
columns: [
|
||||||
|
{ type: 'checkbox', width: 50 }, // 多选框
|
||||||
|
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
||||||
|
|
||||||
|
{ field: 'code', sortable: true, title: '编码', width: 250 }, // 编码
|
||||||
|
// { field: 'title', sortable: true, title: '部门名称', width: 250 }, // 部门名称
|
||||||
|
{ field: 'name', sortable: true, title: '部门名称', width: 250 }, // 部门英文名称
|
||||||
|
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
||||||
|
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.actions.getList = pageData.actions.BaseDepartmentList;
|
||||||
|
pageData.actions.delete = pageData.actions.BaseDepartmentBatchDelete;
|
||||||
|
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); // 合并表格数据
|
||||||
|
|
||||||
|
|
||||||
|
this.pageOptions = pageData;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
module.exports = {
|
||||||
|
messages: {
|
||||||
|
CN: {
|
||||||
|
pageDesc:'单位管理'
|
||||||
|
},
|
||||||
|
HK: {
|
||||||
|
pageDesc:'单位管理'
|
||||||
|
},
|
||||||
|
US: {
|
||||||
|
pageDesc:'单位管理'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const FunName = 'BaseDepartment';
|
||||||
|
const FunTitle = '部门';
|
||||||
|
const InvisibleRouters = 'Detail,Delete,BatchDelete,BatchUpdate,BatchCreate,ExportExcel,LogDetail,LogList,Settings,SettingsUpdate,ImportExcel'.split(',')
|
||||||
|
const InvisibleRouters2 = ''.split(',')
|
||||||
|
// 视图组件
|
||||||
|
const view = {
|
||||||
|
tabs: () => import('@/layouts/tabs'),
|
||||||
|
blank: () => import('@/layouts/BlankView'),
|
||||||
|
page: () => import('@/layouts/PageView')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 路由组件注册
|
||||||
|
const routerMap = {
|
||||||
|
};
|
||||||
|
routerMap[FunName]= {
|
||||||
|
name: FunTitle,
|
||||||
|
icon: 'idcard',
|
||||||
|
component: view.blank,
|
||||||
|
meta: {
|
||||||
|
},
|
||||||
|
authority: {
|
||||||
|
permission: [],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
routerMap[FunName + 'List']= {
|
||||||
|
name: FunTitle,
|
||||||
|
icon: 'idcard',
|
||||||
|
path: `/${FunName}/${FunName}List`,
|
||||||
|
meta:{
|
||||||
|
page:{ cacheAble:false}
|
||||||
|
},
|
||||||
|
component: () => import(`@/pages/Middle/Mes/BaseDepartment/BaseDepartment/List`),
|
||||||
|
authority: {
|
||||||
|
permission: [],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
routerMap[FunName + 'Create']= {
|
||||||
|
name: FunTitle,
|
||||||
|
icon: 'idcard',
|
||||||
|
path: `/${FunName}/${FunName}Add`,
|
||||||
|
component: () => import(`@/pages/Middle/Mes/BaseDepartment/BaseDepartment/Edit`),
|
||||||
|
meta: {
|
||||||
|
invisible: true,
|
||||||
|
},
|
||||||
|
authority: {
|
||||||
|
permission: [],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
routerMap[FunName + 'Update']= {
|
||||||
|
name: FunTitle,
|
||||||
|
icon: 'idcard',
|
||||||
|
path: `/${FunName}/${FunName}Update/:id`,
|
||||||
|
component: () => import(`@/pages/Middle/Mes/BaseDepartment/BaseDepartment/Edit`),
|
||||||
|
meta: {
|
||||||
|
invisible: true,
|
||||||
|
},
|
||||||
|
authority: {
|
||||||
|
permission: [],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
InvisibleRouters.forEach(item => {
|
||||||
|
let name = FunName + item;
|
||||||
|
if (!(name in routerMap)) {
|
||||||
|
routerMap[name] = {
|
||||||
|
meta: {
|
||||||
|
invisible: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
InvisibleRouters2.forEach(item => {
|
||||||
|
let name = item;
|
||||||
|
if (!(name in routerMap)) {
|
||||||
|
routerMap[name] = {
|
||||||
|
meta: {
|
||||||
|
invisible: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export default routerMap
|
||||||
|
|
@ -18,6 +18,7 @@ import MesEnum from '@/router/Middle/Mes/MesEnum/router.map.js'
|
||||||
import MesBom from '@/router/Middle/Mes/MesBom/router.map.js'
|
import MesBom from '@/router/Middle/Mes/MesBom/router.map.js'
|
||||||
import MesUnitRouterMap from '@/router/Middle/Mes/MesUnit/router.map.js'
|
import MesUnitRouterMap from '@/router/Middle/Mes/MesUnit/router.map.js'
|
||||||
|
|
||||||
|
import BaseDepartment from '@/router/Middle/Mes/BaseDepartment/router.map.js'
|
||||||
import basic from '@/router/Middle/Mes/basic/router.map.js'
|
import basic from '@/router/Middle/Mes/basic/router.map.js'
|
||||||
|
|
||||||
const routerMap = Object.assign({},
|
const routerMap = Object.assign({},
|
||||||
|
|
@ -35,7 +36,9 @@ const routerMap = Object.assign({},
|
||||||
MesWarehouse,
|
MesWarehouse,
|
||||||
MesEnum,
|
MesEnum,
|
||||||
MesBom,
|
MesBom,
|
||||||
basic
|
basic,
|
||||||
|
|
||||||
|
BaseDepartment
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue