1.

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>"> <title>招聘管理</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript"> var recruitmentPanel = new RecruitmentPanel();
var tabId = Ext.getCmp('mainTab').getActiveTab().id.split('_')[1];
juage(tabId,"rec",recruitmentPanel,"recruitment");
</script>
</head> <body>
<div id="recruitment"></div>
</body>
</html>

2.招聘信息页面js

 /**
* 招聘信息管理模块
* @memberOf {TypeName}
*/
RecruitmentPanel = Ext.extend(Ext.Panel,{
id: 'recruitmentPanelId',
constructor: function(){
var recruitmentGridPanel = new RecruitmentGridPanel();
var recQueryPanel = new RecQueryPanel();
RecruitmentPanel.superclass.constructor.call(this, {
items: [recQueryPanel,recruitmentGridPanel]
})
}
});
/**
* 招聘信息列表
* @author sux
* @memberOf {TypeName}
* @return {TypeName}
*/
RecruitmentGridPanel = Ext.extend(Ext.grid.GridPanel,{
id: 'recruitmentGridId',
constructor: function(){
var rmStore = new Ext.data.JsonStore({
url: 'rec_list.action',
root: 'root',
totalProperty: 'totalProperty',
fields: ['recId','recTitle','recJob','recNum',
{name: 'recDate', mapping: 'recDate .time', dateFormat : 'time', type: 'date' }]
});
var rowNumber = new Ext.grid.RowNumberer(); //序列号
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
rowNumber, sm,
{
header: '编号',
dataIndex: 'recId',
align: 'center'
},{
header: '标题',
dataIndex: 'recTitle',
align: 'center'
},{
header: '职位',
dataIndex: 'recJob',
align: 'center'
},{
header: '人数',
dataIndex: 'recNum',
align: 'center'
},{
header: '发布日期',
align: 'center',
renderer: Ext.util.Format.dateRenderer('Y-m-d'), //有用
dataIndex: 'recDate'
}]);
RecruitmentGridPanel.superclass.constructor.call(this,{
width: Ext.getCmp('mainTab').getActiveTab().getInnerWidth(),
height: Ext.getCmp('mainTab').getActiveTab().getInnerHeight(),
/**表格高度自适应 document.body.clientHeight浏览器页面高度 start**/
monitorResize: true,
doLayout: function() {
this.setWidth(document.body.clientWidth-205);
this.setHeight(document.body.clientHeight-250);
Ext.grid.GridPanel.prototype.doLayout.call(this);
} ,
border: false,
viewConfig: {
forceFit: true
},
height: 430,
cm: cm,
sm: sm,
store: rmStore,
tbar: new Ext.Toolbar({
items: [
{
text: '删除',
iconCls: 'delete',
id: 'rec_delete',
handler: recruitmentDelFn
},{
text: '添加',
iconCls: 'add',
id: 'rec_add',
handler: recruitmentInfoAddFn
},{
text: '修改',
iconCls: 'update',
id: 'rec_update',
handler: recruitmentInfoUpdateFn
},{
text: '详情',
iconCls: 'detail',
id: 'rec_detail',
handler: recruitmentInfoDetailFn
}]
}),
bbar:new PagingToolbar(rmStore, 20)
});
rmStore.load({
params: {
start: 0,
limit: 20
}
});
}
});
recruitmentInfoAddFn = function(){
var recruitmentAddWin = new RecruitmentAddWin();
recruitmentAddWin.show();
};
recruitmentInfoUpdateFn = function(){
var recruitmentAddWin = new RecruitmentAddWin();
recruitmentAddWin.title = '招聘信息修改';
var selectionModel = Ext.getCmp('recruitmentGridId').getSelectionModel();
var record = selectionModel.getSelections();
if(record.length != 1){
Ext.Msg.alert('提示','请选择一个');
return;
}
var recId = record[0].get('recId');
Ext.getCmp('recruitmentAddPanelId').getForm().load({
url: 'recruitment_intoUpdate.action',
params: {
recId: recId
}
})
recruitmentAddWin.show();
};
recruitmentInfoDetailFn = function(){
var recruitmentDetailWin = new RecruitmentDetailWin();
recruitmentDetailWin.title = '招聘信息';
var selectionModel = Ext.getCmp('recruitmentGridId').getSelectionModel();
var record = selectionModel.getSelections();
if(record.length != 1){
Ext.Msg.alert('提示','请选择一个');
return;
}
var recId = record[0].get('recId');
Ext.getCmp('recruitmentDetailPanelId').getForm().load({
url: 'recruitment_intoUpdate.action',
params: {
recId: recId
}
})
recruitmentDetailWin.show();
};
recruitmentDelFn = function(){
gridDel('recruitmentGridId','recId', 'recruitment_delete.action');
};
/**
* 按条件查询面板
* @author sux 2011-02-20
* @memberOf {TypeName}
*/
RecQueryPanel = Ext.extend(Ext.form.FormPanel,{
id: 'recQueryId',
constructor: function(){
RecQueryPanel.superclass.constructor.call(this,{
collapsible: true,
titleCollapse: true, //单击整个collapse都有效
//collapsed: true, //渲染后即闭合
title: '条件查询',
border: false,
frame: true,
autoWidth: true,
defaultType: 'fieldset',
items: [{
title: '条件',
layout: 'table',
layoutConfig: {
columns: 6
},
defaults: {
labelWidth: 60,
labelAlign: 'right'
},
items: [{
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: '标题',
width: 100,
id: 'recTitle'
}]
},{
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: '职位',
width: 100,
id: 'recJob'
}]
},{
layout: 'form',
items: [{
xtype: 'datefield',
fieldLabel: '查询日期',
format: 'Y-m-d',
editable: false,
width: 100,
id: 'recStartDate'
}]
},{
layout: 'form',
items: [{
xtype: 'datefield',
fieldLabel: '至',
format: 'Y-m-d',
editable: false,
width: 100,
id: 'recEndDate'
}]
},{
style: 'margin: 0px 10px 0px 20px;',
xtype: 'button',
text: '查询',
iconCls: 'search',
handler: queryRecFn
},{
xtype: 'button',
text: '取消',
iconCls: 'cancel',
handler: cancelRecFn
}]
}]
})
}
});
queryRecFn = function(){
var recTitle = Ext.get('recTitle').dom.value;
var recJob = Ext.get('recJob').dom.value;
var startDate = Ext.get('recStartDate').dom.value;
var endDate = Ext.get('recEndDate').dom.value;
Ext.getCmp('recruitmentGridId').getStore().load({
params: {
type: 'query',
recTitle: recTitle,
recJob: recJob,
startDate: startDate,
endDate: endDate,
start: 0,
limit: 20
}
});
};
cancelRecFn = function(){
Ext.getCmp('recQueryId').getForm().reset();
}

