Browse Source

产品信息模块合并进系统选项

vian 4 years ago
parent
commit
43e78acde7

+ 0 - 31
modules/all_models/product.js

@@ -1,31 +0,0 @@
-'use strict';
-
-/**
- *
- *
- * @author Zhong
- * @date 2019/3/21
- * @version
- */
-/*
-* 与产品绑定的信息都可以在此设置
-* */
-const mongoose = require('mongoose');
-const Schema = mongoose.Schema;
-const productSchema = new Schema({
-    name: {
-        type: String,
-        default: '纵横建筑计价'
-    },
-    company: {
-        type: String,
-        default: '珠海纵横创新软件有限公司'
-    },
-    icp: {
-        type: String,
-        default: '粤ICP备14032472号'
-    },
-    version: String
-}, {versionKey: false});
-
-mongoose.model('product', productSchema, 'product');

+ 4 - 0
modules/all_models/system_setting.js

@@ -21,5 +21,9 @@ let modelSchema = {
         project: Number,
         ration:Number
     },
+    company: String, // 软件供应商
+    product: String, // 产品名
+    icp: String, // icp
+    version: String // 版本号
 };
 mongoose.model(collectionName, new Schema(modelSchema, {versionKey: false, collection: collectionName}));

+ 0 - 11
modules/sys_tools/controllers/sys_controller.js

@@ -14,7 +14,6 @@ import multiparty from 'multiparty';
 import BaseController from "../../common/base/base_controller";
 //import sysSchedule from '../models/sys_model';
 let sysSchedule = require('../models/sys_model');
-let productData = require('../models/product_model');
 let callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});
 };
@@ -90,16 +89,6 @@ class SysTools extends BaseController{
         });
     }
 
-    async changeProductInfo(req, res) {
-        try {
-            let version = req.body.version;
-            await productData.changeInfo({version});
-        } catch (error) {
-            console.log(error);
-        }
-        res.redirect(req.headers.referer);
-    }
-
 }
 
 export {SysTools as default};

+ 0 - 30
modules/sys_tools/models/product_model.js

@@ -1,30 +0,0 @@
-'use strict';
-
-/**
- *
- *
- * @author Zhong
- * @date 2019/3/21
- * @version
- */
-
-import mongoose from 'mongoose';
-let productModel = mongoose.model('product');
-
-async function changeInfo(updateData) {
-    await productModel.update({}, {$set: updateData}, {upsert: true});
-}
-
-async function getInfo() {
-    let data = await productModel.findOne({});
-    if (!data) {
-        await productModel.create({version: ''});
-        return await productModel.findOne({});
-    }
-    return data;
-}
-
-module.exports = {
-    getInfo,
-    changeInfo
-};

+ 0 - 1
modules/sys_tools/routes/routes.js

