Просмотр исходного кода

1. 质量管理,移动至大菜单下
2. 资料归集,删除文件问题

MaiXinRong 3 недель назад
Родитель
Сommit
da5dd60779

+ 1 - 0
app/base/base_controller.js

@@ -40,6 +40,7 @@ class BaseController extends Controller {
             menuList.financial.display = ctx.subProject.page_show.openFinancial || false;
             menuList.budget.display = ctx.subProject.page_show.openBudget || false;
             menuList.payment.display = ctx.subProject.page_show.openPayment || false;
+            menuList.quality.display = ctx.subProject.page_show.quality || false;
             for (const index in menuList) {
                 const im = menuList[index];
                 if (!im.url) {

+ 1 - 0
app/router.js

@@ -467,6 +467,7 @@ module.exports = app => {
     // app.get('/sp/:id/drawing/as-built', sessionAuth, subProjectCheck, 'drawingController.built');
 
     // 质量管理
+    app.get('/sp/:id/quality', sessionAuth, subProjectCheck, 'qualityController.tender');
     app.get('/sp/:id/quality/tender', sessionAuth, subProjectCheck, 'qualityController.tender');
     app.post('/sp/:id/quality/member', sessionAuth, subProjectCheck, projectManagerCheck, 'qualityController.member');
     app.post('/sp/:id/quality/memberSave', sessionAuth, subProjectCheck, projectManagerCheck, 'qualityController.memberSave');

+ 2 - 2
app/service/filing.js

@@ -220,7 +220,7 @@ module.exports = app => {
             const delData = posterity.map(x => {return { id: x.id, is_deleted: 1 }; });
             delData.push({ id: data.id, is_deleted: 1});
 
-            const sibling = await this.getAllDataByCondition({ where: { tree_pid: filing.tree_pid } });
+            const sibling = await this.getAllDataByCondition({ where: { tree_pid: filing.tree_pid, spid: delData.spid, is_deleted: 0 } });
             const updateData = [];
             sibling.forEach(x => {
                 if (x.tree_order > filing.tree_order) updateData.push({ id: x.id, tree_order: x.tree_order - 1});
@@ -267,7 +267,7 @@ module.exports = app => {
                     });
                 }
             } else {
-                const orgSibling = await this.getAllDataByCondition({ where: { tree_pid: filing.tree_pid, is_deleted: 0 } });
+                const orgSibling = await this.getAllDataByCondition({ where: { spid: filing.spid, tree_pid: filing.tree_pid, is_deleted: 0 } });
                 orgSibling.forEach(x => {
                     if (x.id === filing.id) return;
                     if (x.tree_order < filing.tree_order) return;

+ 17 - 0
app/view/quality/list_sub_menu.ejs

@@ -0,0 +1,17 @@
+<div class="panel-sidebar" id="sub-menu">
+    <div class="sidebar-title text-center" data-toggle="tooltip" data-placement="right" data-original-title="<%- ctx.subProject.name %>">
+        <%- (ctx.subProject.name.length > 15 ? ctx.subProject.name.substring(0,15) + '...' : ctx.subProject.name) %>
+    </div>
+    <div class="scrollbar-auto">
+        <% include ./list_sub_menu_list.ejs %>
+        <div class="side-show"></div>
+        <div class="side-fold" data-toggle="tooltip" data-placement="top" data-original-title="折叠侧栏" id="to-mini-menu">
+            <i class="fa fa-angle-left"></i>
+        </div>
+    </div>
+    <script>
+        new Vue({
+            el: '.scrollbar-auto',
+        });
+    </script>
+</div>

+ 9 - 0
app/view/quality/list_sub_menu_list.ejs

@@ -0,0 +1,9 @@
+<% if (ctx.subProject.page_show.quality) { %>
+<div class="nav-box">
+    <ul class="nav-list list-unstyled">
+        <li class="<% if (ctx.url === '/sp/' + ctx.subProject.id + '/quality/tender') { %>active<% } %>">
+            <a href="/sp/<%- ctx.subProject.id %>/quality/tender"><span class="ml-3">质量管理</span></a>
+        </li>
+    </ul>
+</div>
+<% } %>

+ 16 - 0
app/view/quality/list_sub_mini_menu.ejs

@@ -0,0 +1,16 @@
+<!--折起的菜单-->
+<div class="min-side" id="sub-mini-menu" style="display: none;">
+    <div class="side-switch" data-toggle="tooltip" data-placement="left" data-original-title="点击这里打开收起的菜单栏">
+        <i class="fa fa-bars mt-2"></i>
+        <i class="fa fa-indent mt-2 text-primary" style="display: none;cursor: pointer;" id="to-menu"></i>
+    </div>
+    <div class="side-menu" id="mini-menu-list" style="display: none">
+        <% include ./list_sub_menu_list.ejs %>
+        <div class="side-fold"><a href="javascript: void(0);" data-toggle="tooltip" data-placement="top" data-original-title="展开侧栏" id="to-menu"><i class="fa fa-upload fa-rotate-90"></i></a></div>
+    </div>
+</div>
+<script>
+    new Vue({
+        el: '.side-menu',
+    });
+</script>

+ 2 - 2
app/view/quality/tender.ejs

@@ -1,8 +1,8 @@
-<% include ../tender/list_sub_menu.ejs %>
+<% include ./list_sub_menu.ejs %>
 <div class="panel-content">
     <div class="panel-title fluid">
         <div class="title-main  d-flex">
-            <% include ../tender/list_sub_mini_menu.ejs %>
+            <% include ./list_sub_mini_menu.ejs %>
             <div class="d-inline-block" id="show-level"></div>
             <div class="ml-auto">
                 <% if (ctx.session.sessionUser.is_admin) { %>

+ 8 - 0
config/menu.js

@@ -110,6 +110,14 @@ const menu = {
         controller: 'contract',
         notIncludedUrl: ['/contract/tender'],
     },
+    quality: {
+        name: '质量管理',
+        icon: 'fa-file-text-o',
+        display: true,
+        children: null,
+        caption: '质量管理',
+        controller: 'quality',
+    },
     file: {
         name: '资料管理',
         icon: 'fa-file-zip-o',