Skip to content

脚本

生成 rich tabel 表头

  • 此脚本用于普通表格改造为漏斗表格
  • 将查询条件 转换为 漏斗的查询条件
js
import fs from 'fs'
// const fs = require('fs')
/**
 * 此脚本用于普通表格改造为漏斗表格
 * 将查询条件 转换为 漏斗的查询条件
 */
try {
  const data = await fs.promises.readFile(
    'D:/WorkSpace/****/index.vue',
    'utf8'
  )
  const reg = /<([\w-]+)\n?\s*[\w"'=]*\n?\s*v-model=["']\w*[Ff]orm\.(\w+)/g
  const types = [
    { condition: 'include', value: ['input'], valueType: 'string' },
    { condition: 'eq', value: ['select', 'TrDict'], valueType: 'string' },
    { condition: 'between', value: ['date'], valueType: 'datetime' },
  ]
  // console.log([...data.matchAll(reg)].length)
  const filtersArr = [...data.matchAll(reg)].map((item) => {
    const type = item[1]
    console.log(type)
    const filed = item[2]
    console.log(filed)
    const { condition, valueType } = types.find((typeItem) => {
      return typeItem.value.find((valueItem) =>
        type.toLowerCase().includes(valueItem.toLowerCase())
      )
    }) ?? {
      condition: 'noKey',
      valueType: 'noValue',
    }
    return [filed, { condition, valueType }]
  })
  const filters = Object.fromEntries(filtersArr)
  console.log({ filters })
} catch (err) {
  console.error('Error:', err)
}

生成 markdown include 路径

js
export default {
  // 相对路径
  // watch: ['../../../../../front-end/DesignPatterns/md/*.md'],
  // 根目录路径
  // watch: ['docs/front-end/javaScript/ES6/md/*.md'],
  watch: ['docs/front-end/DesignPatterns/md/*.md'],
  // watch: ['docs/back-end/Lang/NodeJs/Book/note/**/*.md'],
  load(watchedFiles) {
    const files = watchedFiles.sort((pre,next)=>{
      const preNum = pre.match(/(\d+)[、-]?/)
      const nextNum = next.match(/(\d+)[、-]?/)
      if(preNum === null || nextNum===null)return 0
      return preNum[1] - nextNum[1]
    })
    // .map(item => {
    // // 相对路径 => ./md/${文件名}
    //   const path = item.match(/\/([^\/]+)$/)[1]
    //   return  `<!--@include: ./md/${path}-->`.replaceAll(/\\/g,'/')
    // })
    .map(item => {
    // 根路径 => ./md/${文件名}
      const path = item.replace("docs","@")
      return  `<!--@include: ${path}-->`.replaceAll(/\\/g,'/')
    })
    return files
  },
}
md
<script setup>
  /**
   * ./include/index.data.js
   * 这里多添加./include
   * 是因为include/index.md被Script./index.md引入
   * index.data.js是相对Script./index.md 而言的
   */
  import { data } from '@/back-end/Lang/NodeJs/Script/include/index.data.js'
</script>

<div v-for="i in data">
{{i}}
</div>
<!--@include: @/front-end/DesignPatterns/md/1、单例模式.md-->
<!--@include: @/front-end/DesignPatterns/md/2、策略模式.md-->
<!--@include: @/front-end/DesignPatterns/md/3、代理模式.md-->
<!--@include: @/front-end/DesignPatterns/md/4、迭代器模式.md-->
<!--@include: @/front-end/DesignPatterns/md/5、订阅发布者模式.md-->
<!--@include: @/front-end/DesignPatterns/md/6、命令模式.md-->
<!--@include: @/front-end/DesignPatterns/md/7、组合模式.md-->
<!--@include: @/front-end/DesignPatterns/md/8、模板方法模式.md-->
<!--@include: @/front-end/DesignPatterns/md/9、享元模式.md-->
<!--@include: @/front-end/DesignPatterns/md/10、职责链模式.md-->
<!--@include: @/front-end/DesignPatterns/md/11、中介者模式.md-->
<!--@include: @/front-end/DesignPatterns/md/12、装饰者模式.md-->
<!--@include: @/front-end/DesignPatterns/md/13、状态模式.md-->
<!--@include: @/front-end/DesignPatterns/md/14、适配器模式.md-->