zhangweicheng 5 лет назад
Родитель
Сommit
b15a2e9745

+ 2 - 1
modules/all_models/user.js

@@ -104,6 +104,7 @@ 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

@@ -307,8 +307,12 @@ module.exports = {
         rationValuation = await engineeringLibModel.getLib(rationValuation);
         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 [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),

+ 29 - 2
modules/pm/facade/pm_facade.js

@@ -40,7 +40,8 @@ module.exports={
     uploadToken:uploadToken,
     downLoadProjectFile:downLoadProjectFile,
     importProcessChecking:importProcessChecking,
-    isTenderOverrun
+    isTenderOverrun,
+    getWelcomeInfo:getWelcomeInfo
 };
 
 
@@ -79,6 +80,7 @@ let compleGljSectionTModel = mongoose.model('complementary_glj_section_templates
 let progressiveModel = mongoose.model('std_progressive_lib');
 let importLogsModel = mongoose.model("import_logs");
 const shareListModel = mongoose.model('share_list');
+let welcomeModel = mongoose.model("welcome_setting");
 
 
 let featureLibModel =  mongoose.model("std_project_feature_lib");
@@ -1099,7 +1101,7 @@ async function isFirst(userId, compilationId) {
     if (userData) {
         isFirst = !_.find(userData.used_list, function (o) {
             return o.compilationId === compilationId;
-        });;
+        })
     }
     return isFirst;
 }
@@ -1692,4 +1694,29 @@ async function isTenderOverrun(tenderCount, session) {
     const limit = systemSetting[type].project;
     const curTenderCount = await projectModel.count({userID, compilation, projType: 'Tender', '$or':[{deleteInfo: null}, {'deleteInfo.completeDeleted': false}]});
     return tenderCount + curTenderCount > limit;
+}
+
+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]
+
 }

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

@@ -241,6 +241,7 @@ class LoginController {
                 mobile: userData.mobile,
                 qq: userData.qq,
                 isUserActive: userData.isUserActive,
+                newLogin:true
             };
 
             request.session.sessionUser = sessionUser;

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

@@ -21,6 +21,8 @@
         var userAccount = '<%- userAccount %>';
         var userID = '<%- userID %>';
         let isFirst = JSON.parse('<%- isFirst %>');
+        let isShow = JSON.parse('<%- isShow %>');
+
     </script>
     <style type="text/css">
         .hidden-area{
@@ -717,6 +719,22 @@
     </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>

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

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