Просмотр исходного кода

修改项目管理页面获取项目属性的逻辑

olym 7 лет назад
Родитель
Сommit
9421f5a91b
3 измененных файлов с 33 добавлено и 59 удалено
  1. 13 12
      modules/pm/models/project_model.js
  2. 0 1
      modules/pm/routes/pm_route.js
  3. 20 46
      web/building_saas/pm/js/pm_main.js

+ 13 - 12
modules/pm/models/project_model.js

@@ -1,6 +1,7 @@
 /**
  * Created by Mai on 2017/1/18.
  */
+import UnitPriceFileModel from "../../glj/models/unit_price_file_model";
 let counter = require("../../../public/counter/counter.js");
 
 let newProjController = require('../controllers/new_proj_controller');
@@ -67,9 +68,20 @@ ProjectsDAO.prototype.updateUserProjects = async function(userId, datas, callbac
                     return;
                 }
 
-                newProject.save(function (err, result) {
+                newProject.save(async function (err, result) {
                     if (!err && result._doc.projType === projectType.tender) {
                         newProjController.copyTemplateData(data.updateData.property, newProject.ID, updateAll);
+                        // 新增单价文件
+                        let unitPriceFileModel = new UnitPriceFileModel();
+                        let insertData = {
+                            name: data.updateData.name,
+                            project_id: data.updateData.ID
+                        };
+                        let addResult = await unitPriceFileModel.add(insertData);
+                        if (!addResult) {
+                            callback(1, '新增单价文件失败.', null);
+                            return;
+                        }
                     } else {
                         updateAll(err);
                     }
@@ -173,17 +185,6 @@ ProjectsDAO.prototype.getProject = function (key, callback) {
 };
 
 /**
- * 获取项目属性
- *
- * @param {Number} id
- * @return {Promise}
- */
-ProjectsDAO.prototype.getProjectProperty = async function(id) {
-    let projectData = await Projects.findOne({ID: id});
-    return projectData !== null && projectData.property !== undefined ? projectData.property : {};
-};
-
-/**
  * 整理工程专业对应标准库数据
  *
  * @param {Object} data

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

@@ -40,7 +40,6 @@ module.exports = function (app) {
     pmRouter.post('/beforeOpenProject', pmController.beforeOpenProject);
     pmRouter.post('/getProject', pmController.getProject);
     pmRouter.post('/getNewProjectID', pmController.getNewProjectID);
-    pmRouter.post('/getProjectProperty', pmController.getProjectProperty);
 
     app.use('/pm/api', pmRouter);
 };

+ 20 - 46
web/building_saas/pm/js/pm_main.js

@@ -232,7 +232,7 @@ $(document).ready(function() {
         if (projectInfo !== null) {
             let parentID = projectInfo.data.ID;
             // 获取当前的数据属性
-            getProperty(parentID);
+            getProperty(projectInfo.data);
         }
 
     });
@@ -931,7 +931,7 @@ function GetTargetTreeNode(zTreeObj) {
  */
 function getEngineeringHtml(engineeringList) {
     let result = '<option>请选择对应的工程专业</option>';
-    if (Object.keys(engineeringList).length <= 0) {
+    if (engineeringList.length <= 0) {
         return result;
     }
     let engineeringObject = {};
@@ -951,50 +951,24 @@ function getEngineeringHtml(engineeringList) {
 /**
  * 远程获取项目属性数据
  *
- * @param {Number} id
- * @return {Object}
+ * @param {Object} projectInfo
+ * @return {void}
  */
-function getProperty(id) {
-    if (isSaving) {
-        return false;
-    }
-    id = parseInt(id);
-    if (isNaN(id) || id <= 0) {
-        return {};
+function getProperty(projectInfo) {
+    if (projectInfo.property === undefined) {
+        return;
     }
-
-    $.ajax({
-        url: '/pm/api/getProjectProperty',
-        type: 'post',
-        data: {data: JSON.stringify({user_id: userID, id: id})},
-        dataType: 'json',
-        timeout: 5000,
-        error: function() {
-            isSaving = false;
-            alert('操作失败!');
-        },
-        beforeSend: function() {
-            isSaving = true;
-        },
-        success: function(response) {
-            if (response.error === 0) {
-                projectProperty = response.data;
-                // 写入专业工程相关
-                let engineeringHtml = getEngineeringHtml(projectProperty.engineeringList);
-                $("#tender-engineering").html(engineeringHtml);
-
-                // 填入计价规则
-                let valuationHtml = '<option value="'+ projectProperty.valuation +'">'+ projectProperty.valuationName +'</option>';
-                $("#tender-valuation").html(valuationHtml);
-
-                // 选中计价方式
-                $("input[name='tender_valuation_type']").attr('disabled', 'disabled').removeAttr('checked', 'checked');
-                $("input[name='tender_valuation_type'][value='"+ projectProperty.valuationType +"']")
-                    .attr("checked", "checked").removeAttr('disabled', 'disabled');
-
-            } else {
-                alert(response.message);
-            }
-        }
-    });
+    projectProperty = projectInfo.property;
+    // 写入专业工程相关
+    let engineeringHtml = getEngineeringHtml(projectProperty.engineeringList);
+    $("#tender-engineering").html(engineeringHtml);
+
+    // 填入计价规则
+    let valuationHtml = '<option value="'+ projectProperty.valuation +'">'+ projectProperty.valuationName +'</option>';
+    $("#tender-valuation").html(valuationHtml);
+
+    // 选中计价方式
+    $("input[name='tender_valuation_type']").attr('disabled', 'disabled').removeAttr('checked', 'checked');
+    $("input[name='tender_valuation_type'][value='"+ projectProperty.valuationType +"']")
+        .attr("checked", "checked").removeAttr('disabled', 'disabled');
 }