|
@@ -40,6 +40,7 @@ let ProjTreeSetting = {
|
|
|
event: {
|
|
|
getText: function (html, node, text) {
|
|
|
let className = '';
|
|
|
+ let aClassName = '';
|
|
|
switch (node.data.projType) {
|
|
|
case projectType.folder:
|
|
|
className = "fa fa-folder-open-o";
|
|
@@ -49,14 +50,19 @@ let ProjTreeSetting = {
|
|
|
break;
|
|
|
case projectType.project:
|
|
|
className = "fa fa-cubes";
|
|
|
+ aClassName = "open-sidebar";
|
|
|
break;
|
|
|
case projectType.engineering:
|
|
|
className = "fa fa-cube";
|
|
|
+ aClassName = "open-sidebar";
|
|
|
break;
|
|
|
}
|
|
|
let icon = '<i class ="tree-icon '+ className +'"></i>';
|
|
|
html.push((node && node.data && node.data.projType === projectType.folder) ? ' ' : '');
|
|
|
html.push('<a ');
|
|
|
+ if (aClassName !== '') {
|
|
|
+ html.push('class="'+ aClassName +'" ');
|
|
|
+ }
|
|
|
if (node && node.data) {
|
|
|
//html.push('href="/main?project=', node.id(), '"');
|
|
|
html.push('href="javacript:void(0);"');
|
|
@@ -144,6 +150,12 @@ let ProjTreeSetting = {
|
|
|
$(document).ready(function() {
|
|
|
init();
|
|
|
|
|
|
+ // 侧滑数据
|
|
|
+ $(".poj-list").on('click', ".open-sidebar", function() {
|
|
|
+ setDataToSideBar();
|
|
|
+ $(".slide-sidebar").animate({width:"800"}).addClass("open");
|
|
|
+ });
|
|
|
+
|
|
|
// 新增建设项目点击
|
|
|
$('#add-project-btn').click(function () {
|
|
|
let selectedItem = Tree.selected();
|
|
@@ -235,6 +247,9 @@ $(document).ready(function() {
|
|
|
getProperty(projectInfo.data);
|
|
|
}
|
|
|
|
|
|
+ // 获取单价文件数据
|
|
|
+ getUnitFile(projectInfo.data.ID);
|
|
|
+
|
|
|
});
|
|
|
|
|
|
// 新增单位工程
|
|
@@ -447,6 +462,19 @@ $(document).ready(function() {
|
|
|
dialog.modal('hide');
|
|
|
}
|
|
|
|
|
|
+ // 判断同级是否有同名
|
|
|
+ if (target.children.length > 0) {
|
|
|
+ for (let tmp in target.children) {
|
|
|
+ if (tmp === 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (target.children[tmp].data.name === cur.data.name) {
|
|
|
+ alert("对应单项工程中存在同名数据!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (target.data.projType === projectType.tender) {
|
|
|
parent = target.parent;
|
|
|
next = target.nextSibling;
|
|
@@ -676,56 +704,74 @@ function AddEngineering() {
|
|
|
* @return {boolean}
|
|
|
*/
|
|
|
function AddTender() {
|
|
|
- let name = $('#tender-name').val();
|
|
|
- if (name === '') {
|
|
|
- alert('请填写单位工程名称');
|
|
|
- return false;
|
|
|
- }
|
|
|
+ try {
|
|
|
+ let name = $('#tender-name').val();
|
|
|
+ if (name === '') {
|
|
|
+ throw '请填写单位工程名称';
|
|
|
+ }
|
|
|
|
|
|
- let valuation = $("#tender-valuation").val();
|
|
|
- let valuationName = $("#tender-valuation").children("option:selected").text();
|
|
|
- let valuationType = $("input[name='tender_valuation_type']:checked").val();
|
|
|
- let engineering = $("#tender-engineering").val();
|
|
|
+ let engineering = $("#tender-engineering").val();
|
|
|
+ if (engineering === '') {
|
|
|
+ throw '请选择工程专业';
|
|
|
+ }
|
|
|
|
|
|
- let engineering_id = undefined;
|
|
|
- let valuationData = valuationType === 'bill' ? JSON.parse(billValuation) : JSON.parse(rationValuation);
|
|
|
- let engineeringList = [];
|
|
|
- for(let tmp of valuationData) {
|
|
|
- if (tmp._id === valuation) {
|
|
|
- engineeringList = tmp.engineering_list;
|
|
|
- break;
|
|
|
+ let unitPriceFile = $("#unit-price").val();
|
|
|
+
|
|
|
+ let feeFile = $("#tender-fee-rate").val();
|
|
|
+ if (feeFile === '') {
|
|
|
+ throw '请选择费率文件';
|
|
|
}
|
|
|
- }
|
|
|
- for(let tmp of engineeringList) {
|
|
|
- if (tmp.engineering == engineering) {
|
|
|
- engineering_id = tmp.engineering_id;
|
|
|
- break;
|
|
|
+
|
|
|
+ let valuation = $("#tender-valuation").val();
|
|
|
+ let valuationName = $("#tender-valuation").children("option:selected").text();
|
|
|
+ let valuationType = $("input[name='tender_valuation_type']:checked").val();
|
|
|
+
|
|
|
+ let engineering_id = undefined;
|
|
|
+ let valuationData = valuationType === 'bill' ? JSON.parse(billValuation) : JSON.parse(rationValuation);
|
|
|
+ let engineeringList = [];
|
|
|
+ for(let tmp of valuationData) {
|
|
|
+ if (tmp._id === valuation) {
|
|
|
+ engineeringList = tmp.engineering_list;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- let engineeringName = $('#tender-engineering').children("option:selected").text();
|
|
|
+ for(let tmp of engineeringList) {
|
|
|
+ if (tmp.engineering == engineering) {
|
|
|
+ engineering_id = tmp.engineering_id;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let engineeringName = $('#tender-engineering').children("option:selected").text();
|
|
|
|
|
|
- let callback = function() {
|
|
|
- $("#add-tender-dialog").modal("hide");
|
|
|
- $('#tender-name').val('');
|
|
|
- $("#tender-fee-rate").children("option").removeAttr("selected");
|
|
|
- $("#tender-engineering").children("option").removeAttr("selected");
|
|
|
- $(".hidden-area").hide();
|
|
|
- };
|
|
|
- let selectedItem = Tree.selected();
|
|
|
- let tenderInfo = {
|
|
|
- valuation: valuation,
|
|
|
- valuationType: valuationType,
|
|
|
- valuationName: valuationName,
|
|
|
- engineering: engineering,
|
|
|
- engineering_id: engineering_id,
|
|
|
- engineeringName: engineeringName
|
|
|
- };
|
|
|
- // 如果选择的是单项工程则新增同级数据
|
|
|
- if (selectedItem !== null && selectedItem.data.projType === projectType.tender) {
|
|
|
- AddSiblingsItem(name, tenderInfo, projectType.tender, callback);
|
|
|
- } else {
|
|
|
- AddChildrenItem(name, tenderInfo, projectType.tender, callback);
|
|
|
+ let callback = function() {
|
|
|
+ $("#add-tender-dialog").modal("hide");
|
|
|
+ $('#tender-name').val('');
|
|
|
+ $("#tender-fee-rate").children("option").removeAttr("selected");
|
|
|
+ $("#tender-engineering").children("option").removeAttr("selected");
|
|
|
+ $(".hidden-area").hide();
|
|
|
+ };
|
|
|
+ let selectedItem = Tree.selected();
|
|
|
+ let tenderInfo = {
|
|
|
+ valuation: valuation,
|
|
|
+ valuationType: valuationType,
|
|
|
+ valuationName: valuationName,
|
|
|
+ engineering: engineering,
|
|
|
+ engineering_id: engineering_id,
|
|
|
+ engineeringName: engineeringName,
|
|
|
+ unitPriceFile: unitPriceFile,
|
|
|
+ feeFile: feeFile
|
|
|
+ };
|
|
|
+ // 如果选择的是单项工程则新增同级数据
|
|
|
+ if (selectedItem !== null && selectedItem.data.projType === projectType.tender) {
|
|
|
+ AddSiblingsItem(name, tenderInfo, projectType.tender, callback);
|
|
|
+ } else {
|
|
|
+ AddChildrenItem(name, tenderInfo, projectType.tender, callback);
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (error) {
|
|
|
+ alert(error);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1003,4 +1049,90 @@ function getProperty(projectInfo) {
|
|
|
$("input[name='tender_valuation_type']").attr('disabled', 'disabled').removeAttr('checked', 'checked');
|
|
|
$("input[name='tender_valuation_type'][value='"+ projectProperty.valuationType +"']")
|
|
|
.attr("checked", "checked").removeAttr('disabled', 'disabled');
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 获取单价文件
|
|
|
+ *
|
|
|
+ * @param {Number} parentID
|
|
|
+ * @return {void}
|
|
|
+ */
|
|
|
+function getUnitFile(parentID) {
|
|
|
+ parentID = parseInt(parentID);
|
|
|
+ if (isNaN(parentID) && parentID <= 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ $.ajax({
|
|
|
+ url: '/pm/api/getUnitFile',
|
|
|
+ type: 'post',
|
|
|
+ data: {'data': JSON.stringify({"user_id": userID, "parentID": parentID})},
|
|
|
+ dataType: 'json',
|
|
|
+ error: function() {
|
|
|
+ alert('数据传输错误!');
|
|
|
+ },
|
|
|
+ beforeSend: function() {
|
|
|
+
|
|
|
+ },
|
|
|
+ success: function(response) {
|
|
|
+ if (response.error === 1) {
|
|
|
+ alert('获取失败!');
|
|
|
+ } else {
|
|
|
+ if (response.data.length <= 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let unitFileHtml = '';
|
|
|
+ for(let tmp of response.data) {
|
|
|
+ unitFileHtml += '<option value="'+ tmp.id +'">'+ tmp.name +'</option>';
|
|
|
+ }
|
|
|
+ $("#unit-price").children("option").first().after(unitFileHtml);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 加载数据到侧边栏
|
|
|
+ *
|
|
|
+ * @return {void}
|
|
|
+ */
|
|
|
+function setDataToSideBar() {
|
|
|
+ // 获取当前点击的数据
|
|
|
+ let selectedItem = Tree.selected();
|
|
|
+ let name = selectedItem.data.name;
|
|
|
+ let target = selectedItem.data.projType === projectType.project ? '#summary-project' : '#summary-engineering';
|
|
|
+ $(".side-content .p-3").hide();
|
|
|
+ $(target).show();
|
|
|
+ $(target + '-name').html(name);
|
|
|
+
|
|
|
+ if (selectedItem.children.length <= 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 建设项目相关
|
|
|
+ let counter = 1;
|
|
|
+ let html = '';
|
|
|
+ for(let tmp of selectedItem.children) {
|
|
|
+ html += '<tr>' +
|
|
|
+ '<td>'+ counter +'</td>' +
|
|
|
+ '<td>'+ counter +'</td>' +
|
|
|
+ '<td>'+ tmp.data.name +'</td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '</tr>';
|
|
|
+
|
|
|
+ }
|
|
|
+ html += '<tr>' +
|
|
|
+ '<td>'+ (counter + 1) +'</td>' +
|
|
|
+ '<td> </td>' +
|
|
|
+ '<td>合计</td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '<td></td>' +
|
|
|
+ '</tr>';
|
|
|
+ $(target + '-table tbody').html(html);
|
|
|
+
|
|
|
}
|