| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- Ext.define('school.view.basic.class.ClassInfoController', {
- extend: 'Ext.app.ViewController',
- alias: 'controller.basic-class-classinfo',
- onBeforeRender: function() {
- let me = this,
- view = me.getView(),
- viewModel = me.getViewModel();
- viewModel.get('store_gradeclass').load();
- },
- onItemMouseEnter: function(tree, record, item, index, e, eOpts) {
- let icons = item.getElementsByClassName('action-icon');
- let addIcon = icons[0],
- editIcon = icons[1],
- deleteIcon = icons[2];
- if(record.data.type == 'SCHOOL') {
- addIcon.classList.remove('x-hidden');
- }else if(record.data.type == 'GRADE') {
- addIcon.classList.remove('x-hidden');
- editIcon.classList.remove('x-hidden');
- deleteIcon.classList.remove('x-hidden');
- }else if(record.data.type == 'CLASS') {
- // addIcon.classList.remove('x-hidden');
- editIcon.classList.remove('x-hidden');
- deleteIcon.classList.remove('x-hidden');
- }
- },
- onItemMouseLeave: function(tree, record, item, index, e, eOpts) {
- let icons = item.getElementsByClassName('action-icon');
- for(let x = 0; x < icons.length; x++) {
- icons[x].classList.add('x-hidden');
- }
- },
- onItemClick: function(tree, record, item, index, e, eOpts) {
- let me = this,
- refs = me.getReferences(),
- listCard = refs.listcard;
- listCard.showNode(record);
- },
- onItemBeforeDrop: function(node, data, overModel, dropPosition, dropHandlers) {
- let cdata = data.records[0].data;
- let tdata = overModel.data;
- dropHandlers.wait = true;
- if(cdata.type == tdata.type && dropPosition != 'append') {
- dropHandlers.processDrop();
- }else {
- dropHandlers.cancelDrop();
- }
- },
- onItemDrop: function() {
- },
- onToggleTree: function() {
- let me = this,
- viewModel = me.getViewModel(),
- refs = me.getReferences(),
- treeList = refs.treelist,
- nwidth,
- nToggleIconCls;
- if(treeList.nowidth) {
- treeList.nowidth = false;
- nwidth = treeList.owidth;
- nToggleIconCls = 'sa-arrows-left'
- }else {
- treeList.nowidth = true;
- treeList.owidth = treeList.getBox().width;
- nwidth = 0;
- nToggleIconCls = 'sa-arrows-right'
- }
- viewModel.set('toggleIconCls', nToggleIconCls);
- viewModel.set('treeWidth', nwidth);
- },
- onTreeUp: function() {
- let me = this,
- viewModel = me.getViewModel(),
- refs = me.getReferences(),
- treeList = refs.treelist,
- listCard = refs.listcard,
- currentNodeData = viewModel.get('currentNodeData'),
- rootNode = treeList.getRootNode(),
- currentNode;
- if(currentNodeData.id !== 'root') {
- currentNode = rootNode.findChild('id', currentNodeData.id, true);
- if(!!currentNode.parentNode) {
- treeList.setSelection(currentNode.parentNode);
- listCard.showNode(currentNode.parentNode);
- }
- }
- },
- onTreeAddClick: function(tree, row, col, item, e, eOpts, tr) {
- let me = this,
- store = tree.store,
- record = store.getAt(row);
- me.showTreeAddWin(record);
- },
- onTreeEditClick: function(tree, row, col, item, e, eOpts, tr) {
- let me = this,
- store = tree.store,
- record = store.getAt(row);
- me.showTreeEditWin(record.data, true);
- },
- onTreeDeleteClick: function(tree, row, col, item, e, eOpts, tr) {
- let me = this,
- refs = me.getReferences(),
- listCard = refs.listcard,
- treeList = refs.treelist,
- store = treeList.store,
- record = store.getAt(row),
- rootNode = treeList.getRootNode(),
- _id = record.data._id,
- id = record.data.id,
- type = record.data.type,
- currentNode = rootNode.findChild('id', id, true),
- parentNode = currentNode.parentNode;
- let url;
- if(type == 'GRADE') {
- // url = 'http://10.1.80.47:9560/grade/delete'
- url = '/api/school/grade/delete'
- }else {
- // url = 'http://10.1.80.47:9560/grade/deleteClass'
- url = '/api/school/grade/deleteClass'
- }
- school.util.BaseUtil.request({
- url: url + '/' + _id,
- method: 'POST'
- }).then(function(res) {
- treeList.setSelection(parentNode);
- currentNode.remove();
- listCard.showNode(parentNode);
- }).catch(function(e) {
- school.util.BaseUtil.showErrorToast(e.message);
- });
- },
- showTreeAddWin: function(record, count) {
- let me = this,
- view = me.getView(),
- refs = me.getReferences(),
- treeList = refs.treelist,
- listCard = refs.listcard,
- win = refs.treeaddwin,
- data = record.data,
- id = data.id,
- _id = data._id,
- type = data.type,
- childCount = count >= 0 ? count : record.childNodes.length;
- let title = type == 'SCHOOL' ? '新增年级' : '新增班级';
- let sumType = type == 'SCHOOL' ? 'GRADE' : 'CLASS';
- if(!win) {
- win = Ext.create('Ext.window.Window', {
- width: 300,
- height: 180,
- constrain: true,
- references: 'treeaddwin',
- modal: true,
- bodyPadding: 10,
- layout: 'fit',
- items: [{
- xtype: 'form',
- layout: 'column',
- defaults: {
- columnWidth: 1
- },
- items: [{
- xtype: 'textfield',
- name: 'text',
- emptyText: '名称',
- allowBlank: false,
- maxLength: 20
- }],
- buttonAlign: 'center',
- buttons: [{
- text: '确定',
- formBind: true,
- handler: function() {
- let form = this.up('form');
- let text = form.getValues().text;
- let rootNode = treeList.getRootNode();
- let currentNode;
- let childNode = {
- text: text,
- type: sumType
- };
- let url, params, headers;
- if(type == 'SCHOOL') {
- currentNode = rootNode;
- childNode.leaf = true;
- childNode.children = [];
- // url = 'http://10.1.80.47:9560/grade/save';
- url = '/api/school/grade/save';
- params = {
- grade: text,
- no: childCount
- };
- headers = {
- "Content-Type": 'application/x-www-form-urlencoded; charset=UTF-8'
- }
- }else {
- currentNode = rootNode.findChild('id', id, true);
- childNode.leaf = true;
- // url = 'http://10.1.80.47:9560/grade/addClass';
- url = '/api/school/grade/addClass';
- params = JSON.stringify({
- grade_id: _id,
- clazz_name: text,
- no: childCount
- });
- }
- view.setLoading(true);
- school.util.BaseUtil.request({
- url: url,
- method: 'POST',
- params: params,
- headers: headers
- }).then(function(res) {
- view.setLoading(false);
- childNode._id = res.data.id;
- currentNode.appendChild(childNode);
- listCard.showNode(currentNode);
- win.close();
- }).catch(function(e) {
- view.setLoading(false);
- school.util.BaseUtil.showErrorToast(e.message);
- });
- }
- }]
- }]
- });
- view.add(win);
- }
- win.setTitle(title);
- win.show();
- },
- showTreeEditWin: function(data) {
- let me = this,
- view = me.getView(),
- refs = me.getReferences(),
- treeList = refs.treelist,
- listCard = refs.listcard,
- win = refs.treeaddwin,
- _id = data._id,
- id = data.id,
- type = data.type;
- let title = type == 'GRADE' ? '修改年级' : '修改班级';
- if(!win) {
- win = Ext.create('Ext.window.Window', {
- width: 300,
- height: 180,
- references: 'treeaddwin',
- constrain: true,
- modal: true,
- bodyPadding: 10,
- layout: 'fit',
- items: [{
- xtype: 'form',
- layout: 'column',
- defaults: {
- columnWidth: 1
- },
- items: [{
- xtype: 'textfield',
- name: 'text',
- emptyText: '名称',
- value: data.text,
- allowBlank: false,
- maxLength: 20
- }],
- buttonAlign: 'center',
- buttons: [{
- text: '确定',
- formBind: true,
- handler: function() {
- let form = this.up('form');
- let text = form.getValues().text;
- let rootNode = treeList.getRootNode();
- let currentNode = rootNode.findChild('id', id, true);
- let url, params, headers;
- if(type == 'GRADE') {
- // url = 'http://10.1.80.47:9560/grade/update';
- url = '/api/school/grade/update';
- params = JSON.stringify({
- grade_id: _id,
- grade_name: text
- });
- }else {
- // url = 'http://10.1.80.47:9560/grade/updateClass';
- url = '/api/school/grade/updateClass';
- params = JSON.stringify({
- clazz_id: _id,
- clazz_name: text
- });
- }
- view.setLoading(true);
- school.util.BaseUtil.request({
- url: url,
- method: 'POST',
- params: params,
- headers: headers
- }).then(function(res) {
- view.setLoading(false);
- currentNode.set('text', text);
- currentNode.set('pathText', text);
- currentNode.commit();
- win.close();
- listCard.showNode(currentNode);
- }).then(function() {
- Ext.StoreMgr.get('store_grade').load();
- Ext.StoreMgr.get('store_class').load();
- }).catch(function(e) {
- view.setLoading(false);
- school.util.BaseUtil.showErrorToast(e.message);
- });
- }
- }]
- }]
- });
- view.add(win);
- }
- win.setTitle(title);
- win.show();
- },
- });
|