Преглед изворни кода

Merge branch 'dev' of http://192.168.1.41:3000/maixinrong/Calculation into dev

MaiXinRong пре 3 година
родитељ
комит
98fd31bf85

+ 3 - 0
app/controller/datacollect_controller.js

@@ -46,6 +46,9 @@ module.exports = app => {
          */
         async index(ctx) {
             try {
+                if (!ctx.session.sessionProject.showDataCollect) {
+                    throw '该功能已关闭或无法查看';
+                }
                 // 获取标段审批信息
                 const tenderidList = [];
                 const noticeList = await ctx.service.noticePush.getNoticeByDataCollect(ctx.session.sessionProject.id, tenderidList);

+ 2 - 1
app/extend/helper.js

@@ -889,7 +889,8 @@ module.exports = {
         for (let i = 0; i < l.length; i++) {
             t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? dot : '');
         }
-        return t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+        const num = t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+        return num.replace('-,', '-');
     },
 
     transFormToChinese(num) {

+ 81 - 19
app/public/css/main.css

@@ -797,7 +797,7 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
   background:#fff;
 }
 .c-body-white{
-  background: none;
+  background: #e4e7ea;
 }
 .right-nav{
   width:36px
@@ -1745,46 +1745,56 @@ overflow-y: auto;
   height: 12px;
   background: rgba(51, 119, 255, 1);
 }
+.agency-partheight{
+  height: calc((100vh - 155px) / 2);
+  /*background:rgba(82, 196, 26, 1);*/
+}
+.contant-height-one{
+  height: calc(((100vh - 165px) / 2) - 65px);
+  overflow-y: auto;
+}
+.contant-height-two{
+  height: calc(((100vh - 165px) / 2) - 178px);
+  overflow-y: auto;
+}
+.contant-height-three{
+  height: calc(((100vh - 165px) / 2) - 118px);
+  overflow-y: auto;
+}
 .btn-table{
   width: 70px;
   text-align: center;
 }
-.bg-tsshenpi{
+.bg-new-red{
   background: rgba(241, 82, 91, 0.08) !important;
 }
-.bg-tsxiuding{
+.bg-new-orange{
   background: rgba(250, 140, 22, 0.08) !important;
 }
-.bg-jlshenpi{
+.bg-new-yellow{
   background: rgba(251, 182, 45, 0.08) !important;
 }
-.bg-bgshenpi{
+.bg-new-green{
   background: rgba(82, 196, 26, 0.08) !important;
 }
-.bg-cltiaocha{
+.bg-new-blue{
   background: rgba(51, 119, 255, 0.08) !important;
 }
-.bg-yfukuan{
-  background: rgba(114, 46, 209, 0.08) !important;
-}
-.text-tsshenpi{
+.text-new-red{
   color: rgba(241, 82, 91, 1) !important;
 }
-.text-tsxiuding{
+.text-new-orange{
   color: rgba(250, 140, 22, 1) !important;
 }
-.text-jlshenpi{
+.text-new-yellow{
   color: rgba(251, 182, 45, 1) !important;
 }
-.text-bgshenpi{
+.text-new-green{
   color: rgba(82, 196, 26, 1) !important;
 }
-.text-cltiaocha{
+.text-new-blue{
   color: rgba(51, 119, 255, 1) !important;
 }
-.text-yfukuan{
-  color: rgba(114, 46, 209, 1) !important;
-}
 .text-width{
   width: 66px;
   text-align: center;
@@ -1800,10 +1810,62 @@ overflow-y: auto;
 .table-middle thead th{
   border-bottom: none;
 }
+.card-big-htext{
+  font-size: 18px;
+}
 .card-white{
   background: rgba(255, 255, 255, 1) !important;
   border-bottom: none;
 }
-.dark-color{
-    background-color:#2c3237 !important;
+.canyu-width{
+  height: 98px;
+}
+.canyu-bg-blue{
+  background: url(bg_participate_blue.png) no-repeat;
+  background-size: 100% 100%;
+}
+.canyu-bg-yellow{
+  background: url(bg_participate_orange.png) no-repeat;
+  background-size: 100% 100%;
+}
+.canyu-text{
+  font-size: 36px;
+}
+.list-text-vertical{
+  overflow:hidden;
+  text-overflow:ellipsis;
+  white-space:nowrap;
+}
+.about-text i{
+  margin-top: -5px;
+  display: inline-block;
+  width: 24px;
+  height: 24px;
+  vertical-align:middle;
+}
+.about-text i.about-qq{
+  background: url(about.png) no-repeat -8px -10px;
+}
+.about-text i.about-phone{
+  background: url(about.png) no-repeat -8px -40px;
+}
+.about-text i.about-tel{
+  background: url(about.png) no-repeat -8px -70px;
+}
+.about-text span{
+  font-size: 1.2rem;
+}
+/*@media (min-width: 768px){
+  .weixin-erweima img{
+    width:90%;
+    height:auto;
+  }
+}*/
+.weixin-erweima img{
+  width:75%;
+  height:auto;
+}
+.weixin-erweima span{
+  display: inline-block;
+  width: 75%;
 }

BIN
app/public/images/juecedaping01.png


BIN
app/public/images/juecedaping02.png


BIN
app/public/images/juecedaping03.png


BIN
app/public/images/juecedaping04.png


+ 2 - 1
app/public/js/advance.js

@@ -262,7 +262,8 @@ $(document).ready(function () {
         for (let i = 0; i < l.length; i++) {
             t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? dot : '');
         }
-        return t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+        const num = t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+        return num.replace('-,', '-');
     }
 
     function transFormToChinese(num) {

+ 2 - 1
app/public/js/advance_audit.js

@@ -442,5 +442,6 @@ function formatMoney(s, dot = ',', decimal = 2) {
     for (let i = 0; i < l.length; i++) {
         t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? dot : '');
     }
-    return t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+    const num = t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+    return num.replace('-,', '-');
 }

+ 33 - 8
app/public/js/setting_datacollect_tender.js

@@ -117,16 +117,16 @@ function recursiveGetTenderNodeHtml (node, arr, pid) {
 function getTenderTreeHtml () {
     if (tenderTree.length > 0) {
         const html = [];
-        html.push('<table class="table table-hover table-bordered">');
-        html.push('<thead>', '<tr>');
-        html.push('<th>名称</th>');
-        html.push('<th width="40">选择</th>');
-        html.push('</tr>', '</thead>');
+        // html.push('<table class="table table-hover table-bordered">');
+        // html.push('<thead>', '<tr>');
+        // html.push('<th>名称</th>');
+        // html.push('<th width="60">选择 <input type="checkbox" id="select-tender-all"></th>');
+        // html.push('</tr>', '</thead>');
         parentId = 0;
         for (const t of tenderTree) {
             html.push(recursiveGetTenderNodeHtml(t, tenderTree, ''));
         }
-        html.push('</table>');
+        // html.push('</table>');
         return html.join('');
     } else {
         return EmptyTenderHtml.join('');
@@ -134,8 +134,17 @@ function getTenderTreeHtml () {
 }
 $(document).ready(function () {
     initTenderTree();
-    const html = getTenderTreeHtml();
-    $('#copyModalContent').html(html);
+    $('#tenderBtn').click(() => {
+        const html = getTenderTreeHtml();
+        $('#copyModalContent').html(html);
+        $('#sort input[value="'+ addDataCollect +'"]').prop('checked', true);
+        if($('#copyModalContent input[type="checkbox"]:not(:checked)').length === 0) {
+            $('#select-tender-all').prop('checked', true);
+        } else {
+            $('#select-tender-all').prop('checked', false);
+        }
+        $('#sort').modal('show');
+    });
 
     $('#tender_dataCollect_btn').click(function () {
         // 获取是否新增展示到决策大屏
@@ -162,4 +171,20 @@ $(document).ready(function () {
         }
         $('#sort').modal('hide');
     });
+
+    $('#select-tender-all').click(function () {
+        const is_checked = $(this).is(':checked');
+        if(is_checked) {
+            $("#copyModalContent input[type='checkbox']").prop('checked', true);
+        } else {
+            $("#copyModalContent input[type='checkbox']").prop('checked', false);
+        }
+    });
+    $('body').on('click', "#copyModalContent input[type='checkbox']", function () {
+        if($('#copyModalContent input[type="checkbox"]:not(:checked)').length === 0) {
+            $('#select-tender-all').prop('checked', true);
+        } else {
+            $('#select-tender-all').prop('checked', false);
+        }
+    })
 });

+ 1 - 1
app/service/change_audit.js

@@ -636,7 +636,7 @@ module.exports = app => {
         }
 
         async getNumByMonth(tid, startMonth, endMonth) {
-            const sql = 'SELECT COUNT(*) as num FROM ?? WHERE id in (SELECT b.id FROM (SELECT * FROM ?? WHERE tid = ? GROUP BY id ORDER BY usort DESC) as b GROUP BY b.cid) AND status = ? AND sin_time between ? and ?';
+            const sql = 'SELECT COUNT(*) as num FROM ?? WHERE id in (SELECT b.id FROM (SELECT * FROM ?? WHERE tid = ? AND usite != 0 GROUP BY id ORDER BY usort DESC) as b GROUP BY b.cid) AND status = ? AND sin_time between ? and ?';
             const sqlParam = [this.tableName, this.tableName, tid, auditConst.auditStatus.checked, startMonth, endMonth];
             const result = await this.db.queryOne(sql, sqlParam);
             return result ? result.num : 0;

+ 1 - 1
app/service/material.js

@@ -359,7 +359,7 @@ module.exports = app => {
         }
 
         async getSumMaterial(tid) {
-            const sql = 'Select sum(m_tp + ex_tp) as tp From ' + this.tableName + ' where tid = ?';
+            const sql = 'Select sum(IFNULL(m_tp, 0) + IFNULL(ex_tp, 0)) as tp From ' + this.tableName + ' where tid = ?';
             const result = await this.db.queryOne(sql, [tid]);
             return result ? result.tp : 0;
         }

+ 3 - 1
app/service/tender.js

@@ -255,7 +255,7 @@ module.exports = app => {
                 }
 
                 // 是否加入到决策大屏中
-                if (sessionProject.addDataCollect === 0) {
+                if (sessionProject.page_show.addDataCollect === 0) {
                     await this.ctx.service.datacollectTender.add(sessionProject.id, operate.insertId);
                 }
                 return tender;
@@ -370,6 +370,8 @@ module.exports = app => {
 
                 await transaction.delete(this.ctx.service.advanceFile.tableName, { tid: id });
 
+                await transaction.delete(this.ctx.service.datacollectTender.tableName, { pid: this.ctx.session.sessionProject.id, tid: id });
+
                 // 记录删除日志
                 await this.ctx.service.projectLog.addProjectLog(transaction, projectLogConst.type.tender, projectLogConst.status.delete, tenderMsg.name, id);
                 await transaction.commit();

+ 86 - 61
app/view/datacollect/index.ejs

@@ -61,7 +61,7 @@
             </div>
         </div>
         <div class="c-body" style="background:#2c3237 !important">
-            <div class="flex-content" data-content="1" <% if (ctx.session.sessionProject.dataCollect !== 1 && ctx.session.sessionProject.dataCollect !== 2) { %>style="display: none"<% } %>>
+            <div class="flex-content" data-content="1" <% if (ctx.session.sessionProject.dataCollect !== 1 && ctx.session.sessionProject.dataCollect !== 3) { %>style="display: none"<% } %>>
                 <div class="row">
                     <div class="col-3 pr-0">
                         <div class="left-content">
@@ -128,15 +128,15 @@
                             <div class="center-chart-content">
                                 <div class="center-di">
                                     <div class="card bg-dark height-100">
-                                        <div class="jlchart" data-chart-num="1" id="jlchart" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 1) { %>display:none;<% } %>"></div>
-                                        <div class="di-content mb-2" id="map1" style="background: #343A40; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 2) { %>display:none;<% } %>">
+                                        <div class="jlchart" data-chart-num="1" id="jlchart" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 3) { %>display:none;<% } %>"></div>
+                                        <div class="di-content mb-2" id="map1" style="background: #343A40; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 1) { %>display:none;<% } %>">
                                         </div>
                                     </div>
                                 </div>
                                 <div class="center-chart">
                                     <div class="card height-100 bg-dark mt-2">
-                                        <div class="jlchart" data-chart-num="2" id="jlchart" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 2) { %>display:none;<% } %>"></div>
-                                        <div class="di-content mb-2" <% if (ctx.session.sessionProject.dataCollect === 1) { %>style="display:none;"<% } %>>
+                                        <div class="jlchart" data-chart-num="2" id="jlchart" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 1) { %>display:none;<% } %>"></div>
+                                        <div class="di-content mb-2" <% if (ctx.session.sessionProject.dataCollect === 3) { %>style="display:none;"<% } %>>
                                             <div class="jldbchart" data-chart-num="1" id="jldbchart" style="height: 100%; width: 100%;"></div>
                                         </div>
                                     </div>
@@ -324,7 +324,7 @@
                     </div>
                 </div>
             </div>
-            <div class="flex-content" data-content="2" <% if (ctx.session.sessionProject.dataCollect !== 3 && ctx.session.sessionProject.dataCollect !== 4) { %>style="display: none"<% } %>>
+            <div class="flex-content" data-content="2" <% if (ctx.session.sessionProject.dataCollect !== 2 && ctx.session.sessionProject.dataCollect !== 4) { %>style="display: none"<% } %>>
                 <div class="mx-3">
                     <div class="row">
                         <div class="col-6 pr-1">
@@ -423,8 +423,8 @@
                                 <div class="right-big-chart-content mr-3">
                                     <div class="height-60 mt-2">
                                         <div class="card height-100 bg-dark">
-                                            <div class="jldbchart" data-chart-num="2" id="jldbchart" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 3) { %>display:none;<% } %>"></div>
-                                            <div class="di-content mb-2" id="map2" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 4) { %>display:none;<% } %>"></div>
+                                            <div class="jldbchart" data-chart-num="2" id="jldbchart" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 4) { %>display:none;<% } %>"></div>
+                                            <div class="di-content mb-2" id="map2" style="height: 100%; width: 100%; <% if (ctx.session.sessionProject.dataCollect === 2) { %>display:none;<% } %>"></div>
                                         </div>
                                     </div>
                                     <div class="height-36 mt-2">
@@ -592,6 +592,10 @@
     // 分类金额饼图表
     var myChart1 = echarts.init(document.getElementById('jechart'), 'dark');
     option1 = {
+        tooltip : {
+            trigger: 'item',
+            formatter: "{a} <br/>{b} : {c} ({d}%)"
+        },
         title: {
             text: '金额统计图',
             left: 'center',
@@ -599,9 +603,9 @@
         },
         color: ['rgba(24,144,255,0.7)','rgba(69,183,149,0.7)','rgba(250,204,20,0.7)','rgba(145,82,225,0.7)','rgba(58,207,221,0.7)','rgba(204,73,80,0.7)','rgba(255,255,225,0.7)'],
         backgroundColor: '#343a40 ',
-        tooltip: {
-            trigger: 'item'
-        },
+        // tooltip: {
+        //     trigger: 'item'
+        // },
         // legend: {
         //     orient: 'vertical',
         //     left: 'center',
@@ -643,8 +647,11 @@
                 type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
             }
         },
+
         dataZoom: [
             {
+                brushSelect:false,
+                // zoomLock: false,
                 type: 'slider',
                 show: true,
                 realtime: true,
@@ -655,7 +662,7 @@
                 end: 8,
                 handleSize: 0,
                 height: 10,
-                bottom: '10%'
+                bottom: '10%',
             },
             // {
             //     // realtime: true,
@@ -730,17 +737,17 @@
                 },
                 splitArea : {show : true}
             },
-            {
-                type: 'value',
-                name:'完成度',
-                position: 'right',
-                min:0,
-                max:100,
-                axisLabel : {
-                    formatter: '{value} %'
-                },
-                splitArea : {show : true}
-            }
+            // {
+            //     type: 'value',
+            //     name:'完成度',
+            //     position: 'right',
+            //     min:0,
+            //     max:100,
+            //     axisLabel : {
+            //         formatter: '{value} %'
+            //     },
+            //     splitArea : {show : true}
+            // }
         ],
         series: [
             {
@@ -825,11 +832,14 @@
         },
         dataZoom: [
             {
+                brushSelect:false,
                 start: 0,
                 end: 10,
+                type: 'slider',
                 show: true,
                 handleSize: 0,
                 realtime: true,
+                showDetail: false,
                 // filterMode: 'empty',
                 yAxisIndex: [0,1],
                 width: 10,
@@ -920,6 +930,8 @@
         ],
         dataZoom: [
             {
+                brushSelect: false,
+                showdetail: false,
                 show: true,
                 realtime: true,
                 dataZoomIndex: 10,
@@ -1102,20 +1114,27 @@
         }
     });
 </script>
-<script src="/public/js/map/turf.min.js"></script>
-<script src="/public/js/map/gcoord.js"></script>
+<!--<script src="/public/js/map/turf.min.js"></script>-->
+<!--<script src="/public/js/map/gcoord.js"></script>-->
 <!--<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=C3hLZAjuWTaCdwnwoYY83APrwlPEj4v7"></script>-->
 <script>
-    function loadScript() {
-        var script = document.createElement("script");
-        script.src = "https://api.map.baidu.com/api?v=1.0&type=webgl&ak=C3hLZAjuWTaCdwnwoYY83APrwlPEj4v7&callback=initialize";
-        document.body.appendChild(script);
-    }
-    window.onload = loadScript;
+    // let map1, map2;
+    // function loadScript() {
+    //     var script = document.createElement("script");
+    //     script.src = "https://api.map.baidu.com/api?v=1.0&type=webgl&ak=C3hLZAjuWTaCdwnwoYY83APrwlPEj4v7&callback=initialize";
+    //     document.body.appendChild(script);
+    // }
+    // window.onload = loadScript;
+    // const map1 = new BMapGL.Map("map1");
+    // const map2 = new BMapGL.Map("map2");
+    // map1.enableScrollWheelZoom(true);
+    // map1.setMapStyleV2({styleId: '20d4aea41cf71387395f2dc835f1c4b6'});
+    // map2.enableScrollWheelZoom(true);
+    // map2.setMapStyleV2({styleId: '20d4aea41cf71387395f2dc835f1c4b6'});
 
     const originDataCollect = parseInt('<%- ctx.session.sessionProject.dataCollect %>');
     const category = JSON.parse(unescape('<%- escape(JSON.stringify(categoryData)) %>'));
-    const mapJson = JSON.parse(unescape('<%- escape(JSON.stringify(map_json)) %>'));
+    <!--const mapJson = JSON.parse(unescape('<%- escape(JSON.stringify(map_json)) %>'));-->
     let tenders = '';
     // let noticeList = '';
     $(function () {
@@ -1184,7 +1203,7 @@
             for (const t of tenders) {
                 calculateTender(t);
                 if (option5_is_tender) {
-                    chart_option5_data.data1.push({ value: t.total_price ? t.total_price : 0, name: t.name});
+                    if (t.total_price) chart_option5_data.data1.push({ value: t.total_price, name: t.name});
                 } else {
                     for (const cc1 of chart_category_data.data1) {
                         const sameObject = _.intersectionWith(t.category, cc1, _.isEqual);
@@ -1218,9 +1237,15 @@
                 }
             }
             const option5 = myChart5.getOption();
-            option5.series[0].data = chart_option5_data.data1;
-            option5.series[1].data = chart_option5_data.data2;
-            option5.series[2].data = chart_option5_data.data3;
+            option5.series[0].data = _.filter(chart_option5_data.data1, function (item) {
+                return item.value !== 0;
+            });
+            option5.series[1].data = _.filter(chart_option5_data.data2, function (item) {
+                return item.value !== 0;
+            });
+            option5.series[2].data = _.filter(chart_option5_data.data3, function (item) {
+                return item.value !== 0;
+            });
             myChart5.setOption(option5);
             // const selectCategory = {
             //     cid: category && category[0].value ? category[0].id : ,
@@ -1291,7 +1316,7 @@
                 html += '<tr>\n' +
                     '                                                    <td><span data-toggle="tooltip" data-placement="right" data-original-title="'+ t.name +'">'+ (t.name.length > 15 ? t.name.substring(0, 15) + '...' : t.name) +'</span></td>\n' +
                     '                                                    <td>第'+ (t.lastStage ? t.lastStage.order : 0) +'期</td>\n' +
-                    '                                                    <td>'+ (t.total_price ? total_price : 0) +'</td>\n' +
+                    '                                                    <td>'+ (t.total_price ? t.total_price : 0) +'</td>\n' +
                     '                                                    <td>'+ (t.gather_tp ? t.gather_tp : 0) +'</td>\n' +
                     '                                                    <td>'+ (t.end_gather_tp ? t.end_gather_tp : 0) +'</td>\n' +
                     '                                                    <td>'+ (t.yf_tp ? t.yf_tp : 0) +'</td>\n' +
@@ -1304,7 +1329,7 @@
                 const rate = ZhCalc.mul(ZhCalc.div(ZhCalc.add(t.pre_gather_tp, t.gather_tp), t.total_price, 2), 100, 0);
                 chart_option3_data.push(rate ? rate : '');
                 if (option1_is_tender) {
-                    chart_option1_data.push({ value: t.total_price ? t.total_price : 0, name: t.name});
+                    if(t.total_price) chart_option1_data.push({ value: t.total_price, name: t.name});
                 } else {
                     const sameObject = _.intersectionWith(t.category, chart_category_data, _.isEqual);
                     const index = sameObject[0] ? _.findIndex(chart_category_data, { cid: sameObject[0].cid, value: sameObject[0].value }) : -1;
@@ -1331,6 +1356,7 @@
                     }
                 }
             }
+            console.log(tenderList);
             $('.data_tender_num').text(tenderList.length);
             const rate = total_price ? ZhCalc.round(ZhCalc.div(total_stage_price, total_price) * 100, 2) : 0;
             $('.data_tender_rate').text(rate ? rate + '%' : '0%');
@@ -1353,6 +1379,7 @@
 
             // 图表数据赋值
             const option2 = myChart2_1.getOption();
+            option2.dataZoom[0].start = 0;
             option2.dataZoom[0].end = computedPosition(tenderList.length);
             option2.xAxis[0].data = chart_option_name;
             option2.series[0].data = chart_option2_data.total_price;
@@ -1369,6 +1396,7 @@
             myChart2_3.setOption(option2);
 
             const option3 = myChart3_1.getOption();
+            option3.dataZoom[0].start = 0;
             option3.dataZoom[0].end = computedPosition(tenderList.length);
             option3.yAxis[0].data = chart_option_name;
             option3.series[0].data = chart_option3_data;
@@ -1385,7 +1413,9 @@
             myChart3_2.setOption(option3);
 
             const option1 = myChart1.getOption();
-            option1.series[0].data = chart_option1_data;
+            option1.series[0].data = _.filter(chart_option1_data, function (item) {
+                return item.value !== 0;
+            });
             myChart1.setOption(option1);
 
             const option4_data = {
@@ -1407,6 +1437,7 @@
                 }
             }
             const option4 = myChart4_1.getOption();
+            option4.dataZoom[0].start = 0;
             option4.dataZoom[0].end = computedPosition(option4_data.yearmonth.length);
             option4.xAxis[0].data = option4_data.yearmonth;
             option4.series[0].data = option4_data.tp;
@@ -1425,35 +1456,28 @@
 
             // 地图设置
             // const polyLineList = [];
-            const centerPoint = { lng: mapJson.lng, lat: mapJson.lat };
-            let level = mapJson.level;
-            // 初始化地图,设置中心点坐标和地图级别
-            const map1 = new BMapGL.Map("map1");
-            const map2 = new BMapGL.Map("map2");
-            const point = new BMapGL.Point(centerPoint.lng, centerPoint.lat);
-
-            // 创建地图实例
-            map1.centerAndZoom(point, level);
-            map1.enableScrollWheelZoom(true);
-            map1.setMapStyleV2({styleId: '20d4aea41cf71387395f2dc835f1c4b6'});
-            // 创建地图实例
-            map2.centerAndZoom(point, level);
-            map2.enableScrollWheelZoom(true);
-            map2.setMapStyleV2({styleId: '20d4aea41cf71387395f2dc835f1c4b6'});
-            map1.reset();
-            map2.reset();
+            // const centerPoint = { lng: mapJson.lng, lat: mapJson.lat };
+            // let level = mapJson.level;
+            // // 初始化地图,设置中心点坐标和地图级别
+            // const point = new BMapGL.Point(centerPoint.lng, centerPoint.lat);
+            // // 创建地图实例
+            // map1.centerAndZoom(point, level);
+            // // 创建地图实例
+            // map2.centerAndZoom(point, level);
+            // map1.reset();
+            // map2.reset();
         }
 
         $('.change-collect').on('click', function () {
             const num = parseInt($(this).data('collect'));
             $('#zhankai span').text(num);
-            if (num === 1 || num === 2) {
+            if (num === 1 || num === 3) {
                 $('.flex-content[data-content="1"]').show();
                 $('.flex-content[data-content="2"]').hide();
-                if (originDataCollect !== 1 && originDataCollect !== 2) {
+                if (originDataCollect !== 1 && originDataCollect !== 3) {
                     tableScroll('tableId', '100%', 30, 7);
                 }
-                if (num === 1) {
+                if (num === 3) {
                     $('.jlchart[data-chart-num="1"]').hide();
                     $('.jlchart[data-chart-num="1"]').siblings().show();
                     $('.jlchart[data-chart-num="2"]').show();
@@ -1469,7 +1493,7 @@
                 $('.flex-content[data-content="2"]').show();
                 $('.flex-content[data-content="1"]').hide();
                 // roll2(50);
-                if (num === 3) {
+                if (num === 4) {
                     $('.jldbchart[data-chart-num="2"]').hide();
                     $('.jldbchart[data-chart-num="2"]').siblings().show();
                 } else {
@@ -1592,7 +1616,8 @@
         for (let i = 0; i < l.length; i++) {
             t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? dot : '');
         }
-        return t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+        const num = t.split('').reverse().join('') + (decimal === 0 ? '' : '.' + r);
+        return num.replace('-,', '-');
     }
     // 计算显示滚动条长度
     function computedPosition(xArrayLength) {

+ 4 - 4
app/view/setting/datacollect.ejs

@@ -4,7 +4,7 @@
         <div class="title-main">
             <h2>决策大屏
                 <a href="#power" data-toggle="modal" data-target="#power" class="btn btn-primary btn-sm pull-right">权限管理</a>
-                <a href="#sort" data-toggle="modal" data-target="#sort" class="btn btn-primary btn-sm pull-right mr-1">标段管理</a>
+                <a href="javascript:void(0);" id="tenderBtn" class="btn btn-primary btn-sm pull-right mr-1">标段管理</a>
             </h2>
         </div>
     </div>
@@ -12,7 +12,7 @@
         <div class="c-body">
             <div class="sjs-height-0">
                 <nav class="nav nav-tabs m-3" id="tablist" role="tablist">
-                    <% for (let i = 1; i <= 4; i++) { %>
+                    <% for (let i = 1; i <= 2; i++) { %>
                         <a class="nav-item nav-link<% if ((ctx.session.sessionProject.dataCollect === 0 && i === 1) || ctx.session.sessionProject.dataCollect === i) { %> active<% } %>" data-datacollect="<%- i %>" data-toggle="tab" href="#shujudaping-<%- i %>" role="tab">
                             决策大屏<%- ctx.helper.transFormToChinese(i) %><% if (ctx.helper._.indexOf(projectData.data_collect_pages, i.toString()) !== -1) { %>(已开启<% if (i === ctx.session.sessionProject.dataCollect) { %>、默认<% } %>)<% } %></a>
                     <% } %>
@@ -36,7 +36,7 @@
                     </div>
                 </nav>
                 <div class="tab-content m-3">
-                    <% for (let i = 1; i <= 4; i++) { %>
+                    <% for (let i = 1; i <= 2; i++) { %>
                         <div id="shujudaping-<%- i %>" class="tab-pane<% if ((ctx.session.sessionProject.dataCollect === 0 && i === 1) || ctx.session.sessionProject.dataCollect === i) { %> active<% } %>"><img src="/public/images/juecedaping0<%- i %>.png" width="100%"></div>
                     <% } %>
                 </div>
@@ -107,7 +107,7 @@
         })
 
         function updateTab() {
-            for (let i = 1; i <= 4; i++) {
+            for (let i = 1; i <= 2; i++) {
                 let msg = '';
                 if (_.indexOf(dataCollectPages, i.toString()) !== -1) {
                     msg = '(已开启' + (i=== dataCollect ? '、默认' : '') + ')' ;

+ 14 - 4
app/view/setting/datacollect_modal.ejs

@@ -22,8 +22,17 @@
                     </a>
                 </div>
                 <div class="alert alert-warning mb-1">已勾选的标段将展示到决策大屏中</div>
-                <div class="zTreeDemoBackground left modal-height-500" id="copyModalContent" style="overflow: auto">
-                    <!--<ul id="treeDemo" class="ztree"></ul>-->
+                <div class="zTreeDemoBackground left modal-height-500" style="overflow: auto">
+                    <table class="table table-hover table-bordered">
+                        <thead>
+                        <tr>
+                            <th>名称</th>
+                            <th width="40"><input style="vertical-align: middle" type="checkbox" id="select-tender-all"></th>
+                        </tr>
+                        </thead>
+                        <tbody id="copyModalContent">
+                        </tbody>
+                    </table>
                 </div>
             </div>
             <div class="modal-footer">
@@ -73,7 +82,7 @@
                                     <dt><a href="javascript: void(0);" class="acc-btn" data-groupid="<%- idx %>"
                                            data-type="hide"><i class="fa fa-plus-square"></i></a> <%- group.groupName %></dt>
                                     <div class="dd-content" data-toggleid="<%- idx %>">
-                                        <dd class="border-bottom p-2 mb-0" data-groupid="<%- idx %>><p class="mb-0 d-flex"><span class="text-primary">该单位下所有组员</span></p></dd>
+                                        <dd class="border-bottom p-2 mb-0" data-groupid="<%- idx %>"><p class="mb-0 d-flex"><span class="text-primary">该单位下所有组员</span></p></dd>
                                         <% group.groupList.forEach(item => { %>
                                             <% if (item.id !== ctx.session.sessionUser.accountId) { %>
                                                 <dd class="border-bottom p-2 mb-0 " data-id="<%- item.id %>">
@@ -134,7 +143,8 @@
                             if (!group) return
                             html += `<dt><a href="javascript: void(0);" class="acc-btn" data-groupid="${idx}" data-type="hide"><i class="fa fa-plus-square"></i>
                         </a> ${group.groupName}</dt>
-                        <div class="dd-content" data-toggleid="${idx}">`
+                        <div class="dd-content" data-toggleid="${idx}">
+                        <dd class="border-bottom p-2 mb-0" data-groupid="${idx}"><p class="mb-0 d-flex"><span class="text-primary">该单位下所有组员</span></p></dd>`
                             group.groupList.forEach(item => {
                                 if (item.id !== cur_uid) {
                                     html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >

+ 54 - 10
app/view/tender/detail.ejs

@@ -57,7 +57,7 @@
         </div>
     </div>
     <div class="content-wrap" id="big-data">
-        <div <% if (ctx.tender.info.display.dayMode) { %>class="dark-color"<% } %> style="height: 70px;display: none" id="exitfull-div">
+        <div style="height: 70px;display: none;<% if (ctx.tender.info.display.dayMode) { %> background-color: #fff;<% } else { %> background-color: #2c3237 !important;<% } %>" id="exitfull-div">
             <div class="title-main d-flex">
                 <div class="ml-auto">
                     <div class="dropdown d-flex float-left mt-1 mr-2">
@@ -66,7 +66,7 @@
                 </div>
             </div>
         </div>
-        <div class="c-body <% if (ctx.tender.info.display.dayMode) { %>c-body-white<% } else { %>dark-color<% } %>">
+        <div class="c-body <% if (ctx.tender.info.display.dayMode) { %>c-body-white<% } %>" <% if (!ctx.tender.info.display.dayMode) { %>style="background-color: #2c3237 !important;"<% } %>>
             <div class="sjs-height-0">
             <!--<div class="auto-main-height">-->
                 <div class="main-height-one">
@@ -384,11 +384,19 @@
     const category = JSON.parse(unescape('<%- escape(JSON.stringify(categoryData)) %>'));
     const tender = JSON.parse('<%- JSON.stringify(tender) %>');
     const cur_uid = parseInt('<%- ctx.session.sessionUser.accountId %>');
+    const dayMode = <%- ctx.tender.info.display.dayMode %>;
     //计量完成概况//
     var myChart = echarts.init(document.getElementById('jlchart1')<% if (!ctx.tender.info.display.dayMode) { %>, 'dark'<% } %>);
     var option = {
+        <% if (ctx.tender.info.display.dayMode) { %>
+        color: ['#e9af68','#57b7b6','#e4575a','#959eac','#6699FF',
+            '#d38b70','#8fb7cf','#cd5c5c','#ffa500','#40e0d0',
+            '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700',
+            '#5c616b','#ff6666','#3cb371','#b8860b','#30e0e0'],
+        <% } else { %>
         color: ['rgba(24,144,255,0.7)','rgba(69,183,149,0.7)','rgba(250,204,20,0.7)','rgba(145,82,225,0.7)','rgba(58,207,221,0.7)','rgba(204,73,80,0.7)','rgba(255,255,225,0.7)'],
-        <% if (!ctx.tender.info.display.dayMode) { %>backgroundColor: '#343a40 ',<% } %>
+        backgroundColor: '#343a40 ',
+        <% } %>
         tooltip: {
             trigger: 'item'
         },
@@ -485,7 +493,14 @@
             itemStyle:{
                 normal:{
                     color:function(params){
+                        <% if (ctx.tender.info.display.dayMode) { %>
+                        var colorlist = ['#e9af68','#57b7b6','#e4575a','#959eac','#6699FF',
+                            '#d38b70','#8fb7cf','#cd5c5c','#ffa500','#40e0d0',
+                            '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700',
+                            '#5c616b','#ff6666','#3cb371','#b8860b','#30e0e0'];
+                        <% } else { %>
                         var colorlist = ['rgba(24,144,255,0.7)','rgba(69,183,149,0.7)','rgba(250,204,20,0.7)','rgba(145,82,225,0.7)','rgba(58,207,221,0.7)','rgba(204,73,80,0.7)','rgba(255,255,225,0.7)'];
+                        <% } %>
                         return colorlist[params.dataIndex];
                     }
                 }
@@ -499,8 +514,15 @@
     //章节计量情况图//
     var myChart2 = echarts.init(document.getElementById('jlchart3')<% if (!ctx.tender.info.display.dayMode) { %>, 'dark'<% } %>);
     var option2 = {
+        <% if (ctx.tender.info.display.dayMode) { %>
+        color: ['#e9af68','#57b7b6','#e4575a','#959eac','#6699FF',
+            '#d38b70','#8fb7cf','#cd5c5c','#ffa500','#40e0d0',
+            '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700',
+            '#5c616b','#ff6666','#3cb371','#b8860b','#30e0e0'],
+        <% } else { %>
         color: ['rgba(24,144,255,0.7)','rgba(69,183,149,0.7)','rgba(250,204,20,0.7)','rgba(145,82,225,0.7)','rgba(58,207,221,0.7)','rgba(204,73,80,0.7)','rgba(255,255,225,0.7)'],
-        <% if (!ctx.tender.info.display.dayMode) { %>backgroundColor: '#343a40 ',<% } %>
+        backgroundColor: '#343a40 ',
+        <% } %>
         tooltip: {
             trigger: 'axis',
             axisPointer: {
@@ -588,8 +610,15 @@
     //4 标段期数计量进度//
     var myChart3 = echarts.init(document.getElementById('chartContainer4')<% if (!ctx.tender.info.display.dayMode) { %>, 'dark'<% } %>);
     var option3 = {
+        <% if (ctx.tender.info.display.dayMode) { %>
+        color: ['#e9af68','#57b7b6','#e4575a','#959eac','#6699FF',
+            '#d38b70','#8fb7cf','#cd5c5c','#ffa500','#40e0d0',
+            '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700',
+            '#5c616b','#ff6666','#3cb371','#b8860b','#30e0e0'],
+        <% } else { %>
         color: ['rgba(24,144,255,0.7)','rgba(69,183,149,0.7)','rgba(250,204,20,0.7)','rgba(145,82,225,0.7)','rgba(204,73,80,0.7)','rgba(58,207,221,0.7)','rgba(255,255,225,0.7)'],
-        <% if (!ctx.tender.info.display.dayMode) { %>backgroundColor: '#343a40 ',<% } %>
+        backgroundColor: '#343a40 ',
+        <% } %>
         title : {
             text: ''
         },
@@ -755,8 +784,15 @@
     // 基于准备好的dom,初始化echarts图表
     var myChart4 = echarts.init(document.getElementById('chartContainer3')<% if (!ctx.tender.info.display.dayMode) { %>, 'dark'<% } %>);
     var option4 = {
+        <% if (ctx.tender.info.display.dayMode) { %>
+        color: ['#e9af68','#57b7b6','#e4575a','#959eac','#6699FF',
+            '#d38b70','#8fb7cf','#cd5c5c','#ffa500','#40e0d0',
+            '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700',
+            '#5c616b','#ff6666','#3cb371','#b8860b','#30e0e0'],
+        <% } else { %>
         color:["#17a2b8","#28a745"],
-        <% if (!ctx.tender.info.display.dayMode) { %>backgroundColor: '#343a40 ',<% } %>
+        backgroundColor: '#343a40 ',
+        <% } %>
         title : {
             text: ''
         },
@@ -913,8 +949,15 @@
     //变更审批进度//
     var myChart5 = echarts.init(document.getElementById('bgchart')<% if (!ctx.tender.info.display.dayMode) { %>, 'dark'<% } %>);
     var option5 = {
+        <% if (ctx.tender.info.display.dayMode) { %>
+        color: ['#e9af68','#57b7b6','#e4575a','#959eac','#6699FF',
+            '#d38b70','#8fb7cf','#cd5c5c','#ffa500','#40e0d0',
+            '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700',
+            '#5c616b','#ff6666','#3cb371','#b8860b','#30e0e0'],
+        <% } else {%>
         color: ['rgba(145,82,225,0.7)','rgba(58,207,221,0.7)','rgba(204,73,80,0.7)','rgba(24,144,255,0.7)','rgba(69,183,149,0.7)','rgba(250,204,20,0.7)','rgba(255,255,225,0.7)'],
-        <% if (!ctx.tender.info.display.dayMode) { %>backgroundColor: '#343a40 ',<% } %>
+        backgroundColor: '#343a40 ',
+        <% } %>
         tooltip: {
             trigger: 'item'
         },
@@ -1103,6 +1146,7 @@
                 const { auditHistory, auditors, user } = result
                 let historyHTML = ''
                 const leftAuditors = auditors;
+                const darkHTML = !dayMode ? 'bg-dark border-secondary text-white' : '';
                 auditHistory.forEach((auditors, idx) => {
                     if(idx === auditHistory.length - 1 && auditHistory.length !== 1) {
                         historyHTML += `<div class="text-right"><a href="javascript: void(0);" id="fold-btn" data-target="show"
@@ -1122,7 +1166,7 @@
                                 <i class="fa fa-caret-down"></i>
                             </div>
                             <div class="timeline-item-content">
-                                <div class="card bg-dark border-secondary text-white">
+                                <div class="card ${darkHTML}">
                                     <div class="card-body p-3">
                                         <div class="card-text">
                                             <p class="mb-1"><span
@@ -1161,7 +1205,7 @@
 
                             }
                             historyHTML += `<div class="timeline-item-content">
-                                <div class="card bg-dark border-secondary text-white">
+                                <div class="card ${darkHTML}">
                                     <div class="card-body p-3">
                                         <div class="card-text">
                                             <p class="mb-1"><span class="h5">${auditor.name}</span><span
@@ -1202,7 +1246,7 @@
                                 historyHTML += `<div class="timeline-item-icon bg-secondary text-light"></div>`
                             }
                             historyHTML += `<div class="timeline-item-content">
-                        <div class="card bg-dark border-secondary text-white">
+                        <div class="card ${darkHTML}">
                             <div class="card-body p-3">
                                 <div class="card-text">
                                     <p class="mb-1"><span class="h5">${auditor.name}</span>

+ 3 - 3
app/view/tender/detail_modal.ejs

@@ -817,14 +817,14 @@
 <div class="modal fade" id="sp-list" data-backdrop="static">
     <div class="modal-dialog" role="document">
         <div class="modal-content">
-            <div class="modal-header bg-dark text-white border-secondary">
+            <div class="modal-header <% if (!ctx.tender.info.display.dayMode) { %>bg-dark text-white border-secondary<% } %>">
                 <h5 class="modal-title">审批进度详情</h5>
             </div>
-            <div class="modal-body bg-dark text-white">
+            <div class="modal-body <% if (!ctx.tender.info.display.dayMode) { %>bg-dark text-white<% } %>">
                 <div class="modal-height-500" style="overflow: auto" id="audit-list">
                 </div>
             </div>
-            <div class="modal-footer bg-dark text-white border-secondary">
+            <div class="modal-footer <% if (!ctx.tender.info.display.dayMode) { %>bg-dark text-white border-secondary<% } %>">
                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
             </div>
         </div>