zhongzewei 7 lat temu
rodzic
commit
a5a9c01073

+ 6 - 0
modules/all_models/projects.js

@@ -7,6 +7,11 @@ const Schema = mongoose.Schema;
 const deleteSchema = require('../all_schemas/delete_schema');
 
 const collectionName = 'projects';
+const shareSchema = new Schema({
+    receiver: String, //userID
+    allowCopy: {type: Boolean, default: false},
+    shareDate: String,
+}, {versionKey: false, _id: false});
 const ProjectSchema = new Schema({
     "ID": Number,
     "ParentID": Number,
@@ -19,6 +24,7 @@ const ProjectSchema = new Schema({
     "compilation": String,
     "deleteInfo": deleteSchema,
     'fullFolder': Array,
+    "shareInfo": [shareSchema],
     "property": {
         type: Schema.Types.Mixed,
         default: {}

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

@@ -419,5 +419,15 @@ module.exports = {
             result.message = err.message;
         }
         res.json(result);
+    },
+    projectShareInfo: async function(req, res){
+        try{
+            let data = JSON.parse(req.body.data);
+            let shareInfo = await projectModel.findOne({ID: data.projectID, $or: [{deleteInfo: null}, {'deleteInfo.deleted': false}]}, 'shareInfo');
+            callback(req, res, 0, 'success', shareInfo);
+        }
+        catch (err){
+            callback(req, res, 1, err, null);
+        }
     }
 };

+ 2 - 0
modules/pm/routes/pm_route.js

@@ -50,6 +50,8 @@ module.exports = function (app) {
     pmRouter.post('/getGCDatas', pmController.getGCDatas);
     pmRouter.post('/recGC', pmController.recGC);
     pmRouter.post('/delGC', pmController.delGC);
+    //share
+    pmRouter.post('/getProjectShareInfo', pmController.projectShareInfo);
 
     app.use('/pm/api', pmRouter);
 };

+ 15 - 0
modules/users/controllers/user_controller.js

@@ -264,6 +264,21 @@ class UserController extends BaseController {
         }
     }
 
+    /*
+    * 获取用户信息
+    * */
+    async getUserByMobile(req, res){
+        try{
+            let userModel = new UserModel();
+            let data = JSON.parse(req.body.data);
+            let userData = await userModel.findDataByMobile(data.mobile);
+            res.json({error: 0, msg: 'success', data: userData});
+        }
+        catch (err){
+            res.json({error: 1, msg: err, data: null});
+        }
+    }
+
 }
 
 export default UserController;

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

@@ -154,6 +154,16 @@ class UserModel extends BaseModel {
     }
 
     /**
+     * 根据手机号查找数据
+     *
+     * @param {string} mobile
+     * @return {object}
+     */
+    findDataByMobile(mobile) {
+        return this.db.findOne({mobile: mobile});
+    }
+
+    /**
      * 根据userId查找数据
      *
      * @param {string} ssoId

+ 1 - 0
modules/users/routes/user_route.js

@@ -19,6 +19,7 @@ module.exports = function (app) {
     router.get('/preferences', userController.init, userController.preferences);
     router.post('/save-preferences', userController.init, userController.savePreferences);
     router.post('/info', userController.init, userController.saveData);
+    router.post('/getUserByMobile', userController.init, userController.getUserByMobile);
 
     router.post('/getVersionInfo', userController.init, userController.getVersionInfo);
     app.use('/user',router);

+ 0 - 1
web/building_saas/main/js/views/project_view.js

@@ -41,7 +41,6 @@ var projectObj = {
         }
         //zhong 2017-9-1 特征及内容
         if(pageCCOprObj.active){
-            console.log('enterCC');
             pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];//mainSpread焦点单元格
             pageCCOprObj.setCacheAndShow(node);
         }

Plik diff jest za duży
+ 48 - 19
web/building_saas/pm/html/project-management.html


+ 56 - 2
web/building_saas/pm/js/pm_newMain.js

@@ -258,10 +258,14 @@ const projTreeObj = {
                     name: "分享",
                     icon: 'fa-share',
                     disabled: function () {
+                        let selectedItem = projTreeObj.tree.selected;
                         return true;
+                        // return !(selectedItem && selectedItem.data.projType === projectType.tender);
                     },
                     callback: function (key, opt) {
-
+                        $('#share-info').hide();
+                        $('#share').find('.card').hide();
+                        $('#share').modal('show');
                     }
                 },
             }
@@ -2814,4 +2818,54 @@ function refreshTenderFile(tenders, type, newName){
    });
 }
 
-//获取当前版本信息
+//添加分享
+$('#sharePhone').change(function () {
+    let phone = $(this).val();
+    let hintInfo = $('#share-info');
+    if(!phone || phone.trim() === ''){
+        replaceClass(hintInfo, 'text-info', 'text-danger');
+        setDangerInfo(hintInfo, '请输入手机号码。', true);
+        return;
+    }
+    //根据手机号获取用户
+    CommonAjax.post('/user/getUserByMobile', {mobile: phone}, function (rstData) {
+        if(!rstData){
+            replaceClass(hintInfo, 'text-info', 'text-danger');
+            setDangerInfo(hintInfo, '账号不存在。', true);
+        }
+        else{
+            console.log(rstData);
+            $('#user_name').text(rstData.real_name ? rstData.real_name : '');
+            $('#user_company').text(rstData.company ? rstData.company : '');
+            $('#user_mobile').text(rstData.mobile ? rstData.mobile : '');
+            $('#user_email').text(rstData.email ? rstData.email : '');
+            $('#share').find('.card').show();
+            //判断项目是否已经分享
+            //CommonAjax.post('/pm/api/getProjectShareInfo');
+        }
+    });
+});
+
+function shareTender(){
+    let phone = $('#sharePhone').val();
+    let hintInfo = $('#share-info');
+    if(!phone || phone.trim() === ''){
+        replaceClass(hintInfo, 'text-info', 'text-danger');
+        setDangerInfo(hintInfo, '请输入手机号码。', true);
+        return;
+    }
+    //根据手机号获取用户
+    CommonAjax.post('/user/getUserByMobile', {mobile: phone}, function (rstData) {
+        if(!rstData){
+            replaceClass(hintInfo, 'text-info', 'text-danger');
+            setDangerInfo(hintInfo, '账号不存在。', true);
+        }
+        else{
+            $('#user_name').text(rstData.real_name ? rstData.real_name : '');
+            $('#user_company').text(rstData.company ? rstData.company : '');
+            $('#user_mobile').text(rstData.mobile ? rstData.mobile : '');
+            $('#user_email').text(rstData.email ? rstData.email : '');
+            $('#share').find('.card').show();
+        }
+    });
+}