浏览代码

uploadDialog 隐藏手机上传
表格分页+筛选

luoyifan 4 年之前
父节点
当前提交
7b4d8f2067
共有 1 个文件被更改,包括 40 次插入16 次删除
  1. 40 16
      src/controls/stores.js

+ 40 - 16
src/controls/stores.js

@@ -14,16 +14,49 @@ export default function () {
         },
         },
         buildRequest: function (operation) {
         buildRequest: function (operation) {
             // 参考源码 ext-all-debug.js:71468 method:buildRequest
             // 参考源码 ext-all-debug.js:71468 method:buildRequest
-            debugger
             const me = this
             const me = this
-            const params = operation.params = Ext.apply({}, {params: operation.getParams()}, me.extraParams)
 
 
-            Ext.applyIf(params, me.getParams(operation));
+            const gridParam = me.getParams(operation)
+            const customParam = {}
 
 
-            if (operation.id !== undefined && params[me.idParam] === undefined) {
-                params[me.idParam] = operation.id;
+            // 提取 srot 元素
+            if (gridParam.sort) {
+                const sort = JSON.parse(gridParam.sort)
+                // 字符串 [{"property":"BRANCHID","direction":"ASC"}]
+                // 转换为对象 [{colId: "BRANCHID", sort: "asc"}]
+                customParam.sortModel = []
+                _.forEach(sort, s => {
+                    customParam.sortModel.push({
+                        colId: s.property,
+                        sort: _.toLower(s.direction)
+                    })
+                })
+                delete gridParam.sort
             }
             }
 
 
+            // 提取筛选元素
+            if (gridParam.filter) {
+                const filter = JSON.parse(gridParam.filter)
+                // "[{"operator":"like","value":"1","property":"id"}]"
+                // 转换为 filterModel: {BRANCHID: {filterType: "text", type: "contains", filter: "12"}}
+                customParam.filterModel = {}
+                _.forEach(filter, s => {
+                    const newFilterItem = {}
+                    if (s.operator === 'like') {
+                        newFilterItem.filterType = 'text';
+                        newFilterItem.type = 'contains';
+                        newFilterItem.filter = s.value;
+                    } else {
+                        // 无法识别的筛选类型
+                        debugger
+                    }
+                    customParam.filterModel[s.property] = newFilterItem
+                })
+                delete gridParam.filter
+            }
+
+            const params = _.defaultsDeep(gridParam, me.extraParams)
+
             // var request = this.superclass.buildRequest.apply(this, arguments);
             // var request = this.superclass.buildRequest.apply(this, arguments);
             let request = new Ext.data.Request({
             let request = new Ext.data.Request({
                 params: {},
                 params: {},
@@ -33,21 +66,12 @@ export default function () {
                 jsonData: {
                 jsonData: {
                     args: [
                     args: [
                         params
                         params
-                    ]
+                    ],
+                    ...customParam
                 },
                 },
-                // callback: function (options, success, response) {
-                //     console.log('callback', me, arguments)
-                // },
                 proxy: me
                 proxy: me
             });
             });
 
 
-            // request.setUrl(me.buildUrl(request));
-            // request.setMethod("post")
-            // request.setJsonData({
-            //     args: [
-            //         params
-            //     ]
-            // })
             operation.setRequest(request);
             operation.setRequest(request);
             return request;
             return request;
         },
         },