zhongzewei 8 år sedan
förälder
incheckning
2362d60fc9

+ 0 - 125
modules/bills/controllers/billsControllers.js

@@ -1,125 +0,0 @@
-/**
- * Created by vian on 2017/3/22.
- */
-
-var billsDao = require("../model/interfaces");
-//----
-var model = require("../model/billsModel");
-var counter = require("../../../public/counter/counter");
-var StdBillsLib = model.stdBillsLibMod;
-var Bills = model.billsMod;
-var JobContent = model.jobContentMod;
-var ItemCharacter = model.itemCharacterMod;
-//---
-//ͳһ�ص�����
-var callback = function(req, res, err, message, data){
-    res.json({error: err, message: message, data: data});
-}
-
-module.exports = {
-    getStdBillsLib: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.getStdBillsLib(data.userId, function(err, message, stdBillsLib){
-            callback(req, res, err, message, stdBillsLib );
-        });
-    },
-    createStdBillsLib: function(req, res){
-        var data = JSON.parse(req.body.data);
-        var billsLibName = data.name;
-         billsDao.createStdBillsLib(data, function(err, message, info){
-            callback(req, res, err, message, info);
-         });
-    },
-    deleteStdBillsLib: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.deleteStdBillsLib(data.billsLibId, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    renameStdBillsLib: function(req, res) {
-        var data = JSON.parse(req.body.data);
-        billsDao.renameStdBillsLib(data, function (err, message) {
-            callback(req, res, err ,message, null);
-        });
-    },
-    getBills: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.getBills(data.billsLibId, function(err, message, bills){
-            callback(req, res, err, message, bills);
-        });
-    },
-    createBills: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.createBills(data, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    updateNextSiblingId: function (req, res) {
-        var data = JSON.parse(req.body.data);
-        billsDao.updateNextSiblingId(data, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    updateBills: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.updateBills(data, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    deleteBills: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.deleteBills(data.deleteIds, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    getJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.getJobContent(data.billsLibId, function(err, message, jobs){
-            callback(req, res, err, message, jobs);
-        });
-    },
-    createJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.createJobContent(data, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    updateJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.updateJobContent(data, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    deleteJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.deleteJobContent(data.jobId, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    getItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.getItemCharacter(data.billsLibId, function(err, message, items){
-            callback(req, res, err, message, items);
-        });
-    },
-    createItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.createItemCharacter(data, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    updateItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.updateItemCharacter(data, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    },
-    deleteItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsDao.deleteItemCharacter(data.itemId, function(err, message){
-            callback(req, res, err, message, null);
-        });
-    }
-
-}
-

+ 0 - 18
modules/bills/model/billsModel.js

@@ -1,18 +0,0 @@
-/**
- * Created by vian on 2017/3/17.
- */
-var dbm = require("../../../config/db/db_manager");
-var schemas = require("./schemas.js");
-//var db = dbm.getLocalConnection("stdBillsLibData");
-var db = dbm.getCfgConnection("stdBillsEditor");
-var stdBillsLibMod = db.model("stdBillsLib", schemas.stdBillsLibSchema);
-var billsMod = db.model("bills", schemas.billsSchema);
-var jobContentMod = db.model("jobContent", schemas.jobContentSchema);
-var itemCharacterMod = db.model("itemCharacter", schemas.itemCharacterSchema);
-
-module.exports = {
-    stdBillsLibMod: stdBillsLibMod,
-    billsMod: billsMod,
-    jobContentMod: jobContentMod,
-    itemCharacterMod: itemCharacterMod,
-}

+ 0 - 373
modules/bills/model/interfaces.js

@@ -1,373 +0,0 @@
-/**
- * Created by vian on 2017/3/20.
- */
-var model = require("./billsModel");
-var counter = require("../../../public/counter/counter");
-var StdBillsLib = model.stdBillsLibMod;
-var Bills = model.billsMod;
-var JobContent = model.jobContentMod;
-var ItemCharacter = model.itemCharacterMod;
-
-var fieldArr = ["code", "name", "unit", "ruleText", "Expression"];
-
-var billsDao = function(){};
-//----------StdBillsLib-------------------
-billsDao.prototype.getStdBillsLib = function(userId, callback){
-    StdBillsLib.find({}, "-_id", function(err, data){
-        if(err){
-            callback(1, "Error", null);
-        }
-        else{
-            callback(0, "", data);
-        }
-    })
-}
-
-billsDao.prototype.createStdBillsLib = function(clibData, callback){
-    counter.getIDAfterCount("bills", 1, function(err, result){
-        var billsLibId = result.value.sequence_value;
-        var billsLibName = clibData.name;
-        var createDate = Date.now();
-        var newStdBillsLib = {
-            billsLibId: billsLibId,
-            billsLibName: billsLibName,
-            createDate: createDate
-        }
-        StdBillsLib.create(newStdBillsLib, function(err){
-            if(err){
-                callback(1, "Error", null);
-            }
-            else {
-                StdBillsLib.find({billsLibId: billsLibId}, function(err, data){
-                    if(err){
-                        callback(1, "Error", null)
-                    }
-                    else {
-                        callback(0, "", data);
-                    }
-                });
-            }
-        });
-    });
-}
-
-billsDao.prototype.deleteStdBillsLib = function(billsLibId, callback){
-    StdBillsLib.remove({billsLibId: billsLibId}, function(err){
-        if(err){
-            callback(1, "Error");
-        }
-        else{
-            callback(0, "");
-        }
-    });
-}
-
-billsDao.prototype.renameStdBillsLib = function(renameData, callback){
-    var billsLibId = renameData.id;
-    var renameVal = renameData.value;
-    StdBillsLib.update({billsLibId: billsLibId}, {$set:{billsLibName: renameVal}}, function(err){
-        if(err){
-            callback(1, "Error");
-        }
-        else{
-            callback(0, "");
-        }
-    });
-}
-
-//----------------------------Bills---------------------
-billsDao.prototype.getBills = function (billsLibId, callback) {
-    Bills.find({billsLibId: billsLibId},"-_id",  function(err, billsData){
-        if(err){
-            callback(1, "Error", null);
-        }
-        else{
-            callback(0, "", billsData);
-        }
-    });
-}
-
-billsDao.prototype.createBills = function(cbillsData, callback){
-    var field = cbillsData.field;
-    var data = cbillsData.data;
-    var newId = cbillsData.id;//ǰ��ͨ�� counter.getIDAfterCount("bills", 1);���
-    var billsLibId = cbillsData.billsLibId;
-    var newBills;
-    if(field == "code"){
-        newBills = {
-            ID: newId,
-            ParentID: cbillsData.parentId,
-            NextSiblingID: cbillsData.nextSiblingId,
-            billsLibId: billsLibId,
-            code: data
-        }
-    }
-    else if(field == "name"){
-        newBills = {
-            ID: newId,
-            ParentID: cbillsData.parentId,
-            NextSiblingID: cbillsData.nextSiblingId,
-            billsLibId: billsLibId,
-            name: data
-        }
-    }
-    else if(field == "unit"){
-        newBills = {
-            ID: newId,
-            ParentID: cbillsData.parentId,
-            NextSiblingID: cbillsData.nextSiblingId,
-            billsLibId: billsLibId,
-            unit: data
-        }
-    }
-    else if(field == "ruleText"){
-        newBills = {
-            ID: newId,
-            ParentID: cbillsData.parentId,
-            NextSiblingID: cbillsData.nextSiblingId,
-            billsLibId: billsLibId,
-            ruleText: data
-        }
-    }
-    Bills.create(newBills, function(err){
-        if(err){
-            callback(1, "Error");
-        }
-        else{
-            callback(0, "");
-        }
-    });
-
-}
-//������ɾ������¸ı��˵�nextSiblingId
-billsDao.prototype.updateNextSiblingId = function(uNextData, callback){
-    var updateId = uNextData.id;
-    var updateData = uNextData.data;
-    Bills.update({ID: updateId}, {$set: {NextSiblingID: updateData}}, function(err){
-        if(err){
-            callback(1, "Error")
-        }
-        else{
-            callback(0, "");
-        }
-    });
-}
-
-billsDao.prototype.updateBills = function(ubillsData, callback){
-    var updateId = ubillsData.id;
-    var updateField = ubillsData.field;
-    var updateData = ubillsData.data;
-    if(updateField == "code"){
-        Bills.update({ID: updateId}, {$set:{code: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else {
-                callback(0, "");
-            }
-        });
-    }
-    else if(updateField == "name"){
-        Bills.update({ID: updateId}, {$set:{name: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else {
-                callback(0, "");
-            }
-        });
-    }
-    else if(updateField == "unit"){
-        Bills.update({ID: updateId}, {$set:{unit: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else {
-                callback(0, "");
-            }
-        });
-    }
-    else if(updateField == "ruleText"){
-        Bills.update({ID: updateId}, {$set:{ruleText: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else {
-                callback(0, "");
-            }
-        });
-    }
-}
-
-billsDao.prototype.deleteBills = function(deleteIds, callback){
-   //ǰ�˿��Ƶõ���ɾ�������нڵ�deleteIds
-    if(deleteIds){
-        for(var i=0; i<deleteIds.length; i++){
-            Bills.remove({ID: deleteIds[i]}, function(err){
-                if(err){
-                    callback(1, "Error");
-                }
-                else{
-                    callback(0, "");
-                }
-            });
-        }
-    }
-}
-
-//--------------JobContent------------------
-billsDao.prototype.getJobContent = function(billsLibId, callback){
-    JobContent.find({billsLibId: billsLibId}, "-_id", function(err, jobs){
-        if(err){
-            callback(1, "Error", null);
-        }
-        else{
-            callback(0, "", jobs)
-        }
-    });
-}
-
-billsDao.prototype.createJobContent = function(cJobData, callback){
-    var field = cJobData.field;
-    var data = cJobData.data;
-    var id = counter.getIDAfterCount("bills", 1);
-    var billsLibId = cJobData.billsLibId;
-    var newJobContent;
-    if(field == "code"){
-        newJobContent = {
-            id: id,
-            billsLibId: billsLibId,
-            code: data
-        }
-    }
-    else if(field == "content"){
-        newJobContent = {
-            id: id,
-            billsLibId: billsLibId,
-            content: data
-        }
-    }
-    JobContent.create(newJobContent, function(err){
-        if(err){
-            callback(1, "Error");
-        }
-        else{
-            callback(0, "");
-        }
-    });
-}
-
-billsDao.prototype.updateJobContent = function(uJobData, callback){
-    var field = cJobData.field;
-    var updateData = cJobData.data;
-    var id = cJobData.id;
-    if(field == "code"){
-        JobContent.update({id: id}, {$set: {code: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else{
-                callback(0, "");
-            }
-        });
-    }
-    else if(field == "content"){
-        JobContent.update({id: id}, {$set: {content: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else{
-                callback(0, "");
-            }
-        });
-    }
-}
-
-billsDao.prototype.deleteJobContent = function(jobId, callback){
-    JobContent.remove({id: jobId}, function(err){
-        if(err){
-            callback(1, "Error");
-        }
-        else{
-            callback(0, "");
-        }
-    });
-}
-
-
-//----------------------ItemCharacter---------------------
-billsDao.prototype.getItemCharacter = function(billsLibId, callback){
-    ItemCharacter.find({billsLibId: billsLibId}, "-_id", function(err, items){
-        if(err){
-            callback(1, "Error", null);
-        }
-        else{
-            callback(0, "", items)
-        }
-    });
-}
-
-billsDao.prototype.createItemCharacter = function(cItemData, callback){
-    var field = cItemData.field;
-    var data = cItemData.data;
-    var id = counter.getIDAfterCount("bills", 1);
-    var billsLibId = cItemData.billsLibId;
-    var newItemCharacter;
-    if(field == "code"){
-        newItemCharacter = {
-            id: id,
-            billsLibId: billsLibId,
-            code: data
-        }
-    }
-    else if(field == "content"){
-        newItemCharacter = {
-            id: id,
-            billsLibId: billsLibId,
-            content: data
-        }
-    }
-}
-
-billsDao.prototype.updateItemCharacter = function(uItemData, callback){
-    var field = uItemData.field;
-    var updateData = uItemData.data;
-    var id = uItemData.id;
-    if(field == "code"){
-        ItemCharacter.update({id: id}, {$set: {code: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else{
-                callback(0, "");
-            }
-        });
-    }
-    else if(field == "character"){
-        ItemCharacter.update({id: id}, {$set: {character: updateData}}, function(err){
-            if(err){
-                callback(1, "Error");
-            }
-            else{
-                callback(0, "");
-            }
-        });
-    }
-}
-
-billsDao.prototype.deleteItemCharacter = function(itemId, callback){
-    JobContent.remove({id: itemId}, function(err){
-        if(err){
-            callback(1, "Error");
-        }
-        else{
-            callback(0, "");
-        }
-    });
-}
-
-//----------------------itemValue
-
-//-----------------------------
-
-module.exports = new billsDao();

+ 0 - 58
modules/bills/model/schemas.js

@@ -1,58 +0,0 @@
-var mongoose = require('mongoose');
-
-var stdBillsLibSchema =mongoose.Schema({
-    billsLibId: Number,
-    billsLibName: String,
-    createDate: Date
-},
-    {versionKey: false}
-);
-
-var billsSchema = mongoose.Schema({
-    //serialNo: Number,
-    ID: Number,
-    ParentID: Number,
-    NextSiblingID: Number,
-    code: String,
-    name: String,
-    unit: String,
-    ruleText: String,
-    Expression: String,
-    jobs: Array,
-    items: Array,
-    recharge:String,
-    billsLibId: Number
-},
-    {versionKey: false}
-);
-
-var jobContentSchema = mongoose.Schema({
-    id: Number,
-    code: String,
-    content: String,
-    billsLibId: Number
-},
-    {versionKey: false}
-);
-
-var itemCharacterSchema = mongoose.Schema({
-    id: Number,
-    code: String,
-    character: String,
-    itemValue: Array,
-    billsLibId: Number
-},
-    {versionKey: false}
-);
-/*
-var eigenvalueSchema = mongoose.Schema({
-    eigenvalId: Number,
-    eigenvalContent: String
-});*/
-
-module.exports = {
-    stdBillsLibSchema: stdBillsLibSchema,
-    billsSchema: billsSchema,
-    jobContentSchema: jobContentSchema,
-    itemCharacterSchema: itemCharacterSchema
-}

+ 0 - 49
modules/bills/routes/billsRoutes.js

@@ -1,49 +0,0 @@
-/**
- * Created by vian on 2017/3/17.
- */
-var express = require("express");
-var billsController = require("../controllers/billsControllers");
-var billsRouter =express.Router();
-
-
-
-/*billsRouter.get("/", function(req, res) {
-    console.log("get/ing");
-    res.redirect("/stdBillsEditor/main");
-});*/
-
-/*billsRouter.get("/main", function(req, res){
-    res.render("bills/html/main.html");
-});
-
-billsRouter.get("/bills", function(req, res){
-    res.render("bills/html/qingdan.html");
-});
-
-billsRouter.get("/jobs", function(req, res){
-    res.render("bills/html/neirong.html");
-});
-
-billsRouter.get("/items", function(req, res){
-    res.render("bills/html/tezheng.html");
-});*/
-
-billsRouter.post("/getStdBillsLib", billsController.getStdBillsLib);
-billsRouter.post("/createStdBillsLib", billsController.createStdBillsLib);
-billsRouter.post("/deleteStdBillsLib", billsController.deleteStdBillsLib);
-billsRouter.post("/renameStdBillsLib", billsController.renameStdBillsLib);
-billsRouter.post("/getBills", billsController.getBills);
-billsRouter.post("/createBills", billsController.createBills);
-billsRouter.post("/updateNextSiblingId", billsController.updateNextSiblingId);
-billsRouter.post("/updateBills", billsController.updateBills);
-billsRouter.post("/deleteBills", billsController.deleteBills);
-billsRouter.post("/getJobContent", billsController.getJobContent);
-billsRouter.post("/createJobContent", billsController.createJobContent);
-billsRouter.post("/updateJobContent", billsController.updateJobContent);
-billsRouter.post("/deleteJobContent", billsController.deleteJobContent);
-billsRouter.post("/getItemCharacter", billsController.getItemCharacter);
-billsRouter.post("/createItemCharacter", billsController.createItemCharacter);
-billsRouter.post("/updateItemCharacter", billsController.updateItemCharacter);
-billsRouter.post("/deleteItemCharacter", billsController.deleteItemCharacter);
-
-module.exports = billsRouter;

+ 11 - 6
public/web/tree_sheet_controller.js

@@ -26,13 +26,18 @@ var TREE_SHEET_CONTROLLER = {
             });
 
             this.sheet.bind(GC.Spread.Sheets.Events.EditEnded, function (sender, args) {
-                var result = tree.editedData(setting.cols[args.col].data.field, args.sheet.getTag(args.row, args.col), args.editingText);
+                if(args.sheet.getTag(args.row, args.col)){
+                    var result = tree.editedData(setting.cols[args.col].data.field, args.sheet.getTag(args.row, args.col), args.editingText);
 
-                if (result.allow) {
-                    TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, result.nodes, false);
-                } else {
-                    TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [tree.findNode(args.sheet.getTag(args.row, args.col))], false);
-                };
+                    if (result.allow) {
+                        TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, result.nodes, false);
+                    } else {
+                        TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [tree.findNode(args.sheet.getTag(args.row, args.col))], false);
+                    };
+                }
+                else {
+                    args.sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).text('');
+                }
             });
         };
 

+ 4 - 4
server.js

@@ -89,13 +89,13 @@ app.use("/rationLibEditor",rations_Router);
 
 
 app.get("/stdBillsmain", function(req, res){
-    res.render("bills/html/main.html");
+    res.render("billsLib/html/main.html");
 });
 app.get("/stdBills", function(req, res){
-    res.render("bills/html/qingdan.html");
+    res.render("billsLib/html/qingdan.html");
 });
-var billsRouter = require("./modules/bills/routes/billsRoutes");
-app.use("/stdBillsEditor", billsRouter);
+var billsLibRouter = require("./modules/billsLib/billsLibRoutes/billsLibRoutes");
+app.use("/stdBillsEditor", billsLibRouter);
 //-----------------
 
 app.use(function(req, res, next) {

+ 0 - 181
web/bills/html/main.html

@@ -1,181 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta http-equiv="x-ua-compatible" content="ie=edge">
-    <title>清单规则编辑器</title>
-    <link rel="stylesheet" href="../../css/bootstrap/bootstrap.min.css">
-    <!--<link rel="stylesheet" href="css/bootstrap/themes.css">-->
-    <link rel="stylesheet" href="../../css/main.css">
-    <link rel="stylesheet" href="../../css/font-awesome/font-awesome.min.css">
-    <!--zTree-->
-  	<link rel="stylesheet" href="../../css/ztree/zTreeStyle.css" type="text/css">
-</head>
-
-<body>
-    <div class="header">
-        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 ">
-            <span class="header-logo px-2">清单规则编辑器</span>
-            <div class="navbar-text"></div>
-        </nav>
-        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
-          <ul class="nav navbar-nav px-1">
-                          <li class="nav-item">
-                              <a class="nav-link" href="javascript:void(0);" aria-haspopup="true" aria-expanded="false" data-toggle="modal" data-target="#add">新建清单规则</a>
-                          </li>
-                      </ul>
-        </nav>
-    </div>
-    <div class="main">
-        <div class="content">
-            <div class="container-fluid">
-                <div class="row">
-                  <div class="col-md-8">
-                    <div class="warp-p2 mt-3">
-                      <table class="table table-hover table-bordered">
-                        <thead><tr><th>清单规则名称</th><th width="160">添加时间</th><th width="90">操作</th></tr></thead>
-                        <tbody id="showArea">
-                          <!--<tr><td><a href="qingdan.html">XX清单规则</a></td><td>2017-01-01 </td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#edit" title="编辑"><i class="fa fa-pencil-square-o"></i></a> <a href="javacript:void(0);" data-toggle="modal" data-target="#del" class="text-danger" title="删除"><i class="fa fa-remove"></i></a></td></tr>
-                          <tr><td><a href="qingdan.html">XX清单规则</a></td><td>2017-01-01 </td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#edit" title="编辑"><i class="fa fa-pencil-square-o"></i></a> <a href="javacript:void(0);" data-toggle="modal" data-target="#del" class="text-danger" title="删除"><i class="fa fa-remove"></i></a></td></tr>
-                          <tr><td><a href="qingdan.html">XX清单规则</a></td><td>2017-01-01 </td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#edit" title="编辑"><i class="fa fa-pencil-square-o"></i></a> <a href="javacript:void(0);" data-toggle="modal" data-target="#del" class="text-danger" title="删除"><i class="fa fa-remove"></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>
-                    <div class="form-group">
-                      <label>清单规则名称</label>
-                      <input id="createText" class="form-control" placeholder="输入清单规则名称" type="text">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a id="createA"  href="javascript:void(0);" class="btn btn-primary" data-dismiss="modal">新建</a>
-                </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="">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a id="renameA" href="javascript: void(0);" class="btn btn-primary" data-dismiss="modal" renameId="">确定</a>
-                </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>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a id="deleteA" href="javascript:void(0);" class="btn btn-danger" data-dismiss="modal" deleteId="">删除</a>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!-- JS. -->
-    <script src="lib/jquery/jquery.min.js"></script>
-    <script src="lib/tether/tether.min.js"></script>
-    <script src="lib/bootstrap/bootstrap.min.js"></script>
-    <script src="lib/global.js"></script>
-    <!-- zTree -->
-    <script type="text/javascript" src="lib/ztree/jquery.ztree.core.js"></script>
-    <script type="text/javascript" src="lib/ztree/jquery.ztree.excheck.js"></script>
-    <script src="web/bills/scripts/billsAjax.js"></script>
-    <script src="web/bills/scripts/dateFormat.js"></script>
-
-</body>
-<script type="text/javascript">
-    autoFlashHeight();
-    mainAjax.getStdBillsLib(null);
-</script>
-<script>
-    $(document).ready(function(){
-        //main 增删改
-        $("#createA").click(function(){
-            var billsLibName = $("#createText").val();
-            if(billsLibName){
-                mainAjax.createStdBillsLib(billsLibName);
-                $("#createText").val("");
-            }
-            else{
-                alert("请输入清单规则名称!");
-            }
-        });
-
-       $("#showArea").on("click", "[data-target = '#del']", function(){
-            var deleteId = $(this).parent().parent().attr("id")
-           $("#deleteA").attr("deleteId", deleteId);
-       });
-        $("#deleteA").click(function(){
-            var deleteId = $(this).attr("deleteId");
-            mainAjax.deleteStdBillsLib(deleteId);
-        });
-
-       $("#showArea").on("click", "[data-target = '#edit']", function(){
-           var renameId = $(this).parent().parent().attr("id");
-           $("#renameA").attr("renameId", renameId);
-
-       });
-
-        $("#renameA").click(function(){
-            var newName = $("#renameText").val();
-            var renameId = $(this).attr("renameId");
-            if(newName){
-                mainAjax.renameStdBillsLib(renameId, newName);
-                $("#renameText").val("");
-            }
-            else {
-                alert("请输入名称!");
-            }
-        });
-    });
-</script>
-
-</html>

+ 0 - 211
web/bills/html/neirong.html

@@ -1,211 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta http-equiv="x-ua-compatible" content="ie=edge">
-    <title>清单规则编辑器</title>
-    <link rel="stylesheet" href="../../css/bootstrap/bootstrap.min.css">
-    <!--<link rel="stylesheet" href="../../web/css/bootstrap/themes.css">-->
-    <link rel="stylesheet" href="../../css/main.css">
-    <link rel="stylesheet" href="../../css/font-awesome/font-awesome.min.css">
-    <!--spread-->
-    <link rel="stylesheet" href="../../../web/css/spreadjs/gc.spread.sheets.excel2013white.10.0.1.css">
-    <!--zTree-->
-    <link rel="stylesheet" href="../../css/ztree/zTreeStyle.css" type="text/css">
-</head>
-
-<body>
-    <div class="header">
-        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 ">
-            <span class="header-logo px-2">清单规则编辑器</span>
-            <div class="navbar-text"><a href="main.html">清单规则</a><i class="fa fa-angle-right fa-fw"></i>XXX清单规则</div>
-        </nav>
-        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
-
-              <ul class="nav nav-tabs" role="tablist">
-                  <li class="nav-item">
-                      <a class="nav-link px-3" href="qingdan.html">清单</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link active px-3" href="neirong.html">工作内容</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link px-3" href="tezheng.html">项目特征</a>
-                  </li>
-              </ul>
-        </nav>
-    </div>
-    <div class="main">
-      <div class="content">
-        <div class="container-fluid">
-          <div class="row">
-            <div class="main-content col-lg-7 p-0">
-                <nav class="tools-bar">
-                </nav>
-                <div class="main-data" id="spreadAllJobs">
-                </div>
-            </div>
-            <div class="main-side col-lg-5 p-0">
-            </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>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" placeholder="输入编码" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control"><option>选择单位</option><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" placeholder="输入基价" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" placeholder="输入显示名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" placeholder="输入取费专业" type="text">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-primary">添加</a>
-                </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 class="form-control" placeholder="输入编码" type="text" value="AA0001">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text" value="人工挖土方">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control"><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" placeholder="输入基价" type="number" value="880.84">
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" placeholder="输入显示名称" type="text" value="人工挖土方">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" placeholder="输入取费专业" type="text" value="1">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-primary">确定</a>
-                </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>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-danger">删除</a>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!-- JS. -->
-    <script src="../../../lib/spreadjs/gc.spread.sheets.all.10.0.1.min.js"></script>
-    <script src="../../../lib/jquery/jquery.min.js"></script>
-    <script src="../../../lib/tether/tether.min.js"></script>
-    <script src="../../../lib/bootstrap/bootstrap.min.js"></script>
-    <script src="../../../web/bills/scripts/global.js"></script>
-    <script src="../../../web/bills/scripts/setSheets.js"></script>
-    <SCRIPT type="text/javascript">
-        $(document).ready(function(){
-            buildAllJobs();
-        });
-        function buildAllJobs(){
-            var spread = new GC.Spread.Sheets.Workbook($("#spreadAllJobs")[0], {sheetCount: 1});
-            var sheet = spread.getSheet(0);
-            var chRowCount = 2;
-            var vpColCount = 2;
-            var vpRowCount = 28;
-            sheet.suspendPaint();
-            sheet.suspendEvent();
-            initSheet(spread, sheet, chRowCount, vpRowCount, vpColCount);
-            setupColHeader(sheet);
-            //initRowHeight(sheet);
-            setCell(sheet);
-            myCommand(spread, sheet);
-            setScrollBar(spread, sheet, vpRowCount);
-            sheet.resumePaint();
-            sheet.resumeEvent();
-        }
-        function setupColHeader(sheet){
-            var ch = GC.Spread.Sheets.SheetArea.colHeader;
-            sheet.addSpan(0 ,0, 2, 1, ch);
-            sheet.setValue(0, 0, "编号", ch);
-            sheet.setColumnWidth(0, 200);
-            sheet.addSpan(0 ,1, 2, 1, ch);
-            sheet.setValue(0, 1, "工作内容", ch);
-            sheet.setColumnWidth(1, 850);
-        }
-
-  	</SCRIPT>
-</body>
-<script type="text/javascript">
-    autoFlashHeight();
-</script>
-
-</html>

+ 0 - 375
web/bills/html/qingdan.html

@@ -1,375 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta http-equiv="x-ua-compatible" content="ie=edge">
-    <title>清单规则编辑器</title>
-    <link rel="stylesheet" href="web/css/bootstrap/bootstrap.min.css">
-    <!--<link rel="stylesheet" href="../../web/css/bootstrap/themes.css">-->
-    <link rel="stylesheet" href="web/css/main.css">
-    <link rel="stylesheet" href="web/css/font-awesome/font-awesome.min.css">
-    <!--spread-->
-    <link rel="stylesheet" href="web/css/spreadjs/gc.spread.sheets.excel2013white.10.0.1.css">
-    <!--zTree-->
-    <link rel="stylesheet" href="web/css/ztree/zTreeStyle.css" type="text/css">
-</head>
-
-<body>
-    <div class="header">
-        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 ">
-            <span class="header-logo px-2">清单规则编辑器</span>
-            <div class="navbar-text"><a href="main.html">清单规则</a><i class="fa fa-angle-right fa-fw"></i>XXX清单规则</div>
-        </nav>
-        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
-
-              <ul class="nav nav-tabs" role="tablist">
-                  <li class="nav-item">
-                      <a class="nav-link active px-3" href="qingdan.html">清单</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link px-3" href="neirong.html">工作内容</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link px-3" href="tezheng.html">项目特征</a>
-                  </li>
-              </ul>
-        </nav>
-    </div>
-    <div class="main">
-      <div class="content" >
-        <div class="container-fluid">
-          <div class="row">
-            <div class="main-content col-lg-7 p-0">
-                <nav class="navbar sticky-top navbar-toggleable-md navbar-light bg-faded tools-bar">
-                  <div class="collapse navbar-collapse" id="navbarNav">
-                      <ul class="navbar-nav">
-                          <li class="nav-item">
-                              <a class="nav-link text-primary" href="#"><i class="fa fa-share" aria-hidden="true"></i>插入</a>
-                          </li>
-                          <li class="nav-item">
-                              <a class="nav-link text-primary" id ="aDelete" href="javascript:void (0)"><i class="fa fa-remove" aria-hidden="true"></i>删除</a>
-                          </li>
-                          <li class="nav-item">
-                              <a class="nav-link text-primary" href="#"><i class="fa fa-arrow-left" aria-hidden="true"></i>升级</a>
-                          </li>
-                          <li class="nav-item">
-                              <a class="nav-link text-primary" href="#"><i class="fa fa-arrow-right" aria-hidden="true"></i>降级</a>
-                          </li>
-                          <li class="nav-item">
-                              <a class="nav-link disabled" href="#"><i class="fa fa-arrow-up" aria-hidden="true"></i>上移</a>
-                          </li>
-                          <li class="nav-item">
-                              <a class="nav-link disabled" href="#"><i class="fa fa-arrow-down" aria-hidden="true"></i>下移</a>
-                          </li>
-                      </ul>
-                  </div>
-                </nav>
-                <div class="main-data" id="spreadBills">
-                  <!--<div id="spreadBills" style="width: 100%; height: 700px;"></div>-->
-                </div>
-            </div>
-            <div class="main-side col-lg-5 p-0">
-              <div class="container-fluid">
-                <div class="row">
-                  <div class="col" style="width:50%; height: 100%">
-                      <h5>工作内容</h5>
-                      <div id="spreadJobs"  style="width:97%; height: 300px;"></div>
-                  </div>
-                  <div class="col" style="width:50%; height: 100%">
-                    <h5>项目特征</h5>
-                      <div id="spreadItems" style="width: 97%; height: 300px;"></div>
-                  </div>
-                  <div class="w-100"></div>
-                  <div class="col">
-                    <div class="form-group">
-                      <label for="exampleTextarea"><h5>补注:</h5></label>
-                      <textarea class="form-control" id="exampleTextarea" rows="8"></textarea>
-                    </div>
-                  </div>
-                </div>
-              </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>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" placeholder="输入编码" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control"><option>选择单位</option><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" placeholder="输入基价" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" placeholder="输入显示名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" placeholder="输入取费专业" type="text">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-primary">添加</a>
-                </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 class="form-control" placeholder="输入编码" type="text" value="AA0001">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text" value="人工挖土方">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control"><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" placeholder="输入基价" type="number" value="880.84">
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" placeholder="输入显示名称" type="text" value="人工挖土方">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" placeholder="输入取费专业" type="text" value="1">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-primary">确定</a>
-                </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>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-danger">删除</a>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!-- JS. -->
-    <script src="lib/spreadjs/gc.spread.sheets.all.10.0.1.min.js"></script>
-    <script src="lib/jquery/jquery.min.js"></script>
-    <script src="lib/tether/tether.min.js"></script>
-    <script src="lib/bootstrap/bootstrap.min.js"></script>
-    <script src="web/bills/scripts/global.js"></script>
-    <script src="web/bills/scripts/setSheets.js"></script>
-    <script src="web/bills/scripts/billsAjax.js"></script>
-</body>
-<script type="text/javascript">
-    autoFlashHeight();
-    var billsLibId = getQueryString("billsLibId");
-    $(document).ready(function(){
-        if(billsLibId&&billsLibId.toString().length>0){
-            billsAjax.getBills(billsLibId);
-        }
-        buildBills();
-        buildJobs();
-        buildItems();
-        testSortA();
-    });
-    //test
-    function testSortA(){
-        var arr = [5,1,2,8,0,10];
-        arr.sort(function(a1, a2){
-            if(a1>a2){
-                return 1;
-            }
-            else{
-                return -1;
-            }
-        });
-        console.log(arr);
-    }
-
-    function testSortB(){
-        var testDataArr = [
-            {ID: "1", NextSiblingID: "3", ParentID: "-1"},
-            {ID: "2", NextSiblingID: "6", ParentID: "-1"},
-            {ID: "3", NextSiblingID: "2", ParentID: "-1"},
-            {ID: "6", NextSiblingID: "4", ParentID: "-1"},
-            {ID: "4", NextSiblingID: "-1", ParentID: "-1"}
-        ];
-
-        testDataArr.sort(function(a, b){
-            if(a.NextSiblingID == b.ID){
-                return -1;
-            }
-            else{
-                return 1;
-            }
-        });
-        //expect: 1 3 2 6 4
-        //fact:   2 6 4 1 3
-        console.log(testDataArr);
-    }
-
-    //test
-
-    function buildBills(){
-        var spread = new GC.Spread.Sheets.Workbook($("#spreadBills")[0], {sheetCount: 1});
-        var sheet = spread.getSheet(0);
-        var chRowCount = 2;
-        var vpColCount = 4;
-        var vpRowCount = 27;
-        sheet.suspendPaint();
-        sheet.suspendEvent();
-        initSheet(spread, sheet, chRowCount, vpRowCount, vpColCount );//初始表单设置
-        setupBillsColHeader(sheet);
-        setupEvents(spread, sheet);//事件
-        initRowHeight(sheet);//设置行高
-        setCell(sheet);//设置文本居中
-        myCommand(spread, sheet);
-        setScrollBar(spread, sheet, vpRowCount);
-        sheet.resumePaint();
-        sheet.resumeEvent();
-
-    }
-
-    function setupBillsColHeader(sheet){
-        var ch = GC.Spread.Sheets.SheetArea.colHeader;
-        sheet.addSpan(0, 0, 2, 1, ch);
-        sheet.setValue(0, 0, "编码", ch);
-        sheet.setColumnWidth(0, 160);
-
-        sheet.addSpan(0, 1, 2, 1, ch);
-        sheet.setValue(0, 1, "名称", ch);
-        sheet.setColumnWidth(1, 300);
-
-        sheet.addSpan(0, 2, 2, 1, ch);
-        sheet.setValue(0, 2, "计量单位", ch);
-        sheet.setColumnWidth(2, 160);
-
-        sheet.addSpan(0, 3, 2, 1, ch);
-        sheet.setValue(0, 3, "工程量计算规则", ch);
-        sheet.setColumnWidth(3, 420);
-    }
-    //设置滚动条
-    /*function setScrollBar(spread, sheet){
-        var rowCount = sheet.getR
-    }*/
-    //
-    function buildJobs(){
-        var spread = new GC.Spread.Sheets.Workbook($("#spreadJobs")[0], {sheetCount: 1});
-        var sheet = spread.getSheet(0);
-        var chRowCount = 2;
-        var vpRowCount = 8;
-        var vpColCount = 2;
-        sheet.suspendPaint();
-        sheet.suspendEvent();
-        initSheet(spread, sheet, chRowCount, vpRowCount, vpColCount);
-        setupJobsColHeader(sheet);
-        //initRowHeight(sheet);
-        setCell(sheet);
-        myCommand(spread, sheet);
-        setScrollBar(spread, sheet, vpRowCount);
-        sheet.resumePaint();
-        sheet.resumeEvent();
-    }
-    function setupJobsColHeader(sheet){
-        var ch = GC.Spread.Sheets.SheetArea.colHeader;
-        sheet.addSpan(0, 0, 2, 1, ch);
-        sheet.setValue(0, 0, "编号", ch);
-        sheet.setColumnWidth(0, 100);
-        sheet.addSpan(0, 1, 2, 1, ch);
-        sheet.setValue(0, 1, "工作内容", ch);
-        sheet.setColumnWidth(1, 215);
-    }
-    //
-    function buildItems(){
-        var spread = new GC.Spread.Sheets.Workbook($("#spreadItems")[0], {sheetCount: 1});
-        var sheet = spread.getSheet(0);
-        var chRowCount = 2;
-        var vpRowCount = 8;
-        var vpColCount = 2;
-        sheet.suspendPaint();
-        sheet.suspendEvent();
-        initSheet(spread, sheet, chRowCount, vpRowCount, vpColCount);
-        setupItemsColHeader(sheet);
-        //initRowHeight(sheet);
-        setCell(sheet);
-        myCommand(spread, sheet);
-        setScrollBar(spread, sheet, vpRowCount);
-        sheet.resumePaint();
-        sheet.resumeEvent();
-    }
-    function setupItemsColHeader(sheet){
-        var ch = GC.Spread.Sheets.SheetArea.colHeader;
-        sheet.addSpan(0, 0, 2, 1, ch);
-        sheet.setValue(0, 0, "编号", ch);
-        sheet.setColumnWidth(0, 100);
-
-        sheet.addSpan(0, 1, 2, 1, ch);
-        sheet.setValue(0, 1, "项目特征", ch);
-        sheet.setColumnWidth(1, 215);
-    }
-
-    function getQueryString(name)
-    {
-        var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
-        var r = window.location.search.substr(1).match(reg);
-        if(r!=null)return  unescape(r[2]); return null;
-    }
-
-</script>
-
-</html>

+ 0 - 59
web/bills/html/testCanvas.html

@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head lang="en">
-    <meta charset="UTF-8">
-    <title>Canvas Demo</title>
-    <script src="../../../lib/jquery/jquery.min.js"></script>
-    <script>
-        var test = "test";
-        function setId(){
-            return "testSetId";
-        }
-    </script>
-</head>
-<body>
-<canvas id="cv"></canvas>
-<input type="hidden" id="">
-<div id="di">sss</div>
-</body>
-<script>
-window.onload = function(){
-    var canvas = document.getElementById("cv");
-    var ctx = canvas.getContext("2d");
-    //ctx.setLineDash([1,1]);
-    ctx.beginPath();
-    ctx.moveTo(100, 100);
-    //ctx.lineWidth = 0.5;
-    ctx.strokeStyle = "gray";
-    ctx.lineTo(100, 120);
-    ctx.lineTo(120, 120);
-    ctx.lineTo(120, 100);
-    ctx.lineTo(100, 100);
-    ctx.stroke();
-    ctx.beginPath();
-    ctx.strokeStyle = "black";
-    ctx.moveTo(105, 110);
-    ctx.lineTo(115, 110);
-    ctx.stroke();
-
-    ctx.beginPath();
-    ctx.moveTo(100, 50);
-    ctx.strokeStyle = "gray";
-    ctx.lineTo(100, 70);
-    ctx.lineTo(120, 70);
-    ctx.lineTo(120, 50);
-    ctx.lineTo(100, 50);
-    ctx.stroke();
-    ctx.beginPath();
-    ctx.strokeStyle = "black";
-    ctx.moveTo(105, 60);
-    ctx.lineTo(115, 60);
-    ctx.moveTo(110, 55);
-    ctx.lineTo(110, 65);
-    ctx.stroke();
-
-$("#di").remove();
-
-}
-</script>
-</html>

+ 0 - 240
web/bills/html/tezheng.html

@@ -1,240 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta http-equiv="x-ua-compatible" content="ie=edge">
-    <title>清单规则编辑器</title>
-    <link rel="stylesheet" href="../../css/bootstrap/bootstrap.min.css">
-    <!--<link rel="stylesheet" href="../../web/css/bootstrap/themes.css">-->
-    <link rel="stylesheet" href="../../css/main.css">
-    <link rel="stylesheet" href="../../css/font-awesome/font-awesome.min.css">
-    <!--spread-->
-    <link rel="stylesheet" href="../../../web/css/spreadjs/gc.spread.sheets.excel2013white.10.0.1.css">
-    <!--zTree-->
-    <link rel="stylesheet" href="../../css/ztree/zTreeStyle.css" type="text/css">
-</head>
-
-<body>
-    <div class="header">
-        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 ">
-            <span class="header-logo px-2">清单规则编辑器</span>
-            <div class="navbar-text"><a href="main.html">清单规则</a><i class="fa fa-angle-right fa-fw"></i>XXX清单规则</div>
-        </nav>
-        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
-
-              <ul class="nav nav-tabs" role="tablist">
-                  <li class="nav-item">
-                      <a class="nav-link px-3" href="qingdan.html">清单</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link px-3" href="neirong.html">工作内容</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link active px-3" href="tezheng.html">项目特征</a>
-                  </li>
-              </ul>
-        </nav>
-    </div>
-    <div class="main">
-      <div class="content">
-        <div class="container-fluid">
-          <div class="row">
-            <div class="main-content col-lg-7 p-0">
-              <nav class="tools-bar"></nav>
-              <div class="main-data" id="spreadAllItems">
-            </div>
-            </div>
-            <div class="main-side col-lg-5 p-0">
-              <div class="main-data" id="spreadEigenvalue">
-              </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>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" placeholder="输入编码" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control"><option>选择单位</option><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" placeholder="输入基价" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" placeholder="输入显示名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" placeholder="输入取费专业" type="text">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-primary">添加</a>
-                </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 class="form-control" placeholder="输入编码" type="text" value="AA0001">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text" value="人工挖土方">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control"><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" placeholder="输入基价" type="number" value="880.84">
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" placeholder="输入显示名称" type="text" value="人工挖土方">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" placeholder="输入取费专业" type="text" value="1">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-primary">确定</a>
-                </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>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-danger">删除</a>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!-- JS. -->
-    <script src="../../../lib/spreadjs/gc.spread.sheets.all.10.0.1.min.js"></script>
-    <script src="../../../lib/jquery/jquery.min.js"></script>
-    <script src="../../../lib/tether/tether.min.js"></script>
-    <script src="../../../lib/bootstrap/bootstrap.min.js"></script>
-    <script src="../../../web/bills/scripts/global.js"></script>
-    <script src="../../../web/bills/scripts/setSheets.js"></script>
-    <SCRIPT type="text/javascript">
-  		$(document).ready(function(){
-            buildAllItems();
-            buildEigenvalue();
-  		});
-        function buildAllItems(){
-            var spread = new GC.Spread.Sheets.Workbook($("#spreadAllItems")[0], {sheetCount: 1});
-            var sheet = spread.getSheet(0);
-            var chRowCount = 2;
-            var vpColCount = 2;
-            var vpRowCount = 28;
-            sheet.suspendPaint();
-            sheet.suspendEvent();
-            initSheet(spread, sheet, chRowCount, vpRowCount, vpColCount);
-            setupItemsColHeader(sheet);
-            //initRowHeight(sheet);
-            setCell(sheet);
-            myCommand(spread, sheet);
-            setScrollBar(spread, sheet, vpRowCount);
-            sheet.resumePaint();
-            sheet.resumeEvent();
-        }
-        function setupItemsColHeader(sheet){
-            var ch = GC.Spread.Sheets.SheetArea.colHeader;
-            sheet.addSpan(0 ,0, 2, 1, ch);
-            sheet.setValue(0, 0, "编号", ch);
-            sheet.setColumnWidth(0, 200);
-            sheet.addSpan(0 ,1, 2, 1, ch);
-            sheet.setValue(0, 1, "项目特征", ch);
-            sheet.setColumnWidth(1, 850);
-        }
-
-        function buildEigenvalue(){
-            var spread = new GC.Spread.Sheets.Workbook($("#spreadEigenvalue")[0], {sheetCount: 1});
-            var sheet = spread.getSheet(0);
-            var chRowCount = 2;
-            var vpColCount = 2;
-            var vpRowCount = 6;
-            sheet.suspendPaint();
-            sheet.suspendEvent();
-            initSheet(spread, sheet, chRowCount, vpRowCount, vpColCount);
-            setupValueColHeader(sheet);
-            //initRowHeight(sheet);
-            setCell(sheet);
-            myCommand(spread, sheet);
-            setScrollBar(spread, sheet, vpRowCount);
-            sheet.resumePaint();
-            sheet.resumeEvent();
-        }
-        function setupValueColHeader(sheet){
-            var ch = GC.Spread.Sheets.SheetArea.colHeader;
-            sheet.addSpan(0 ,0, 2, 1, ch);
-            sheet.setValue(0, 0, "编号", ch);
-            sheet.setColumnWidth(0, 200);
-            sheet.addSpan(0 ,1, 2, 1, ch);
-            sheet.setValue(0, 1, "特征值", ch);
-            sheet.setColumnWidth(1, 550);
-        }
-
-  	</SCRIPT>
-</body>
-<script type="text/javascript">
-    autoFlashHeight();
-</script>
-
-</html>

+ 0 - 94
web/bills/scripts/billsAjax.js

@@ -1,94 +0,0 @@
-/**
- * Created by vian on 2017/3/27.
- */
-var mainAjax = {
-    getStdBillsLib: function(userId){
-        $.ajax({
-            type: "post",
-            url: "/stdBillsEditor/getStdBillsLib",
-            data: {"data": JSON.stringify({"userId": userId})},
-            dataType: "json",
-            success: function(result){
-                if(result.data){
-                    for(var i=0; i<result.data.length; i++){
-                        var id = result.data[i].billsLibId;
-                        var billsLibName = result.data[i].billsLibName;
-                        var createDate = result.data[i].createDate;
-                        var createDateFmt = new Date(createDate).format("yyyy-MM-dd");
-                        $("#showArea").append(
-                            "<tr id='tempId'>" +
-                            "<td><a href='stdBills'>"+billsLibName+"</a></td>" +
-                            "<td>"+createDateFmt+" </td>" +
-                            "<td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
-                            "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +
-                            "<i class='fa fa-remove'></i></a></td></tr>");
-                        var newHref = "stdBills?billsLibId="+id;
-                        $("#tempId td:first a").attr("href", newHref);
-                        $("#tempId").attr("id", id);
-                    }
-                }
-
-            }
-        });
-    },
-    createStdBillsLib: function(billsLibName){
-        $.ajax({
-            type: "POST",
-            url: "/stdBillsEditor/createStdBillsLib",
-            data: {data: JSON.stringify({name: billsLibName}) },
-            dataType: "json",
-            success: function(result){
-                var id = result.data[0].billsLibId;
-                var createDate = result.data[0].createDate;
-                var createDateFmt = new Date(createDate).format("yyyy-MM-dd");
-                $("#showArea").append(
-                    "<tr id='tempId'><td><a href='stdBills'>"+billsLibName+"</a></td><td>"+createDateFmt+" </td><td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
-                    "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +
-                    "<i class='fa fa-remove'></i></a></td></tr>"
-                );
-                var newHref = "stdBills?billsLibId="+id;
-                $("#tempId td:first a").attr("href", newHref);
-                $("#tempId").attr("id", id);
-            }
-        });
-    },
-    deleteStdBillsLib: function(billsLibId){
-        $.ajax({
-            type: "POST",
-            url: "/stdBillsEditor/deleteStdBillsLib",
-            data: {"data": JSON.stringify({"billsLibId": billsLibId})},
-            dataType: "json",
-            success: function(result){
-                if(!result.error){
-                    var jqSel = "#"+billsLibId;
-                    $(jqSel).remove();
-                }
-            }
-        });
-    },
-    renameStdBillsLib: function(billsLibId, newName){
-        $.ajax({
-            type: "post",
-            url: "/stdBillsEditor/renameStdbillsLib",
-            data: {"data": JSON.stringify({"id": billsLibId, "value": newName})},
-            dataType: "json",
-            success: function(result){
-                var jqSel = "#" + billsLibId + " td:first" + " a";
-                $(jqSel).text(newName);
-            }
-        });
-    }
-}
-
-var billsAjax = {
-    getBills: function(billsLibId){
-        $.ajax({
-            type: "post",
-            url: "/stdBillsEditor/getBills",
-            data: {"data": JSON.stringify({"billsLibId": billsLibId})},
-            dataType: "json",
-            success: function(result){
-            }
-        });
-    }
-}

+ 0 - 84
web/bills/scripts/buildTreeData.js

@@ -1,84 +0,0 @@
-/**
- * Created by vian on 2017/3/24.
- */
-var myTree = {
-    getTop: function(data, topId){
-        var top = [];
-        for(var i=0; i<data.length; i++){
-            if(data[i].ParentID == -1 ||data[i].ParentID == topId){
-                top.push(data[i]);
-            }
-        }
-        return top;
-    },
-
-    sortNodes: function(nodes){
-        for(var i=0; i<nodes.length; i++){
-            for(var j=i+1; j<nodes.length; j++){
-                var temp;
-                if(nodes[i].NextSiblingID == nodes[j].ID){
-                    temp = nodes[i+1];
-                    nodes[i+1] = nodes[j];
-                    nodes[j] = temp;
-                }
-            }
-            if(nodes[i].NextSiblingID == nodes[0].ID){
-                var topNode = nodes[i];
-                for(var j=nodes.length-2; j>=0; j-- ){
-                    nodes[j+1] = nodes[j];
-                }
-                nodes[0] = topNode;
-            }
-        }
-        return nodes;
-    },
-
-    getNodes: function(data ,ids){
-        var idsNodes = [];
-        for(var i =0; i<ids.length; i++){
-            for(var j=0 ; j<data.length; j++){
-                if(ids[i] == data[j].ID){
-                    idsNodes.push({ID: data[j].ID, ParentID: data[j].ParentID, NextSiblingID: data[j].NextSiblingID, children: data[j].children});
-                }
-            }
-        }
-        return idsNodes;
-    },
-
-    getNodeChildren: function(node, children){
-        for(var i=0; i<billsData.length; i++){
-            if(billsData[i].ParentID == node.ID){
-                children.push(billsData[i].ID);
-                myTree.getNodeChildren(billsData[i], children);
-            }
-        }
-        return children;
-    },
-
-    buildChildren: function(billsData){
-        var tempTree = [];
-        for(var i=0; i<billsData.length; i++){
-            var children = [];
-            myTree.getNodeChildren(billsData[i], children);
-            tempTree.push({"ID": billsData[i].ID, "ParentID": billsData[i].ParentID, "NextSiblingID": billsData[i].NextSiblingID, "children": children});
-        }
-        return tempTree;
-    },
-
-    buildTree: function(treeContainer, billsData, tempTree, topId){
-        var sortTempTree = myTree.sortNodes(getTop(tempTree, topId));
-        for(var i=0; i<sortTempTree.length; i++){
-            if(sortTempTree[i].children.length > 0){
-                treeContainer.push({"ID": sortTempTree[i].ID, "ParentID": sortTempTree[i].ParentID, "NextSiblingID": sortTempTree[i].NextSiblingID, "children": sortTempTree[i].children});
-                var childrenTree = myTree.getNodes(myTree.buildChildren(billsData), sortTempTree[i].children);
-                myTree.buildTree(treeContainer, billsData, childrenTree, sortTempTree[i].ID);
-            }
-            else {
-                treeContainer.push({"ID": sortTempTree[i].ID, "ParentID": sortTempTree[i].ParentID, "NextSiblingID": sortTempTree[i].NextSiblingID, "children": sortTempTree[i].children});
-            }
-        }
-        return treeContainer;
-
-    }
-
-}

+ 0 - 21
web/bills/scripts/dateFormat.js

@@ -1,21 +0,0 @@
-/**
- * Created by vian on 2017/3/30.
- */
-Date.prototype.format = function(fmt)
-{
-    var o = {
-        "M+" : this.getMonth()+1,                 //月份
-        "d+" : this.getDate(),                    //日
-        "h+" : this.getHours(),                   //小时
-        "m+" : this.getMinutes(),                 //分
-        "s+" : this.getSeconds(),                 //秒
-        "q+" : Math.floor((this.getMonth()+3)/3), //季度
-        "S"  : this.getMilliseconds()             //毫秒
-    };
-    if(/(y+)/.test(fmt))
-        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
-    for(var k in o)
-        if(new RegExp("("+ k +")").test(fmt))
-            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
-    return fmt;
-}

+ 0 - 37
web/bills/scripts/global.js

@@ -1,37 +0,0 @@
-/*全局自适应高度*/
-function autoFlashHeight(){
-    var headerHeight = $(".header").height();
-    var toolsBar = $(".tools-bar").height();
-    $(".content").height($(window).height()-headerHeight);
-    $(".main-side").height($(window).height()-headerHeight-2);
-    $(".main-content").height($(window).height()-headerHeight-2);
-    $(".main-data").height($(window).height()-headerHeight-toolsBar-16);
-};
-$(window).resize(autoFlashHeight);
-/*全局自适应高度结束*/
-$(function(){
-/*侧滑*/
-$(".open-sidebar").click(function(){
-    $(".slide-sidebar").animate({width:"800"}).addClass("open");
-});
-$("body").click(function(event){
-        var e = event || window.event; //浏览器兼容性
-        if(!$(event.target).is('a')) {
-            var elem = event.target || e.srcElement;
-            while (elem) { //循环判断至跟节点,防止点击的是div子元素
-                if (elem.className == "open-sidebar" || elem.className == 'slide-sidebar open') {
-                    return false;
-                }
-                elem = elem.parentNode;
-            }
-            $(".slide-sidebar").animate({width:"0"}).removeClass("open")// 关闭处理
-        }
-
-    });
-/*侧滑*/
-/*工具提示*/
-$('*[data-toggle=tooltip]').mouseover(function() {
- $(this).tooltip('show');
-  });
-/*工具提示*/
-});

+ 0 - 106
web/bills/scripts/setSheets.js

@@ -1,106 +0,0 @@
-/**
- * Created by vian on 2017/3/16.
- */
-//初始表单
-function initSheet(spread, sheet, chRowCount, vpRowCount, vpColCount){
-    var spreadNS = GC.Spread.Sheets;
-    spread.options.showHorizontalScrollbar = false;
-    spread.options.showVerticalScrollbar =false;
-    spread.options.tabStripVisible = false;
-    spread.options.scrollbarMaxAlign = true;
-    sheet.showRowOutline(false);
-    sheet.defaults.rowHeight = 30;
-    sheet.setRowCount(chRowCount, spreadNS.SheetArea.colHeader);
-    sheet.setRowCount(vpRowCount, spreadNS.SheetArea.viewport);
-    sheet.setColumnCount(vpColCount, spreadNS.SheetArea.viewport);
-
-}
-//设置初始行高
-function initRowHeight(sheet){
-    /*var rowCount = sheet.getRowCount();
-    for(var i=0; i<rowCount; i++){
-        sheet.setRowHeight(i, 30);
-    }*/
-}
-
-//单元格设置
-function setCell(sheet){
-    var colCount = sheet.getColumnCount();
-    var vp = GC.Spread.Sheets.SheetArea.viewport;
-    var center = GC.Spread.Sheets.VerticalAlign.center;
-    var left =  GC.Spread.Sheets.HorizontalAlign.left;
-    for(var i= 0; i<colCount; i++){
-        sheet.getRange(-1, i, -1, 1, vp).vAlign(center);
-        sheet.getRange(-1, i, -1, 1, vp).hAlign(left);
-        sheet.getRange(-1, i, -1, 1, vp).font("12pt 宋体");
-    }
-}
-
-//绑定事件,统一事件
-function setupEvents(spread, sheet){
-    var events = GC.Spread.Sheets.Events;
-    $("#aDelete").click(function(){
-        var rowIdx = sheet.getActiveRowIndex();
-        sheet.deleteRows(rowIdx, 1);
-    });
-    //EditChange
-   /* sheet.bind(events.EditChange, function(e, args){
-        console.log("EditChange!");
-    });*/
-    //EditEnded
-   sheet.bind(events.EditEnded, function(e, args){
-       var editRow = args.row;
-       var editCol = args.col;
-       var eiditVal = sheet.getValue(editRow, editCol);
-        console.log("EE: row: "+editRow+"  col: "+editCol +"val: "+eiditVal);
-    });
-    //EditEnding
-    /*sheet.bind(events.EditEnding, function(e, args){
-        console.log("EEing");
-    });*/
-}
-//滚动条
-function setScrollBar(spread, sheet, initRow){
-    var events = GC.Spread.Sheets.Events;
-    sheet.bind(events.EnterCell, function(e, data){
-        var rowCount = sheet.getRowCount();
-        //当前行数大于初始行数
-        if(rowCount >initRow){
-            spread.options.showVerticalScrollbar = true;
-        }
-        else{
-            spread.options.showVerticalScrollbar = false;
-        }
-    });
-}
-
-//自定义按钮
-function myCommand(spread, sheet){
-    var keys = GC.Spread.Commands.Key;
-    //enter,最后一行回车键添加新行
-    spread.commandManager().register("myEnter", function(){
-        var idxRow = sheet.getActiveRowIndex();
-        var rowCount = sheet.getRowCount();
-        if(idxRow+1 == rowCount){
-            sheet.addRows(rowCount, 1);
-            sheet.setRowHeight(rowCount, 30);//设置行高
-            sheet.getRange(rowCount, -1, 1, -1).vAlign(GC.Spread.Sheets.VerticalAlign.center);
-            sheet.getRange(rowCount, -1, 1, -1).font("10pt 微软雅黑");
-        }
-    });
-    spread.commandManager().setShortcutKey("myEnter", keys.enter, false, false, false, false);
-    //down,最后一行down添加新行
-    spread.commandManager().register("myDown", function(){
-        var idxRow = sheet.getActiveRowIndex();
-        var rowCount = sheet.getRowCount();
-        if(idxRow+1 == rowCount){
-            sheet.suspendPaint();
-            sheet.addRows(rowCount, 1);
-            sheet.setRowHeight(rowCount, 30);//设置行高
-            sheet.getRange(rowCount, -1, 1, -1).vAlign(GC.Spread.Sheets.VerticalAlign.center);
-            sheet.getRange(rowCount, -1, 1, -1).font("10pt 微软雅黑");
-            sheet.resumePaint();
-        }
-    });
-    spread.commandManager().setShortcutKey("myDown", keys.down, false, false, false, false);
-}

+ 0 - 25
web/bills/scripts/testTreeData.js

@@ -1,25 +0,0 @@
-/**
- * Created by vian on 2017/3/27.
- */
-var billsData = [
-    {ID: "1", ParentID: "-1", NextSiblingID: 2},
-    {ID: "2", ParentID: "-1", NextSiblingID: 3},
-    {ID: "3", ParentID: "-1", NextSiblingID: 9},
-    {ID: "4", ParentID: "3", NextSiblingID: 5},
-    {ID: "5", ParentID: "3", NextSiblingID: -1},
-    {ID: "6", ParentID: "4", NextSiblingID: 7},
-    {ID: "7", ParentID: "4", NextSiblingID: -1},
-    {ID: "8", ParentID: "6", NextSiblingID: -1},
-    {ID: "9", ParentID: "-1", NextSiblingID: 10},
-    {ID: "10", ParentID: "-1", NextSiblingID: -1},
-    {ID: "11", ParentID: "10", NextSiblingID: -1},
-    {ID: "12", ParentID: "11", NextSiblingID: -1},
-    {ID: "13", ParentID: "12", NextSiblingID: -1},
-    {ID: "14", ParentID: "13", NextSiblingID: -1},
-    {ID: "15", ParentID: "14", NextSiblingID: 16},
-    {ID: "16", ParentID: "14", NextSiblingID: 17},
-    {ID: "17", ParentID: "14", NextSiblingID: -1},
-    {ID: "18", ParentID: "17", NextSiblingID: 19},
-    {ID: "19", ParentID: "17", NextSiblingID: -1},
-    {ID: "20", ParentID: "1", NextSiblingID: -1},
-]