From 3819c785829947d4fe83db4089505556e9ac2d21 Mon Sep 17 00:00:00 2001 From: "Blank.li" Date: Fri, 26 Sep 2025 11:14:55 +0800 Subject: [PATCH] feat: Add HR department synchronization and employee management extensions - Implemented HR_DeptSync.jsx for department synchronization functionality. - Created HR_DingTalkEmployees.jsx for managing DingTalk employee information. - Developed HR_YSEmployees.jsx for handling YS employee data. - Added HR_DeptManager.vue and associated options for managing department data. - Introduced HR_DeptShip.vue for cross-system department associations. - Established options.js files for each component to define table structure and form fields. - Enhanced UI components with grid and form functionalities for better user interaction. - Included necessary methods for data handling and event management in each extension. --- .../hr/deptmanager/HR_YSDepartments.jsx} | 0 src/extension/hr/deptship/HR_DeptShip.jsx | 75 +++++++++++++++ src/extension/hr/deptsync/HR_DeptSync.jsx | 75 +++++++++++++++ .../HR_DingTalkEmployees.jsx | 76 +++++++++++++++ .../hr/ysemployees/HR_YSEmployees.jsx | 76 +++++++++++++++ src/router/viewGird.js | 22 ++++- src/views/hr/deptmanager/HR_DeptManager.vue | 90 ++++++++++++++++++ .../hr/deptmanager/HR_DeptManager/options.js | 95 +++++++++++++++++++ src/views/hr/deptship/HR_DeptShip.vue | 83 ++++++++++++++++ src/views/hr/deptship/HR_DeptShip/options.js | 46 +++++++++ src/views/hr/deptsync/HR_DeptSync.vue | 83 ++++++++++++++++ src/views/hr/deptsync/HR_DeptSync/options.js | 43 +++++++++ .../HR_DingTalkEmployees.vue | 85 +++++++++++++++++ .../HR_DingTalkEmployees/options.js | 65 +++++++++++++ src/views/hr/ysemployees/HR_YSEmployees.vue | 85 +++++++++++++++++ .../hr/ysemployees/HR_YSEmployees/options.js | 59 ++++++++++++ vite.config.ts | 1 + 17 files changed, 1058 insertions(+), 1 deletion(-) rename src/{views/extension/hr/empsync/HR_EmpSync.jsx => extension/hr/deptmanager/HR_YSDepartments.jsx} (100%) create mode 100644 src/extension/hr/deptship/HR_DeptShip.jsx create mode 100644 src/extension/hr/deptsync/HR_DeptSync.jsx create mode 100644 src/extension/hr/dingtalkemployees/HR_DingTalkEmployees.jsx create mode 100644 src/extension/hr/ysemployees/HR_YSEmployees.jsx create mode 100644 src/views/hr/deptmanager/HR_DeptManager.vue create mode 100644 src/views/hr/deptmanager/HR_DeptManager/options.js create mode 100644 src/views/hr/deptship/HR_DeptShip.vue create mode 100644 src/views/hr/deptship/HR_DeptShip/options.js create mode 100644 src/views/hr/deptsync/HR_DeptSync.vue create mode 100644 src/views/hr/deptsync/HR_DeptSync/options.js create mode 100644 src/views/hr/dingtalkemployees/HR_DingTalkEmployees.vue create mode 100644 src/views/hr/dingtalkemployees/HR_DingTalkEmployees/options.js create mode 100644 src/views/hr/ysemployees/HR_YSEmployees.vue create mode 100644 src/views/hr/ysemployees/HR_YSEmployees/options.js diff --git a/src/views/extension/hr/empsync/HR_EmpSync.jsx b/src/extension/hr/deptmanager/HR_YSDepartments.jsx similarity index 100% rename from src/views/extension/hr/empsync/HR_EmpSync.jsx rename to src/extension/hr/deptmanager/HR_YSDepartments.jsx diff --git a/src/extension/hr/deptship/HR_DeptShip.jsx b/src/extension/hr/deptship/HR_DeptShip.jsx new file mode 100644 index 0000000..bc580db --- /dev/null +++ b/src/extension/hr/deptship/HR_DeptShip.jsx @@ -0,0 +1,75 @@ +/***************************************************************************************** +** Author:jxx +** QQ:283591387 +** 框架文档: http://v3.volcore.xyz/ +*****************************************************************************************/ +//此js文件是用来自定义扩展业务代码,在当前[表.vue]文件中也可以实现业务处理 + +let extension = { + components: { + //查询界面扩展组件 + gridHeader: '', + gridBody: '', + gridFooter: '', + //新建、编辑弹出框扩展组件 + modelHeader: '', + modelBody: '', + modelRight: '', + modelFooter: '' + }, + tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写) + buttons: { view: [], box: [], detail: [] }, //扩展的按钮 + methods: { + //下面这些方法可以保留也可以删除 + onInit() { //框架初始化配置前, + //示例:在按钮的最前面添加一个按钮 + // this.buttons.unshift({ //也可以用push或者splice方法来修改buttons数组 + // name: '按钮', //按钮名称 + // icon: 'el-icon-document', //按钮图标:https://element.eleme.cn/#/zh-CN/component/icon + // type: 'primary', //按钮样式:https://element-plus.gitee.io/zh-CN/component/button.html + // //color:"#eee",//自定义按钮颜色 + // onClick: function () { + // this.$Message.success('点击了按钮'); + // } + // }); + + //示例:设置修改新建、编辑弹出框字段标签的长度 + // this.boxOptions.labelWidth = 150; + }, + onInited() { + //框架初始化配置后 + //如果要配置明细表,在此方法操作 + //this.detailOptions.columns.forEach(column=>{ }); + }, + searchBefore(param) { + //界面查询前,可以给param.wheres添加查询参数 + //返回false,则不会执行查询 + return true; + }, + searchAfter(result) { + //查询后,result返回的查询数据,可以在显示到表格前处理表格的值 + return true; + }, + addBefore(formData) { + //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值 + return true; + }, + updateBefore(formData) { + //编辑保存前formData为对象,包括明细表、删除行的Id + return true; + }, + rowClick({ row, column, event }) { + //查询界面点击行事件 + // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行; + }, + modelOpenAfter(row) { + //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据 + //(1)判断是编辑还是新建操作: this.currentAction=='Add'; + //(2)给弹出框设置默认值 + //(3)this.editFormFields.字段='xxx'; + //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值 + //看不懂就把输出看:console.log(this.editFormOptions) + } + } +}; +export default extension; diff --git a/src/extension/hr/deptsync/HR_DeptSync.jsx b/src/extension/hr/deptsync/HR_DeptSync.jsx new file mode 100644 index 0000000..bc580db --- /dev/null +++ b/src/extension/hr/deptsync/HR_DeptSync.jsx @@ -0,0 +1,75 @@ +/***************************************************************************************** +** Author:jxx +** QQ:283591387 +** 框架文档: http://v3.volcore.xyz/ +*****************************************************************************************/ +//此js文件是用来自定义扩展业务代码,在当前[表.vue]文件中也可以实现业务处理 + +let extension = { + components: { + //查询界面扩展组件 + gridHeader: '', + gridBody: '', + gridFooter: '', + //新建、编辑弹出框扩展组件 + modelHeader: '', + modelBody: '', + modelRight: '', + modelFooter: '' + }, + tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写) + buttons: { view: [], box: [], detail: [] }, //扩展的按钮 + methods: { + //下面这些方法可以保留也可以删除 + onInit() { //框架初始化配置前, + //示例:在按钮的最前面添加一个按钮 + // this.buttons.unshift({ //也可以用push或者splice方法来修改buttons数组 + // name: '按钮', //按钮名称 + // icon: 'el-icon-document', //按钮图标:https://element.eleme.cn/#/zh-CN/component/icon + // type: 'primary', //按钮样式:https://element-plus.gitee.io/zh-CN/component/button.html + // //color:"#eee",//自定义按钮颜色 + // onClick: function () { + // this.$Message.success('点击了按钮'); + // } + // }); + + //示例:设置修改新建、编辑弹出框字段标签的长度 + // this.boxOptions.labelWidth = 150; + }, + onInited() { + //框架初始化配置后 + //如果要配置明细表,在此方法操作 + //this.detailOptions.columns.forEach(column=>{ }); + }, + searchBefore(param) { + //界面查询前,可以给param.wheres添加查询参数 + //返回false,则不会执行查询 + return true; + }, + searchAfter(result) { + //查询后,result返回的查询数据,可以在显示到表格前处理表格的值 + return true; + }, + addBefore(formData) { + //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值 + return true; + }, + updateBefore(formData) { + //编辑保存前formData为对象,包括明细表、删除行的Id + return true; + }, + rowClick({ row, column, event }) { + //查询界面点击行事件 + // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行; + }, + modelOpenAfter(row) { + //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据 + //(1)判断是编辑还是新建操作: this.currentAction=='Add'; + //(2)给弹出框设置默认值 + //(3)this.editFormFields.字段='xxx'; + //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值 + //看不懂就把输出看:console.log(this.editFormOptions) + } + } +}; +export default extension; diff --git a/src/extension/hr/dingtalkemployees/HR_DingTalkEmployees.jsx b/src/extension/hr/dingtalkemployees/HR_DingTalkEmployees.jsx new file mode 100644 index 0000000..14e6e6d --- /dev/null +++ b/src/extension/hr/dingtalkemployees/HR_DingTalkEmployees.jsx @@ -0,0 +1,76 @@ +/***************************************************************************************** +** Author:jxx +** QQ:283591387 +** 框架文档: http://v3.volcore.xyz/ +*****************************************************************************************/ +//此js文件是用来自定义扩展业务代码,在当前[表.vue]文件中也可以实现业务处理 + +let extension = { + components: { + //查询界面扩展组件 + gridHeader: '', + gridBody: '', + gridFooter: '', + //新建、编辑弹出框扩展组件 + modelHeader: '', + modelBody: '', + modelRight: '', + modelFooter: '' + }, + tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写) + buttons: { view: [], box: [], detail: [] }, //扩展的按钮 + methods: { + //下面这些方法可以保留也可以删除 + onInit() { //框架初始化配置前, + //示例:在按钮的最前面添加一个按钮 + this.buttons.unshift({ //也可以用push或者splice方法来修改buttons数组 + name: '为避免接口被限制,刷新数据时间为十分钟', //按钮名称 + icon: 'el-icon-refresh', //按钮图标:https://element.eleme.cn/#/zh-CN/component/icon + type: 'primary', //按钮样式:https://element-plus.gitee.io/zh-CN/component/button.html + disabled: false, //按钮是否可用 + //color:"#eee",//自定义按钮颜色 + onClick: function () { + this.$Message.warning('为避免接口被限制,刷新数据时间为十分钟'); + } + }); + + //示例:设置修改新建、编辑弹出框字段标签的长度 + // this.boxOptions.labelWidth = 150; + }, + onInited() { + //框架初始化配置后 + //如果要配置明细表,在此方法操作 + //this.detailOptions.columns.forEach(column=>{ }); + }, + searchBefore(param) { + //界面查询前,可以给param.wheres添加查询参数 + //返回false,则不会执行查询 + return true; + }, + searchAfter(result) { + //查询后,result返回的查询数据,可以在显示到表格前处理表格的值 + return true; + }, + addBefore(formData) { + //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值 + return true; + }, + updateBefore(formData) { + //编辑保存前formData为对象,包括明细表、删除行的Id + return true; + }, + rowClick({ row, column, event }) { + //查询界面点击行事件 + // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行; + }, + modelOpenAfter(row) { + //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据 + //(1)判断是编辑还是新建操作: this.currentAction=='Add'; + //(2)给弹出框设置默认值 + //(3)this.editFormFields.字段='xxx'; + //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值 + //看不懂就把输出看:console.log(this.editFormOptions) + } + } +}; +export default extension; diff --git a/src/extension/hr/ysemployees/HR_YSEmployees.jsx b/src/extension/hr/ysemployees/HR_YSEmployees.jsx new file mode 100644 index 0000000..14e6e6d --- /dev/null +++ b/src/extension/hr/ysemployees/HR_YSEmployees.jsx @@ -0,0 +1,76 @@ +/***************************************************************************************** +** Author:jxx +** QQ:283591387 +** 框架文档: http://v3.volcore.xyz/ +*****************************************************************************************/ +//此js文件是用来自定义扩展业务代码,在当前[表.vue]文件中也可以实现业务处理 + +let extension = { + components: { + //查询界面扩展组件 + gridHeader: '', + gridBody: '', + gridFooter: '', + //新建、编辑弹出框扩展组件 + modelHeader: '', + modelBody: '', + modelRight: '', + modelFooter: '' + }, + tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写) + buttons: { view: [], box: [], detail: [] }, //扩展的按钮 + methods: { + //下面这些方法可以保留也可以删除 + onInit() { //框架初始化配置前, + //示例:在按钮的最前面添加一个按钮 + this.buttons.unshift({ //也可以用push或者splice方法来修改buttons数组 + name: '为避免接口被限制,刷新数据时间为十分钟', //按钮名称 + icon: 'el-icon-refresh', //按钮图标:https://element.eleme.cn/#/zh-CN/component/icon + type: 'primary', //按钮样式:https://element-plus.gitee.io/zh-CN/component/button.html + disabled: false, //按钮是否可用 + //color:"#eee",//自定义按钮颜色 + onClick: function () { + this.$Message.warning('为避免接口被限制,刷新数据时间为十分钟'); + } + }); + + //示例:设置修改新建、编辑弹出框字段标签的长度 + // this.boxOptions.labelWidth = 150; + }, + onInited() { + //框架初始化配置后 + //如果要配置明细表,在此方法操作 + //this.detailOptions.columns.forEach(column=>{ }); + }, + searchBefore(param) { + //界面查询前,可以给param.wheres添加查询参数 + //返回false,则不会执行查询 + return true; + }, + searchAfter(result) { + //查询后,result返回的查询数据,可以在显示到表格前处理表格的值 + return true; + }, + addBefore(formData) { + //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值 + return true; + }, + updateBefore(formData) { + //编辑保存前formData为对象,包括明细表、删除行的Id + return true; + }, + rowClick({ row, column, event }) { + //查询界面点击行事件 + // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行; + }, + modelOpenAfter(row) { + //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据 + //(1)判断是编辑还是新建操作: this.currentAction=='Add'; + //(2)给弹出框设置默认值 + //(3)this.editFormFields.字段='xxx'; + //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值 + //看不懂就把输出看:console.log(this.editFormOptions) + } + } +}; +export default extension; diff --git a/src/router/viewGird.js b/src/router/viewGird.js index 0077584..6a89a2e 100644 --- a/src/router/viewGird.js +++ b/src/router/viewGird.js @@ -88,10 +88,30 @@ let viewgird = [ path: '/Sys_Region', name: 'Sys_Region', component: () => import('@/views/sys/system/Sys_Region.vue') - } ,{ + } ,{ + path: '/HR_YSDepartments', + name: 'HR_YSDepartments', + component: () => import('@/views/hr/deptmanager/HR_DeptManager.vue') + } ,{ + path: '/HR_YSEmployees', + name: 'HR_YSEmployees', + component: () => import('@/views/hr/ysemployees/HR_YSEmployees.vue') + } ,{ + path: '/HR_DingTalkEmployees', + name: 'HR_DingTalkEmployees', + component: () => import('@/views/hr/dingtalkemployees/HR_DingTalkEmployees.vue') + } ,{ path: '/HR_EmployeeSync', name: 'HR_EmployeeSync', component: () => import('@/views/hr/employeesync/HR_EmployeeSync.vue') + } ,{ + path: '/HR_DeptShip', + name: 'HR_DeptShip', + component: () => import('@/views/hr/deptship/HR_DeptShip.vue') + } ,{ + path: '/HR_DeptSync', + name: 'HR_DeptSync', + component: () => import('@/views/hr/deptsync/HR_DeptSync.vue') }] //上面的demo、MES开头的都是示例菜单,可以任意删除 diff --git a/src/views/hr/deptmanager/HR_DeptManager.vue b/src/views/hr/deptmanager/HR_DeptManager.vue new file mode 100644 index 0000000..4f80abe --- /dev/null +++ b/src/views/hr/deptmanager/HR_DeptManager.vue @@ -0,0 +1,90 @@ + + + + diff --git a/src/views/hr/deptmanager/HR_DeptManager/options.js b/src/views/hr/deptmanager/HR_DeptManager/options.js new file mode 100644 index 0000000..b5cc5dd --- /dev/null +++ b/src/views/hr/deptmanager/HR_DeptManager/options.js @@ -0,0 +1,95 @@ +// *Author:jxx +// *Contact:283591387@qq.com +// *代码由框架生成,任何更改都可能导致被代码生成器覆盖 +/* +{ + "orgtype": 1, + "code": "LVH", + "sysid": "diwork", + "displayorder": 3, + "parentid": "", + "dr": 0, + "parentCode": null, + "parentorgid": null, + "enable": 1, + "is_biz_unit": 1, + "tenantid": "a5c83lrd", + "name": "LASERVALL CO., LIMITED", + "id": "1986541363558088707", + "pubts": "2025-05-23 23:44:19" + }, + { + "orgtype": 2, + "code": "OIC2020401", + "sysid": "diwork", + "displayorder": 121, + "parentid": "2209177478763642895", + "dr": 0, + "parentCode": "OIC20204", + "parentorgid": "1986541449457434632", + "enable": 1, + "is_biz_unit": 0, + "tenantid": "a5c83lrd", + "name": "LVC 苏州机械设计部", + "id": "2209177530291191823", + "pubts": "2025-08-27 23:05:41" + }, +*/ + +export default function(){ + const table = { + key: 'code', + footer: "Foots", + cnName: 'YSERP部门信息', + name: 'HR_YSDepartments', + url: "/HR_YSDepartments/", + sortName: "displayorder" + }; + const tableName = table.name; + const tableCNName = table.cnName; + const newTabEdit = false; + const key = table.key; + const editFormFields = { + "code": "", + "name": "", + "orgtype": "", + "is_biz_unit": "", + "enable": "", + "displayorder": "", + "pubts": "" + + }; + const editFormOptions = [ + [{ "title": "部门编码", "field": "code", "disabled": true, "type": "text" }], + [{ "title": "部门名称", "field": "name", "disabled": true, "type": "text" }], + [{ "title": "是否启用", "field": "enable", "disabled": true, "type": "switch" }], + [{ "title": "显示顺序", "field": "displayorder", "disabled": true, "type": "number" }], + [{ "title": "修改时间", "field": "pubts", "disabled": true, "type": "datetime" }] + ]; + const searchFormFields = {}; + const searchFormOptions = []; + const columns = [ + {field:'code',title:'部门编码',type:'string',link:true,width:120,readonly:true,require:true,align:'left',sort:true}, + {field:'name',title:'部门名称',type:'string',width:200,readonly:true,require:true,align:'left'}, + {field:'enable',title:'是否启用',type:'switch',width:120,readonly:true,align:'left'}, + {field:'displayorder',title:'显示顺序',type:'int',width:120,readonly:true,align:'left',sort:true}, + {field:'pubts',title:'修改时间',type:'datetime',width:180,readonly:true,align:'left'} + ]; + const detail ={columns:[]}; + const details = []; + + return { + table, + key, + tableName, + tableCNName, + newTabEdit, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + details + }; +} \ No newline at end of file diff --git a/src/views/hr/deptship/HR_DeptShip.vue b/src/views/hr/deptship/HR_DeptShip.vue new file mode 100644 index 0000000..cfe279c --- /dev/null +++ b/src/views/hr/deptship/HR_DeptShip.vue @@ -0,0 +1,83 @@ + + + + diff --git a/src/views/hr/deptship/HR_DeptShip/options.js b/src/views/hr/deptship/HR_DeptShip/options.js new file mode 100644 index 0000000..eafc33d --- /dev/null +++ b/src/views/hr/deptship/HR_DeptShip/options.js @@ -0,0 +1,46 @@ +// *Author:jxx +// *Contact:283591387@qq.com +// *代码由框架生成,任何更改都可能导致被代码生成器覆盖 +export default function(){ + const table = { + key: 'ShipId', + footer: "Foots", + cnName: '跨系统部门关联', + name: 'HR_DeptShip', + url: "/HR_DeptShip/", + sortName: "ShipId" + }; + const tableName = table.name; + const tableCNName = table.cnName; + const newTabEdit = false; + const key = table.key; + const editFormFields = {"YSDeptId":"","YSDeptName":"","DingTalkDeptId":"","DingTalkDeptName":""}; + const editFormOptions = [[{"title":"YSERP部门ID","required":true,"field":"YSDeptId","type":"text"}, + {"title":"YS部门名称","required":true,"field":"YSDeptName","type":"text"}], + [{"title":"钉钉部门ID","required":true,"field":"DingTalkDeptId","type":"text"}, + {"title":"钉钉部门名称","required":true,"field":"DingTalkDeptName","type":"text"}]]; + const searchFormFields = {}; + const searchFormOptions = []; + const columns = [{field:'ShipId',title:'关联关系ID',type:'int',link:true,width:110,hidden:true,readonly:true,require:true,align:'left'}, + {field:'YSDeptId',title:'YSERP部门ID',type:'string',width:60,require:true,align:'left',sort:true}, + {field:'YSDeptName',title:'YS部门名称',type:'string',width:60,require:true,align:'left'}, + {field:'DingTalkDeptId',title:'钉钉部门ID',type:'string',width:60,require:true,align:'left'}, + {field:'DingTalkDeptName',title:'钉钉部门名称',type:'string',width:60,require:true,align:'left'}]; + const detail ={columns:[]}; + const details = []; + + return { + table, + key, + tableName, + tableCNName, + newTabEdit, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + details + }; +} \ No newline at end of file diff --git a/src/views/hr/deptsync/HR_DeptSync.vue b/src/views/hr/deptsync/HR_DeptSync.vue new file mode 100644 index 0000000..7bc1ab3 --- /dev/null +++ b/src/views/hr/deptsync/HR_DeptSync.vue @@ -0,0 +1,83 @@ + + + + diff --git a/src/views/hr/deptsync/HR_DeptSync/options.js b/src/views/hr/deptsync/HR_DeptSync/options.js new file mode 100644 index 0000000..efddb5b --- /dev/null +++ b/src/views/hr/deptsync/HR_DeptSync/options.js @@ -0,0 +1,43 @@ +// *Author:jxx +// *Contact:283591387@qq.com +// *代码由框架生成,任何更改都可能导致被代码生成器覆盖 +export default function(){ + const table = { + key: 'DeptSyncId', + footer: "Foots", + cnName: '部门信息同步', + name: 'HR_DeptSync', + url: "/HR_DeptSync/", + sortName: "DeptSyncId" + }; + const tableName = table.name; + const tableCNName = table.cnName; + const newTabEdit = false; + const key = table.key; + const editFormFields = {}; + const editFormOptions = []; + const searchFormFields = {}; + const searchFormOptions = []; + const columns = [{field:'DeptSyncId',title:'同步ID',type:'int',link:true,sort:true,width:120,hidden:true,readonly:true,require:true,align:'left'}, + {field:'YSDeptId',title:'YS部门ID',type:'string',width:120,align:'left',sort:true}, + {field:'YSDeptName',title:'YS部门名称',type:'string',width:120,align:'left'}, + {field:'DingTalkDeptId',title:'钉钉部门ID',type:'string',width:120,align:'left'}, + {field:'DingTalkDeptName',title:'钉钉部门名称',type:'string',width:120,align:'left'}]; + const detail ={columns:[]}; + const details = []; + + return { + table, + key, + tableName, + tableCNName, + newTabEdit, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + details + }; +} \ No newline at end of file diff --git a/src/views/hr/dingtalkemployees/HR_DingTalkEmployees.vue b/src/views/hr/dingtalkemployees/HR_DingTalkEmployees.vue new file mode 100644 index 0000000..75bad61 --- /dev/null +++ b/src/views/hr/dingtalkemployees/HR_DingTalkEmployees.vue @@ -0,0 +1,85 @@ + + + + diff --git a/src/views/hr/dingtalkemployees/HR_DingTalkEmployees/options.js b/src/views/hr/dingtalkemployees/HR_DingTalkEmployees/options.js new file mode 100644 index 0000000..01410cf --- /dev/null +++ b/src/views/hr/dingtalkemployees/HR_DingTalkEmployees/options.js @@ -0,0 +1,65 @@ +// *Author:jxx +// *Contact:283591387@qq.com +// *代码由框架生成,任何更改都可能导致被代码生成器覆盖 +export default function () { + const table = { + key: 'mobile', + footer: "Foots", + cnName: '钉钉员工信息', + name: 'HR_DingTalkEmployees', + url: "/HR_DingTalkEmployees/", + sortName: "mobile" + }; + const tableName = table.name; + const tableCNName = table.cnName; + const newTabEdit = false; + const key = table.key; + const editFormFields = { + "jobnumber": "", + "name": "", + "position": "", + "reportManager": "", + "mobile": "", + "email": "", + "dept": "", + }; + const editFormOptions = [ + [{ "title": "员工工号", "field": "jobNumber", "disabled": true, "type": "text" }], + [{ "title": "所属部门", "field": "dept", "disabled": true, "type": "text" }], + // [{ "title": "所属公司", "field": "org_id_name", "disabled": true, "type": "text" }], + [{ "title": "手机号", "field": "mobile", "disabled": true, "type": "text" }], + [{ "title": "员工姓名", "field": "name", "disabled": true, "type": "text" }], + [{ "title": "邮箱", "field": "email", "disabled": true, "type": "text" }], + [{ "title": "直系主管", "field": "reportManager", "disabled": true, "type": "text" }], + [{ "title": "职位", "field": "position", "disabled": true, "type": "text" }], + ]; + const searchFormFields = {}; + const searchFormOptions = []; + const columns = [ + { field: 'jobNumber', title: '员工工号', type: 'string', width: 120, readonly: true, align: 'left', sort: true }, + { field: 'dept', title: '所属部门', type: 'string', width: 120, readonly: true, align: 'left' }, + // { field: 'org_id_name', title: '所属公司', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'mobile', title: '手机号', type: 'string', link: true, width: 120, readonly: true, align: 'left' }, + { field: 'name', title: '员工姓名', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'email', title: '邮箱', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'position', title: '职位', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'reportManager', title: '直系主管', type: 'string', width: 120, readonly: true, align: 'left' }, + ]; + const detail = { columns: [] }; + const details = []; + + return { + table, + key, + tableName, + tableCNName, + newTabEdit, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + details + }; +} \ No newline at end of file diff --git a/src/views/hr/ysemployees/HR_YSEmployees.vue b/src/views/hr/ysemployees/HR_YSEmployees.vue new file mode 100644 index 0000000..68da2fe --- /dev/null +++ b/src/views/hr/ysemployees/HR_YSEmployees.vue @@ -0,0 +1,85 @@ + + + + diff --git a/src/views/hr/ysemployees/HR_YSEmployees/options.js b/src/views/hr/ysemployees/HR_YSEmployees/options.js new file mode 100644 index 0000000..39f8e16 --- /dev/null +++ b/src/views/hr/ysemployees/HR_YSEmployees/options.js @@ -0,0 +1,59 @@ +// *Author:jxx +// *Contact:283591387@qq.com +// *代码由框架生成,任何更改都可能导致被代码生成器覆盖 +export default function () { + const table = { + key: 'code', + footer: "Foots", + cnName: 'YS员工信息', + name: 'HR_YSEmployees', + url: "/HR_YSEmployees/", + sortName: "code" + }; + const tableName = table.name; + const tableCNName = table.cnName; + const newTabEdit = false; + const key = table.key; + const editFormFields = { + "code": "", + "dept_id_name": "", + "org_id_name": "", + "mobile": "", + "name": "", + "email": "", + }; + const editFormOptions = [ + [{ "title": "员工工号", "field": "code", "disabled": true, "type": "text" }], + [{ "title": "所属部门", "field": "dept_id_name", "disabled": true, "type": "text" }], + [{ "title": "所属公司", "field": "org_id_name", "disabled": true, "type": "text" }], + [{ "title": "手机号", "field": "mobile", "disabled": true, "type": "text" }], + [{ "title": "员工姓名", "field": "name", "disabled": true, "type": "text" }], + [{ "title": "邮箱", "field": "email", "disabled": true, "type": "text" }] + ]; + const searchFormFields = {}; + const searchFormOptions = []; + const columns = [ + { field: 'code', title: '员工工号', type: 'string', link: true, width: 120, readonly: true, align: 'left', sort: true }, + { field: 'dept_id_name', title: '所属部门', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'org_id_name', title: '所属公司', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'mobile', title: '手机号', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'name', title: '员工姓名', type: 'string', width: 120, readonly: true, align: 'left' }, + { field: 'email', title: '邮箱', type: 'string', width: 120, readonly: true, align: 'left' }]; + const detail = { columns: [] }; + const details = []; + + return { + table, + key, + tableName, + tableCNName, + newTabEdit, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + details + }; +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 7e52de4..f4f9fea 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -76,6 +76,7 @@ export default defineConfig({ }, server: { port: 9990, + timeout: 1000 * 60 * 10, //配置代理 // proxy: {//http.js里设置为空axios.defaults.baseURL = ""; // '/api': {