Quellcode durchsuchen

html lang 超高降效库

1.html lang "en" to "zh-CN"
2.超高降效库
vian vor 6 Jahren
Ursprung
Commit
49c1c7d215

+ 25 - 0
modules/all_models/std_over_height_lib.js

@@ -0,0 +1,25 @@
+'use strict';
+
+/**
+ *
+ *
+ * @author Zhong
+ * @date 2019/3/5
+ * @version
+ */
+//建设项目基本信息库
+const mongoose = require('mongoose');
+const Schema = mongoose.Schema;
+const oprSchema = require('../all_schemas/opr_schema');
+const overHeightLib = new Schema({
+    ID: {type: String, index: true},
+    name: String,
+    creator: String,
+    createDate: Number,
+    recentOpr: [oprSchema],
+    list: {
+        type: Schema.Types.Mixed,
+        default: []
+    }
+}, {versionKey: false});
+mongoose.model('std_over_height_lib', overHeightLib, 'std_over_height_lib');

+ 102 - 0
modules/over_height_lib/controllers/over_height_controller.js

@@ -0,0 +1,102 @@
+/**
+ * Created by zhang on 2018/9/10.
+ */
+import BaseController from "../../common/base/base_controller";
+let config = require("../../../config/config.js");
+let logger = require('../../../logs/log_helper').logger;
+import overHeightFacade from "../facade/over_height_facade";
+
+class OverHeightController extends BaseController{
+    async main(request, response) {
+        let overHeightLibs = await overHeightFacade.findByCondition({},{info:0},false);
+        let randerData = {
+            title:'超高降效库',
+            userAccount: request.session.managerData.username,
+            userID: request.session.managerData.userID,
+            overHeightLibs:overHeightLibs,
+            layout: 'maintain/common/html/layout'
+        };
+        response.render("maintain/over_height_lib/html/main", randerData);
+    }
+    async addLib(request, response){
+        try {
+            await overHeightFacade.addLib(request.body);
+        }catch (error) {
+            console.log(error);
+        }
+        response.redirect(request.headers.referer);
+    }
+    async findLib(request, response){
+        let result={
+            error:0
+        };
+        try {
+            let data = request.body.data;
+            data = JSON.parse(data);
+            let conditions={ID:data.ID};
+            let resultData = await overHeightFacade.findByCondition(conditions);
+            result.data=resultData;
+        }catch (err){
+            console.log(err);
+            result.error=1;
+            result.message = err.message;
+        }
+        response.json(result);
+    }
+    async saveLib(request, response){
+        let result={
+            error:0
+        };
+        try {
+            let data = request.body.data;
+            data = JSON.parse(data);
+            let resultData= await overHeightFacade.saveLib(data);
+            result.data=resultData;
+        }catch (err){
+            console.log(err);
+            result.error=1;
+            result.message = err.message;
+        }
+        response.json(result);
+    }
+    async deleteLibByID(request,response){
+        logger.info(`delete feeRateLib ${request.ip}`);
+        let result={
+            error:0
+        };
+        try {
+            let data = request.body.data;
+            data = JSON.parse(data);
+            let resultData= await overHeightFacade.deleteLibByID(data.ID);
+            result.data=resultData;
+        }catch (err){
+            console.log(err);
+            result.error=1;
+            result.message = err.message;
+        }
+        response.json(result);
+    }
+    async edit(request,response){
+        //先取出替换库信息:
+        let libID = request.params.libID;
+        let overHeightLib = await overHeightFacade.findByCondition({'ID':libID});
+        if(overHeightLib){
+            let randerData = {
+                title:'超高降效库',
+                mainURL:'/overHeight/main',
+                libName:overHeightLib.name,
+                userAccount: request.session.managerData.username,
+                userID: request.session.managerData.userID,
+                originalInfo:JSON.stringify(overHeightLib.list),
+                libID:libID,
+                LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
+                layout: 'maintain/common/html/edit_layout'
+            };
+            response.render("maintain/over_height_lib/html/edit", randerData);
+        }else {
+            response.redirect(request.headers.referer);
+        }
+    }
+}
+
+export default OverHeightController;

+ 41 - 0
modules/over_height_lib/facade/over_height_facade.js