3.招聘信息添加窗口

 /**
* 招聘添加窗口
* @author sux
* @memberOf {TypeName}
*/
RecruitmentAddWin = Ext.extend(Ext.Window,{
id: 'recruitmentAddWinId',
constructor: function(){
var recruitmentAddPanel = new RecruitmentAddPanel();
RecruitmentAddWin.superclass.constructor.call(this, {
title: '招聘信息录入',
resizable: false,
modal: true,
width: 1000,
height: 300,
items: [recruitmentAddPanel]
})
}
}); RecruitmentAddPanel = Ext.extend(Ext.form.FormPanel,{
id: 'recruitmentAddPanelId',
constructor: function(){
Ext.QuickTips.init();
var reader = new Ext.data.JsonReader({},[{
name: 'recruitment.recTitle', mapping: 'recTitle'
},{
name: 'recruitment.recStart', mapping: 'recStart.time', dateFormat : 'time', type: 'date'
},{
name: 'recruitment.recEnd', mapping: 'recEnd.time', dateFormat : 'time', type: 'date'
},{
name: 'recruitment.recJob', mapping: 'recJob'
},{
name: 'recruitment.recNum', mapping: 'recNum'
},{
name: 'recruitment.recContent', mapping: 'recContent'
},{
name: 'recruitment.recRemark', mapping: 'recRemark'
},{
name: 'recruitment.recId', mapping: 'recId'
}]);
RecruitmentAddPanel.superclass.constructor.call(this,{
frame: true,
border: false,
reader: reader,
items: [{
xtype: 'fieldset',
title: '招聘信息录入',
layout: 'table',
layoutConfig: {
columns: 5
},
defaults: {
labelWidth: 60,
labelAlign: 'right'
},
items: [{
width: 190,
layout: 'form',
items: [{
xtype: 'textfield',
width: 100,
fieldLabel: '标题',
allowBlank: false,
blankText: '不能为空',
msgTarget: 'side',
emptyText: '不能为空',
name: 'recruitment.recTitle'
}]
},{
width: 190,
layout: 'form',
xtype: 'panel',
items: [{
xtype: 'datefield',
editable: false,
fieldLabel: '开始时间',
format: 'Y-m-d',
width: 100,
name: 'recruitment.recStart'
}]
},{
width: 190,
layout: 'form',
items: [{
xtype: 'datefield',
editable: false,
fieldLabel: '结束时间',
width: 100,
format: 'Y-m-d',
name: 'recruitment.recEnd'
}]
},{
width: 200,
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: '职位',
allowBlank: false,
blankText: '不能为空',
msgTarget: 'side',
emtyText: '不能为空',
width: 100,
name: 'recruitment.recJob'
}]
},{
width: 200,
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: '人数',
width: 100,
name: 'recruitment.recNum'
}]
},{
colspan: 3,
layout: 'form',
items: [{
xtype: 'textarea',
fieldLabel: '要求',
allowBlank: false,
blankText: '不能为空',
msgTarget: 'side',
emtyText: '不能为空',
width: 460,
height: 140,
name: 'recruitment.recContent'
}]
},{
colspan: 2,
layout: 'form',
items: [{
xtype: 'textarea',
fieldLabel: '备注',
width: 300,
height: 140,
name: 'recruitment.recRemark'
},{
xtype: 'hidden',
name: 'recruitment.recId'
}]
},{
colspan: 5,
buttonAlign: 'center',
buttons: [{
text: '保存',
iconCls: 'save',
handler: reSubmit
},{
text: '关闭',
iconCls: 'cancel',
handler: reCancel
}]
}]
}]
});
}
});
reSubmit = function(){
if(!Ext.getCmp('recruitmentAddPanelId').getForm().isValid()){
return;
}
Ext.getCmp('recruitmentAddPanelId').getForm().submit({
url: 'recruitment_save.action',
method: 'post',
waitTitle: '提示',
waitMsg: '正在保存数据...',
success: function(form, action){
Ext.Msg.confirm('提示',action.result.msg,function(button, text){
if(button == 'yes'){
Ext.getCmp('recruitmentAddWinId').destroy();
Ext.getCmp('recruitmentGridId').getStore().reload();
}
})
},
failure: function(form, action){
Ext.Msg.alert('提示','连接后台失败');
}
})
};
reCancel = function(){
Ext.getCmp('recruitmentAddWinId').destroy();
};

