七弈国象• 工作室

管理员操作手册:数据过滤规则配置

2025-04-01 15:45:51 阅读(89)

1. 配置文件的作用

配置文件用于定义应用程序的行为和规则,例如:

  • 数据过滤规则(dataRules)。

  • 需要显示的字段(showFields)。

  • 字段的配置信息(fieldConfigs)。

通过配置文件,可以实现动态调整应用程序的行为,而无需修改代码。


2. 配置文件的基本结构

配置文件通常是一个 JSON 文件,包含以下主要部分:

json
复制
{
  "dataRules": {}, // 数据过滤规则
  "showFields": [], // 需要显示的字段
  "fieldConfigs": {} // 字段配置信息
}

3. dataRules 的定义

dataRules 用于定义数据过滤规则,支持简单条件和嵌套条件。

字段说明:

  • conditions:条件列表,每个条件包含以下字段:

    • field:字段名。

    • operator:操作符(如 =!=><>=<=LIKEINBETWEEN 等)。

    • value:字段值(支持动态值,如 ${orgId})。

    • logicalOperator(可选):嵌套条件的逻辑运算符(如 ANDORNOT)。

    • conditions(可选):嵌套条件列表。

示例:

json
复制
{
  "dataRules": {
    "conditions": [
      {
        "field": "userType",
        "operator": "=",
        "value": "${orgId}"
      },
      {
        "logicalOperator": "OR",
        "conditions": [
          {
            "field": "status",
            "operator": "=",
            "value": "active"
          },
          {
            "field": "age",
            "operator": ">",
            "value": 18
          }
        ]
      }
    ]
  }
}

4. showFields 的定义

showFields 用于定义需要显示的字段列表。

字段说明:

  • 数组中的每个元素是一个字段名。

示例:

json
复制
{
  "showFields": ["id", "name", "email"]
}

5. fieldConfigs 的定义

fieldConfigs 用于定义字段的配置信息,例如字段类型、API 配置、浮层配置等。

字段说明:

  • 字段名:字段的配置信息,包含以下字段:

    • type:字段类型(如 apiwebpagepasswordrichupImage 等)。

    • autoFill(可选):是否自动填充(仅适用于 api 类型)。

    • method(可选):API 请求方法(如 GETPOST,仅适用于 api 类型)。

    • url(可选):API 路径(仅适用于 api 类型)。

    • tableName(可选):关联的表名(仅适用于 webpage 类型)。

    • fieldMappings(可选):字段映射(仅适用于 webpage 类型)。

    • displayFields(可选):浮层中显示的字段(仅适用于 webpage 类型)。

示例:

json
复制
{
  "fieldConfigs": {
    "longid": {
      "type": "webpage",
      "tableName": "7yi_member",
      "fieldMappings": {
        "longid": "longid"
      },
      "displayFields": ["id", "nick"]
    },
    "createTime": {
      "type": "api",
      "autoFill": true,
      "method": "GET",
      "url": "util/current-time"
    }
  }
}

6. 完整示例

以下是一个完整的配置文件示例:

json
复制
{
  "dataRules": {
    "conditions": [
      {
        "field": "userType",
        "operator": "=",
        "value": "${orgId}"
      },
      {
        "logicalOperator": "OR",
        "conditions": [
          {
            "field": "status",
            "operator": "=",
            "value": "active"
          },
          {
            "field": "age",
            "operator": ">",
            "value": 18
          }
        ]
      }
    ]
  },
  "showFields": ["id", "name", "email"],
  "fieldConfigs": {
    "longid": {
      "type": "webpage",
      "tableName": "7yi_member",
      "fieldMappings": {
        "longid": "longid"
      },
      "displayFields": ["id", "nick"]
    },
    "createTime": {
      "type": "api",
      "autoFill": true,
      "method": "GET",
      "url": "util/current-time"
    }
  }
}

7. 最佳实践

  1. 保持简洁

    • 只定义必要的字段和规则,避免冗余配置。

  2. 支持动态值

    • 使用 ${variable} 格式支持动态值,例如 ${orgId}

  3. 嵌套条件

    • 使用 logicalOperator 和 conditions 支持复杂的嵌套条件。

  4. 字段类型

    • 根据字段的实际用途选择合适的类型(如 apiwebpagepassword 等)。

  5. 配置文件验证

    • 在加载配置文件时,验证其结构和字段是否符合预期。


