laiguoran 4 lat temu
rodzic
commit
3ae45548fe

+ 42 - 1
app/controller/tender_controller.js

@@ -508,7 +508,8 @@ module.exports = app => {
                     { num: tender.undone_tp ? tender.undone_tp : 0, name: '未完成' },
                 ];
                 // 地图
-                const hadMap = false;
+                const tenderALLInfo = await ctx.service.tender.getDataById(tender.id);
+                const hadMap = tenderALLInfo.had_map;
                 const renderData = {
                     tenders,
                     categoryData,
@@ -1210,6 +1211,46 @@ module.exports = app => {
                 this.ajaxErrorBody(err, '导入数据失败');
             }
         }
+
+        /**
+         * 地图数据设置(Ajax)
+         *
+         * @param ctx
+         * @return {Promise<void>}
+         */
+        async saveMap(ctx) {
+            try {
+                const data = JSON.parse(ctx.request.body.data);
+                if (!data) {
+                    throw '提交数据错误';
+                }
+                // 判断修改权限
+                if (ctx.session.sessionUser.is_admin === 0) {
+                    throw '你没有权限修改概况设置';
+                }
+                let info = '';
+                switch (data.type) {
+                    case 'select-map':
+                        const result = await ctx.service.tender.saveTenderData(ctx.tender.id, { had_map: data.value });
+                        if (!result) {
+                            throw '修改概况设置失败';
+                        }
+                        info = result;
+                        break;
+                    case 'del':
+                        await ctx.service.tenderTourist.removeAudit(data);
+                        break;
+                    case 'permission':
+                        await ctx.service.tenderTourist.setPermission(data);
+                        break;
+                    default:break;
+                }
+                ctx.body = { err: 0, msg: '', data: info };
+            } catch (err) {
+                this.log(err);
+                ctx.body = this.ajaxErrorBody(err, '保存概况设置失败');
+            }
+        }
     }
 
     return TenderController;

+ 14 - 8
app/public/css/main.css

@@ -1328,60 +1328,66 @@ overflow-y: auto;
   background-color: rgba(24,144,255);
   border-color: rgba(24,144,255);
 }
