|
@@ -12,6 +12,7 @@
|
|
|
<link rel="stylesheet" href="/web/css/font-awesome/font-awesome.min.css">
|
|
|
<!--zTree-->
|
|
|
<link rel="stylesheet" href="/web/css/ztree/zTreeStyle.css" type="text/css">
|
|
|
+ <link rel="stylesheet" href="/web/css/spreadjs/gc.spread.sheets.10.0.1.css" type="text/css">
|
|
|
|
|
|
</head>
|
|
|
|
|
@@ -67,16 +68,19 @@
|
|
|
<!-- Tab panes -->
|
|
|
<div class="tab-content">
|
|
|
<div class="tab-pane active" id="tde" role="tabpanel">
|
|
|
- <div class="warp-p2">
|
|
|
- <table class="table table-sm table-bordered m-0">
|
|
|
+ <div id="rationItemsSheet" class="warp-p2" style='width:100%; height:400px;'>
|
|
|
+
|
|
|
+ <!-- <table class="table table-sm table-bordered m-0">
|
|
|
|
|
|
<thead><tr><th width="30"></th><th width="120">编码</th><th>名称</th><th>单位</th><th>基价</th><th>显示名称(以%s表示参数)</th><th>默认取费专业</th><th width="90">操作</th></tr></thead>
|
|
|
<tbody id ="rationTbody">
|
|
|
|
|
|
</tbody>
|
|
|
</table>
|
|
|
- <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#add" id="mkadd" class="btn btn-primary btn-sm">添加</a></div>
|
|
|
+ -->
|
|
|
+
|
|
|
</div>
|
|
|
+
|
|
|
</div>
|
|
|
<div class="tab-pane" id="tsm" role="tabpanel">
|
|
|
<div class="warp-p2">
|
|
@@ -152,15 +156,17 @@
|
|
|
<!-- Tab panes -->
|
|
|
<div class="tab-content">
|
|
|
<div class="tab-pane active" id="bglj" role="tabpanel">
|
|
|
- <div class="warp-p2">
|
|
|
- <table class="table table-sm table-bordered m-0" id="rationGLJTbody">
|
|
|
- <thead><tr><th width="30"></th><th width="120">编码</th><th>名称</th><th>单位</th><th>基价单位</th><th>定额消耗</th><th>类型</th><th width="90">操作</th></tr></thead>
|
|
|
- <tbody>
|
|
|
+ <div id="rationGLJSheet" class="warp-p2">
|
|
|
+ <!-- <table class="table table-sm table-bordered m-0" id="rationGLJTbody">
|
|
|
+ <thead><tr><th width="30"></th><th width="120">编码</th><th>名称</th><th>单位</th><th>基价单位</th><th>定额消耗</th><th>类型</th><th width="90">操作</th></tr></thead>
|
|
|
+ <tbody>
|
|
|
+
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#addBglj" id="mkaddglj" class="btn btn-primary btn-sm">添加</a></div>
|
|
|
+ -->
|
|
|
+ </div>
|
|
|
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
- <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#addBglj" id="mkaddglj" class="btn btn-primary btn-sm">添加</a></div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
<div class="tab-pane" id="bfzd" role="tabpanel">
|
|
|
<div class="warp-p2">
|
|
@@ -182,7 +188,7 @@
|
|
|
<thead><tr><th width="30"></th><th width="40">编号</th><th width="120">本分项全部适用</th><th>调整顺序</th><th>名称</th><th>内容</th><th width="90">操作</th></tr></thead>
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
- <td>1</td><td>1</td><td><i class="fa fa-check"></td><td>2</td><td>挖湿土时</td><td>人工x1.18</td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#editFztj" 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>
|
|
|
+ <td>1</td><td>1</td><td><i class="fa fa-check"></i></td><td>2</td><td>挖湿土时</td><td>人工x1.18</td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#editFztj" 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>
|
|
@@ -856,6 +862,7 @@
|
|
|
</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>
|
|
@@ -864,8 +871,10 @@
|
|
|
<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 type="text/javascript" src="/lib/ztree/jquery.ztree.exedit.js"></script>
|
|
|
+ <script type="text/javascript" src="/web/rationLibEditor/_zSpread.js"></script>
|
|
|
+ <script type="text/javascript" src="/web/rationLibEditor/js/dinge.js"></script>
|
|
|
<SCRIPT type="text/javascript">
|
|
|
-var rationName = getQueryString("rationname");
|
|
|
+/*var rationName = getQueryString("rationname");*/
|
|
|
var treeObj;
|
|
|
var zNodes =[
|
|
|
{ id:1, pId:0,nId:2, name:"第一章 土石方工程",isParent:true,children:[]},
|
|
@@ -884,7 +893,7 @@ var zNodes =[
|
|
|
];
|
|
|
var setting = {
|
|
|
view: {
|
|
|
- // showIcon: showIconForTree,//已存在*/
|
|
|
+ // showIcon: showIconForTree,//已存在*/
|
|
|
addHoverDom: addHoverDom,
|
|
|
removeHoverDom: removeHoverDom,
|
|
|
selectedMulti: false
|
|
@@ -917,9 +926,8 @@ var setting = {
|
|
|
onRemove: onRemove,
|
|
|
onRename: onRename
|
|
|
}
|
|
|
-};
|
|
|
+}; //ztree setting
|
|
|
var log, className = "dark";
|
|
|
-//章节树点击事件
|
|
|
var properties = {
|
|
|
}
|
|
|
//点击树获取定额
|
|
@@ -947,35 +955,7 @@ function beforeRemove(treeId, treeNode) {
|
|
|
return true;
|
|
|
}
|
|
|
//删除树节点事件
|
|
|
-function onRemove(e, treeId, treeNode) {
|
|
|
- var id = treeNode.id;
|
|
|
- var pNodes = treeNode.getParentNode().children;
|
|
|
- for(var i=0;i<pNodes.length;i++){
|
|
|
- if(pNodes[i].nId==id){
|
|
|
- pNodes[i].nId = -1;
|
|
|
- saveNewSection(pNodes[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- $.ajax({
|
|
|
- type:"POST",
|
|
|
- url:"http://localhost:6060/ration/getRationsBySectionID",
|
|
|
- data:{"rationName": rationName,"sectionID": treeNode.id},
|
|
|
- dataType:"json",
|
|
|
- cache:false,
|
|
|
- timeout:1000,
|
|
|
- success:function(result){
|
|
|
- if(result){
|
|
|
- caseDeleteTreeNode(result.data)
|
|
|
- }
|
|
|
|
|
|
- },
|
|
|
- error:function(){
|
|
|
- }
|
|
|
- })
|
|
|
- removeSection(id)
|
|
|
- $("#rationTbody").html("");
|
|
|
- $("#rationGLJTbody").html("");
|
|
|
-}
|
|
|
//级联删除章节点
|
|
|
function caseDeleteTreeNode(arryObj){
|
|
|
for(var i=0;i<arryObj.length;i++){
|
|
@@ -1026,11 +1006,6 @@ function beforeRename(treeId, treeNode, newName, isCancel) {
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
-//编辑树节点事件(添加节点到数据库)
|
|
|
-function onRename(e, treeId, treeNode, isCancel) {
|
|
|
- saveNewSection(treeNode);
|
|
|
-}
|
|
|
-//增加节点Ajax函数
|
|
|
function showRemoveBtn(treeId, treeNode) {
|
|
|
return true
|
|
|
}
|
|
@@ -1045,56 +1020,8 @@ function getTime() {
|
|
|
ms=now.getMilliseconds();
|
|
|
return (h+":"+m+":"+s+ " " +ms);
|
|
|
}
|
|
|
-var newCount = 13;
|
|
|
-function addHoverDom(treeId, treeNode) {
|
|
|
- var sObj = $("#" + treeNode.tId + "_span");
|
|
|
- if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0||(treeNode.level==2)) return;
|
|
|
- var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
|
|
|
- + "' title='add node' onfocus='this.blur();'></span>";
|
|
|
- sObj.after(addStr);
|
|
|
- var btn = $("#addBtn_"+treeNode.tId);
|
|
|
- if (btn) btn.bind("click", function(){
|
|
|
- var zTree = $.fn.zTree.getZTreeObj("treeDemo");
|
|
|
- if((treeNode.level==0)){
|
|
|
- var newNode = zTree.addNodes(treeNode, {id:(++newCount), pId:treeNode.id,nId:-1,isParent:true, name:"请输入章节名称",children:[]});
|
|
|
-
|
|
|
- }
|
|
|
- else{
|
|
|
- var newNode = zTree.addNodes(treeNode, {id:(++newCount), pId:treeNode.id,nId:-1,isParent:false, name:"请输入章节名称"});
|
|
|
|
|
|
- }
|
|
|
- saveNewSection(newNode[0]);
|
|
|
- var pnode = newNode[0].getPreNode()
|
|
|
- if(pnode){
|
|
|
- pnode.nId = newNode[0].id;
|
|
|
- saveNewSection(pnode);
|
|
|
- }
|
|
|
- return false;
|
|
|
- });
|
|
|
-};
|
|
|
-function saveNewSection(n){
|
|
|
- var sec={};
|
|
|
- sec.SectionID = n.id;
|
|
|
- sec.ParentID = n.pId;
|
|
|
- sec.NextSiblingID = n.nId;
|
|
|
- sec.Name = n.name;
|
|
|
- var section = JSON.stringify(sec);
|
|
|
- $.ajax({
|
|
|
- type:"POST",
|
|
|
- url:"http://localhost:6060/ration/addSection",
|
|
|
- data:{"rationName":rationName,"rationSection":section},
|
|
|
- dataType:"json",
|
|
|
- cache:false,
|
|
|
- timeout:1000,
|
|
|
- success:function(result){
|
|
|
- // getRationTree();//重新获取刷新树节点
|
|
|
|
|
|
- },
|
|
|
- error:function(){
|
|
|
- // getRationTree();
|
|
|
- }
|
|
|
- })
|
|
|
-}
|
|
|
function removeHoverDom(treeId, treeNode) {
|
|
|
$("#addBtn_"+treeNode.tId).unbind().remove();
|
|
|
};
|
|
@@ -1102,124 +1029,8 @@ function selectAll() {
|
|
|
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
|
|
|
zTree.setting.edit.editNameSelectAll = $("#selectAll").attr("checked");
|
|
|
}
|
|
|
-//onLoad事件
|
|
|
-$(document).ready(function(){
|
|
|
- getRationTree();
|
|
|
-});
|
|
|
-//获取章节树ajax函数
|
|
|
-function getRationTree(){
|
|
|
- $.ajax({
|
|
|
- type:"POST",
|
|
|
- url:"http://localhost:6060/ration/getRationTree",
|
|
|
- data:{"rationName": rationName},
|
|
|
- dataType:"json",
|
|
|
- cache:false,
|
|
|
- timeout:1000,
|
|
|
- success:function(result){
|
|
|
- createRationTree(result.data);//根据返回的全部定额章节对象,构架树。
|
|
|
- },
|
|
|
- error:function(){
|
|
|
- treeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
|
|
|
- saveTempTree();
|
|
|
- }
|
|
|
- })
|
|
|
-}
|
|
|
-//新建的定额库保存模板节点
|
|
|
-function saveTempTree(){
|
|
|
- var rationTempTree = JSON.stringify(zNodes)
|
|
|
- $.ajax({
|
|
|
- type:"POST",
|
|
|
- url:"http://localhost:6060/ration/saveTempRationTree",
|
|
|
- data:{"rationName":rationName,"rationTempTree":rationTempTree},
|
|
|
- dataType:"json",
|
|
|
- cache:false,
|
|
|
- timeout:1000,
|
|
|
- success:function(result){
|
|
|
|
|
|
- },
|
|
|
- error:function(){
|
|
|
|
|
|
- }
|
|
|
- })
|
|
|
-}
|
|
|
-//根据返回的节点集合构建树节点
|
|
|
-function createRationTree(obj){
|
|
|
- var treeArr;
|
|
|
- treeArr = makeNodes(obj);
|
|
|
- var maxIDNode = obj.reduce(function(a,b){
|
|
|
- return (a.id> b.id)?a:b;
|
|
|
- });
|
|
|
- newCount = maxIDNode.id;
|
|
|
- treeObj = $.fn.zTree.init($("#treeDemo"), setting, treeArr);
|
|
|
-}
|
|
|
-function makeNodes(obj){
|
|
|
- var arr=[];
|
|
|
- arr = obj.filter(function(x){
|
|
|
- return x.ParentID==0
|
|
|
- })
|
|
|
- arr.forEach(function(x){
|
|
|
- x.id = x.SectionID;
|
|
|
- x.pId = x.ParentID;
|
|
|
- x.nId = x.NextSiblingID;
|
|
|
- x.name = x.Name;
|
|
|
- x.isParent = true
|
|
|
- x.lev = 0
|
|
|
- });
|
|
|
- arr = sortArray(arr);
|
|
|
- for(var i=0;i<arr.length;i++){
|
|
|
- var L1 = [];
|
|
|
- L1 = obj.filter(function(x){
|
|
|
- return x.ParentID ==arr[i].id;
|
|
|
- });
|
|
|
- L1.forEach(function(x){
|
|
|
- x.id = x.SectionID;
|
|
|
- x.pId = x.ParentID;
|
|
|
- x.nId = x.NextSiblingID;
|
|
|
- x.name = x.Name;
|
|
|
- x.isParent = true
|
|
|
- x.lev = 1
|
|
|
- });
|
|
|
- L1=sortArray(L1);
|
|
|
- for(var j=0; j<L1.length;j++){
|
|
|
- var L2 = [];
|
|
|
- L2 =obj.filter(function(x){
|
|
|
- return x.ParentID == L1[j].id;
|
|
|
- })
|
|
|
- L2.forEach(function(x){
|
|
|
- x.id = x.SectionID;
|
|
|
- x.pId = x.ParentID;
|
|
|
- x.nId = x.NextSiblingID;
|
|
|
- x.name = x.Name;
|
|
|
- x.isParent = false;
|
|
|
- x.lev = 2
|
|
|
- })
|
|
|
- L2=sortArray(L2)
|
|
|
- L1[j].children = L2;
|
|
|
- }
|
|
|
- arr[i].children = L1;
|
|
|
- }
|
|
|
- return arr;
|
|
|
-}
|
|
|
-function sortArray(arr){
|
|
|
- var a = [];
|
|
|
- for(var i=0;i<arr.length;i++)
|
|
|
- if (arr[i].NextSiblingID == -1)
|
|
|
- a.push(arr[i])
|
|
|
- for(; a.length < arr.length;){
|
|
|
- for(var j=0;j<arr.length;j++) {
|
|
|
- if (arr[j].NextSiblingID == a[0].SectionID)
|
|
|
- {a.unshift(arr[j]); break;}
|
|
|
- }
|
|
|
- }
|
|
|
- return a ;
|
|
|
-}
|
|
|
-function getQueryString(key){
|
|
|
- var reg = new RegExp("(^|&)"+key+"=([^&]*)(&|$)");
|
|
|
- var result = window.location.search.substr(1).match(reg);
|
|
|
- return result?decodeURIComponent(result[2]):null;
|
|
|
-}
|
|
|
-$("#dinge").attr('href', "/ration/rationLib" + "?rationname=" + rationName);
|
|
|
-$("#gongliao").attr('href', "/ration/gongliao" + "?rationname=" + rationName);
|
|
|
//新增定额事件
|
|
|
$("#mkadd").click(function(){
|
|
|
var section = treeObj.getSelectedNodes();
|
|
@@ -1257,7 +1068,7 @@ function saveRationItem(obj){
|
|
|
var rationItem = JSON.stringify(obj)
|
|
|
$.ajax({
|
|
|
type:"POST",
|
|
|
- url:"http://localhost:6060/ration/saveRationItem",
|
|
|
+ url:"http://localhost:6060/rationLibEditor/saveRationItem",
|
|
|
data:{"rationName":rationName,"rationItem":rationItem},
|
|
|
dataType:"json",
|
|
|
cache:false,
|
|
@@ -1293,20 +1104,10 @@ function getRationItems(sectionID){
|
|
|
}
|
|
|
//显示定额条目
|
|
|
function showRationItems(data){
|
|
|
- $("#rationTbody tr").remove();
|
|
|
- for(var i=0 ;i<data.length;i++){
|
|
|
- var $tr = $('<tr><td></td><td><a href="#"></a></td><td></td><td></td><td></td><td></td><td></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>');
|
|
|
- var td1,td2,td3,td4,td5,td6,a;
|
|
|
- var code,name,danwei,jijia,xsname,qfzy;
|
|
|
- td1 = $("td:eq(1)",$tr);td2 = $("td:eq(2)",$tr);td3 = $("td:eq(3)",$tr);td4 = $("td:eq(4)",$tr);td5 = $("td:eq(5)",$tr);td6 = $("td:eq(6)",$tr),
|
|
|
- a = $("a",td1);
|
|
|
- code = data[i].RationCode;name = data[i].RationName;danwei=data[i].Unit;jijia = data[i].BasePrice;xsname = data[i].Caption;qfzy=data[i].FeeType;
|
|
|
- a.text(code);td2.text(name);td3.text(danwei);td4.text(jijia);td5.text(xsname);td6.text(qfzy);
|
|
|
- $tr.appendTo("#rationTbody");
|
|
|
- }
|
|
|
- bindRationClick();
|
|
|
- bindRationEdit();
|
|
|
- bindRationDelete();
|
|
|
+ //var RationJSONStr = JSON.stringify(data);
|
|
|
+ var spread = $("#rationItemsSheet").data("workbook");
|
|
|
+ spread.fromJSON(data);
|
|
|
+
|
|
|
}
|
|
|
//绑定点击定额号
|
|
|
function bindRationClick(){
|