4.

 RecruitmentDetailWin = Ext.extend(Ext.Window,{
id: 'recruitmentDetailWinId',
width: 900,
height: 380,
constructor: function(){
var recruitmentDetailPanel = new RecruitmentDetailPanel();
RecruitmentDetailWin.superclass.constructor.call(this, {
modal: true,
items: [recruitmentDetailPanel]
});
}
}); RecruitmentDetailPanel = Ext.extend(Ext.form.FormPanel,{
id: 'recruitmentDetailPanelId',
constructor: function(){
Ext.QuickTips.init();
var reader = new Ext.data.JsonReader({},[{
name: 'recTitle', mapping: 'recTitle'
},{
name: 'recStart', mapping: 'recStart.time', dateFormat : 'time', type: 'date'
},{
name: 'recEnd', mapping: 'recEnd.time', dateFormat : 'time', type: 'date'
},{
name: 'recJob', mapping: 'recJob'
},{
name: 'recNum', mapping: 'recNum'
},{
name: 'recContent', mapping: 'recContent'
},{
name: 'recRemark', mapping: 'recRemark'
},{
name: 'recDate', mapping: 'recDate', mapping: 'recDate.time', dateFormat : 'time', type: 'date'
},{
name: 'recPerson', mapping: 'recPerson'
}]);
RecruitmentDetailPanel.superclass.constructor.call(this, {
frame: true,
border: false,
reader: reader,
items: [{
xtype: 'fieldset',
title: '招聘信息录入',
layout: 'table',
layoutConfig: {
columns: 5
},
defaults: {
labelWidth: 60,
labelAlign: 'right'
},
items: [{
layout: 'form',
items: [{
xtype: 'textfield',
width: 100,
fieldLabel: '标题',
allowBlank: false,
blankText: '不能为空',
msgTarget: 'title',
emptyText: '不能为空',
name: 'recTitle',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
layout: 'form',
xtype: 'panel',
items: [{
xtype: 'datefield',
fieldLabel: '开始时间',
format: 'Y-m-d',
width: 100,
name: 'recStart',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
layout: 'form',
items: [{
xtype: 'datefield',
fieldLabel: '结束时间',
width: 100,
format: 'Y-m-d',
name: 'recEnd',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: '职位',
allowBlank: false,
blankText: '不能为空',
msgTarget: 'title',
emtyText: '不能为空',
width: 100,
name: 'recJob',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
layout: 'form',
items: [{
xtype: 'textfield',
fieldLabel: '人数',
width: 100,
name: 'recNum',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
colspan: 3,
layout: 'form',
items: [{
xtype: 'textarea',
fieldLabel: '要求',
allowBlank: false,
blankText: '不能为空',
msgTarget: 'title',
emtyText: '不能为空',
width: 430,
height: 200,
name: 'recContent',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
colspan: 2,
layout: 'form',
items: [{
xtype: 'textarea',
fieldLabel: '备注',
width: 270,
height: 200,
name: 'recRemark',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
layout: 'form',
items: [{
xtype: 'textfield',
width: 100,
name: 'recPerson',
fieldLabel: '录入人',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
layout: 'form',
items: [{
xtype: 'datefield',
width: 100,
name: 'recDate',
fieldLabel: '录入时间',
format: 'Y-m-d',
style: 'background: #dfe8f6;',
readOnly: true
}]
},{
colspan: 3
},{
colspan: 5,
buttonAlign: 'center',
buttons: [{
text: '关闭',
iconCls: 'cancel',
handler: recCloseFn
}]
}]
}]
});
}
});
recCloseFn = function(){
Ext.getCmp('recruitmentDetailWinId').destroy();
}

77.招聘信息管理 EXTJS 页面的更多相关文章

  1. 61.员工信息管理Extjs 页面

    1.员工信息管理jsp <%@ page language="java" pageEncoding="UTF-8"%> <script typ ...

  2. 146_ACCESS之HR招聘信息管理_64位

    焦棚子的文章目录 点击下载附件 一.背景: 最近把之前做的一个HR招聘信息管理工具翻新了下,有需要的朋友可以自取,主要想解决的问题是多人在跟进人员招聘的时候信息的不对称,这样下来的就可以及时的看到整个 ...

  3. 75.培训管理-培训信息发布 Extjs 页面

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...

  4. 74.资金管理-员工工资配置 extjs 页面

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...

  5. 70.资金管理-福利表管理 Extjs 页面

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...

  6. 69.资金管理-税率表管理extjs 页面

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...

  7. 80.用户管理 Extjs 页面

    1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...

  8. 78.员工个人信息保镖页面 Extjs 页面

    1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...

  9. 76.培训记录信息 Extjs 页面

    1.培训记录信息页面jsp <%@ page language="java" import="java.util.*" pageEncoding=&quo ...

随机推荐

  1. [Windows Server 2012] Apache+PHP安全设置

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Win20 ...

  2. [Windows Server 2012] 安装PHP+MySQL方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:PHP+MyS ...

  3. TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具

    怀着鸡动的心情跟大家介绍一款国产开源运维软件TriAquae,轻松帮你搞定大部分运维工作!TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具,可以允许用户通过一台控制端管理上千 ...

  4. 为什么有些异常throw出去需要在函数头用throws声明,一些就不用

    throw new IllegalStateException(".");不用在函数头声明throws IllegalStateExceptionthrow new IOExcep ...

  5. centOS7创建python虚拟环境

    参考: 非常棒的2篇博客 https://www.centos.bz/2018/05/centos-7-4-%E5%AE%89%E8%A3%85python3%E5%8F%8A%E8%99%9A%E6 ...

  6. -moz、-ms、-webkit

    1.-moz代表firefox浏览器私有属性 2.-ms代表IE浏览器私有属性 3.-webkit代表safari.chrome私有属性 需要设置这个的样式: transform,border-rad ...

  7. join 和 left join 和 right join的区别?

    join等价于 inner join 是内连接 ,返回两个表都有的符合条件的行. left join 是左连接,返回坐表中所有的行以及右表中符合条件的行. right join右连接,是返回右表中所有 ...

  8. MATLAB仿真学习笔记(一)

    一.Simulink概述 1.特点 simulink是对动态系统进行建模.仿真和综合分析的图形化软件,可以处理线性和非线性.离散.连续和混合系统,也可以处理单任务和多任务系统,并支持多种采样频率的系统 ...

  9. ES6学习历程(字符串的扩展)

    字符串的扩展 在看这一节的时候前半部分写的都是关于unicode的内容,我个人感觉这部分在实际的开发中用的很少,所以不打算在做记录,等届时用到再有针对性的看,所以就将在ES6里面关于字符串操作的一些新 ...

  10. 23.match_phrase_prefix实现search-time搜索推荐

    主要知识点: 搜索推荐的使用场景 用法 原理 一.搜索推荐的使用场景 搜索推荐,就是在你做搜索时,当你写出一部搜索词时,es会自提示接下来要写的词,比如当你在搜索hello w 时,如果es中有如下文 ...