| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- Ext.require([
- 'Sch.model.Resource',
- 'Sch.model.Event',
- ]);
- Ext.define('erp.view.oa.SchedulerResource',{
- extend: 'Ext.Viewport',
- layout: 'fit',
- hideBorders: true,
- initComponent : function(){
- var me = this;
- this.scheduler = this.createScheduler();
- this.populateScheduler();
- Ext.apply(me, {
- items: [{
- layout: 'fit',
- items: [this.scheduler]
- }]
- });
- me.callParent(arguments);
- },
- populateScheduler : function() {
- var me=this;
- Ext.Ajax.request({//拿到form的items
- url : basePath + 'oa/getSchedulerResourceData.action',
- params: {
- caller:caller
- },
- async:false,
- method : 'post',
- callback : function(options, success, response){
- var res = new Ext.decode(response.responseText);
- me.scheduler.resourceStore.loadData(res.res.resourcedata);
- console.log(res);
- me.scheduler.eventStore.loadData(res.res.schdata);
- }
- });
-
- },
- createScheduler : function() {
- var me=this;
- var Configs=me.getConfigs(caller);
- Ext.define('Resource', {
- extend : 'Sch.model.Resource',
- fields:Configs.resourceFields,
- idProperty:'ID'
- });
- Ext.define('Event', {
- extend : 'Sch.model.Event',
- resourceIdField : "RESOURCEID",
- startDateField : "STARTDATE",
- endDateField : "ENDDATE",
- fields:Configs.SchFields
- });
- // Store holding all the resources
- var resourceStore = Ext.create('Sch.data.ResourceStore', {
- model : 'Resource'
- });
- var eventStore = Ext.create('Sch.data.EventStore', {
- model : 'Event'
- });
- var startDate = Ext.Date.parse(Ext.Date.format(new Date(),"Y-m-d"), "Y-m-d");
- var endDate=Ext.Date.add(startDate,Ext.Date.DAY,1);
- var g = Ext.create("Sch.panel.SchedulerGrid", {
- height : 300,
- width : 1000,
- allowOverlap : false,
- viewPreset : 'hourAndDay',
- startDate :startDate,
- endDate : endDate,
- rowHeight : 25,
- loadMask : { store : eventStore },
- eventRenderer : function (event, resource, tplData, row, col, ds) {
- tplData.cls = 'evt-' + resource.get('Category');
- return event.get('Title');
- },
- resizeValidatorFn : function(resourceRecord, eventRecord, start, end) {
- if (eventRecord.get('Group') === 'min-one-day') {
- return Sch.util.Date.getDurationInDays(start, end) >= 1;
- }
- return true;
- },
- dndValidatorFn : function(dragEventRecords, targetRowRecord) {
- return targetRowRecord.get('Available');
- },
- // Setup your static columns
- columns :Configs.resourceColumns,
- viewConfig : {
- getRowClass : function(resourceRecord) {
- if (!resourceRecord.get('Available')) {
- return 'unavailable';
- }
- return '';
- }
- },
- resourceStore : resourceStore,
- eventStore : eventStore,
- border : true,
- tbar : [
- {
- iconCls : 'icon-prev',
- scale : 'medium',
- handler : function() {
- g.shiftPrevious();
- }
- },
- '->',
- {
- iconCls : 'icon-next',
- scale : 'medium',
- handler : function() {
- g.shiftNext();
- }
- }
- ],
- listeners : {
- beforedragcreate : function(s, resource) {
- if (!resource.get('Available')) {
- Ext.Msg.alert('Oops', "This machine is not available");
- return false;
- }
- },
- beforeeventdrag : function(s, r) {
- return r.get('Group') !== 'non-movable';
- },
- beforeeventresize : function(s, r) {
- if (r.get('Group') === 'non-resizable') {
- Ext.Msg.alert('Oops', "DOH!");
- return false;
- }
- }
- }
- });
- return g;
- },
- getConfigs:function (caller){
- var Object={};
- if(caller=='Meeting'){
- Object.resourceColumns=[{header : '会议室名称', sortable:true, width:150, dataIndex : 'MR_NAME', renderer : function(v, m, r) {
- m.tdCls = r.get('Category');
- return v;
- }}];
- Object.resourceFields=[{
- name:'ID'
- },{
- name:'MR_NAME'
- },{
- name:'MR_SITE'
- }];
- Object.SchFields=[{
- name:'ME_NAME'
- },{
- name:'ME_CODE'
- }];
- Object.DataFields=[{
- name:'ME_TITLE'},{
- name:'ma_starttime'},{
- name:'ma_endtime'}];
- }else if(caller=='VehicleapplyToVehiclereturn!Deal'){
- Object.resourceColumns=[{header : '车牌号码', sortable:true, width:150, dataIndex : 'VA_CARD', renderer : function(v, m, r) {
- m.tdCls = r.get('Category');
- return v;
- }}];
- Object.resourceFields=[{
- name:'ID'
- },{
- name:'VA_CARD'
- },{
- name:'VA_DRIVER'
- }];
- Object.SchFields=[{
- name:'VA_CARD'
- },{
- name:'VA_DRIVER'
- }];
- Object.DataFields=[{
- name:'VA_CARD'},{
- name:'vr_starttime'},{
- name:'vr_endtime'}];
- }
- return Object;
- }
- });
|