@@ -18,7 +18,6 @@ module.exports = function (app) {
     router.post('/clearFakeData', sysToolsController.auth, sysToolsController.init, sysToolsController.clearFakeData);
 
     router.post('/uploadUserGuide', sysToolsController.auth, sysToolsController.init, sysToolsController.uploadFile);
-    router.post('/changeProductInfo', sysToolsController.auth, sysToolsController.init, sysToolsController.changeProductInfo)
 
     app.use("/sysTools/api", router);
 

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

@@ -121,6 +121,10 @@ class LoginController extends BaseController {
                             let permissionArray = permissionIdList[per];
                             for (let pa of permissionArray) {
                                 let permissionInfo = await permissionModel.findDataByCondition({_id:pa});
+                                if (!permissionInfo) {
+                                    console.log(`pa`);
+                                    console.log(pa);
+                                }
                                 if (permissionInfo.isMenu) {
                                     toolMenuData.push({
                                         title: permissionInfo.name,
@@ -222,6 +226,7 @@ class LoginController extends BaseController {
                 throw {code: 44003, err: '更新登录信息失败!'};
             }
         } catch (error) {
+            console.log(error);
             responseData.error = error.code;
             responseData.msg = error.err;
         }

+ 34 - 9
modules/users/controllers/system_controller.js

@@ -8,28 +8,53 @@ const uuidV1 = require('uuid/v1');
 let config = require("../../../config/config.js");
 
 class SystemController extends BaseController {
-    async  index(request, response){
+    async index(request, response) {
         let setting = await systemSettingModel.findOne({});
-        if(!setting){
-            setting = {professional:{project:100,ration:2000},normal:{project:50,ration:1000}};
+        if (!setting) {
+            setting = { 
+                professional: { project: 100, ration: 2000 },
+                normal: { project: 50, ration: 1000 },
+                company: '珠海纵横创新软件有限公司',
+                product: '大司空云计价',
+                icp: '粤ICP备14032472号',
+                version: ''
+            };
         }
         // 渲染数据
         let renderData = {
             layout: 'users/views/layout/layout',
-            LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
-            setting:setting
+            LicenseKey: config.getLicenseKey(process.env.NODE_ENV),
+            setting: setting,
+            superAdmin: request.session.managerData.superAdmin
         };
         response.render('users/views/system/index', renderData);
     }
 
-    async save(request, response){
+    async save(request, response) {
         let data = request.body;
-        let setting = {professional:{project:data.professional_project,ration:data.professional_ration},normal:{project:data.normal_project,ration:data.normal_ration}};
-        if(!data.ID || data.ID == ""){
+        const superAdmin = request.session.managerData.superAdmin;
+        let setting = {
+            professional: {
+                project: data.professional_project,
+                ration: data.professional_ration
+            },
+            normal: {
+                project: data.normal_project,
+                ration: data.normal_ration
+            }
+        };
+        // 超级管理员才能修改
+        if (superAdmin === 1) {
+            setting.company = data.company;
+            setting.product = data.product;
+            setting.icp = data.icp;
+            setting.version = data.version;
+        }
+        if (!data.ID || data.ID == "") {
             setting.ID = uuidV1();
             await systemSettingModel.create(setting);
         } else {
-            await systemSettingModel.update({ID:data.ID},setting);
+            await systemSettingModel.update({ ID: data.ID }, setting);
         }
         response.redirect(request.headers.referer);
     }

+ 0 - 3
modules/users/controllers/tool_controller.js

@@ -7,7 +7,6 @@
  */
 import BaseController from "../../common/base/base_controller";
 let config = require("../../../config/config.js");
-let productData = require('../../sys_tools/models/product_model');
 
 class ToolController extends BaseController {
 
@@ -20,11 +19,9 @@ class ToolController extends BaseController {
      */
     async index(request, response) {
         let toolMenuData = request.session.managerData.toolMenuData;
-        let productInfo = await productData.getInfo();
         console.log(toolMenuData);
         let renderData = {
             layout: 'users/views/layout/layout',
-            productInfo: productInfo,
             toolMenu: toolMenuData,
             LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
         };

+ 13 - 13
web/users/js/system.js

@@ -1,20 +1,20 @@
 /**
  * Created by zhang on 2020/1/2.
  */
-$(document).ready(function() {
-   $("#system_save").click(function () {
-       for(let ele of $("input")){
-           if(ele.name == "ID") continue;
-           if(!isNum($(ele).val())) return alert($(ele).parent().prevAll("legend").text() + $(ele).prev().text()+"输入的数据类型有误,请重新输入!");
-       }
-       $("form").submit();
-   });
+$(document).ready(function () {
+    $("#system_save").click(function () {
+        for (let ele of $("input")) {
+            if (ele.name == "ID") continue;
+            if ($(ele).attr('type') === 'number' && !isNum($(ele).val())) return alert($(ele).parent().prevAll("legend").text() + $(ele).prev().text() + "输入的数据类型有误,请重新输入!");
+        }
+        $("form").submit();
+    });
 
-   function isNum(thisValue){
-       var regPos = /^\d+(\.\d+)?$/; //非负浮点数
-       var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
-       return (regPos.test(thisValue) || regNeg.test(thisValue));
-   }
+    function isNum(thisValue) {
+        var regPos = /^\d+(\.\d+)?$/; //非负浮点数
+        var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
+        return (regPos.test(thisValue) || regNeg.test(thisValue));
+    }
 
 });
 

+ 81 - 25
web/users/views/system/index.html

@@ -1,40 +1,96 @@
 <div class="panel-content">
     <div class="panel-title fluid">
-        <div class="title-main"><h2>系统设置<a href="javascript:void(0);" id="system_save" class="btn btn-primary btn-sm pull-right">确定修改</a></h2></div>
+        <div class="title-main">
+            <h2>系统设置<a href="javascript:void(0);" id="system_save" class="btn btn-primary btn-sm pull-right">确定修改</a>
+            </h2>
+        </div>
     </div>
     <div class="content-wrap">
-        <div class="c-header">
-            <h4>版本差异</h4>
-        </div>
-        <div class="c-body">
-            <form method="post" action="/system/save" enctype="application/x-www-form-urlencoded21">
+        <form method="post" action="/system/save" enctype="application/x-www-form-urlencoded21">
+            <div class="c-header">
+                <h4>产品信息</h4>
+            </div>
+            <div class="c-body">
                 <div class="row">
-                    <input type="hidden" name="ID" value="<%= setting.ID%>">
-                <div class="col-lg-4">
-                    <legend>免费版</legend>
-                    <div class="form-group">
-                        <label>单位工程可创建数量</label>
-                        <input type="number" step="10" min="50" class="form-control" name ="normal_project"  value="<%= setting.normal.project%>">
+                    <div class="form-group col-lg-4">
+                        <label>软件供应商</label>
+                        <% if (superAdmin === 1) { %>
+                            <input class="form-control" type="text" name="company" value="<%= setting.company %>">
+
+                        <% } else { %>
+                            <input class="form-control" type="text" name="company" value="<%= setting.company %>" disabled="disabled">
+
+                        <% } %>
                     </div>
-                    <div class="form-group">
-                        <label>定额可创建数量</label>
-                        <input type="number" step="10" min="500" class="form-control" name ="normal_ration"  value="<%= setting.normal.ration%>">
+                </div>
+                <div class="row">
+                    <div class="form-group col-lg-4">
+                        <label>名称</label>
+                        <% if (superAdmin === 1) { %>
+                            <input class="form-control" type="text" name="product" value="<%= setting.product %>">
+
+                        <% } else { %>
+                            <input class="form-control" type="text" name="product" value="<%= setting.product %>" disabled="disabled">
+
+                        <% } %>
                     </div>
                 </div>
-                <div class="col-lg-4">
-                    <legend>专业版</legend>
-                    <div class="form-group">
-                        <label>单位工程可创建数量</label>
-                        <input type="number" step="10" min="50" class="form-control" name="professional_project" value="<%= setting.professional.project%>">
+                <div class="row">
+                    <div class="form-group col-lg-4">
+                        <label>ICP</label>
+                        <% if (superAdmin === 1) { %>
+                            <input class="form-control" type="text" name="icp" value="<%= setting.icp %>">
+                        <% } else { %>
+                            <input class="form-control" type="text" name="icp" value="<%= setting.icp %>" disabled="disabled">
+                        <% } %>
                     </div>
-                    <div class="form-group">
-                        <label>定额可创建数量</label>
-                        <input type="number" step="10" min="500"  class="form-control" name="professional_ration" value="<%= setting.professional.ration%>">
+                </div>
+                <div class="row">
+                    <div class="form-group col-lg-4">
+                        <label>版本号</label>
+                        <% if (superAdmin === 1) { %>
+                            <input class="form-control" type="text" value="<%= setting.version %>" name="version" placeholder="请输入产品版本号">
+                        <% } else { %>
+                                <input class="form-control" type="text" value="<%= setting.version %>" name="version" disabled="disabled">
+                        <% } %>
                     </div>
                 </div>
             </div>
-            </form>
-        </div>
+            <div class="c-header">
+                <h4>版本差异</h4>
+            </div>
+            <div class="c-body">
+                <div class="row">
+                    <input type="hidden" name="ID" value="<%= setting.ID%>">
+                    <div class="col-lg-4">
+                        <legend>免费版</legend>
+                        <div class="form-group">
+                            <label>单位工程可创建数量</label>
+                            <input type="number" step="10" min="50" class="form-control" name="normal_project"
+                                value="<%= setting.normal.project%>">
+                        </div>
+                        <div class="form-group">
+                            <label>定额可创建数量</label>
+                            <input type="number" step="10" min="500" class="form-control" name="normal_ration"
+                                value="<%= setting.normal.ration%>">
+                        </div>
+                    </div>
+                    <div class="col-lg-4">
+                        <legend>专业版</legend>
+                        <div class="form-group">
+                            <label>单位工程可创建数量</label>
+                            <input type="number" step="10" min="50" class="form-control" name="professional_project"
+                                value="<%= setting.professional.project%>">
+                        </div>
+                        <div class="form-group">
+                            <label>定额可创建数量</label>
+                            <input type="number" step="10" min="500" class="form-control" name="professional_ration"
+                                value="<%= setting.professional.ration%>">
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </form>
     </div>
 </div>
 

+ 0 - 42
web/users/views/tool/index.html

@@ -18,8 +18,6 @@
                         <a id="uploadUserGuide" href="javascript:void(0);" class="btn btn-primary pull-right">上传</a>
                         <% } else if (tool.url === '/sysTools/api/uploadUpgradeGuide' ) { %>
                         <a id="uploadUpgradeGuide" href="javascript:void(0);" class="btn btn-primary pull-right">上传</a>
-                        <% } else if (tool.url === '/sysTools/api/changProductInfo') { %>
-                        <a id="productInfo" href="javascript:void(0);" class="btn btn-primary pull-right">更改</a>
                         <% } else { %>
                         <a id="<%= tool.controller %>" href="<%= tool.url %>" target="_blank" class="btn btn-primary pull-right">进入</a>
                         <% } %>
@@ -187,41 +185,6 @@
         </div>
     </div>
 </div>
-<!--产品信息-->
-<div class="modal fade" id="product" role="dialog" tabindex="-1" style="display: none;">
-    <div class="modal-dialog" role="document">
-        <div class="modal-content">
-            <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
-                <h4 class="modal-title">产品信息</h4>
-            </div>
-            <div class="modal-body">
-                <form id="changeInfoForm" method="post" action="/sysTools/api/changeProductInfo" enctype="application/x-www-form-urlencoded21">
-                    <div class="form-group">
-                        <label>软件供应商</label>
-                        <input class="form-control" type="text" value="<%= productInfo.company %>" name="version" disabled>
-                    </div>
-                    <div class="form-group">
-                        <label>名称</label>
-                        <input class="form-control" type="text" value="<%= productInfo.name %>" name="version" disabled>
-                    </div>
-                    <div class="form-group">
-                        <label>ICP</label>
-                        <input class="form-control" type="text" value="<%= productInfo.icp %>" name="version" disabled>
-                    </div>
-                    <div class="form-group">
-                        <label>版本号</label>
-                        <input class="form-control" type="text" value="<%= productInfo.version %>" name="version" placeholder="请输入产品版本号">
-                    </div>
-                </form>
-            </div>
-            <div class="modal-footer">
-                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
-                <button type="button" class="btn btn-primary" id="changeProductInfo">确定更改</button>
-            </div>
-        </div>
-    </div>
-</div>
 <script type="text/javascript" src="/public/web/common_ajax.js"></script>
 <script type="text/javascript" src="/public/web/PerfectLoad.js"></script>
 <script type="text/javascript">
@@ -343,10 +306,5 @@
                 }
             });
         });
-        //产品信息
-        $('#productInfo').click(() => $('#product').modal('show'));
-        $('#changeProductInfo').click(function () {
-            $('#changeInfoForm').submit();
-        });
     });
 </script>