Forráskód Böngészése

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/YangHuCost

TonyKang 6 éve
szülő
commit
739b31a27e

+ 33 - 20
modules/users/controllers/login_controller.js

@@ -63,17 +63,17 @@ class LoginController {
             }
 
             //还要判断account是否是专业版用户
-            let isPro = false;
-            const userInfo = await userModel.findDataByAccount(account);
-
-            if (userInfo && userInfo.upgrade_list !== undefined) {
-                for (const ul of userInfo.upgrade_list) {
-                    if (ul.isUpgrade === true) {
-                        isPro = true;
-                        break;
-                    }
-                }
-            }
+            let isPro = true;
+            // const userInfo = await userModel.findDataByAccount(account);
+            //
+            // if (userInfo && userInfo.upgrade_list !== undefined) {
+            //     for (const ul of userInfo.upgrade_list) {
+            //         if (ul.isUpgrade === true) {
+            //             isPro = true;
+            //             break;
+            //         }
+            //     }
+            // }
             // 专业版短信验证码验证
             if (isPro) {
                 const codeMsg = request.session.code;
@@ -96,7 +96,7 @@ class LoginController {
             const captcha = new Captcha();
             const captchResult = await captcha.validate(request);
             if (!captchResult) {
-                throw '验证码错误';
+                throw '极验验证码错误';
             }
 
             let sessionUser = {
@@ -198,15 +198,28 @@ class LoginController {
                 throw '接口返回数据错误';
             }
 
+            // 正确登录后 存入session
+            let userData = responseData[0];
+
+            if (userData.mobile === '') {
+                return response.json({error: 2,ssoId: userData.id});
+            }
+
             const userInfo = await userModel.findDataByAccount(account);
-            if (userInfo && userInfo.upgrade_list !== undefined) {
-                for (const ul of userInfo.upgrade_list) {
-                    if (ul.isUpgrade === true) {
-                        res.result = true;
-                        res.data = userInfo.mobile;
-                        break;
-                    }
-                }
+            // if (userInfo && userInfo.upgrade_list !== undefined) {
+            //     for (const ul of userInfo.upgrade_list) {
+            //         if (ul.isUpgrade === true) {
+            //             res.result = true;
+            //             res.data = userInfo.mobile;
+            //             break;
+            //         }
+            //     }
+            // } else {
+            //     res.msg = '当前未存在此用户';
+            // }
+            if (userInfo) {
+                res.result = true;
+                res.data = userInfo.mobile;
             } else {
                 res.msg = '当前未存在此用户';
             }

+ 10 - 10
modules/users/models/user_model.js

@@ -249,16 +249,16 @@ class UserModel extends BaseModel {
      * @return {version}
      */
     async getVersionFromUpgrade(ssoId, compilationId){
-        let version = '纵横公路养护造价(免费云版)';
-        let userData = await this.findDataBySsoId(ssoId);
-        if (userData.upgrade_list !== undefined) {
-            let compilationInfo = userData.upgrade_list.find(function (item) {
-                return item.compilationID === compilationId;
-            });
-            if (compilationInfo !== undefined && compilationInfo.isUpgrade === true) {
-                version = '纵横公路养护造价(专业云版)';
-            }
-        }
+        let version = '纵横公路养护造价(云版)';//'纵横公路养护造价(免费云版)'; 2019-03-28 需求修改,听说不知道多久的以后还会改回来--勿删!!!!!
+        /*let userData = await this.findDataBySsoId(ssoId);
+         if (userData.upgrade_list !== undefined) {
+         let compilationInfo = userData.upgrade_list.find(function (item) {
+         return item.compilationID === compilationId;
+         });
+         if (compilationInfo !== undefined && compilationInfo.isUpgrade === true) {
+         version = '纵横公路养护造价(专业云版)';
+         }
+         }*/
         return version;
     }
 

+ 89 - 32
web/building_saas/main/js/views/project_property_projFeature.js

@@ -24,7 +24,7 @@ let projFeatureView = {
         combos: [],
         dateRows: [],
         locked: {
-            rows: [0],
+            rows: [],
             cols: [0]
         }
     },
@@ -51,12 +51,14 @@ let projFeatureView = {
     },
 
     getComboItemsByRow: function (row) {
-        for(let i = 0, len = this.setting.combos.length; i < len; i++){
-            if(this.setting.combos[i].row === row){
-                return this.setting.combos[i].items;
-            }
+        let data = this.datas[row];
+        if (!data) {
+            return null;
         }
-        return null;
+        if (!data.cellType || data.cellType !== 'comboBox') {
+            return null;
+        }
+        return data.options ? data.options.split('@') : [];
     },
 
     buildHeader: function (sheet, headers) {
@@ -80,7 +82,7 @@ let projFeatureView = {
         if(!this.workBook){
             this.workBook = new GC.Spread.Sheets.Workbook($('#projFeatureSpread')[0], {sheetCount: 1});
             sheetCommonObj.spreadDefaultStyle(this.workBook);
-            sheetCommonObj.bindEscKey(this.workBook, [{sheet: this.workBook.getSheet(0), editStarting: null, editEnded: this.onEditEnded}]);
+            sheetCommonObj.bindEscKey(this.workBook, [{sheet: this.workBook.getSheet(0), editStarting: this.onEditStarting, editEnded: this.onEditEnded}]);
             this.setOptions(this.workBook, this.setting.options);
             this.buildHeader(this.workBook.getActiveSheet(), this.setting.header);
             this.bindEvent(this.workBook);
@@ -90,9 +92,10 @@ let projFeatureView = {
     bindEvent: function (workBook) {
         const _events = GC.Spread.Sheets.Events;
         let sheet = workBook.getActiveSheet();
-        sheet.options.isProtected = true;
+        sheet.bind(_events.EditStarting, this.onEditStarting);
         sheet.bind(_events.EditEnded, this.onEditEnded);
         sheet.bind(_events.EnterCell, this.onEnterCell);
+        sheet.bind(_events.ClipboardPasting, this.onClipboardPasting);
         sheet.bind(_events.ClipboardPasted, this.onClipboardPasted);
     },
 
@@ -104,35 +107,75 @@ let projFeatureView = {
             sheet.setRowCount(datas.length);
             me.initTree(sheet, true, datas);
             sheet.setFormatter(-1, 1, '@');
-           for(let row = 0;row < datas.length ; row ++){
-               //锁定
-               if (!me.setting.locked.rows.includes(row)) {
-                   sheet.getCell(row, 1).locked(false);
-               }
-               if(datas[row].cellType == 'comboBox'){
-                   let options = datas[row].options?datas[row].options.split("@"):[];
-                   me.setCombo(sheet, row, options);
-               }else if(datas[row].cellType == 'number'){
-                   me.setting.numRows.push(row);
-               }
-               for(let col = 0;col < cols.length;col++){
-                   sheet.setValue(row, col, datas[row][cols[col]['dataCode']]);
-               }
-           }
+            //兼容旧数据
+            let compatLockedKeys = ['engineering'],
+                compatNumKeys = [
+                    'buildingArea',
+                    'basementBuildingArea',
+                    'totalFloors',
+                    'basementFloors',
+                    'buildingFloors',
+                    'buildingHeight',
+                    'basementHeight',
+                    'firstFloorHeight',
+                    'podiumBuildingHeight',
+                    'standardFloorHeight'
+                ];
+            for(let row = 0;row < datas.length ; row ++){
+                if(datas[row].cellType == 'comboBox'){
+                    let options = datas[row].options?datas[row].options.split("@"):[];
+                    me.setCombo(sheet, row, options);
+                } else if(datas[row].cellType == 'number' || compatNumKeys.includes(datas[row].key)){
+                    me.setting.numRows.push(row);
+                } else if (datas[row].cellType === 'date') {
+                    me.setting.dateRows.push(row);
+                }
+                let readOnly = typeof datas[row].readOnly === 'string' ? JSON.parse(datas[row].readOnly) : datas[row].readOnly;
+                if (readOnly || datas[row].items || compatLockedKeys.includes(datas[row].key)) {
+                    me.setting.locked.rows.push(row);
+                }
+                for(let col = 0;col < cols.length;col++){
+                    sheet.setValue(row, col, datas[row][cols[col]['dataCode']]);
+                }
+            }
+            basicInfoView.setDatePicker(sheet, me.setting.dateRows);
         };
         this.renderSheetFuc(sheet, fuc);
     },
+    onEditStarting: function (sender, args) {
+        let me = projFeatureView;
+        if(me.setting.locked.cols.indexOf(args.col) !== -1){
+            args.cancel = true;
+        }
+        if(args.col === 1 && me.setting.locked.rows.indexOf(args.row) !== -1){
+            args.cancel = true;
+        }
+    },
 
     onEditEnded: function (sender, args) {
         let me = projFeatureView;
         let v =  args.editingText ? args.editingText.toString().trim() : '';
         if(args.row < me.datas.length){
-            if(me.setting.numRows.indexOf(args.row) !== -1){//控制数值
+            let required = typeof me.datas[args.row].required === 'string' ? JSON.parse(me.datas[args.row].required) : me.datas[args.row].required;
+            if (required && !v) {
+                v = me.datas[args.row].value;
+                args.sheet.setValue(args.row, args.col, v);
+            } else if(me.setting.numRows.indexOf(args.row) !== -1){//控制数值
                 if(!me.isNum(v)){
                     alert('只能输入数值');
                     v = me.datas[args.row].value && me.isNum(me.datas[args.row].value) ? me.datas[args.row].value : '';
                     args.sheet.setValue(args.row, args.col, v);
                 }
+            } else if(me.setting.dateRows.indexOf(args.row) !== -1){
+                if(v.length > 0){
+                    v = formatDate(new Date(v), 'yyyy-MM-dd');
+                    v = basicInfoView.filtDate(v);
+                    if(!v){
+                        alert('请输入正确的日期格式yyyy-mm-dd');
+                        args.sheet.setValue(args.row, args.col, me.datas[args.row].value ? me.datas[args.row].value : '');
+                        return;
+                    }
+                }
             }
             me.datas[args.row].value = v;
         }
@@ -141,7 +184,12 @@ let projFeatureView = {
     onEnterCell: function (sender, args) {
         args.sheet.repaint();
     },
-
+    onClipboardPasting: function (sender, args) {
+        let me = projFeatureView;
+        if(me.setting.locked.cols.indexOf(args.cellRange.col) !== -1){
+            args.cancel = true;
+        }
+    },
     onClipboardPasted: function (sender, args) {
         let me = projFeatureView;
         let items = sheetCommonObj.analyzePasteData(me.setting, args);
@@ -152,13 +200,28 @@ let projFeatureView = {
         for(let i = 0, len = items.length; i < len; i++){
             let row = i + args.cellRange.row;
             let comboItems = me.getComboItemsByRow(row);
+            let required = typeof me.datas[row].required === 'string' ? JSON.parse(me.datas[row].required) : me.datas[row].required;
+            if(me.setting.locked.rows.indexOf(row) !== -1){
+                recRows.push(row);
+            }
+            else if (required && !items[i].value) {
+                recRows.push(row);
+            }
             //粘贴下拉框数据过滤
-            if(comboItems && comboItems.indexOf(items[i].value) !== -1){
+            else if(comboItems && !comboItems.includes(items[i].value)){
                 recRows.push(row);
             }
             else if(me.setting.numRows.indexOf(row) !== -1 && !me.isNum(items[i].value)){
                 recRows.push(row);
             }
+            else if(me.setting.dateRows.indexOf(row) !== -1){
+                items[i].value = basicInfoView.filtDate(items[i].value);
+                if(!me.isDef(items[i].value)){
+                    recRows.push(row);
+                } else {
+                    me.datas[row].value = items[i].value;
+                }
+            }
             else {
                 me.datas[row].value = items[i].value;
             }
@@ -204,12 +267,6 @@ let projFeatureView = {
     initDatas: function (datas) {
         this.datas = [];
         for(let i = 0, len = datas.length; i < len; i++){
-            if (typeof datas[i].readOnly === 'string') {
-                datas[i].readOnly = JSON.parse(datas[i].readOnly);
-            }
-            if (datas[i].readOnly && !this.setting.locked.rows.includes(i)) {
-                this.setting.locked.rows.push(i);
-            }
             this.datas.push(this.copyObj(datas[i]));
         }
     },

+ 3 - 0
web/users/js/login.js

@@ -70,6 +70,9 @@ $(document).ready(function () {
                                 $('#phonepass').modal('show');
                                 $('#proMobile').val(response.data);
                             }
+                        } else if(response.error === 2) {
+                            $('#check_ssoId').val(response.ssoId);
+                            $('#phone').modal('show');
                         } else {
                             let msg = response.msg !== undefined ? response.msg : '未知错误';
                             showError(msg, $("input"));