소스 검색

系统设置功能

zhangweicheng 5 년 전
부모
커밋
655986a3a5

+ 25 - 0
modules/all_models/system_setting.js

@@ -0,0 +1,25 @@
+/**
+ * Created by zhang on 2020/1/2.
+ */
+let mongoose = require("mongoose");
+
+let Schema = mongoose.Schema;
+let collectionName = 'system_setting';
+let modelSchema = {
+    // ID
+    ID: {
+        type: String,
+        index: true
+    },
+    // 专业用户
+    professional: {
+        project: Number,
+        ration:Number
+    },
+    // 免费用户
+    normal: {
+        project: Number,
+        ration:Number
+    },
+};
+mongoose.model(collectionName, new Schema(modelSchema, {versionKey: false, collection: collectionName}));

+ 39 - 0
modules/users/controllers/system_controller.js

@@ -0,0 +1,39 @@
+/**
+ * Created by zhang on 2019/12/31.
+ */
+import BaseController from "../../common/base/base_controller";
+let mongoose = require("mongoose");
+let systemSettingModel = mongoose.model("system_setting");
+const uuidV1 = require('uuid/v1');
+let config = require("../../../config/config.js");
+
+class SystemController extends BaseController {
+    async  index(request, response){
+        let setting = await systemSettingModel.findOne({});
+        if(!setting){
+            setting = {professional:{project:100,ration:2000},normal:{project:50,ration:1000}};
+        }
+        // 渲染数据
+        let renderData = {
+            layout: 'users/views/layout/layout',
+            LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
+            setting:setting
+        };
+        response.render('users/views/system/index', renderData);
+    }
+
+    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 == ""){
+            setting.ID = uuidV1();
+            await systemSettingModel.create(setting);
+        } else {
+            await systemSettingModel.update({ID:data.ID},setting);
+        }
+        response.redirect(request.headers.referer);
+    }
+
+}
+
+export default SystemController;

+ 17 - 0
modules/users/routes/system_route.js

@@ -0,0 +1,17 @@
+/**
+ * Created by zhang on 2019/12/31.
+ */
+
+import Express from "express";
+import SystemController from "../controllers/system_controller";
+
+const router = Express.Router();
+const systemController = new SystemController();
+
+module.exports =function (app) {
+    // action定义区域
+    router.get('/', systemController.auth, systemController.init, systemController.index);
+    router.post('/save', systemController.auth, systemController.init, systemController.save);
+    app.use("/system", router);
+};
+

+ 20 - 0
web/users/js/system.js

@@ -0,0 +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();
+   });
+
+   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));
+   }
+
+});
+

+ 41 - 0
web/users/views/system/index.html

@@ -0,0 +1,41 @@
+<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>
+    <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">
+                <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>
+            </form>
+        </div>
+    </div>
+</div>
+
+<script type="text/javascript" src="/web/users/js/system.js"></script>