-.btn-blueOne:hover {
+.btn-blueOne:hover,.btn-blueOne:active {
   color: #fff;
   background-color: rgba(24,144,255);
   border-color: rgba(24,144,255);
+  box-shadow: 0 0 0 0.2rem rgba(24,144,255);
 }
 .btn-green{
   color: #fff;
   background-color: rgba(69,183,149);
   border-color: rgba(69,183,149);
 }
-.btn-green:hover{
+.btn-green:hover,.btn-green:active{
   color: #fff;
   background-color: rgba(69,183,149);
   border-color: rgba(69,183,149);
+  box-shadow: 0 0 0 0.2rem rgba(69,183,149);
 }
 .btn-yellow{
   color: #fff;
   background-color: rgba(250,204,20);
   border-color: rgba(250,204,20);
 }
-.btn-yellow:hover{
+.btn-yellow:hover,.btn-yellow:active{
   color: #fff;
   background-color: rgba(250,204,20);
   border-color: rgba(250,204,20);
+  box-shadow: 0 0 0 0.2rem rgba(250,204,20);
 }
 .btn-purple{
   color: #fff;
   background-color: rgba(145,82,225);
   border-color: rgba(145,82,225);
 }
-.btn-purple:hover {
+.btn-purple:hover,.btn-purple:active {
   color: #fff;
   background-color: rgba(145,82,225);
   border-color: rgba(145,82,225);
+  box-shadow: 0 0 0 0.2rem rgba(145,82,225);
 }
 .btn-blueTwo{
   color: #fff;
   background-color: rgba(58,207,221);
   border-color: rgba(58,207,221);
 }
-.btn-blueTwo:hover {
+.btn-blueTwo:hover,.btn-blueTwo:active {
   color: #fff;
   background-color: rgba(58,207,221);
   border-color: rgba(58,207,221);
+  box-shadow: 0 0 0 0.2rem rgba(58,207,221);
 }
 .btn-red{
   color: #fff;
   background-color: rgba(204,73,80);
   border-color: rgba(204,73,80);
 }
-.btn-red:hover {
+.btn-red:hover,.btn-red:active {
   color: #fff;
-  background-color: rgba(255,255,225);
-  border-color: rgba(255,255,225);
+  background-color: rgba(204,73,80);
+  border-color: rgba(204,73,80);
+  box-shadow: 0 0 0 0.2rem rgba(204,73,80);
 }
 .bg-blueOne{
   color: #fff;

+ 1 - 0
app/router.js

@@ -136,6 +136,7 @@ module.exports = app => {
     app.post('/tender/:id/shenpi/save-sign', sessionAuth, tenderCheck, 'tenderController.saveCooperateSign');
     app.post('/tender/:id/copy-setting', sessionAuth, tenderCheck, 'tenderController.copyTender');
     app.post('/tender/:id/tourist/audit/save', sessionAuth, tenderCheck, uncheckTenderCheck, 'tenderController.saveTourist');
+    app.post('/tender/:id/map/save', sessionAuth, tenderCheck, uncheckTenderCheck, 'tenderController.saveMap');
 
     // 预付款
     app.get('/tender/:id/advance/:type', sessionAuth, tenderCheck, 'advanceController.index');

+ 4 - 0
app/service/tender.js

@@ -418,6 +418,10 @@ module.exports = app => {
         async saveApiRela(tid, updateData) {
             await this.db.update(this.tableName, updateData, {where: { id: tid } });
         }
+
+        async saveTenderData(tid, updateData) {
+            return await this.db.update(this.tableName, updateData, { where: { id: tid } });
+        }
     }
 
     return Tender;

Plik diff jest za duży
+ 5 - 4
app/view/tender/detail.ejs


+ 180 - 0
app/view/tender/detail_modal.ejs

@@ -1958,6 +1958,186 @@
         });
     });
 </script>
+<!--概况设置-->
+<div class="modal fade" id="bd-set-11" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">概况设置</h5>
+            </div>
+            <div class="modal-body">
+                <div class="row">
+                    <div class="col-6">
+                        <div class="card <% if (!hadMap) { %>border-dark<% } %>">
+                            <div class="card-body">
+                                <h5 class="card-title"><i class="fa fa-bookmark"></i> 无地图版</h5>
+                                <p class="card-text">概况中间展示图表</p>
+                                <% if (hadMap) { %>
+                                <a href="javascript:void(0);" data-value="0" class="btn select-map btn-primary btn-sm">选择</a>
+                                <% } else { %>
+                                <a href="javascript:void(0);" data-value="0" class="btn btn-primary btn-sm disabled">当前</a>
+                                <% } %>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-6">
+                        <div class="card <% if (hadMap) { %>border-dark<% } %>">
+                            <div class="card-body">
+                                <h5 class="card-title"><i class="fa fa-bookmark"></i> 地图版</h5>
+                                <p class="card-text">概况中间展示地图</p>
+                                <% if (!hadMap) { %>
+                                    <a href="javascript:void(0);" data-value="1" class="btn select-map btn-primary btn-sm">选择</a>
+                                <% } else { %>
+                                    <a href="javascript:void(0);" data-value="1" class="btn btn-primary btn-sm disabled">当前</a>
+                                <% } %>
+                                <a href="#bd-set-11-1" data-toggle="modal" data-target="#bd-set-11-1" data-dismiss="modal">编辑地图</a>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+                <button type="button" class="btn btn-sm btn-primary" id="save-select-map" >确认修改</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--地图路线-->
+<div class="modal fade" id="bd-set-11-1" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">地图路线</h5>
+            </div>
+            <div class="modal-body">
+                <a href="#" class="btn btn-primary btn-sm">添加路线</a>
+                <table class="table table-bordered table-sm">
+                    <tr><th>路线</th><th width="150">编辑</th></tr>
+                    <tr><td>路线1</td><td><a href="#bd-set-11-2" data-toggle="modal" data-target="#bd-set-11-2" data-dismiss="modal">编辑坐标</a> <a href="" class="text-danger">删除</a></td></tr>
+                    <tr><td>路线2</td><td><a href="#bd-set-11-2" data-toggle="modal" data-target="#bd-set-11-2" data-dismiss="modal">编辑坐标</a> <a href="" class="text-danger">删除</a></td></tr>
+                    <tr><td>路线2</td><td><a href="#bd-set-11-2" data-toggle="modal" data-target="#bd-set-11-2" data-dismiss="modal">编辑坐标</a> <a href="" class="text-danger">删除</a></td></tr>
+                </table>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
+                <!--<button type="button" class="btn btn-sm btn-primary" >确认修改</button>-->
+            </div>
+        </div>
+    </div>
+</div>
+<div class="modal fade" id="bd-set-11-2" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">地图路线</h5>
+            </div>
+            <div class="modal-body">
+                <!-- <div class="form-group ">
+                  <label class="d-flex justify-content-between">路线1<a href="" class="text-danger">移除</a></label>
+                  <div class="row">
+                    <div class="col-5 pr-0">
+                      <div class="input-group input-group-sm">
+                        <div class="input-group-prepend">
+                          <span class="input-group-text">起点</span>
+                        </div>
+                        <input type="text" class="form-control" value="" placeholder="X轴坐标">
+                        <input type="text" class="form-control" value="" placeholder="Y轴坐标">
+                      </div>
+                    </div>
+                    <div class="col-5 pr-0">
+                      <div class="input-group input-group-sm">
+                        <div class="input-group-prepend">
+                          <span class="input-group-text">终点</span>
+                        </div>
+                        <input type="text" class="form-control" value="" placeholder="X轴坐标">
+                        <input type="text" class="form-control" value="" placeholder="Y轴坐标">
+                      </div>
+                    </div>
+                    <div class="col-2">
+                      <div class="input-group input-group-sm">
+                        <input type="color" class="form-control">
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div class="form-group">
+                  <label class="d-flex justify-content-between">路线2<a href="" class="text-danger">移除</a></label>
+                  <div class="row">
+                    <div class="col-5 pr-0">
+                      <div class="input-group input-group-sm">
+                        <div class="input-group-prepend">
+                          <span class="input-group-text">起点</span>
+                        </div>
+                        <input type="text" class="form-control" value="" placeholder="X轴坐标">
+                        <input type="text" class="form-control" value="" placeholder="Y轴坐标">
+                      </div>
+                    </div>
+                    <div class="col-5 pr-0">
+                      <div class="input-group input-group-sm">
+                        <div class="input-group-prepend">
+                          <span class="input-group-text">终点</span>
+                        </div>
+                        <input type="text" class="form-control" value="" placeholder="X轴坐标">
+                        <input type="text" class="form-control" value="" placeholder="Y轴坐标">
+                      </div>
+                    </div>
+                    <div class="col-2">
+                      <div class="input-group input-group-sm">
+                        <input type="color" class="form-control">
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                 <button type="button" class="btn btn-sm btn-primary mt-2" >添加路线</button> -->
+                <input class="form-control form-control-sm mb-1" type="text" value="路线1" placeholder="请输入路线名称">
+                <table class="table table-bordered table-sm">
+                    <tr><th>坐标/备注</th><th>N(X)</th><th>E(Y)</th><th>色值(选填)</th></tr>
+                    <tr><td>K0+000</td><td>324234.22</td><td>121212.09</td><td>#ff6501</td></tr>
+                    <tr><td>K1+356</td><td>9861253.22</td><td>28234234.09</td><td></td></tr>
+                    <tr><td>K2+534</td><td>651278.22</td><td>64122.09</td><td></td></tr>
+                    <tr><td>&nbsp;</td><td>&nbsp; </td><td></td><td></td></tr>
+                    <tr><td>&nbsp;</td><td>&nbsp; </td><td></td><td></td></tr>
+                    <tr><td>&nbsp;</td><td> &nbsp;</td><td></td><td></td></tr>
+                    <tr><td>&nbsp;</td><td> &nbsp;</td><td></td><td></td></tr>
+                </table>
+            </div>
+            <div class="modal-footer">
+                <a href="#bd-set-11-1" class="btn btn-sm btn-secondary" data-toggle="modal" data-target="#bd-set-11-1" data-dismiss="modal">关闭</a>
+                <!--<a href="#bd-set-11" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#bd-set-11-1" data-dismiss="modal">确认修改</a>-->
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+    const hadMap = parseInt(<%- hadMap %>);
+    $(function () {
+        $('body').on('click', '#bd-set-11 .select-map', function () {
+            // const val = parseInt($(this).data('value'));
+            $(this).parents('.card').addClass('border-dark');
+            $(this).removeClass('select-map').addClass('disabled').text('当前');
+            $(this).parents('.col-6').siblings('.col-6').children('.card').removeClass('border-dark');
+            $(this).parents('.col-6').siblings('.col-6').find('.btn').removeClass('disabled').addClass('select-map').text('选择');
+        });
+
+        $('#save-select-map').click(function () {
+            $(this).attr('disabled', true);
+            const val = parseInt($('#bd-set-11').find('.disabled').data('value'));
+            if (hadMap !== val) {
+                postData('/tender/' + tenderId + '/map/save', { type: 'select-map', value: val }, function () {
+                    toastr.success('修改成功,重新加载中...');
+                    setTimeout(function () {
+                        $(this).removeAttr('disabled');
+                        window.location.reload();
+                    }, 2000);
+                })
+            } else {
+                $(this).removeAttr('disabled');
+                toastr.warning('未更改当前设置,无需提交');
+            }
+        })
+    })
+</script>
 <% } %>
 <% if (ctx.session.sessionProject.page_show.xxjd && ctx.session.sessionUser.is_admin) { %>
 <!--标段设置-投资进度-->

+ 2 - 0
sql/update.sql

@@ -30,3 +30,5 @@ CREATE TABLE `zh_ledger_attachment` (
 
 
 ALTER TABLE `zh_tender_tourist` ADD `permission` VARCHAR(1000) NULL DEFAULT NULL COMMENT '游客权限JSON格式' AFTER `user_id`;
+
+ALTER TABLE `zh_tender` ADD `had_map` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '是否显示地图' AFTER `s2b_dagl_limit`;