Selaa lähdekoodia

额外备注相关

MaiXinRong 1 vuosi sitten
vanhempi
commit
ca475d2210

+ 23 - 1
app/const/setting.js

@@ -29,10 +29,31 @@ const loginWay = {
     extraPsw: 1, // 副密码登录
 };
 
+const exMemoPos = [
+    { key: 'memo', hint: '该列位于备注之后' },
+    { key: 'name', hint: '该列位于名称之后' },
+];
+
+const exMemoPosRange = (function () {
+    const range = {
+        ex_memo1: [],
+        ex_memo2: ['memo', 'name'],
+        ex_memo3: [],
+    };
+    const result = {};
+    for (const r in range) {
+        result[r] = [];
+        for (const k of range[r]) {
+            result[r].push(exMemoPos.find(x => { return x.key === k; }))
+        }
+    }
+    return result;
+})();
+
 const sjsRela = {
     ledgerCol: [
         { field: 'ex_memo1', name: '备注1', show: 0, alias: '', hint: '该列显示于名称之前' },
-        { field: 'ex_memo2', name: '备注2', show: 0, alias: '', hint: '该列显示于备注之后' },
+        { field: 'ex_memo2', name: '备注2', show: 0, alias: '', pos: 'memo', hint: '该列显示于备注之后' },
         { field: 'ex_memo3', name: '备注3', show: 0, alias: '', hint: '该列显示于备注之后' },
     ]
 };
@@ -45,4 +66,5 @@ module.exports = {
     listPath,
     loginWay,
     sjsRela,
+    exMemoPos, exMemoPosRange,
 };

+ 1 - 1
app/controller/setting_controller.js

@@ -849,7 +849,7 @@ module.exports = app => {
                 }
                 const showList = await ctx.service.settingShow.getList(projectData.page_path);
                 const sjsRela = await ctx.service.project.getSjsRela(projectId);
-                const renderData = { projectData, showList, sjsRela };
+                const renderData = { projectData, showList, sjsRela, settingConst };
                 await this.layout('setting/show.ejs', renderData);
             } catch (error) {
                 this.log(error);

+ 15 - 2
app/lib/spread_setting.js

@@ -41,10 +41,23 @@ function refreshSpreadShow(sjsRela, sjsSetting) {
     for (const field of sjsRela) {
         if (field.show) {
             for (const ss of sjsSettings) {
-                const lCol = ss.cols.find(x => {
+                const lColIndex = ss.cols.findIndex(x => {
                     return x.field === field.field;
                 });
-                if (lCol) lCol.title = field.alias || field.name;
+                const lCol = ss.cols[lColIndex];
+                if (lCol) {
+                    lCol.title = field.alias || field.name;
+                    if (field.pos) {
+                        const preColIndex = ss.cols.findIndex(x => {
+                            return x.field === field.pos;
+                        });
+                        const preCol = ss.cols[preColIndex];
+                        if (preCol && preColIndex !== lColIndex - 1) {
+                            ss.cols.splice(lColIndex, 1);
+                            ss.cols.splice(preColIndex + 1, 0, lCol);
+                        }
+                    }
+                }
             }
         } else {
             for (const ss of sjsSetting) {

+ 13 - 1
app/view/setting/show.ejs

@@ -53,7 +53,19 @@
                                             <input type="text" class="form-control" value="<%- sl.alias %>" onchange="updateColAlias('ledgerCol', '<%- sl.field%>', this);">
                                         </div>
                                     </td>
-                                    <td><span class="form-control-sm text-warning"><%- sl.hint || '' %></span></td>
+                                    <td>
+                                        <% if (sl.pos) { %>
+                                        <div class="input-group input-group-sm">
+                                            <select class="form-control form-control-sm" onchange="updateColPos('ledgerCol', '<%- sl.field%>', this)" value="<%- sl.pos %>" org="<%- sl.pos %>">
+                                                <% for (const r of settingConst.exMemoPosRange[sl.field]) { %>
+                                                <option value="<%- r.key %>" <% if (sl.pos === r.key) {%>selected<% } %>><%- r.hint %></option>
+                                                <% } %>
+                                            </select>
+                                        </div>
+                                        <% } else { %>
+                                        <span class="form-control-sm text-warning"><%- sl.hint || '' %></span>
+                                        <% } %>
+                                    </td>
                                 </tr>
                                 <% } %>
                                 </tbody>