8. 配置文件加载示例

以下是一个加载配置文件的示例代码:

javascript
复制
async function loadConfig(tableName) {
  try {
    const response = await fetch(`./config/${tableName}.json`);
    if (!response.ok) {
      throw new Error(`Failed to fetch config file: ${tableName}.json`);
    }
    const config = await response.json();
    console.log("Loaded config:", config);
    return config;
  } catch (error) {
    console.error("Error loading config:", error);
    return null;
  }
}

// 示例调用
const tableName = "user";
const config = await loadConfig(tableName);
if (config) {
  console.log("Data Rules:", config.dataRules);
  console.log("Show Fields:", config.showFields);
  console.log("Field Configs:", config.fieldConfigs);
}

接口页面--全局数据:

site-> {"id":1,"name":"七弈国象","domain":"doc.7yi.link","email":"13346163791@qq.com","wx":null,"icp":"浙ICP备2023022652号-1","code":"","json":{"siteSubtitle":"• 工作室"},"title":"七弈国象-连接七弈 智慧人生","keywords":"国际象棋,棋谱,pgn,","description":"国际象棋站","createdAt":null,"updatedAt":"2023-11-09T03:50:55.000Z","template":null,"appid":null,"secret":null}

111-->• 工作室

nav-> [{"id":13,"pid":0,"name":"日常工作杂记","pinyin":"richanggongzuozaji","path":"/richanggongzuozaji","sort":4,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/cmsgaijin/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/cmsgaijin/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/richanggongzuozaji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":18,"pid":0,"name":"国象练习","pinyin":"guoxianglianxi","path":"/guoxianglianxi","sort":3,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":19,"pid":0,"name":"信息公布","pinyin":"xinxigongbu","path":"/xinxigongbu","sort":6,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":20,"pid":19,"name":"业界消息","pinyin":"yejiexiaoxi","path":"/qiyiguoxiang/yejiexiaoxi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":21,"pid":19,"name":"七弈动态","pinyin":"qiyidongtai","path":"/xinxigongbu/qiyidongtai","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]}]

