소스 검색

欢迎页

zhangweicheng 5 년 전
부모
커밋
97f383cd8a

+ 2 - 1
modules/all_models/user.js

@@ -95,7 +95,8 @@ let schema = {
     isLoginValid: {
         type: Number,
         default: 0
-    }
+    },
+    welcomeShowTime:String
 
 };
 mongoose.model(collectionName, new Schema(schema, {versionKey: false}));

+ 19 - 0
modules/all_models/welcome_setting.js

@@ -0,0 +1,19 @@
+/**
+ * Created by zhang on 2020/2/14.
+ */
+
+let mongoose = require("mongoose");
+
+let Schema = mongoose.Schema;
+let collectionName = 'welcome_setting';
+let modelSchema = {
+    // ID
+    ID: {
+        type: String,
+        index: true
+    },
+    compilationId: String,
+    showType:{type:Number,default:0},// 1 每天一次 2 每次登录显示,0 关闭
+    context:String
+};
+mongoose.model(collectionName, new Schema(modelSchema, {versionKey: false, collection: collectionName}));

+ 4 - 0
modules/pm/controllers/pm_controller.js

@@ -323,8 +323,12 @@ module.exports = {
         let absoluteUrl = compilationData.overWriteUrl ? request.app.locals.rootDir + compilationData.overWriteUrl : request.app.locals.rootDir;
         let overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilationData.overWriteUrl : null;
         //let valuationOpts = billValuation.map(data => {return {name: data.name, id: data.id}}).reverse();
+        //欢迎页显示控制
+        let [isShow,context] = await pm_facade.getWelcomeInfo(sessionCompilation._id,request.session.sessionUser);
         let renderData = {
             isFirst: isFirst,
+            isShow:isShow,
+            context:context,
             userAccount: request.session.userAccount,
             userID: request.session.sessionUser.id,
             compilationData: JSON.stringify(sessionCompilation),

+ 31 - 5
modules/pm/facade/pm_facade.js

@@ -32,7 +32,8 @@ module.exports={
     getProjectPlaceholder: getProjectPlaceholder,
     exportProject:exportProject,
     importProjects:importProjects,//建筑这里重名了,这比养护加多了个s
-    initOverHeightItems: initOverHeightItems
+    initOverHeightItems: initOverHeightItems,
+    getWelcomeInfo:getWelcomeInfo
 };
 
 
@@ -78,12 +79,14 @@ let bidListModel = mongoose.model("bid_evaluation_list");
 let contractorListModel = mongoose.model("contractor_list");
 let featureLibModel =  mongoose.model("std_project_feature_lib");
 const overHeightLibModel = mongoose.model('std_over_height_lib');
+let welcomeModel = mongoose.model("welcome_setting");
+
 let scMathUtil = require('../../../public/scMathUtil').getUtil();
 let counter = require('../../../public/counter/counter');
 import SectionTreeDao from '../../complementary_ration_lib/models/sectionTreeModel';
 let sectionTreeDao = new SectionTreeDao();
 import CounterModel from "../../glj/models/counter_model";
-import moment from 'moment';
+import moment from 'moment-timezone';
 import billsFlags from '../../common/const/bills_fixed';
 const notDeleted = [{deleteInfo: null}, {'deleteInfo.deleted': false}];
 import {
@@ -201,13 +204,13 @@ async function copyProject(userID, compilationID,data,newProjectID = null) {
     //费率文件、单价文件重名检查
     let feeRate =  await feeRateFileModel.findOne({rootProjectID:originalProperty.rootProjectID,name:originalProperty.feeFile.name,deleteInfo:null});
     if(feeRate){//存在重名的文件
-        newFeeName = originalProperty.feeFile.name + '(' + moment(Date.now()).format('MM-DD HH:mm:ss') + '复制)';
+        newFeeName = originalProperty.feeFile.name + '(' + moment(Date.now()).tz("Asia/Shanghai").format('MM-DD HH:mm:ss') + '复制)';
         projectMap['copy'].document.property.feeFile.name = newFeeName;
     }
 
     let unitPriceFile =  await unitPriceFileModel.findOne({root_project_id: originalProperty.rootProjectID,name:originalProperty.unitPriceFile.name,deleteInfo: null});
     if(unitPriceFile){//存在重名的文件
-        newUnitName = originalProperty.unitPriceFile.name + '(' + moment(Date.now()).format('MM-DD HH:mm:ss') + '复制)';
+        newUnitName = originalProperty.unitPriceFile.name + '(' + moment(Date.now()).tz("Asia/Shanghai").format('MM-DD HH:mm:ss') + '复制)';
         projectMap['copy'].document.property.unitPriceFile.name = newUnitName;
     }
 
@@ -1910,7 +1913,7 @@ async function handleMainProjectDatas(mainData,updateData,userID) {
             }
             //查看是否重名;
             let temp = await projectModel.findOne({userID:userID,ParentID:p.ParentID,name:p.name});
-            if(temp) p.name = p.name + '(' + moment(Date.now()).format('MM-DD HH:mm:ss') + '导入)';
+            if(temp) p.name = p.name + '(' + moment(Date.now()).tz("Asia/Shanghai").format('MM-DD HH:mm:ss') + '导入)';
         }else {
             p.ParentID = projectIDMap[p.ParentID];
             p.NextSiblingID = projectIDMap[p.NextSiblingID];
@@ -2010,3 +2013,26 @@ async function initOverHeightItems(engineeringID) {
     const overHeightLib = await overHeightLibModel.findOne({ID: overHeightLibID});
     return overHeightLib ? overHeightLib.list : defaultData;
 }
+
+async function getWelcomeInfo(compilationId,sessionUser) {
+    let setting = await welcomeModel.findOne({compilationId:compilationId});
+    let isShow = false;
+    let context = "";
+    if(setting){
+        if(setting.showType == 0) return [false,""];//关闭
+        context = setting.context;
+        if(setting.showType == 1){//每天一次
+            let dataString =moment(Date.now()).tz("Asia/Shanghai").format('YYYY-MM-DD');//今天的日期字符串
+            let userInfo =await userModel.findOne({_id: mongoose.Types.ObjectId(sessionUser.id)});
+            if (dataString != userInfo.welcomeShowTime){//今天没登录过
+                isShow = true;
+                await userModel.update({_id: mongoose.Types.ObjectId(sessionUser.id)},{welcomeShowTime:dataString})
+            }
+        }else if(setting.showType == 2){//每次登录显示
+            isShow = sessionUser.newLogin?true:false;
+            sessionUser.newLogin = false
+        }
+
+    }
+    return [isShow,context]
+}

+ 2 - 1
modules/users/controllers/login_controller.js

@@ -72,7 +72,7 @@ class LoginController {
                     username: userData.username,
                     email: userData.useremail,
                     mobile: userData.mobile,
-                    isUserActive: userData.isUserActive,
+                    isUserActive: userData.isUserActive
                 };
 
                 request.session.sessionUser = sessionUser;
@@ -251,6 +251,7 @@ class LoginController {
                 email: userData.useremail,
                 mobile: userData.mobile,
                 isUserActive: userData.isUserActive,
+                newLogin:true
             };
 
             request.session.sessionUser = sessionUser;

+ 1 - 1
modules/users/routes/login_route.js

@@ -27,7 +27,7 @@ module.exports = function (app) {
     router.get("/logout", function (req, res) {
         delete req.session.sessionUser;
         delete req.session.sessionCompilation;
-        res.redirect("/");
+        res.redirect("/login");
     });
     app.use('/',router)
 };

+ 1 - 0
package.json

@@ -48,6 +48,7 @@
     "lz-string": "^1.4.4",
     "main-bower-files": "^2.5.0",
     "moment": "^2.18.1",
+    "moment-timezone": "^0.5.27",
     "multiparty": "^4.1.3",
     "node-schedule": "^1.3.0",
     "node-xlsx": "^0.11.2",

+ 18 - 0
web/building_saas/pm/html/project-management.html

@@ -22,6 +22,7 @@
         var userAccount = '<%- userAccount %>';
         var userID = '<%- userID %>';
         let isFirst = JSON.parse('<%- isFirst %>');
+        let isShow = JSON.parse('<%- isShow %>');
     </script>
     <style type="text/css">
         .hidden-area{
@@ -930,6 +931,23 @@
     </div>
 </div>
 
+<!--弹出信息-->
+<div class="modal fade" id="welcomePage" data-backdrop="static">
+    <div class="modal-dialog modal-lg" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">欢迎使用大司空云计价</h5>
+            </div>
+            <div class="modal-body" id="welcomeBody">
+                <%- context %>
+            </div>
+            <div class="modal-footer text-xs-center">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
+            </div>
+        </div>
+    </div>
+</div>
+
 
 <!-- JS. -->
 <script src = "/lib/spreadjs/sheets/gc.spread.sheets.all.11.1.2.min.js"></script>

+ 4 - 0
web/building_saas/pm/js/pm_newMain.js

@@ -4910,3 +4910,7 @@ function refreshProjSummary(project, summaryInfo) {
     }
     projTreeObj.refreshNodeData(refreshNodes);
 }
+
+$(function () {
+    if(isShow)  $('#welcomePage').modal('show');//是否显示欢迎页
+});