Kaynağa Gözat

Merge branch 'master' of http://smartcost.in.8866.org:26903/maixinrong/calculation

maixinrong 5 yıl önce
ebeveyn
işleme
c015c73223

+ 4 - 1
app/controller/dashboard_controller.js

@@ -36,6 +36,8 @@ module.exports = app => {
             // 获取销售人员数据
             const salesmanData = await ctx.service.manager.getDataById(projectData.manager_id);
             const officeName = officeList[salesmanData.office];
+            // 获取版本信息
+            const versionList = await ctx.service.version.getAllDataByCondition({ orders: [['id', 'desc']], limit: 5, offset: 0 });
             const renderData = {
                 auditTenders,
                 auditStages,
@@ -54,8 +56,9 @@ module.exports = app => {
                 projectData,
                 salesmanData,
                 officeName,
+                versionList: JSON.parse(JSON.stringify(versionList).replace(/\\r\\n/g, '<br>'))
             };
-            await this.layout('dashboard/index.ejs', renderData);
+            await this.layout('dashboard/index.ejs', renderData, 'dashboard/modal.ejs');
             await ctx.service.projectAccount.defaultUpdate({
                 id: this.ctx.session.sessionUser.accountId,
                 last_notice: new Date(),

+ 8 - 4
app/public/report/js/rpt_main.js

@@ -295,8 +295,10 @@ let zTreeOprObj = {
                     ROLE_REL_LIST = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
                     STAGE_AUDIT = result.stageAudit;
                     rptSignatureHelper.originalRoleRelList = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
-                    rptSignatureHelper.mergeSignDate(pageRst);
-                    rptSignatureHelper.mergeSignature(pageRst);
+                    if (current_stage_status === 3) {
+                        rptSignatureHelper.mergeSignDate(pageRst);
+                        rptSignatureHelper.mergeSignature(pageRst);
+                    }
                 } else {
                     CURRENT_ROLE_REL_ID = -1;
                     ROLE_REL_LIST = [];
@@ -581,8 +583,10 @@ let rptControlObj = {
                         }
                         for (let idx = 0; idx < result.data.length; idx++) {
                             let pageData = result.data[idx];
-                            rptSignatureHelper.mergeSignDate();
-                            rptSignatureHelper.mergeSignature(pageData);
+                            if (current_stage_status === 3) {
+                                rptSignatureHelper.mergeSignDate();
+                                rptSignatureHelper.mergeSignature(pageData);
+                            }
                             JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[idx], signatureRelArr);
                         }
                     },

+ 2 - 2
app/public/report/js/rpt_signature.js

@@ -311,7 +311,7 @@ let rptSignatureHelper = {
                                 if (role_rel.sign_date !== '') {
                                     sCell.Value = role_rel.sign_date.Format(role_rel.sign_date_format);
                                 } else {
-                                    sCell.Value = '';
+                                    // sCell.Value = '';
                                 }
                             }
                         }
@@ -476,7 +476,7 @@ let rptSignatureHelper = {
                             if (role_rel.sign_date !== '') {
                                 sCell.Value = role_rel.sign_date.Format(role_rel.sign_date_format);
                             } else {
-                                sCell.Value = '';
+                                // sCell.Value = '';
                             }
                         }
                     }

+ 73 - 0
app/service/version.js

@@ -0,0 +1,73 @@
+'use strict';
+
+/**
+ * 版本数据模型
+ *
+ * @author CaiAoLin
+ * @date 2017/10/25
+ * @version
+ */
+
+module.exports = app => {
+
+    class Version extends app.BaseService {
+
+        /**
+         * 构造函数
+         *
+         * @param {Object} ctx - egg全局变量
+         * @return {void}
+         */
+        constructor(ctx) {
+            super(ctx);
+            this.tableName = 'version';
+        }
+
+        /**
+         * 校验规则
+         *
+         * @return {Object} - 返回校验规则
+         */
+        rule() {
+            return {
+                name: { type: 'string', required: true, allowEmpty: false },
+                content: { type: 'string', required: false, allowEmpty: true },
+            };
+        }
+
+        /**
+         * 查找数据
+         *
+         * @param {Object} data - 筛选表单中的get数据
+         * @return {void}
+         */
+        searchFilter(data) {
+            this.initSqlBuilder();
+        }
+
+        /**
+         * 保存数据
+         *
+         * @param {Object} data - post过来的数据
+         * @param {Number} id - 用于判断修改还是新增的id
+         * @return {boolean} - 操作结果
+         */
+        async save(data, id = 0) {
+            id = parseInt(id);
+            id = isNaN(id) ? 0 : id;
+            delete data._csrf;
+
+            if (id > 0) {
+                delete data.create_time;
+                data.id = id;
+            }
+
+            const operate = id === 0 ? await this.db.insert(this.tableName, data) :
+                await this.db.update(this.tableName, data);
+
+            return operate.affectedRows > 0;
+        }
+    }
+
+    return Version;
+};

+ 7 - 0
app/view/dashboard/index.ejs

@@ -197,6 +197,13 @@
                             <% } %>
                         </ul>
                     </div>
+                    <% if (versionList.length > 0) { %>
+                    <div class="card mt-2">
+                        <div class="card-body">
+                            <a href="#version" data-toggle="modal" data-target="#version">当前版本:<%= versionList[0].name %></a>
+                        </div>
+                    </div>
+                    <% } %>
                 </div>
             </div>
         </div>

+ 27 - 0
app/view/dashboard/modal.ejs

@@ -0,0 +1,27 @@
+<% if (versionList.length > 0) { %>
+<div class="modal fade" id="version" 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="modal-height-500" style="overflow-y:auto">
+                    <% for (const version of versionList) { %>
+                    <div class="card mt-2">
+                        <div class="card-body">
+                            <h4><%- version.name %></h4>
+                            <p class="card-text"><%= moment(version.create_time * 1000).format('YYYY-MM-DD') %></p>
+                            <p class="card-text"><%- version.content %></p>
+                        </div>
+                    </div>
+                    <% } %>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
+            </div>
+        </div>
+    </div>
+</div>
+<% } %>

+ 6 - 5
app/view/report/index.ejs

@@ -347,11 +347,12 @@
     }
 
     function setupSignature() {
-        if (current_stage_status === 3) {
-            $('#pnl_eSignature')[0].style.display = '';
-        } else {
-            $('#pnl_eSignature')[0].style.display = 'none';
-        }
+//        if (current_stage_status === 3) {
+//            $('#pnl_eSignature')[0].style.display = '';
+//        } else {
+//            $('#pnl_eSignature')[0].style.display = 'none';
+//        }
+        // 用户可以设置,但只有审核通过后才显示签名
     }
 
     function setupDateFormat() {

+ 1 - 1
app/view/report/rpt_all_popup.ejs

@@ -160,7 +160,7 @@
     <div class="modal-dialog" role="document">
         <div class="modal-content">
             <div class="modal-header">
-                <h5 class="modal-title">设置电子签名</h5>
+                <h5 class="modal-title">设置电子签名(审核通过后才显示)</h5>
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                     <span aria-hidden="true">&times;</span>
                 </button>