Selaa lähdekoodia

关联标段功能

ellisran 3 kuukautta sitten
vanhempi
commit
6a7c8b1508

+ 28 - 8
app/controller/sub_proj_setting_controller.js

@@ -498,16 +498,24 @@ module.exports = app => {
                 if (!data.type) {
                     throw '提交数据错误';
                 }
-                if (!data.tid) {
-                    throw '参数有误';
-                }
-                const tender = await ctx.service.tender.getDataById(data.tid);
-                if (!tender) {
-                    throw '标段不存在';
-                }
-                const tenderInfo = await ctx.service.tenderInfo.getTenderInfo(tender.id);
+                // if (!data.tid) {
+                //     throw '参数有误';
+                // }
+                // const tender = await ctx.service.tender.getDataById(data.tid);
+                // if (!tender) {
+                //     throw '标段不存在';
+                // }
+                // const tenderInfo = await ctx.service.tenderInfo.getTenderInfo(tender.id);
                 switch (data.type) {
                     case 'msg':
+                        if (!data.tid) {
+                            throw '参数有误';
+                        }
+                        const tender = await ctx.service.tender.getDataById(data.tid);
+                        if (!tender) {
+                            throw '标段不存在';
+                        }
+                        const tenderInfo = await ctx.service.tenderInfo.getTenderInfo(tender.id);
                         const lastRevise = await ctx.service.ledgerRevise.getLastestRevise(tender.id);
                         const revising = (lastRevise && lastRevise.status !== auditConst.revise.status.checked) || false;
                         // 获取审批流,游客账号,及投资进度账号信息
@@ -533,6 +541,18 @@ module.exports = app => {
                             throw '参数有误';
                         }
                         break;
+                    case 'noSp-tenders':
+                        responseData.data = await ctx.service.tender.getAllDataByCondition({ where: { project_id: projectId, spid: '' } });
+                        break;
+                    case 'bind-sp':
+                        if (!data.spid || !data.tidList) {
+                            throw '参数有误';
+                        }
+                        if (data.tidList.split(',').length === 0) {
+                            throw '参数有误';
+                        }
+                        responseData.data = await ctx.service.tender.bindSp(data.spid, data.tidList.split(','));
+                        break;
                     default:
                         throw '参数有误';
                 }

+ 33 - 0
app/public/js/setting_manage.js

@@ -619,6 +619,39 @@ $(document).ready(() => {
             _self.attr('disabled', false);
         });
     });
+
+    // 关联标段
+    $('#select-tender').on('show.bs.modal', function () {
+        postData(`/sp/${spid}/setting/manage/tender/save`, { type: 'noSp-tenders' }, function (result) {
+            const html = [];
+            for (const t of result) {
+                html.push('<tr>');
+                html.push('<td><a target="_blank" href="/tender/', t.id, '">', t.name, '</a></td>');
+                html.push('<td class="text-center">', '<input type="checkbox" data-tid="' + t.id + '">', '</td>');
+                html.push('</tr>');
+            }
+            $('#no-project-tenders').html(html.join(''));
+        });
+    });
+
+    $('#bind-sp-btn').click(function () {
+        const num = $('#no-project-tenders input:checked').length;
+        if (num < 1) {
+            toastr.warning('请选择需要关联的标段');
+            return;
+        }
+        const tidList = [];
+        for (let i = 0; i < num; i++) {
+            tidList.push($('#no-project-tenders input:checked').eq(i).data('tid'));
+        }
+        postData(`/sp/${spid}/setting/manage/tender/save`, { type: 'bind-sp', spid, tidList: tidList.join(',') }, function (result) {
+            toastr.success('关联标段成功');
+            $('#select-tender').modal('hide');
+            setTimeout(function () {
+                window.location.reload();
+            }, 500);
+        });
+    });
 })
 
 const tenderListSpec = (function(){

+ 4 - 0
app/service/tender.js

@@ -661,6 +661,10 @@ module.exports = app => {
 
             return list;
         }
+
+        async bindSp(spid, tids) {
+            return await this.db.update(this.tableName, { spid }, { where: { id: tids } });
+        }
     }
 
     return Tender;

+ 1 - 0
app/view/sp_setting/manage.ejs

@@ -7,6 +7,7 @@
                     标段管理
                 </div>
                 <div class="d-inline-block" id="show-level"></div>
+                <div class="d-inline-block"><button class="btn btn-sm btn-primary" data-toggle="modal" data-target="#select-tender">关联标段</button></div>
             </div>
         </div>
     </div>

+ 26 - 0
app/view/sp_setting/manage_modal.ejs

@@ -298,3 +298,29 @@
         </div>
     </div>
 </div>
+<!--关联标段-->
+<div class="modal fade" id="select-tender" data-backdrop="static">
+    <div class="modal-dialog modal-lg" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">关联标段</h5>
+            </div>
+            <div class="modal-body">
+                <div class="modal-height-300">
+                    <table class="table table-hover table-bordered">
+                        <thead>
+                        <th class="text-center">名称</th>
+                        <th width="40" class="text-center">选择</th>
+                        </thead>
+                        <tbody id="no-project-tenders">
+                        </tbody>
+                    </table>
+                </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="bind-sp-btn">确认</button>
+            </div>
+        </div>
+    </div>
+</div>