category-> [{"id":13,"pid":0,"name":"日常工作杂记","pinyin":"richanggongzuozaji","path":"/richanggongzuozaji","sort":4,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/cmsgaijin/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/cmsgaijin/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/richanggongzuozaji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/cmsgaijin/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/cmsgaijin/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/richanggongzuozaji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":18,"pid":0,"name":"国象练习","pinyin":"guoxianglianxi","path":"/guoxianglianxi","sort":3,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":19,"pid":0,"name":"信息公布","pinyin":"xinxigongbu","path":"/xinxigongbu","sort":6,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":20,"pid":19,"name":"业界消息","pinyin":"yejiexiaoxi","path":"/qiyiguoxiang/yejiexiaoxi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":21,"pid":19,"name":"七弈动态","pinyin":"qiyidongtai","path":"/xinxigongbu/qiyidongtai","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":20,"pid":19,"name":"业界消息","pinyin":"yejiexiaoxi","path":"/qiyiguoxiang/yejiexiaoxi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":21,"pid":19,"name":"七弈动态","pinyin":"qiyidongtai","path":"/xinxigongbu/qiyidongtai","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]

friendlink-> [{"id":1,"title":"七弈国象首页","link":"https://www.7yi.link","sort":0,"createdAt":"2023-07-22T14:59:55.000Z"}]

base_url-> /public/template/default

frag--->{"record":"<p style=\"text-align: center;\"><a href=\"http://beian.miit.gov.cn/\" target=\"_blank\" rel=\"noopener\">浙ICP备2023022652号-1</a></p>","footer-guanyu":"","footer-7yi":"","footer-chess":"","footer-fe":"","chanyue-introduce":"<p>七弈国象:专注于国际象棋开局与战术学习的网站</p>\n<ul>\n<li>国际象棋相关工具开发:<br>\n<ul>\n<li>记谱训练</li>\n<li>识谱工具</li>\n</ul>\n</li>\n<li>国象相关产品\n<ul>\n<li>记录本</li>\n</ul>\n</li>\n<li>电商网站\n<ul>\n<li>畅享一三</li>\n</ul>\n</li>\n<li>通用后台<br>\n<ul>\n<li>7Link通用后台开发系统&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</li>\n</ul>\n</li>\n</ul>","copyright":"<p style=\"text-align: center;\">杭州七弈智慧科技有限公司版权所有</p>","ad":"<p style=\"text-align: center;\"><a href=\"https://7yi.link/stock/chess/web-mobile/\" target=\"_blank\" rel=\"noopener\"> <img style=\"display: block; margin-left: auto; margin-right: auto; max-width: 100%; height: auto;\" src=\"/public/uploads/default/2023/09/21/1695286791855_mceu_83563456911695286788809.png.png\"> </a></p>\n<p style=\"text-align: center;\"><a href=\"https://7yi.link/stock/chess/web-mobile/\" target=\"_blank\" rel=\"noopener\">开局树学习</a></p>"}

tag--->[{"id":8,"name":"双马防御","path":"shuangmafangyu"},{"id":7,"name":"开发","path":"kaifa"},{"id":6,"name":"伦敦体系","path":"lunduntixi"},{"id":5,"name":"俄罗斯防御","path":"eluosifangyu"},{"id":1,"name":"cms","path":"cms"}]

-----------

position------>[{"id":13,"pid":0,"name":"日常工作杂记","pinyin":"richanggongzuozaji","path":"/richanggongzuozaji","sort":4,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/cmsgaijin/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/richanggongzuozaji/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/kaifariji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/richanggongzuozaji/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]

navSub------>{"cate":{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/richanggongzuozaji/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},"id":15}

article------>{"id":257,"cid":15,"sub_cid":"","title":"管理员操作手册:数据过滤规则配置","short_title":"","tag_id":"","attr":"","seo_title":"","seo_keywords":"","seo_description":"","source":"","author":"","description":"","img":"","content":"<h3>1.&nbsp;<strong>配置文件的作用</strong></h3>\n<p>配置文件用于定义应用程序的行为和规则,例如:</p>\n<ul>\n<li>\n<p>数据过滤规则(<code>dataRules</code>)。</p>\n</li>\n<li>\n<p>需要显示的字段(<code>showFields</code>)。</p>\n</li>\n<li>\n<p>字段的配置信息(<code>fieldConfigs</code>)。</p>\n</li>\n</ul>\n<p>通过配置文件,可以实现动态调整应用程序的行为,而无需修改代码。</p>\n<hr>\n<h3>2.&nbsp;<strong>配置文件的基本结构</strong></h3>\n<p>配置文件通常是一个 JSON 文件,包含以下主要部分:</p>\n<div class=\"md-code-block\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner\">\n<div class=\"md-code-block-infostring\">json</div>\n<div class=\"md-code-block-action\">\n<div class=\"ds-markdown-code-copy-button\">复制</div>\n</div>\n</div>\n</div>\n<pre><span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"dataRules\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// 数据过滤规则</span>\n <span class=\"token property\">\"showFields\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// 需要显示的字段</span>\n <span class=\"token property\">\"fieldConfigs\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span> <span class=\"token comment\">// 字段配置信息</span>\n<span class=\"token punctuation\">}</span></pre>\n</div>\n<hr>\n<h3>3.&nbsp;<strong><code>dataRules</code>&nbsp;的定义</strong></h3>\n<p><code>dataRules</code>&nbsp;用于定义数据过滤规则,支持简单条件和嵌套条件。</p>\n<h4>字段说明:</h4>\n<ul>\n<li>\n<p><strong><code>conditions</code></strong>:条件列表,每个条件包含以下字段:</p>\n<ul>\n<li>\n<p><strong><code>field</code></strong>:字段名。</p>\n</li>\n<li>\n<p><strong><code>operator</code></strong>:操作符(如&nbsp;<code>=</code>,&nbsp;<code>!=</code>,&nbsp;<code>&gt;</code>,&nbsp;<code>&lt;</code>,&nbsp;<code>&gt;=</code>,&nbsp;<code>&lt;=</code>,&nbsp;<code>LIKE</code>,&nbsp;<code>IN</code>,&nbsp;<code>BETWEEN</code>&nbsp;等)。</p>\n</li>\n<li>\n<p><strong><code>value</code></strong>:字段值(支持动态值,如&nbsp;<code>${orgId}</code>)。</p>\n</li>\n<li>\n<p><strong><code>logicalOperator</code></strong>(可选):嵌套条件的逻辑运算符(如&nbsp;<code>AND</code>,&nbsp;<code>OR</code>,&nbsp;<code>NOT</code>)。</p>\n</li>\n<li>\n<p><strong><code>conditions</code></strong>(可选):嵌套条件列表。</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4>示例:</h4>\n<div class=\"md-code-block\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner\">\n<div class=\"md-code-block-infostring\">json</div>\n<div class=\"md-code-block-action\">\n<div class=\"ds-markdown-code-copy-button\">复制</div>\n</div>\n</div>\n</div>\n<pre><span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"dataRules\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"conditions\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"field\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"userType\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"operator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"=\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"${orgId}\"</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"logicalOperator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"OR\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"conditions\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"field\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"status\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"operator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"=\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"active\"</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"field\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"age\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"operator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"&gt;\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token number\">18</span>\n <span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">]</span>\n <span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">]</span>\n <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></pre>\n</div>\n<hr>\n<h3>4.&nbsp;<strong><code>showFields</code>&nbsp;的定义</strong></h3>\n<p><code>showFields</code>&nbsp;用于定义需要显示的字段列表。</p>\n<h4>字段说明:</h4>\n<ul>\n<li>\n<p>数组中的每个元素是一个字段名。</p>\n</li>\n</ul>\n<h4>示例:</h4>\n<div class=\"md-code-block\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner\">\n<div class=\"md-code-block-infostring\">json</div>\n<div class=\"md-code-block-action\">\n<div class=\"ds-markdown-code-copy-button\">复制</div>\n</div>\n</div>\n</div>\n<pre><span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"showFields\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"id\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"name\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"email\"</span><span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">}</span></pre>\n</div>\n<hr>\n<h3>5.&nbsp;<strong><code>fieldConfigs</code>&nbsp;的定义</strong></h3>\n<p><code>fieldConfigs</code>&nbsp;用于定义字段的配置信息,例如字段类型、API 配置、浮层配置等。</p>\n<h4>字段说明:</h4>\n<ul>\n<li>\n<p><strong><code>字段名</code></strong>:字段的配置信息,包含以下字段:</p>\n<ul>\n<li>\n<p><strong><code>type</code></strong>:字段类型(如&nbsp;<code>api</code>,&nbsp;<code>webpage</code>,&nbsp;<code>password</code>,&nbsp;<code>rich</code>,&nbsp;<code>upImage</code>&nbsp;等)。</p>\n</li>\n<li>\n<p><strong><code>autoFill</code></strong>(可选):是否自动填充(仅适用于&nbsp;<code>api</code>&nbsp;类型)。</p>\n</li>\n<li>\n<p><strong><code>method</code></strong>(可选):API 请求方法(如&nbsp;<code>GET</code>,&nbsp;<code>POST</code>,仅适用于&nbsp;<code>api</code>&nbsp;类型)。</p>\n</li>\n<li>\n<p><strong><code>url</code></strong>(可选):API 路径(仅适用于&nbsp;<code>api</code>&nbsp;类型)。</p>\n</li>\n<li>\n<p><strong><code>tableName</code></strong>(可选):关联的表名(仅适用于&nbsp;<code>webpage</code>&nbsp;类型)。</p>\n</li>\n<li>\n<p><strong><code>fieldMappings</code></strong>(可选):字段映射(仅适用于&nbsp;<code>webpage</code>&nbsp;类型)。</p>\n</li>\n<li>\n<p><strong><code>displayFields</code></strong>(可选):浮层中显示的字段(仅适用于&nbsp;<code>webpage</code>&nbsp;类型)。</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4>示例:</h4>\n<div class=\"md-code-block\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner\">\n<div class=\"md-code-block-infostring\">json</div>\n<div class=\"md-code-block-action\">\n<div class=\"ds-markdown-code-copy-button\">复制</div>\n</div>\n</div>\n</div>\n<pre><span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"fieldConfigs\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"longid\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"webpage\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"tableName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"7yi_member\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"fieldMappings\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"longid\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"longid\"</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"displayFields\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"id\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"nick\"</span><span class=\"token punctuation\">]</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"createTime\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"api\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"autoFill\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"method\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"GET\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"url\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"util/current-time\"</span>\n <span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></pre>\n</div>\n<hr>\n<h3>6.&nbsp;<strong>完整示例</strong></h3>\n<p>以下是一个完整的配置文件示例:</p>\n<div class=\"md-code-block\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner\">\n<div class=\"md-code-block-infostring\">json</div>\n<div class=\"md-code-block-action\">\n<div class=\"ds-markdown-code-copy-button\">复制</div>\n</div>\n</div>\n</div>\n<pre><span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"dataRules\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"conditions\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"field\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"userType\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"operator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"=\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"${orgId}\"</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"logicalOperator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"OR\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"conditions\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"field\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"status\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"operator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"=\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"active\"</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"field\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"age\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"operator\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"&gt;\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"value\"</span><span class=\"token operator\">:</span> <span class=\"token number\">18</span>\n <span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">]</span>\n <span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">]</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"showFields\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"id\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"name\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"email\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"fieldConfigs\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"longid\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"webpage\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"tableName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"7yi_member\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"fieldMappings\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"longid\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"longid\"</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"displayFields\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"id\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"nick\"</span><span class=\"token punctuation\">]</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"createTime\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"api\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"autoFill\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"method\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"GET\"</span><span class=\"token punctuation\">,</span>\n <span class=\"token property\">\"url\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"util/current-time\"</span>\n <span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></pre>\n</div>\n<hr>\n<h3>7.&nbsp;<strong>最佳实践</strong></h3>\n<ol>\n<li>\n<p><strong>保持简洁</strong>:</p>\n<ul>\n<li>\n<p>只定义必要的字段和规则,避免冗余配置。</p>\n</li>\n</ul>\n</li>\n<li>\n<p><strong>支持动态值</strong>:</p>\n<ul>\n<li>\n<p>使用&nbsp;<code>${variable}</code>&nbsp;格式支持动态值,例如&nbsp;<code>${orgId}</code>。</p>\n</li>\n</ul>\n</li>\n<li>\n<p><strong>嵌套条件</strong>:</p>\n<ul>\n<li>\n<p>使用&nbsp;<code>logicalOperator</code>&nbsp;和&nbsp;<code>conditions</code>&nbsp;支持复杂的嵌套条件。</p>\n</li>\n</ul>\n</li>\n<li>\n<p><strong>字段类型</strong>:</p>\n<ul>\n<li>\n<p>根据字段的实际用途选择合适的类型(如&nbsp;<code>api</code>,&nbsp;<code>webpage</code>,&nbsp;<code>password</code>&nbsp;等)。</p>\n</li>\n</ul>\n</li>\n<li>\n<p><strong>配置文件验证</strong>:</p>\n<ul>\n<li>\n<p>在加载配置文件时,验证其结构和字段是否符合预期。</p>\n</li>\n</ul>\n</li>\n</ol>\n<hr>\n<h3>8.&nbsp;<strong>配置文件加载示例</strong></h3>\n<p>以下是一个加载配置文件的示例代码:</p>\n<div class=\"md-code-block\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner\">\n<div class=\"md-code-block-infostring\">javascript</div>\n<div class=\"md-code-block-action\">\n<div class=\"ds-markdown-code-copy-button\">复制</div>\n</div>\n</div>\n</div>\n<pre><span class=\"token keyword\">async</span> <span class=\"token keyword\">function</span> <span class=\"token function\">loadConfig</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">tableName</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">const</span> response <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> <span class=\"token function\">fetch</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">./config/</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>tableName<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">.json</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>response<span class=\"token punctuation\">.</span>ok<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">throw</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Error</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">Failed to fetch config file: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>tableName<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">.json</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span>\n <span class=\"token keyword\">const</span> config <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> response<span class=\"token punctuation\">.</span><span class=\"token function\">json</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Loaded config:\"</span><span class=\"token punctuation\">,</span> config<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token keyword\">return</span> config<span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span>error<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">error</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Error loading config:\"</span><span class=\"token punctuation\">,</span> error<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token keyword\">return</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// 示例调用</span>\n<span class=\"token keyword\">const</span> tableName <span class=\"token operator\">=</span> <span class=\"token string\">\"user\"</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> config <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> <span class=\"token function\">loadConfig</span><span class=\"token punctuation\">(</span>tableName<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>config<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Data Rules:\"</span><span class=\"token punctuation\">,</span> config<span class=\"token punctuation\">.</span>dataRules<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Show Fields:\"</span><span class=\"token punctuation\">,</span> config<span class=\"token punctuation\">.</span>showFields<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Field Configs:\"</span><span class=\"token punctuation\">,</span> config<span class=\"token punctuation\">.</span>fieldConfigs<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></pre>\n</div>","status":0,"pv":89,"link":"","createdAt":"2024-12-26 18:31:59","updatedAt":"2025-04-01 15:45:51","field":{},"tags":[]}

article.tags------>[]

news------>[{"id":257,"title":"管理员操作手册:数据过滤规则配置","short_title":"","img":"","createdAt":"2024-12-26T10:31:59.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":256,"title":"书库后台改进计划文档","short_title":"","img":"","createdAt":"2024-12-20T09:17:33.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":255,"title":"数据库外键操作教程","short_title":"","img":"","createdAt":"2024-12-17T03:20:25.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":243,"title":"新加一下线上测试服务,用来测试新的版本","short_title":"","img":"","createdAt":"2024-07-02T08:30:27.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":235,"title":"我的棋局数据库设计","short_title":"","img":"","createdAt":"2024-06-17T01:25:17.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":218,"title":"解决 linux libstdc++版本的问题","short_title":"","img":"","createdAt":"2024-06-11T04:10:26.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":202,"title":"MongoDB的安装【转】","short_title":"","img":"","createdAt":"2024-05-02T05:26:33.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":174,"title":"使用Node.js从阿里云OSS下载文件的完整教程","short_title":"","img":"","createdAt":"2024-04-11T12:08:03.000Z","description":"","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":96,"title":"服务器最后的配置","short_title":"","img":null,"createdAt":"2023-11-08T09:50:12.000Z","description":"服务器手册","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":95,"title":"启动node js 项目","short_title":"","img":null,"createdAt":"2023-11-07T21:06:22.000Z","description":"当在服务器上初始化和启动项目时,通常需要遵循一系列步骤。以下是一个更正式的服务器手册,其中包括详细的指南,以确保成功完成这些任务。","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"}]

hot------>[{"id":218,"title":"解决 linux libstdc++版本的问题","path":"/cmsgaijin/houduan"},{"id":20,"title":"cms系统的原始文件结构","path":"/cmsgaijin/houduan"},{"id":96,"title":"服务器最后的配置","path":"/cmsgaijin/houduan"},{"id":174,"title":"使用Node.js从阿里云OSS下载文件的完整教程","path":"/cmsgaijin/houduan"},{"id":95,"title":"启动node js 项目","path":"/cmsgaijin/houduan"},{"id":16,"title":"footer文件的修改","path":"/cmsgaijin/houduan"},{"id":85,"title":"在阿里云服务器上安装Git手册","path":"/cmsgaijin/houduan"},{"id":88,"title":"MySQL 5.7 安装手册","path":"/cmsgaijin/houduan"},{"id":15,"title":"原版cms一些不满意的地方","path":"/cmsgaijin/houduan"},{"id":62,"title":"如何在windows开机就运行python的应用","path":"/cmsgaijin/houduan"}]

imgs------>[{"id":62,"title":"如何在windows开机就运行python的应用","short_title":"","img":"/public/uploads/default/2023/10/11/1696986207007_mceclip0.png.png","createdAt":"2023-10-10T17:01:29.000Z","description":"在 Windows 上使 Python 应用在系统启动时自动运行的最常见方法是使用 Windows 任务计划程序(Task Scheduler)。你可以通过以下步骤来创建一个任务,以便在开机时自动运行你的 Python 应用:","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"},{"id":15,"title":"原版cms一些不满意的地方","short_title":"","img":"/public/uploads/default/2023/09/18/1695020024527_108_108.png.png","createdAt":"2023-09-18T06:18:16.000Z","description":"1 没有初始化","pinyin":"houduan","name":"后端","path":"/cmsgaijin/houduan"}]

pre------>{"id":256,"title":"书库后台改进计划文档","name":"后端","path":"/cmsgaijin/houduan"}

next------>

E