@@ -0,0 +1,41 @@
+/**
+ * Created by zhang on 2018/9/10.
+ */
+
+import mongoose from "mongoose";
+
+const uuidV1 = require('uuid/v1');
+let moment = require("moment");
+let overHeightModel = mongoose.model('std_over_height_lib');
+
+let overHeightLib = {
+    findByCondition:async function(conditions,options,single=true){
+        if(single == true){
+            return await overHeightModel.findOne(conditions,options);
+        }else {
+            return await  overHeightModel.find(conditions,options);
+        }
+    },
+    addLib : async function (data){
+        let now = new Date().getTime();
+        let dateStr = moment(now).format('YYYY-MM-DD HH:mm:ss');
+        let newLib = {
+            creator: data.userAccount,
+            createDate: now,
+            recentOpr: [{operator: data.userAccount, operateDate: dateStr}],
+            name: data.name,
+        };
+        newLib.ID = uuidV1();
+        return await overHeightModel.create(newLib);
+
+
+    },
+    saveLib:async function(param) {
+        return await overHeightModel.findOneAndUpdate(param.query,param.data,{new:true});
+    },
+    deleteLibByID:async function(ID){
+        return await overHeightModel.deleteOne({ID:ID});
+    }
+};
+
+export default overHeightLib

+ 21 - 0
modules/over_height_lib/routes/over_height_routes.js

@@ -0,0 +1,21 @@
+/**
+ * Created by zhang on 2018/9/10.
+ */
+
+let express = require("express");
+let overHeightRouter = express.Router();
+import OverHeightController from "../controllers/over_height_controller";
+let overHeightController = new OverHeightController();
+
+module.exports =function (app) {
+
+    overHeightRouter.get("/main", overHeightController.auth, overHeightController.init, overHeightController.main);
+    overHeightRouter.post("/addLib", overHeightController.auth, overHeightController.init, overHeightController.addLib);
+    overHeightRouter.post("/findLib", overHeightController.auth, overHeightController.init, overHeightController.findLib);
+    overHeightRouter.post("/saveLib", overHeightController.auth, overHeightController.init, overHeightController.saveLib);
+    overHeightRouter.post("/deleteLibByID", overHeightController.auth, overHeightController.init, overHeightController.deleteLibByID);
+    overHeightRouter.get("/edit/:libID", overHeightController.auth, overHeightController.init, overHeightController.edit);
+
+
+    app.use("/overHeight", overHeightRouter);
+};

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

