提交 91cd4b68 编写于 作者: ibizdev's avatar ibizdev

jackwang 部署微服务应用

上级 5014ba0b
......@@ -169,6 +169,16 @@
"viewtag": "26838780ace211d1714a2887e9039888",
"memo": ""
},
"hremployeeeditview2": {
"title": "员工编辑视图",
"caption": "员工",
"viewtype": "DEEDITVIEW2",
"viewmodule": "HumanResource",
"viewname": "HREmployeeEditView2",
"viewfilename": "hremployee-edit-view2",
"viewtag": "2845c606caf1ce6ad990cfc0adef801b",
"memo": ""
},
"hroperationunitgridview": {
"title": "运营单位",
"caption": "运营单位",
......
/**
* 代码表--员工状态
*
* @export
* @class CL_HR_0016
*/
export default class CL_HR_0016 {
/**
* 是否启用缓存
*
* @type boolean
* @memberof CL_HR_0016
*/
public isEnableCache:boolean = true;
/**
* 过期时间
*
* @type any
* @memberof CL_HR_0016
*/
public expirationTime:any;
/**
* 缓存超长时长
*
* @type any
* @memberof CL_HR_0016
*/
public cacheTimeout:any = -1;
/**
* 代码表模型对象
*
* @type any
* @memberof CL_HR_0016
*/
public codelistModel:any = {
codelistid:"CL_HR_0016"
};
/**
* 自定义参数集合
*
* @type any
* @memberof CL_HR_0016
*/
public userParamNames:any ={
}
/**
* 查询参数集合
*
* @type any
* @memberof CL_HR_0016
*/
public queryParamNames:any ={
}
/**
* 获取数据项
*
* @param {*} data
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof CL_HR_0016
*/
public getItems(data: any={}, isloading?: boolean): Promise<any> {
return Promise.reject([]);
}
/**
* 处理查询参数
* @param data 传入data
* @memberof CL_HR_0016
*/
public handleQueryParam(data:any){
let tempData:any = data?JSON.parse(JSON.stringify(data)):{};
if(this.userParamNames && Object.keys(this.userParamNames).length >0){
Object.keys(this.userParamNames).forEach((name: string) => {
if (!name) {
return;
}
let value: string | null = this.userParamNames[name];
if (value && value.startsWith('%') && value.endsWith('%')) {
const key = value.substring(1, value.length - 1);
if (this.codelistModel && this.codelistModel.hasOwnProperty(key)) {
value = (this.codelistModel[key] !== null && this.codelistModel[key] !== undefined) ? this.codelistModel[key] : null;
} else {
value = null;
}
}
Object.assign(tempData, { [name]: value });
});
}
Object.assign(tempData,{page: 0, size: 1000});
if(this.queryParamNames && Object.keys(this.queryParamNames).length > 0){
Object.assign(tempData,this.queryParamNames);
}
return tempData;
}
}
......@@ -55,7 +55,7 @@ export interface HREmployee {
createdate?: any;
/**
* 组织
* 组织ID
*
* @returns {*}
* @memberof HREmployee
......@@ -101,4 +101,220 @@ export interface HREmployee {
* @memberof HREmployee
*/
age?: any;
/**
* 单位
*
* @returns {*}
* @memberof HREmployee
*/
organizationname?: any;
/**
* 性别
*
* @returns {*}
* @memberof HREmployee
*/
sex?: any;
/**
* 血型
*
* @returns {*}
* @memberof HREmployee
*/
bloodtype?: any;
/**
* 固定电话
*
* @returns {*}
* @memberof HREmployee
*/
telephone?: any;
/**
* 移动电话
*
* @returns {*}
* @memberof HREmployee
*/
mobile?: any;
/**
* 电子邮箱
*
* @returns {*}
* @memberof HREmployee
*/
email?: any;
/**
* 婚姻状况
*
* @returns {*}
* @memberof HREmployee
*/
marriage?: any;
/**
* 民族
*
* @returns {*}
* @memberof HREmployee
*/
nation?: any;
/**
* 户口类型
*
* @returns {*}
* @memberof HREmployee
*/
nativetype?: any;
/**
* 户籍地址
*
* @returns {*}
* @memberof HREmployee
*/
nativeaddress?: any;
/**
* 出生地
*
* @returns {*}
* @memberof HREmployee
*/
birthaddress?: any;
/**
* 通讯地址
*
* @returns {*}
* @memberof HREmployee
*/
postaladdress?: any;
/**
* 爱好特长
*
* @returns {*}
* @memberof HREmployee
*/
hobby?: any;
/**
* 健康状况
*
* @returns {*}
* @memberof HREmployee
*/
health?: any;
/**
* 政治面貌
*
* @returns {*}
* @memberof HREmployee
*/
political?: any;
/**
* 参加工作时间
*
* @returns {*}
* @memberof HREmployee
*/
startworktime?: any;
/**
* 到本单位时间
*
* @returns {*}
* @memberof HREmployee
*/
startorgtime?: any;
/**
* 照片
*
* @returns {*}
* @memberof HREmployee
*/
photo?: any;
/**
* 第一学历
*
* @returns {*}
* @memberof HREmployee
*/
firstdegree?: any;
/**
* 最高学历
*
* @returns {*}
* @memberof HREmployee
*/
highestdegree?: any;
/**
* 技术职称
*
* @returns {*}
* @memberof HREmployee
*/
technicaltitle?: any;
/**
* 执业证书
*
* @returns {*}
* @memberof HREmployee
*/
certificates?: any;
/**
* 入职渠道
*
* @returns {*}
* @memberof HREmployee
*/
entrytype?: any;
/**
* 入党时间
*
* @returns {*}
* @memberof HREmployee
*/
politicaltime?: any;
/**
* 员工状态
*
* @returns {*}
* @memberof HREmployee
*/
empstate?: any;
/**
* 在岗状态
*
* @returns {*}
* @memberof HREmployee
*/
jobstate?: any;
/**
* 籍贯
*
* @returns {*}
* @memberof HREmployee
*/
nativeplace?: any;
}
\ No newline at end of file
......@@ -2,15 +2,29 @@ export default {
SysOperator: {
"empty": "",
},
CL_HR_0009: {
"IDCARD": "身份证",
"PASSPORT": "护照",
"OTHER": "其他",
"empty": ""
},
CL_HR_0012: {
"FARM": "农业户口",
"NONFARM": "非农业户口",
"OTHER": "其他",
"empty": ""
},
YesNo: {
"1": "是",
"0": "否",
"empty": ""
},
CL_HR_0005: {
"HIGH": "高",
"MID": "中",
"LOW": "低",
CL_HR_0011: {
"SINGLE": "未婚",
"MARRIED": "已婚",
"WIDOWED": "丧偶",
"DIVORCED": "离异",
"OTHER": "其他",
"empty": ""
},
CL_HR_0004: {
......@@ -25,6 +39,42 @@ export default {
"COMMERCIAL": "商业渠道",
"empty": ""
},
CL_HR_0003: {
"TEL": "电话",
"EMAIL": "电子邮件地址",
"WECHAT": "微信",
"QQ": "QQ",
"FAX": "传真",
"empty": ""
},
OrganizationType: {
"LEGAL": "法人",
"OPERATIONUNIT": "运营单位",
"empty": ""
},
CL_HR_0010: {
"MALE": "男",
"FEMALE": "女",
"empty": ""
},
CL_HR_0007: {
"A": "A",
"B": "B",
"AB": "AB",
"O": "O",
"其他": "其他",
"empty": ""
},
CL_HR_0005: {
"HIGH": "高",
"MID": "中",
"LOW": "低",
"empty": ""
},
CL_HR_0008: {
"汉": "汉",
"empty": ""
},
CL_HR_0002: {
"BUSINESS": "业务",
"HOME": "家庭住址",
......@@ -43,17 +93,31 @@ export default {
"OTHER": "其他",
"empty": ""
},
CL_HR_0003: {
"TEL": "电话",
"EMAIL": "电子邮件地址",
"WECHAT": "微信",
"QQ": "QQ",
"FAX": "传真",
CL_HR_0016: {
"empty": "",
},
CL_HR_0015: {
"10": "校园招聘",
"20": "社会招聘",
"40": "返聘",
"50": "军人安置",
"90": "其他",
"empty": ""
},
OrganizationType: {
"LEGAL": "法人",
"OPERATIONUNIT": "运营单位",
CL_HR_0013: {
"10": "中共党员",
"30": "共青团员",
"40": "群众",
"50": "民进会员",
"60": "民革会员",
"70": "民盟会员",
"80": "民建会员",
"90": "农工党党员",
"100": "致公党党员",
"110": "台盟盟员",
"120": "九三学社社员",
"130": "无党派民主人士",
"140": "其他",
"empty": ""
},
};
\ No newline at end of file
......@@ -2,15 +2,29 @@ export default {
SysOperator: {
"empty": "",
},
CL_HR_0009: {
"IDCARD": "身份证",
"PASSPORT": "护照",
"OTHER": "其他",
"empty": "",
},
CL_HR_0012: {
"FARM": "农业户口",
"NONFARM": "非农业户口",
"OTHER": "其他",
"empty": "",
},
YesNo: {
"1": "是",
"0": "否",
"empty": "",
},
CL_HR_0005: {
"HIGH": "高",
"MID": "中",
"LOW": "低",
CL_HR_0011: {
"SINGLE": "未婚",
"MARRIED": "已婚",
"WIDOWED": "丧偶",
"DIVORCED": "离异",
"OTHER": "其他",
"empty": "",
},
CL_HR_0004: {
......@@ -25,6 +39,42 @@ export default {
"COMMERCIAL": "商业渠道",
"empty": "",
},
CL_HR_0003: {
"TEL": "电话",
"EMAIL": "电子邮件地址",
"WECHAT": "微信",
"QQ": "QQ",
"FAX": "传真",
"empty": "",
},
OrganizationType: {
"LEGAL": "法人",
"OPERATIONUNIT": "运营单位",
"empty": "",
},
CL_HR_0010: {
"MALE": "男",
"FEMALE": "女",
"empty": "",
},
CL_HR_0007: {
"A": "A",
"B": "B",
"AB": "AB",
"O": "O",
"其他": "其他",
"empty": "",
},
CL_HR_0005: {
"HIGH": "高",
"MID": "中",
"LOW": "低",
"empty": "",
},
CL_HR_0008: {
"汉": "汉",
"empty": "",
},
CL_HR_0002: {
"BUSINESS": "业务",
"HOME": "家庭住址",
......@@ -43,17 +93,31 @@ export default {
"OTHER": "其他",
"empty": "",
},
CL_HR_0003: {
"TEL": "电话",
"EMAIL": "电子邮件地址",
"WECHAT": "微信",
"QQ": "QQ",
"FAX": "传真",
CL_HR_0016: {
"empty": "",
},
OrganizationType: {
"LEGAL": "法人",
"OPERATIONUNIT": "运营单位",
CL_HR_0015: {
"10": "校园招聘",
"20": "社会招聘",
"40": "返聘",
"50": "军人安置",
"90": "其他",
"empty": "",
},
CL_HR_0013: {
"10": "中共党员",
"30": "共青团员",
"40": "群众",
"50": "民进会员",
"60": "民革会员",
"70": "民盟会员",
"80": "民建会员",
"90": "农工党党员",
"100": "致公党党员",
"110": "台盟盟员",
"120": "九三学社社员",
"130": "无党派民主人士",
"140": "其他",
"empty": "",
},
};
\ No newline at end of file
......@@ -69,6 +69,40 @@ export default {
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
......@@ -115,38 +149,4 @@ export default {
tip: "Help",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
},
};
\ No newline at end of file
......@@ -68,6 +68,40 @@ export default {
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "新建",
tip: "新建",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
......@@ -114,38 +148,4 @@ export default {
tip: "帮助",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "新建",
tip: "新建",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
},
};
\ No newline at end of file
......@@ -7,14 +7,45 @@ export default {
employeeid: "员工标识",
updatedate: "更新时间",
createdate: "建立时间",
organizationid: "组织",
organizationid: "组织ID",
employeecode: "员工编号",
certtype: "证件类型",
certnum: "证件号码",
birthday: "出生日期",
age: "年龄",
organizationname: "单位",
sex: "性别",
bloodtype: "血型",
telephone: "固定电话",
mobile: "移动电话",
email: "电子邮箱",
marriage: "婚姻状况",
nation: "民族",
nativetype: "户口类型",
nativeaddress: "户籍地址",
birthaddress: "出生地",
postaladdress: "通讯地址",
hobby: "爱好特长",
health: "健康状况",
political: "政治面貌",
startworktime: "参加工作时间",
startorgtime: "到本单位时间",
photo: "照片",
firstdegree: "第一学历",
highestdegree: "最高学历",
technicaltitle: "技术职称",
certificates: "执业证书",
entrytype: "入职渠道",
politicaltime: "入党时间",
empstate: "员工状态",
jobstate: "在岗状态",
nativeplace: "籍贯",
},
views: {
editview2: {
caption: "员工",
title: "员工编辑视图",
},
pickupgridview: {
caption: "员工",
title: "员工选择表格视图",
......@@ -34,10 +65,13 @@ export default {
},
main_form: {
details: {
group1: "员工基本信息",
grouppanel1: "分组面板",
grouppanel2: "first",
grouppanel4: "联系信息",
grouppanel3: "补充信息",
grouppanel5: "工作相关",
group1: "基本信息",
formpage1: "基本信息",
group2: "操作信息",
formpage2: "其它",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "员工标识",
......@@ -46,6 +80,35 @@ export default {
srfuf: "",
srfdeid: "",
srfsourcekey: "",
employeename: "员工姓名",
employeecode: "员工编号",
empstate: "员工状态",
certtype: "证件类型",
certnum: "证件号码",
sex: "性别",
birthday: "出生日期",
age: "年龄",
nation: "民族",
organizationname: "单位",
photo: "照片",
mobile: "移动电话",
telephone: "固定电话",
email: "电子邮箱",
postaladdress: "通讯地址",
nativetype: "户口类型",
nativeplace: "籍贯",
marriage: "婚姻状况",
bloodtype: "血型",
nativeaddress: "户籍地址",
birthaddress: "出生地",
hobby: "爱好特长",
health: "健康状况",
political: "政治面貌",
politicaltime: "入党时间",
entrytype: "入职渠道",
startworktime: "参加工作时间",
startorgtime: "到本单位时间",
organizationid: "组织ID",
employeeid: "员工标识",
},
uiactions: {
......@@ -69,6 +132,52 @@ export default {
uiactions: {
},
},
editview2toolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem22: {
caption: "Help",
tip: "Help",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
......
......@@ -6,14 +6,45 @@ export default {
employeeid: "员工标识",
updatedate: "更新时间",
createdate: "建立时间",
organizationid: "组织",
organizationid: "组织ID",
employeecode: "员工编号",
certtype: "证件类型",
certnum: "证件号码",
birthday: "出生日期",
age: "年龄",
organizationname: "单位",
sex: "性别",
bloodtype: "血型",
telephone: "固定电话",
mobile: "移动电话",
email: "电子邮箱",
marriage: "婚姻状况",
nation: "民族",
nativetype: "户口类型",
nativeaddress: "户籍地址",
birthaddress: "出生地",
postaladdress: "通讯地址",
hobby: "爱好特长",
health: "健康状况",
political: "政治面貌",
startworktime: "参加工作时间",
startorgtime: "到本单位时间",
photo: "照片",
firstdegree: "第一学历",
highestdegree: "最高学历",
technicaltitle: "技术职称",
certificates: "执业证书",
entrytype: "入职渠道",
politicaltime: "入党时间",
empstate: "员工状态",
jobstate: "在岗状态",
nativeplace: "籍贯",
},
views: {
editview2: {
caption: "员工",
title: "员工编辑视图",
},
pickupgridview: {
caption: "员工",
title: "员工选择表格视图",
......@@ -33,10 +64,13 @@ export default {
},
main_form: {
details: {
group1: "员工基本信息",
grouppanel1: "分组面板",
grouppanel2: "first",
grouppanel4: "联系信息",
grouppanel3: "补充信息",
grouppanel5: "工作相关",
group1: "基本信息",
formpage1: "基本信息",
group2: "操作信息",
formpage2: "其它",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "员工标识",
......@@ -45,6 +79,35 @@ export default {
srfuf: "",
srfdeid: "",
srfsourcekey: "",
employeename: "员工姓名",
employeecode: "员工编号",
empstate: "员工状态",
certtype: "证件类型",
certnum: "证件号码",
sex: "性别",
birthday: "出生日期",
age: "年龄",
nation: "民族",
organizationname: "单位",
photo: "照片",
mobile: "移动电话",
telephone: "固定电话",
email: "电子邮箱",
postaladdress: "通讯地址",
nativetype: "户口类型",
nativeplace: "籍贯",
marriage: "婚姻状况",
bloodtype: "血型",
nativeaddress: "户籍地址",
birthaddress: "出生地",
hobby: "爱好特长",
health: "健康状况",
political: "政治面貌",
politicaltime: "入党时间",
entrytype: "入职渠道",
startworktime: "参加工作时间",
startorgtime: "到本单位时间",
organizationid: "组织ID",
employeeid: "员工标识",
},
uiactions: {
......@@ -68,6 +131,52 @@ export default {
uiactions: {
},
},
editview2toolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem22: {
caption: "帮助",
tip: "帮助",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "新建",
......
......@@ -143,6 +143,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "HROperationUnitV_002",
"viewtag": "26838780ace211d1714a2887e9039888"
},
"hremployeeeditview2": {
"title": "员工编辑视图",
"caption": "员工",
"viewtype": "DEEDITVIEW2",
"viewmodule": "HumanResource",
"viewname": "HREmployeeEditView2",
"viewtag": "2845c606caf1ce6ad990cfc0adef801b"
},
"hroperationunitgridview": {
"title": "运营单位",
"caption": "运营单位",
......
!!!!模版产生代码错误:----
FTL stack trace ("~" means nesting-related):
- Failed at: ${P.getLayoutCode("VIEW.vue").code} [in template "TEMPLCODE_en_US" at line 1, column 1]
----
无法获取指定部件[VIEWLAYOUTPANEL#APPDEEDITVIEW2_STYLE2]发布代码[VIEW.vue]
\ No newline at end of file
!!!!模版产生代码错误:----
FTL stack trace ("~" means nesting-related):
- Failed at: ${P.getLayoutCode().code} [in template "TEMPLCODE_en_US" at line 1, column 1]
----
无法获取指定部件[VIEWLAYOUTPANEL#APPDEEDITVIEW2_STYLE2]发布代码[VIEW.less]
\ No newline at end of file
<template src="./hremployee-edit-view2.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { HREmployeeEditView2Base } from './hremployee-edit-view2-base';
import view_form from '@widgets/hremployee/main-form/main-form.vue';
import view_drbar from '@widgets/hremployee/default-drbar/default-drbar.vue';
/**
* 员工编辑视图视图
*
* @export
* @class HREmployeeEditView2
* @extends {HREmployeeEditView2Base}
*/
@Component({
components: {
view_form,
view_drbar,
}
})
@VueLifeCycleProcessing()
export default class HREmployeeEditView2 extends HREmployeeEditView2Base { }
</script>
......@@ -598,7 +598,7 @@ export class HREmployeeGridViewBase extends GridViewBase {
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'hremployees', parameterName: 'hremployee' },
{ pathName: 'editview', parameterName: 'editview' },
{ pathName: 'editview2', parameterName: 'editview2' },
];
const _this: any = this;
const openIndexViewTab = (data: any) => {
......
export const PageComponents = {
install(Vue: any, opt: any) {
Vue.component('hremployee-pickup-view', () => import('@pages/human-resource/hremployee-pickup-view/hremployee-pickup-view.vue'));
Vue.component('hrpost-v-004', () => import('@pages/human-resource/hrpost-v-004/hrpost-v-004.vue'));
Vue.component('hrpost-v-004', () => import('@pages/human-resource/hrpost-v-004/hrpost-v-004.vue'));
Vue.component('hremployee-pickup-view', () => import('@pages/human-resource/hremployee-pickup-view/hremployee-pickup-view.vue'));
Vue.component('hroperation-unit-edit-view', () => import('@pages/base/hroperation-unit-edit-view/hroperation-unit-edit-view.vue'));
Vue.component('hrpost-grid-view', () => import('@pages/human-resource/hrpost-grid-view/hrpost-grid-view.vue'));
Vue.component('hrduty-v-001', () => import('@pages/human-resource/hrduty-v-001/hrduty-v-001.vue'));
Vue.component('hremployee-edit-view2', () => import('@pages/human-resource/hremployee-edit-view2/hremployee-edit-view2.vue'));
Vue.component('hromhierarchy-cat-tab-exp-view', () => import('@pages/base/hromhierarchy-cat-tab-exp-view/hromhierarchy-cat-tab-exp-view.vue'));
Vue.component('hrpost-v-002', () => import('@pages/human-resource/hrpost-v-002/hrpost-v-002.vue'));
Vue.component('hrdistribution-edit-view', () => import('@pages/human-resource/hrdistribution-edit-view/hrdistribution-edit-view.vue'));
......@@ -22,9 +23,9 @@ export const PageComponents = {
Vue.component('hrduty-skill-v-002', () => import('@pages/human-resource/hrduty-skill-v-002/hrduty-skill-v-002.vue'));
Vue.component('hrpost-rel-v-002', () => import('@pages/human-resource/hrpost-rel-v-002/hrpost-rel-v-002.vue'));
Vue.component('hremployee-pickup-grid-view', () => import('@pages/human-resource/hremployee-pickup-grid-view/hremployee-pickup-grid-view.vue'));
Vue.component('hrorganization-pickup-view', () => import('@pages/base/hrorganization-pickup-view/hrorganization-pickup-view.vue'));
Vue.component('hromhierarchy-cat-dashboard-view', () => import('@pages/base/hromhierarchy-cat-dashboard-view/hromhierarchy-cat-dashboard-view.vue'));
Vue.component('hrduty-edu-grid-view', () => import('@pages/human-resource/hrduty-edu-grid-view/hrduty-edu-grid-view.vue'));
Vue.component('hrorganization-pickup-view', () => import('@pages/base/hrorganization-pickup-view/hrorganization-pickup-view.vue'));
Vue.component('hromhierarchy-tree-exp-view', () => import('@pages/base/hromhierarchy-tree-exp-view/hromhierarchy-tree-exp-view.vue'));
Vue.component('hrlegal-grid-view', () => import('@pages/base/hrlegal-grid-view/hrlegal-grid-view.vue'));
Vue.component('hrpost-v-006', () => import('@pages/human-resource/hrpost-v-006/hrpost-v-006.vue'));
......@@ -34,8 +35,8 @@ export const PageComponents = {
Vue.component('hrpost-pickup-view', () => import('@pages/human-resource/hrpost-pickup-view/hrpost-pickup-view.vue'));
Vue.component('hrduty-cert-v-001', () => import('@pages/human-resource/hrduty-cert-v-001/hrduty-cert-v-001.vue'));
Vue.component('hrduty-tab-exp-view', () => import('@pages/human-resource/hrduty-tab-exp-view/hrduty-tab-exp-view.vue'));
Vue.component('hrorganization-pickup-grid-view', () => import('@pages/base/hrorganization-pickup-grid-view/hrorganization-pickup-grid-view.vue'));
Vue.component('hrlegal-dashboard-view', () => import('@pages/base/hrlegal-dashboard-view/hrlegal-dashboard-view.vue'));
Vue.component('hrorganization-pickup-grid-view', () => import('@pages/base/hrorganization-pickup-grid-view/hrorganization-pickup-grid-view.vue'));
Vue.component('hrlegal-v-001', () => import('@pages/base/hrlegal-v-001/hrlegal-v-001.vue'));
Vue.component('hrpost-pickup-grid-view', () => import('@pages/human-resource/hrpost-pickup-grid-view/hrpost-pickup-grid-view.vue'));
Vue.component('hrduty-skill-grid-view', () => import('@pages/human-resource/hrduty-skill-grid-view/hrduty-skill-grid-view.vue'));
......@@ -60,9 +61,9 @@ export const PageComponents = {
Vue.component('hrpost-v-005', () => import('@pages/human-resource/hrpost-v-005/hrpost-v-005.vue'));
Vue.component('hrlegal-edit-view', () => import('@pages/base/hrlegal-edit-view/hrlegal-edit-view.vue'));
Vue.component('hromhierarchy-edit-view', () => import('@pages/base/hromhierarchy-edit-view/hromhierarchy-edit-view.vue'));
Vue.component('hrpost-rel-grid-view', () => import('@pages/human-resource/hrpost-rel-grid-view/hrpost-rel-grid-view.vue'));
Vue.component('hrorganization-grid-view', () => import('@pages/base/hrorganization-grid-view/hrorganization-grid-view.vue'));
Vue.component('hrduty-pickup-view', () => import('@pages/human-resource/hrduty-pickup-view/hrduty-pickup-view.vue'));
Vue.component('hrpost-rel-grid-view', () => import('@pages/human-resource/hrpost-rel-grid-view/hrpost-rel-grid-view.vue'));
Vue.component('hromhierarchy-cat-edit-view', () => import('@pages/base/hromhierarchy-cat-edit-view/hromhierarchy-cat-edit-view.vue'));
Vue.component('hrorg-contact-edit-view', () => import('@pages/base/hrorg-contact-edit-view/hrorg-contact-edit-view.vue'));
Vue.component('hromhierarchy-cat-v-002', () => import('@pages/base/hromhierarchy-cat-v-002/hromhierarchy-cat-v-002.vue'));
......
import SysOperator from '@/codelist/sys-operator';
import CL_HR_0016 from '@/codelist/cl-hr-0016';
import { Store } from 'vuex';
/**
......@@ -58,6 +59,14 @@ export default class CodeListService {
*/
public SysOperator: SysOperator = new SysOperator();
/**
* 代码表--员工状态
*
* @type {CL_HR_0016}
* @memberof CodeListService
*/
public CL_HR_0016: CL_HR_0016 = new CL_HR_0016();
/**
* 获取动态代码表
*
......
......@@ -155,6 +155,17 @@ export const viewstate: any = {
'3110aca6f6c27996e9874cfb924c569f',
],
},
{
viewtag: '2845c606caf1ce6ad990cfc0adef801b',
viewmodule: 'HumanResource',
viewname: 'HREmployeeEditView2',
viewaction: '',
viewdatachange: false,
refviews: [
'6395cba44e6d6151f19e543b55d88845',
'e7ba37699bd458dc8dd5c02abac8dadd',
],
},
{
viewtag: '286e8ac9eca7b6eb8058fde93995db10',
viewmodule: 'Base',
......@@ -484,6 +495,7 @@ export const viewstate: any = {
viewdatachange: false,
refviews: [
'b932c0eb66409c638c29ee27ba4fda37',
'2845c606caf1ce6ad990cfc0adef801b',
],
},
{
......@@ -576,6 +588,7 @@ export const viewstate: any = {
viewaction: '',
viewdatachange: false,
refviews: [
'e7ba37699bd458dc8dd5c02abac8dadd',
],
},
{
......
......@@ -13,14 +13,14 @@
>.user-head {
height: 100%;
border-radius: 2px;
font-size: 20px;
font-size: 16px;
font-weight: 900;
text-align: center;
padding: 0px 5px;
padding: 4px 5px;
}
>span {
fill: var(--app-header-color);
fill: currentColor;
svg {
vertical-align: -5px;
......@@ -30,6 +30,7 @@
>.user-info:hover {
background-color: var(--app-header-background-color-active);
color: var(--app-header-font-color-active);
}
}
}
\ No newline at end of file
......@@ -1210,10 +1210,15 @@ div::-webkit-scrollbar-thumb {
margin-bottom: 10px;
}
.single-card-data.selected, .single-card-data:hover {
transform: scale(1.1);
}
.single-card-data {
height: 100%;
width: 100%;
cursor: pointer;
transition: transform 0.3s ease-in-out;
.single-card-img {
......@@ -1222,6 +1227,11 @@ div::-webkit-scrollbar-thumb {
height: 100%;
}
}
.single-card-default {
line-height: normal;
padding: 1px 5px;
}
}
}
......
......@@ -89,6 +89,7 @@ export default class HREmployeeUIServiceBase extends UIService {
* @memberof HREmployeeUIServiceBase
*/
public initViewMap(){
this.allViewMap.set(':',{viewname:'editview2',srfappde:'hremployees'});
this.allViewMap.set(':',{viewname:'pickupgridview',srfappde:'hremployees'});
this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'hremployees'});
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'hremployees'});
......
import { Prop, Provide, Emit, Model } from 'vue-property-decorator';
import { Subject, Subscription } from 'rxjs';
import { Watch, MainControlBase } from '@/studio-core';
import HREmployeeService from '@/service/hremployee/hremployee-service';
import DefaultService from './default-drbar-service';
import HREmployeeUIService from '@/uiservice/hremployee/hremployee-ui-service';
/**
* drbar部件基类
*
* @export
* @class MainControlBase
* @extends {DefaultDRBarBase}
*/
export class DefaultDRBarBase extends MainControlBase {
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof DefaultDRBarBase
*/
protected controlType: string = 'DRBAR';
/**
* 建构部件服务对象
*
* @type {DefaultService}
* @memberof DefaultDRBarBase
*/
public service: DefaultService = new DefaultService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {HREmployeeService}
* @memberof DefaultDRBarBase
*/
public appEntityService: HREmployeeService = new HREmployeeService({ $store: this.$store });
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof DefaultDRBarBase
*/
protected appDeName: string = 'hremployee';
/**
* 应用实体中文名称
*
* @protected
* @type {string}
* @memberof DefaultDRBarBase
*/
protected appDeLogicName: string = '员工';
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof Default
*/
public getDatas(): any[] {
return this.items;
}
/**
* 获取单项树
*
* @returns {*}
* @memberof Default
*/
public getData(): any {
return this.selection;
}
/**
* 加载行为
*
* @type {string}
* @memberof Default
*/
@Prop() public loadAction?: string;
/**
* 表单数据
*
* @type {*}
* @memberof DefaultBase
*/
@Prop({default:{}}) public formData?:any;
/**
* 数据选中项
*
* @type {*}
* @memberof Default
*/
public selection: any = {};
/**
* 关系栏数据项
*
* @type {any[]}
* @memberof Default
*/
public items: any[] = [
{
text: "主表单",
disabled: false,
id: "form",
},
{
text: "工作分配",
disabled: false,
id: "dritem1",
},
];
/**
* 关系栏数据项导航参数集合
*
* @type {any[]}
* @memberof DefaultBase
*/
public navParamsArray:Array<any> = [
{
id:'dritem1',
localContext:null,
localViewParam:null
}
];
/**
* 默认打开项
*
* @type {string[]}
* @memberof Default
*/
public defaultOpeneds: string[] = [];
/**
* 父数据
*
* @public
* @type {*}
* @memberof Default
*/
public parentData: any = {};
/**
* 宽度
*
* @type {number}
* @memberof Default
*/
public width: number = 240;
/**
* 生命周期
*
* @memberof Default
*/
public created(): void {
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
if (Object.is('state', action)) {
const state = !this.context.hremployee ? true : false;
this.setItemDisabled(this.items, state);
}
});
}
this.$nextTick(() => {
this.onSelect(this.items[0].id)
this.$emit('selectionchange', [this.items[0]]);
});
}
/**
* vue 生命周期
*
* @memberof Default
*/
public destroyed() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
/**
* 获取关系项
*
* @public
* @param {*} [arg={}]
* @returns {*}
* @memberof Default
*/
public getDRBarItem(arg: any = {}): any {
let expmode = arg.nodetype;
if (!expmode) {
expmode = '';
}
if (Object.is(expmode, 'dritem1')) {
return {
viewname: 'hrdistribution-grid-view',
parentdatajo: {},
};
}
return undefined;
}
/**
* 处理数据
*
* @public
* @param {any[]} items
* @memberof Default
*/
public dataProcess(items: any[]): void {
items.forEach((_item: any) => {
if (_item.expanded) {
this.defaultOpeneds.push(_item.id);
}
_item.disabled = false;
if (_item.items && Array.isArray(_item.items) && _item.items.length > 0) {
this.dataProcess(_item.items);
}
});
}
/**
* 获取子项
*
* @param {any[]} items
* @param {string} id
* @returns {*}
* @memberof Default
*/
public getItem(items: any[], id: string): any {
const item: any = {};
items.some((_item: any) => {
if (Object.is(_item.id, id)) {
Object.assign(item, _item);
return true;
}
if (_item.items && _item.items.length > 0) {
const subItem = this.getItem(_item.items, id);
if (Object.keys(subItem).length > 0) {
Object.assign(item, subItem);
return true;
}
}
return false;
});
return item;
}
/**
* 初始化导航参数
*
* @param {*} drItem
* @memberof DefaultBase
*/
public initNavParam(drItem:any){
let returnNavParam:any = {};
if(drItem && drItem.id){
let curDRItem:any = this.navParamsArray.find((item:any) =>{
return Object.is(item.id,drItem.id);
})
if(curDRItem){
let localContext:any = curDRItem.localContext;
let localViewParam:any = curDRItem.localViewParam;
if(localContext && Object.keys(localContext).length >0){
let _context:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localContext);
returnNavParam.localContext = _context;
}
if(localViewParam && Object.keys(localViewParam).length >0){
let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam);
returnNavParam.localViewParam = _params;
}
return returnNavParam;
}else{
return null;
}
}
}
/**
* 节点选中
*
* @param {*} $event
* @memberof Default
*/
public onSelect($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.$emit('selectionchange', [item]);
let localNavParam:any = this.initNavParam(item);
const refview = this.getDRBarItem({ nodetype: item.id });
this.selection = {};
const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
if(localNavParam && localNavParam.localContext){
Object.assign(_context,localNavParam.localContext);
}
const _params: any = {};
if(localNavParam && localNavParam.localViewParam){
Object.assign(_params,localNavParam.localViewParam);
}
if (refview && refview.parentdatajo) {
Object.assign(_context, refview.parentdatajo);
Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
}
Object.assign(this.selection, item);
}
/**
* 子节点打开
*
* @param {*} $event
* @memberof Default
*/
public onOpen($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.selection = {};
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
this.$emit('selectionchange', [this.selection]);
}
}
/**
* 子节点关闭
*
* @param {*} $event
* @memberof Default
*/
public onClose($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.selection = {};
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
this.$emit('selectionchange', [this.selection]);
}
}
/**
* 设置关系项状态
*
* @param {any[]} items
* @param {boolean} state
* @memberof Default
*/
public setItemDisabled(items: any[], state: boolean) {
items.forEach((item: any) => {
if (!Object.is(item.id, 'form')) {
item.disabled = state;
}
if (item.items && Array.isArray(item.items)) {
this.setItemDisabled(item.items, state);
}
});
}
}
\ No newline at end of file
/**
* Default 部件模型
*
* @export
* @class DefaultModel
*/
export default class DefaultModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof DefaultModel
*/
public getDataItems(): any[] {
return [
{
name: 'employeename',
},
{
name: 'updateman',
},
{
name: 'createman',
},
{
name: 'hremployee',
prop: 'employeeid',
},
{
name: 'updatedate',
},
{
name: 'createdate',
},
{
name: 'organizationid',
},
{
name: 'employeecode',
},
{
name: 'certtype',
},
{
name: 'certnum',
},
{
name: 'birthday',
},
{
name: 'age',
},
{
name: 'organizationname',
},
{
name: 'sex',
},
{
name: 'bloodtype',
},
{
name: 'telephone',
},
{
name: 'mobile',
},
{
name: 'email',
},
{
name: 'marriage',
},
{
name: 'nation',
},
{
name: 'nativetype',
},
{
name: 'nativeaddress',
},
{
name: 'birthaddress',
},
{
name: 'postaladdress',
},
{
name: 'hobby',
},
{
name: 'health',
},
{
name: 'political',
},
{
name: 'startworktime',
},
{
name: 'startorgtime',
},
{
name: 'photo',
},
{
name: 'firstdegree',
},
{
name: 'highestdegree',
},
{
name: 'technicaltitle',
},
{
name: 'certificates',
},
{
name: 'entrytype',
},
{
name: 'politicaltime',
},
{
name: 'empstate',
},
{
name: 'jobstate',
},
{
name: 'nativeplace',
},
]
}
}
\ No newline at end of file
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* Default 部件服务对象
*
* @export
* @class DefaultService
*/
export default class DefaultService extends ControlService {
}
\ No newline at end of file
<layout class='app-dr-bar'>
<sider :width="width">
<el-menu
:default-openeds="defaultOpeneds"
:default-active="items[0].id"
@select="onSelect.apply(_self, arguments)"
@open="onOpen.apply(_self, arguments)"
@close="onClose.apply(_self, arguments)">
<app-sider-menus :menus="items"></app-sider-menus>
</el-menu>
</sider>
<content :style="{ width: `calc(100% - ${this.width + 1}px)` }">
<div class='main-data' v-show="Object.is(this.selection.id, 'form')">
<slot></slot>
</div>
<component
v-if="!Object.is(this.selection.id, 'form') && this.selection.view && !Object.is(this.selection.view.viewname, '')"
:is="selection.view.viewname"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(selection.data)"
:viewparam="JSON.stringify(selection.param)"
:key="this.$util.createUUID()">
</component>
</content>
</layout>
\ No newline at end of file
<template src="./default-drbar.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { DefaultDRBarBase } from './default-drbar-base';
/**
* drbar部件
*
* @export
* @class DefaultDRBar
* @extends {DefaultDRBarBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class DefaultDRBar extends DefaultDRBarBase { }
</script>
......@@ -55,6 +55,151 @@ export default class MainModel {
{
name: 'srfsourcekey',
},
{
name: 'employeename',
prop: 'employeename',
dataType: 'TEXT',
},
{
name: 'employeecode',
prop: 'employeecode',
dataType: 'TEXT',
},
{
name: 'empstate',
prop: 'empstate',
dataType: 'PICKUP',
},
{
name: 'certtype',
prop: 'certtype',
dataType: 'SSCODELIST',
},
{
name: 'certnum',
prop: 'certnum',
dataType: 'TEXT',
},
{
name: 'sex',
prop: 'sex',
dataType: 'SSCODELIST',
},
{
name: 'birthday',
prop: 'birthday',
dataType: 'DATE',
},
{
name: 'age',
prop: 'age',
dataType: 'TEXT',
},
{
name: 'nation',
prop: 'nation',
dataType: 'SSCODELIST',
},
{
name: 'organizationname',
prop: 'organizationname',
dataType: 'PICKUPTEXT',
},
{
name: 'photo',
prop: 'photo',
dataType: 'TEXT',
},
{
name: 'mobile',
prop: 'mobile',
dataType: 'TEXT',
},
{
name: 'telephone',
prop: 'telephone',
dataType: 'TEXT',
},
{
name: 'email',
prop: 'email',
dataType: 'TEXT',
},
{
name: 'postaladdress',
prop: 'postaladdress',
dataType: 'TEXT',
},
{
name: 'nativetype',
prop: 'nativetype',
dataType: 'SSCODELIST',
},
{
name: 'nativeplace',
prop: 'nativeplace',
dataType: 'TEXT',
},
{
name: 'marriage',
prop: 'marriage',
dataType: 'SSCODELIST',
},
{
name: 'bloodtype',
prop: 'bloodtype',
dataType: 'SSCODELIST',
},
{
name: 'nativeaddress',
prop: 'nativeaddress',
dataType: 'TEXT',
},
{
name: 'birthaddress',
prop: 'birthaddress',
dataType: 'TEXT',
},
{
name: 'hobby',
prop: 'hobby',
dataType: 'TEXT',
},
{
name: 'health',
prop: 'health',
dataType: 'TEXT',
},
{
name: 'political',
prop: 'political',
dataType: 'SSCODELIST',
},
{
name: 'politicaltime',
prop: 'politicaltime',
dataType: 'DATE',
},
{
name: 'entrytype',
prop: 'entrytype',
dataType: 'SSCODELIST',
},
{
name: 'startworktime',
prop: 'startworktime',
dataType: 'DATE',
},
{
name: 'startorgtime',
prop: 'startorgtime',
dataType: 'DATE',
},
{
name: 'organizationid',
prop: 'organizationid',
dataType: 'PICKUP',
},
{
name: 'employeeid',
prop: 'employeeid',
......
......@@ -2,6 +2,7 @@ import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import HREmployeeService from '@/service/hremployee/hremployee-service';
import MainModel from './main-form-model';
import HROrganizationService from '@/service/hrorganization/hrorganization-service';
/**
......@@ -41,6 +42,14 @@ export default class MainService extends ControlService {
this.model = new MainModel();
}
/**
* 组织服务对象
*
* @type {HROrganizationService}
* @memberof MainService
*/
public hrorganizationService: HROrganizationService = new HROrganizationService();
/**
* 处理数据
*
......@@ -82,6 +91,9 @@ export default class MainService extends ControlService {
public getItems(serviceName: string, interfaceName: string, context: any = {}, data: any, isloading?: boolean): Promise<any[]> {
data.page = data.page ? data.page : 0;
data.size = data.size ? data.size : 1000;
if (Object.is(serviceName, 'HROrganizationService') && Object.is(interfaceName, 'FetchDefault')) {
return this.doItems(this.hrorganizationService.FetchDefault(JSON.parse(JSON.stringify(context)),data, isloading), 'organizationid', 'hrorganization');
}
return Promise.reject([])
}
......
......@@ -36,6 +36,11 @@ export default class MainModel {
prop: 'birthday',
dataType: 'DATE',
},
{
name: 'empstate',
prop: 'empstate',
dataType: 'PICKUP',
},
{
name: 'employeename',
prop: 'employeename',
......
......@@ -37,11 +37,11 @@
git clone -b master $para2 ibizhumanresources/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibizhumanresources/
mvn clean package -Phrapi
cd humanresource-provider/humanresource-provider-hrapi
mvn -Phrapi docker:build
mvn -Phrapi docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/humanresource-provider-hrapi.yaml iBizEE --with-registry-auth
mvn clean package -Ppim
cd humanresource-app/humanresource-app-pim
mvn -Ppim docker:build
mvn -Ppim docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/humanresource-app-pim.yaml iBizEE --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
......
......@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /humanresource-app-pim.jar
EXPOSE 8080
EXPOSE 10327
ADD humanresource-app-pim.jar /humanresource-app-pim.jar
......@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /humanresource-provider-hrapi.jar
EXPOSE 10317
EXPOSE 8081
ADD humanresource-provider-hrapi.jar /humanresource-provider-hrapi.jar
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册