| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500 |
- Ext.define('saas.view.sys.config.FormPanel', {
- extend: 'Ext.form.Panel',
- xtype: 'sys-config-formpanel',
- controller: 'sys-config-formpanel',
- viewModel: 'sys-config-formpanel',
-
- //字段属性
- _idField: 'id',
- _readUrl:'/api/account/company/read/current',
- _saveUrl:'/api/account/company/save',
- requires: [
- 'Ext.form.field.File'
- ],
- //基础属性
- frame:true,
- initId: 0,
- layout: 'vbox',
- autoScroll: true,
- border: 1,
- bodyPadding: 5,
- fieldDefaults: {
- margin: '0 5 5 30',
- labelAlign: 'right',
- labelWidth: 90,
- width:300,
- blankText: '该字段不能为空'
- },
- bbar:{
- frame:true,
- items:['->',{
- text:'保存',
- formBind:true,
- name:'save'
- },'->']
- },
- items: [{
- bind:'{id}',
- xtype: 'hidden',
- name: 'id',
- fieldLabel: 'id',
- allowBlank: true,
- width:600
- },{
- bind:'{name}',
- xtype: 'textfield',
- name: 'name',
- fieldLabel: '公司名称',
- allowBlank: true,
- editable:false,
- readOnly:true,
- width:600
- },{
- bind:'{address}',
- xtype: 'textfield',
- name: 'address',
- fieldLabel: '公司地址',
- beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
- allowBlank: false,
- width:600
- },{
- bind:'{tel}',
- xtype: 'textfield',
- name: 'tel',
- // regex:/^1(3|4|5|7|8|9)\d{9}$/,
- // regexText:'请输入正确的手机号码',
- fieldLabel: '电话',
- beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
- allowBlank: false,
- width:500
- },{
- bind:'{fax}',
- xtype: 'textfield',
- name: 'fax',
- fieldLabel: '传真',
- allowBlank: true,
- width:500
- }
- // ,{
- // bind:'{en_begindate}',
- // xtype : "datefield",
- // name : "en_begindate",
- // format:'Y-m-d H:i:s',
- // fieldLabel : "开账日期",
- // allowBlank : true,
- // editable:false,
- // hideTrigger:true,
- // readOnly:true,
- // width:500
- // }
- // ,{
- // bind:'{en_pricemethod}',
- // displayField : "display",
- // editable:false,
- // hideTrigger : false,
- // maxLength : 100.0,
- // width:500,
- // minValue : null,
- // queryMode : "local",
- // valueField : "value",
- // xtype : "combo",
- // value:'WACC',
- // store:{
- // fields: ['display', 'value'],
- // data : [
- // {"display":"加权平均法", "value":'WACC'},
- // {"display":"先进先出法", "value":'FIFO'}
- // ]
- // },
- // name : "en_pricemethod",
- // beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
- // fieldLabel : "库存计算方式",
- // allowBlank : false,
- // }
- // ,{
- // ignore:true,
- // bind:'{updateTime}',
- // xtype : "datefield",
- // name : "updateTime",
- // fieldLabel : "更新时间",
- // allowBlank : true,
- // hideTrigger:true,
- // format:'Y-m-d H:i:s',
- // editable:false,
- // readOnly:true,
- // width:500,
- // }
- ,{
- xtype: 'form',
- width:600,
- frame: false,
- border: false,
- minHeight: 22,
- bodyStyle: 'padding:2px;',
- layout: 'vbox',
- items:[{
- bind:'{signet}',
- name : "signet",
- allowBlank : true,
- hidden:true,
- xtype:'textfield'
- },{
- allowBlank : true,
- width:150,
- buttonOnly:true,
- fieldLabel:'打印章上传',
- xtype: 'filefield',
- name:'signetFilefield',
- buttonText: '选择图片',
- createFileInput : function() {
- var me = this;
- me.fileInputEl = me.button.el.createChild({
- name: me.getName(),
- cls: Ext.baseCSSPrefix + 'form-file-input',
- tag: 'input',
- type: 'file',
- size: 1,
- accept:"image/*"
- }).on('change', me.onFileChange, me);
- },
- listeners: {
- afterrender:function(field,ops){
- var fileEl = field.fileInputEl.dom;
- fileEl.setAttribute("accept","image/*");
- },
- change: function(field,nowValue,oldValue){
- if(nowValue==""){
- return true;
- }
- var form = field.ownerCt.ownerCt;
- var myForm = field.ownerCt;
- var fileEl = field.fileInputEl.dom;
- var fd = new FormData();
- fd.append('file', fileEl.files[0]);
- fd.append('folderId', 0);
- form.setLoading(true);
- Ext.Ajax.request({
- url: '/api/file/upload',//这里是填写需要跨域访问的URL
- cors: true,
- useDefaultXhrHeader: false,
- method: 'post',
- rawData: fd,
- headers: {
- 'Access-Control-Allow-Origin': '*',
- 'Authorization': saas.util.State.get('session').token,
- //"Content-Type": 'multipart/form-data' //文件上传的格式,
- "Content-Type":null
- },
- success: function (response, opts) {
- form.setLoading(false);
- var res = Ext.decode(response.responseText);
- if(res.success){
- saas.util.BaseUtil.showSuccessToast('上传成功');
- var data = res.data;
- var name = data.name + " (" + Ext.util.Format.fileSize(data.size) + ")";
- myForm.down('[name=signet]').setValue(data.fullPath);
- field.setRawValue(name);
- //读取图片
- if(data.id){
- var serverOptions = Ext.manifest.server;
- var img = myForm.down('[name=SignetPhoto]');
- img.el.dom.src = (serverOptions.basePath.https?serverOptions.basePath.https:serverOptions.basePath) + '/api/file/download?path='+data.fullPath;
- var showSignetPhoto = form.down('[name=showSignetPhoto]');
- showSignetPhoto.show();
- }
- }else{
- saas.util.BaseUtil.showErrorToast('上传失败: ' + res.message);
- }
- },
- failure: function (response, opts) {
- form.setLoading(false);
- var res = Ext.decode(response.responseText);
- saas.util.BaseUtil.showErrorToast('上传失败: ' + res.message);
- }
- });
- }
- }
- },{
- xtype:'displayfield',
- margin:'0 0 0 150',
- value:'支持 JPG、JPEG、PNG、BMP 格式 , 图片小于20M ',
- },{
- xtype: 'image',
- width: 100,
- height: 100,
- margin:'0 0 5 150',
- src:'resources/images/default/basePhoto.png',
- name:'SignetPhoto',
- },{
- margin:'0 0 5 151',
- xtype:'container',
- name:'showSignetPhoto',
- cls:'x-container-group',
- hidden:true,
- items:[{
- width: 45,
- height: 24,
- xtype:'button',
- text:'查看',
- handler:function(b){
- var form = b.ownerCt.ownerCt.ownerCt;
- var img = form.down('[name=SignetPhoto]');
- form.lookPic(img);
- }
- },{
- margin:'0 0 0 10',
- width: 45,
- height: 24,
- xtype:'button',
- text:'下载',
- handler:function(b){
- var form = b.ownerCt.ownerCt.ownerCt;
- var path = form.down('[name=signet]').value;
- form.downLoad(path);
- }
- }]
- }]
- },{
- xtype: 'form',
- width:600,
- frame: false,
- border: false,
- minHeight: 22,
- bodyStyle: 'padding:2px;',
- layout: 'vbox',
- items:[{
- bind:'{logoUrl}',
- name : "logoUrl",
- allowBlank : true,
- hidden:true,
- xtype:'textfield'
- },{
- allowBlank : true,
- width:150,
- buttonOnly:true,
- fieldLabel:'Logo上传',
- name:'logoFilefield',
- xtype: 'filefield',
- buttonText: '选择图片',
- createFileInput : function() {
- var me = this;
- me.fileInputEl = me.button.el.createChild({
- name: me.getName(),
- cls: Ext.baseCSSPrefix + 'form-file-input',
- tag: 'input',
- type: 'file',
- size: 1,
- accept:"image/*"
- }).on('change', me.onFileChange, me);
- },
- listeners: {
- afterrender:function(field,ops){
- var fileEl = field.fileInputEl.dom;
- fileEl.setAttribute("accept","image/*");
- },
- change: function(field,nowValue,oldValue){
- if(nowValue==""){
- return true;
- }
- var form = field.ownerCt.ownerCt;
- var myForm = field.ownerCt;
- var fileEl = field.fileInputEl.dom;
- var fd = new FormData();
- fd.append('folderId', 0);
- fd.append('file', fileEl.files[0]);
- form.setLoading(true);
- Ext.Ajax.request({
- url: '/api/file/upload',//这里是填写需要跨域访问的URL
- cors: true,
- useDefaultXhrHeader: false,
- method: 'post',
- rawData: fd,
- headers: {
- 'Access-Control-Allow-Origin': '*',
- 'Authorization': saas.util.State.get('session').token,
- //"Content-Type": 'multipart/form-data' //文件上传的格式,
- "Content-Type":null
- },
- success: function (response, opts) {
- form.setLoading(false);
- var res = Ext.decode(response.responseText);
- if(res.success){
- saas.util.BaseUtil.showSuccessToast('上传成功');
- var data = res.data;
- var name = data.name + " (" + Ext.util.Format.fileSize(data.size) + ")";
- myForm.down('[name=logoUrl]').setValue(data.fullPath);
- //读取图片
- if(data.id){
- var serverOptions = Ext.manifest.server;
- var img = myForm.down('[name=LogoPhoto]');
- img.el.dom.src = (serverOptions.basePath.https?serverOptions.basePath.https:serverOptions.basePath) + '/api/file/download?path='+data.fullPath;
- var showLogoPhoto = form.down('[name=showLogoPhoto]');
- showLogoPhoto.show();
- }
- }else{
- saas.util.BaseUtil.showErrorToast('上传失败: ' + res.message);
- }
- },
- failure: function (response, opts) {
- form.setLoading(false);
- var res = Ext.decode(response.responseText);
- saas.util.BaseUtil.showErrorToast('上传失败: ' + res.message);
- }
- });
- }
- }
- },{
- xtype:'displayfield',
- margin:'0 0 0 150',
- value:'支持 JPG、JPEG、PNG、BMP 格式 , 图片小于20M ',
- },{
- xtype: 'image',
- style:'border:1px solid #f7f7f7;',
- width: 100,
- height: 100,
- margin:'0 0 5 150',
- src:'resources/images/default/basePhoto.png',
- name:'LogoPhoto',
- },{
- name:'showLogoPhoto',
- margin:'0 0 5 151',
- xtype:'container',
- cls:'x-container-group',
- hidden:true,
- items:[{
- width: 45,
- height: 24,
- xtype:'button',
- text:'查看',
- handler:function(b){
- var form = b.ownerCt.ownerCt.ownerCt;
- var img = form.down('[name=LogoPhoto]');
- form.lookPic(img);
- }
- },{
- margin:'0 0 0 10',
- width: 45,
- height: 24,
- xtype:'button',
- text:'下载',
- handler:function(b){
- var form = b.ownerCt.ownerCt.ownerCt;
- var path = form.down('[name=logoUrl]').value;
- form.downLoad(path);
- }
- }]
- }]
- }],
- initComponent: function () {
- var me = this,
- viewModel = me.getViewModel();
- var url = me._readUrl;
- saas.util.BaseUtil.request({url })
- .then(function(res) {
- if(res.success) {
- var d = res.data;
- viewModel.setData(d);
- viewModel.notify();
- me.load(me);
- }
- })
- .catch(function(e) {
- console.error(e);
- });
- me.callParent(arguments);
- },
- refresh:function(){
- this.ownerCt.setTitle('参数设置')
- },
- load:function(form){
- var serverOptions = Ext.manifest.server;
- //打印章
- var signet = form.down('[name=signet]').value;
- if(signet&&signet!=''){
- var img = form.down('[name=SignetPhoto]');
- img.el.dom.src = (serverOptions.basePath.https?serverOptions.basePath.https:serverOptions.basePath) + '/api/file/download?path='+signet;
- var showSignetPhoto = form.down('[name=showSignetPhoto]');
- showSignetPhoto.show();
- }
- //Logo
- var logoUrl = form.down('[name=logoUrl]').value;
- if(logoUrl&&logoUrl!=''){
- var img = form.down('[name=LogoPhoto]');
- img.el.dom.src = (serverOptions.basePath.https?serverOptions.basePath.https:serverOptions.basePath) + '/api/file/download?path='+logoUrl;
- var showLogoPhoto = form.down('[name=showLogoPhoto]');
- showLogoPhoto.show();
- }
- //文件名称
- var viewModel = form.getViewModel();
- if(viewModel.data.fileInfoList&&viewModel.data.fileInfoList.length!=0){
- var logo = viewModel.data.fileInfoList[0].logo;
- //var logoName = logo.name + " (" + Ext.util.Format.fileSize(logo.size) + ")";
- var signet = viewModel.data.fileInfoList[0].signet;
- //var signetName = signet.name + " (" + Ext.util.Format.fileSize(signet.size) + ")";
- }
- },
- lookPic:function(img){
- var me = this, resizer = me.resizer,
- imageframe = document.getElementById('ext-image-frame');
- var src = img.el.dom.src;
- if (!imageframe) {
- var el = Ext.DomHelper.append(document.body, '<img id="ext-image-frame" src="' + src +
- '" width="500" height="400" style="position:absolute;left:0;top:0px;"/>', true);
- imageframe = el.dom;
- } else {
- imageframe.src = src;
- }
- if (!resizer) {
- resizer = this.resizer = Ext.create('Ext.resizer.Resizer', {
- target: 'ext-image-frame',
- pinned: true,
- width: 410,
- height: 310,
- minWidth: 100,
- minHeight: 80,
- preserveRatio: true,
- handles: 'all',
- dynamic: true,
- constrainTo:me.getEl()
- });
- var resizerEl = resizer.getEl();
- resizerEl.on('dblclick', function(){
- resizerEl.hide(true);
- });
- }
- resizer.getEl().center();
- resizer.getEl().show(true);
- Ext.DomHelper.applyStyles(imageframe, 'position:absolute;z-index:100;');
- },
- downLoad:function(path){
- var serverOptions = Ext.manifest.server;
- window.location.href = (serverOptions.basePath.https?serverOptions.basePath.https:serverOptions.basePath) + '/api/file/download?path='+path;
- //ajax 响应下载必须要创建一个form实例
- // if (!Ext.fly('ext-attach-download')) {
- // var frm = document.createElement('form');
- // frm.id = 'ext-attach-download';
- // frm.name = id;
- // frm.className = 'x-hidden';
- // document.body.appendChild(frm);
- // }
- // Ext.Ajax.request({
- // url: 'http://192.168.253.31:8560/api/file/download?path='+path,
- // method: 'post',
- // form: Ext.fly('ext-attach-download'),
- // isUpload: true,
- // params: ''
- // });
- }
- });
|