@@ -171,6 +171,8 @@ class LoginController extends BaseController {
             // 获取所有工具里的权限控制器名称
             let toolAllPermission = [];
             let toolAllPermissionList = await permissionModel.getList({pid:4});
+            console.log(`toolAllPermissionList`);
+            console.log(toolAllPermissionList);
             for (let tool of toolAllPermissionList) {
                 toolAllPermission.push(tool.controller);
                 if (managerData.super_admin === 1) {

Datei-Diff unterdrückt, da er zu groß ist
+ 4680 - 0
package-lock.json


+ 1 - 1
web/maintain/billsGuidance_lib/html/main.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

+ 1 - 1
web/maintain/billsGuidance_lib/html/zhiyin.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/bills_lib/html/main.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/bills_lib/html/neirong.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/bills_lib/html/qingdan.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/bills_lib/html/tezheng.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/common/html/edit_layout.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/common/html/layout.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 38 - 0
web/maintain/over_height_lib/html/edit.html

@@ -0,0 +1,38 @@
+<nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0 second_header">
+    <ul class="nav nav-tabs" role="tablist">
+        <li class="nav-item">
+            <a class="nav-link active px-3" href="javascript: void(0);">超高降效信息</a>
+        </li>
+    </ul>
+</nav>
+
+<div class="main">
+    <div class="content" >
+        <div class="container-fluid" >
+        <div class=" col-lg-12 p-0">
+            <nav class="navbar sticky-top navbar-toggleable-md navbar-light bg-faded tools-bar">
+                <div class="collapse navbar-collapse" id="navbarNav">
+                    <div class="tools-btn btn-group align-top">
+                        <a href="javascript:void(0)" class="btn btn-sm lock-btn-control" id="createNormal"><i class="fa fa-list-alt" aria-hidden="true"></i> 生成默认</a>
+                        <a href="javascript:void(0)" class="btn btn-sm lock-btn-control" id="format"><i class="fa fa-list-alt" aria-hidden="true"></i> 校验格式</a>
+                        <a href="javascript:void(0)" class="btn btn-sm lock-btn-control" id="save"><i class="fa fa-floppy-o" aria-hidden="true"></i> 保存</a>
+                    </div>
+                </div>
+            </nav>
+            <textarea class="form-control lock-text-control" id="editValue" rows="38"></textarea>
+        </div>
+        </div>
+        <input type="hidden" id="libID" value="<%= libID %>">
+        <input type="hidden" id="originalInfo" value="<%= originalInfo %>">
+    </div>
+</div>
+
+
+
+<script type="text/javascript">
+
+</script>
+<script type="text/javascript" src="/public/web/PerfectLoad.js"></script>
+<script type="text/javascript" src="/lib/json/json2.js"></script>
+<script src="/public/web/lock_util.js"></script>
+<script type="text/javascript" src="/web/maintain/over_height_lib/js/edit.js"></script>

+ 110 - 0
web/maintain/over_height_lib/html/main.html

@@ -0,0 +1,110 @@
+<div class="main">
+    <div class="content">
+        <div class="container-fluid">
+            <div class="row">
+                <div class="col-md-5">
+                    <div class="warp-p2 mt-3">
+                        <table class="table table-hover table-bordered">
+                            <thead><tr><th >库名称</th><th width="160">添加时间</th><th width="70">操作</th></tr></thead>
+                            <tbody id="showArea">
+                            <% for(let lib of overHeightLibs){ %>
+                            <tr class="libTr">
+                                <td id="<%= lib.ID%>"><a href="/overHeight/edit/<%= lib.ID%>?locked=true"><%= lib.name%></a></td>
+                                <td><%= moment(lib.createDate).format('YYYY-MM-DD')%></td>
+                                <td>
+                                    <a class="lock-btn-control disabled" href="javascript:;" style="color: #0275d8" onclick='getLibInfo("<%= lib.ID%>")' title="编辑"><i class="fa fa-pencil-square-o"></i></a>
+                                    <a class="text-danger lock-btn-control disabled" href="javascript:;" style="color: #0275d8" onclick='showDeleteModal("<%= lib.ID%>")' title="删除"><i class="fa fa-remove"></i></a>
+                                    <a class="lock" data-locked="true" href="javascript:void(0);" title="解锁"><i class="fa fa-unlock-alt"></i></a>
+                                </td>
+                            </tr>
+                            <% } %>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!--弹出添加-->
+<div class="modal fade" id="add" data-backdrop="static" style="display: none;" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">添加超高降效库</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">×</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <form id="addLibForm" method="post" action="/overHeight/addLib" enctype="application/x-www-form-urlencoded21">
+                    <div class="form-group">
+                        <label>库名称</label>
+                        <input id="name" name="name" class="form-control" placeholder="请输入超高降效库名称" type="text">
+                        <small class="form-text text-danger" id="nameError" style="display: none">请输入超高降效库名称。</small>
+                    </div>
+                    <input type="hidden" name = "userAccount" value="<%= userAccount%>">
+                </form>
+            </div>
+            <div class="modal-footer">
+                <button id="addLibs"  class="btn btn-primary">新建</button>
+                <button type="button" id="cancelBtn" class="btn btn-secondary" data-dismiss="modal">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!--弹出编辑-->
+<div class="modal fade" id="edit" data-backdrop="static" style="display: none;" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">超高降效库</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">×</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <form>
+                    <div class="form-group">
+                        <label>超高降效库名称</label>
+                        <input id="renameText" class="form-control" placeholder="输入名称" type="text" value="">
+                        <small class="form-text text-danger" id="renameError" style="display: none">请输入名称。</small>
+                        <input id="libID" type="hidden">
+                    </div>
+                </form>
+            </div>
+            <div class="modal-footer">
+                <a id="rename" href="javascript: void(0);" class="btn btn-primary" >确定</a>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!--弹出删除-->
+<div class="modal fade" id="del" data-backdrop="static" style="display: none;" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">删除确认</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">×</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <h5 class="text-danger">删除后无法恢复,确认是否删除?</h5>
+                <input type="hidden" id="libID_del">
+                <input type="hidden" id="delCount">
+            </div>
+            <div class="modal-footer">
+                <a id="delete" href="javascript:void(0);" class="btn btn-danger" >确认</a>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="/public/web/lock_util.js"></script>
+<script type="text/javascript" src="/web/maintain/over_height_lib/js/main.js"></script>

+ 188 - 0
web/maintain/over_height_lib/js/edit.js

@@ -0,0 +1,188 @@
+/**
+ * Created by Zhong on 2019/12/11.
+ */
+
+$(document).ready(function () {
+    const locked = lockUtil.getLocked();
+    lockUtil.lockTools($(document.body), locked);
+    try {
+        let tem = sortJson(JSON.parse($("#originalInfo").val()), compareInfo);
+        $("#editValue").val(JSON.stringify(tem,null,4));
+    }catch (err){
+        console.log(err);
+    }
+
+   $("#format").click( function() {
+       try {
+           let jsonText =  $("#editValue").val();
+           $("#editValue").val(JSON.stringify(JSON.parse(jsonText),null,4));
+       }catch (err){
+           console.log(err);
+           alert("输入的JSON格式有误,请重新输入!");
+       }
+   });
+    $("#save").click(async function() {
+        try {
+            $.bootstrapLoading.start();
+            let libID = $("#libID").val();
+            let jsonText =  $("#editValue").val();
+            if(jsonText.indexOf("'")!=-1){
+                alert("输入的格式不能包含 ' 位于:"+jsonText.substr(jsonText.indexOf("'")-15,18));
+                return;
+            }
+            await ajaxPost("/overHeight/saveLib",{query:{ID:libID},data:{list:JSON.parse(jsonText)}});
+            $.bootstrapLoading.end();
+        }catch (err){
+            $.bootstrapLoading.end();
+            console.log(err);
+            alert("保存失败,请查看输入数据");
+        }
+    });
+    /*[{
+        "name": "",
+        "labourName": "定额人工名称",
+        "machineName": "定额机械名称",
+        "items": [{
+            "code": "JZCG-1",
+            "name": "高度增加30m",
+            "labourRate": "0.0124",
+            "machineRate": "0.0313"
+        },{
+            "code": "JZCG-2",
+            "name": "高度增加40m",
+            "labourRate": "0.023",
+            "machineRate": "0.0513"
+        },{
+            "code": "JZCG-3",
+            "name": "高度增加50m",
+            "labourRate": "0.0336",
+            "machineRate": "0.0665"
+        },{
+            "code": "JZCG-4",
+            "name": "高度增加60m",
+            "labourRate": "0.023",
+            "machineRate": "0.0513"
+        },{
+            "code": "JZCG-5",
+            "name": "高度增加70m",
+            "labourRate": "0.0664",
+            "machineRate": "0.1104"
+        },{
+            "code": "JZCG-6",
+            "name": "高度增加80m",
+            "labourRate": "0.0837",
+            "machineRate": "0.1324"
+        },{
+            "code": "JZCG-7",
+            "name": "高度增加90m",
+            "labourRate": "0.1012",
+            "machineRate": "0.1528"
+        },{
+            "code": "JZCG-8",
+            "name": "高度增加100m",
+            "benchmark": "100",
+            "labourRate": "0.1309",
+            "machineRate": "0.1881"
+        },{
+            "code": "JZCG-9",
+            "name": "每增10m以内",
+            "extra": "10",
+            "labourRate": "0.0206",
+            "machineRate": "0.0249"
+        },{
+            "code": "JZCG-8 + JZCG-9",
+            "name": "高度增加110m",
+            "labourRate": "0.1515",
+            "machineRate": "0.213"
+        },{
+            "code": "JZCG-8 + JZCG-9 * 2",
+            "name": "高度增加110m",
+            "limit": "110",
+            "labourRate": "0.1721",
+            "machineRate": "0.2379"
+        }]
+    }]*/
+    $("#createNormal").click(async function() {
+        let normalInfo =  [{
+            "name": "多层建筑物",
+            "labourMachineName": "定额人工机械名称",
+            "items": [{
+                "code": "JZCG-1",
+                "name": "20-40",
+                "labourMachineRate": "0.0701"
+            },{
+                "code": "JZCG-2",
+                "name": "40-60",
+                "labourMachineRate": "0.1148"
+            },{
+                "code": "JZCG-3",
+                "name": "60-80",
+                "labourMachineRate": "0.1594"
+            },{
+                "code": "JZCG-4",
+                "name": "80-100",
+                "labourMachineRate": "0.2104"
+            },{
+                "code": "JZCG-5",
+                "name": "100-120",
+                "benchmark": "120",
+                "labourMachineRate": "0.2614"
+            },{
+                "code": "JZCG-6",
+                "name": "每增20m",
+                "extra": "20",
+                "labourMachineRate": "0.045"
+            },{
+                "code": "JZCG-5 + JZCG-6",
+                "name": "120-140",
+                "labourMachineRate": "0.3064"
+            },{
+                "code": "JZCG-5 + JZCG-6 * 2",
+                "name": "140-160",
+                "limit": "160",
+                "labourMachineRate": "0.3514"
+            }]
+        }, {
+            "name": "单层建筑物",
+            "labourMachineName": "定额人工机械名称",
+            "items": [{
+                "code": "DCCG-1",
+                "name": "30以内",
+                "labourMachineRate": "0.025"
+            },{
+                "code": "DCCG-2",
+                "name": "40以内",
+                "labourMachineRate": "0.0374"
+            },{
+                "code": "DCCG-3",
+                "name": "50以内",
+                "labourMachineRate": "0.0544"
+            }]
+        }];
+        try {
+            let jsonText =  JSON.stringify(normalInfo);
+            $("#editValue").val(JSON.stringify(JSON.parse(jsonText),null,4));
+        }catch (err){
+            console.log(err);
+        }
+
+    })
+
+
+});
+function compareInfo(a, b) {
+    let mapping = {
+        name: 1,
+        labourName: 2,
+        machineName: 3,
+        labourMachineName: 4,
+        items: 5,
+        code: 6,
+        labourRate: 7,
+        machineRate: 8,
+        labourMachineRate: 9
+    };
+    let aV = mapping[a] ? mapping[a] : 0,
+        bV = mapping[b] ? mapping[b] : 0;
+    return aV - bV;
+}

+ 82 - 0
web/maintain/over_height_lib/js/main.js

@@ -0,0 +1,82 @@
+/**
+ * Created by zhang on 2018/9/3.
+ */
+let router = "overHeight";
+$(document).ready(function() {
+    // 保存按钮
+    $("#addLibs").click(async function() {
+        let name = $('#name').val();
+        if(name==''){
+            $("#nameError").show();
+            return;
+        }else {
+            $("#addLibs").attr("disabled",true);//防止重复提交
+            $("#addLibForm").submit();
+        }
+    });
+
+    $("#rename").click(async function() {
+        let libID = $("#libID").val();
+        let name = $('#renameText').val();
+        if(libID!=''){
+            if(name ==''){
+                $("#renameError").show();
+                return;
+            }else {
+                try {
+                    let newInfo = await ajaxPost(`/${router}/saveLib`,{query:{ID:libID},data:{name:name}});
+                    $("#"+libID).children("a").text(newInfo.name);
+                    $("#edit").modal('hide');
+                }catch(err) {
+                    console.log(err);
+                }
+            }
+        }
+    });
+
+    $("#delete").click(async function() {
+        let libID = $("#libID_del").val();
+        let delCount = parseInt($("#delCount").val());
+        delCount = delCount+1;
+        $("#delCount").val(delCount);
+        if(delCount == 3){
+            if(libID!=""){
+                try {
+                    let result = await ajaxPost(`/${router}/deleteLibByID`,{ID:libID});
+                    if(result.ok){
+                        $("#"+libID).parent(".libTr").remove();
+                    }
+                    $("#del").modal('hide');
+                }catch (err){
+                    console.log(err);
+                }
+            }
+        }
+    });
+
+    // 锁定、解锁
+    $('.lock').click(function () {
+        lockUtil.handleLockClick($(this));
+    });
+});
+
+async function getLibInfo (ID) {
+    try {
+        let lib = await ajaxPost(`/${router}/findLib`,{ID:ID});
+        if(lib){
+            $("#renameText").val(lib.name);
+            $("#libID").val(ID);
+            $("#edit").modal({show:true});
+        }else {
+            alert("没有找到超高降效库");
+        }
+    }catch (err){
+        console.log(err);
+    }
+}
+
+function showDeleteModal(ID){
+    $("#libID_del").val(ID);
+    $("#delCount").val(0);
+    $("#del").modal({show:true});
+}

+ 1 - 1
web/maintain/ration_repository/anzhuang.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/ration_repository/dinge.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/ration_repository/fuzhu.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/ration_repository/gongliao.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 3 - 0
web/maintain/ration_repository/js/ration.js

@@ -804,6 +804,9 @@ let rationOprObj = {
             return 0;
         }
         arr.sort(function (a, b) {
+            if (!commonUtil.isDef(a.code) || !commonUtil.isDef(b.code)) {
+                return 0;
+            }
             let aArr = a.code.split('-'),
                 bArr = b.code.split('-');
             return recurCompare(aArr, bArr, 0);

+ 1 - 1
web/maintain/ration_repository/main.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/report/html/rpt_tpl_main.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/std_glj_lib/html/gongliao.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 
 <head>
     <meta charset="utf-8">

+ 1 - 1
web/maintain/std_glj_lib/html/main.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">