Browse Source

质量巡检提取到一级菜单

ellisran 1 week ago
parent
commit
a9ba3ae46c

+ 3 - 0
app/base/base_controller.js

@@ -41,6 +41,7 @@ class BaseController extends Controller {
             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;
+            menuList.inspection.display = ctx.subProject.page_show.quality || false;
             for (const index in menuList) {
                 const im = menuList[index];
                 if (!im.url) {
@@ -56,6 +57,8 @@ class BaseController extends Controller {
                         }
                     } else if (index === 'financial') {
                         im.url = `/sp/${ctx.subProject.id}/${im.controller}/${ctx.subProject.financialToUrl}`;
+                    } else if (index === 'inspection') {
+                        im.url = `/sp/${ctx.subProject.id}/quality/inspection`;
                     } else {
                         im.url = `/sp/${ctx.subProject.id}/${im.controller}`;
                     }

+ 1 - 0
app/controller/quality_controller.js

@@ -43,6 +43,7 @@ module.exports = app => {
                 if (!ctx.subProject.page_show.quality) throw '该功能已关闭';
 
                 const renderData = {
+                    is_inspection: ctx.url.includes('inspection') ? 1 : 0,
                     jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.quality.tender),
                 };
 

+ 1 - 1
app/public/js/quality_tender.js

@@ -13,7 +13,7 @@ const tenderListSpec = (function(){
             html.push(arr.indexOf(node) === arr.length - 1 ? '└' : '├');
             html.push('</span>');
             //html.push('<a href="/tender/' + node.id + '">', node[c.field], '</a>');
-            html.push(`<a href="/sp/${spid}/quality/tender/${node.id}/info" name="name" style="min-width: 200px;word-break:break-all;" id="${node.id}">${node.name}</a>`);
+            html.push(`<a href="/sp/${spid}/quality/tender/${node.id}/${isInspection ? 'inspection' : 'info'}" name="name" style="min-width: 200px;word-break:break-all;" id="${node.id}">${node.name}</a>`);
         }
         html.push('</td>');
 

+ 1 - 0
app/router.js

@@ -468,6 +468,7 @@ module.exports = app => {
 
     // 质量管理
     app.get('/sp/:id/quality', sessionAuth, subProjectCheck, 'qualityController.tender');
+    app.get('/sp/:id/quality/inspection', 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');

+ 4 - 1
app/view/quality/sub_memu_list.ejs

@@ -1,5 +1,8 @@
-<nav-menu title="返回" url="/sp/<%- ctx.subProject.id %>/quality/tender" tclass="text-primary" ml="1" icon="fa-chevron-left"></nav-menu>
+<nav-menu title="返回" url="/sp/<%- ctx.subProject.id %>/quality<%- ctx.url.includes('/inspection') ? '/inspection' : '' %>" tclass="text-primary" ml="1" icon="fa-chevron-left"></nav-menu>
+<% if (!ctx.url.includes('/inspection')) { %>
 <nav-menu title="工程资料" url="/sp/<%- ctx.subProject.id %>/quality/tender/<%= ctx.tender.id %>/info%>" ml="3" active="<%- (ctx.url.indexOf('/info') !== -1 && ctx.url.indexOf('/information') === -1 ? 1 : -1) %>"></nav-menu>
 <!--<nav-menu title="缺陷管理" url="/sp/<%- ctx.subProject.id %>/quality/tender/<%= ctx.tender.id %>/flaw%>" ml="3" active="<%= ctx.url.indexOf('/flaw') %>"></nav-menu>-->
 <!--<nav-menu title="试验报告" url="/sp/<%- ctx.subProject.id %>/quality/tender/<%= ctx.tender.id %>/lab%>" ml="3" active="<%= ctx.url.indexOf('/lab') %>"></nav-menu>-->
+<% } else { %>
 <nav-menu title="质量巡检" url="/sp/<%- ctx.subProject.id %>/quality/tender/<%= ctx.tender.id %>/inspection %>" ml="3" active="<%= ctx.url.indexOf('/inspection') %>"></nav-menu>
+<% } %>

+ 1 - 0
app/view/quality/tender.ejs

@@ -24,4 +24,5 @@
 
     const pid = '<%- ctx.session.sessionProject.id %>';
     const uphlname = 'user_<%- ctx.session.sessionUser.accountId %>_pro_<% ctx.session.sessionProject.id %>_category_hide_list';
+    const isInspection = parseInt('<%- is_inspection %>');
 </script>

+ 5 - 4
app/view/wap/inspection.ejs

@@ -2,14 +2,15 @@
 <html lang="zh">
 <head>
     <meta charset="UTF-8">
-    <title>质量巡检单生成助手</title>
+    <title>巡检助手</title>
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <link rel="stylesheet" href="/public/css/bootstrap/bootstrap.min.css">
     <link rel="stylesheet" href="/public/css/wap/main.css">
     <link rel="stylesheet" href="/public/css/toast.css">
     <link rel="stylesheet" href="/public/css/font-awesome/font-awesome.min.css">
     <link rel="stylesheet" href="/public/css/toastr.css">
-    <link rel="shortcut icon" href="/public/images/favicon.ico">
+    <link rel="apple-touch-icon-precomposed" href="/public/images/logo.png">
+    <link rel="shortcut icon" href="/public/images/logo.png">
     <style>
         body,
         html {
@@ -206,7 +207,7 @@
 </head>
 <body>
 <div class="container mb-3 px-0">
-    <h5 class="text-center py-2 xj-title mb-0">质量巡检单生成助手</h5>
+    <h5 class="text-center py-2 xj-title mb-0">巡检助手</h5>
     <div id="chat-box" class="chat-box mb-3">
         <div id="messages"></div>
         <!-- 表单预览卡片 -->
@@ -287,7 +288,7 @@
             $('#messages').append($message);
             $chatBox.scrollTop($chatBox[0].scrollHeight);
         };
-        appendMessage("👋 嗨,我是质量巡检单生成助手,告诉我项目名称可以帮你快速生成巡检单", "ai", 'mt-3');
+        appendMessage("👋 嗨,我是巡检助手,告诉我项目名称可以帮你快速生成巡检单", "ai", 'mt-3');
         const updatePreviewForm = (data) => {
             $('#field-check_item').text(data.check_item || '—');
             $('#field-check_situation').text(data.check_situation || '—');

+ 10 - 0
config/menu.js

@@ -130,6 +130,16 @@ const menu = {
         children: null,
         caption: '质量管理',
         controller: 'quality',
+        notIncludedUrl: ['/inspection'],
+    },
+    inspection: {
+        name: '质量巡检',
+        icon: 'fa-file-text-o',
+        display: true,
+        children: null,
+        caption: '质量巡检',
+        controllers: ['quality'],
+        includedUrl: { quality: ['/inspection'] },
     },
     file: {
         name: '资料管理',