|
@@ -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>
|