完成了 BOM 管理和生产管理,完成部分发料单、采购计划和调拨单。

This commit is contained in:
c
2026-02-28 18:18:01 +08:00
commit 219eef4729
399 changed files with 46113 additions and 0 deletions

165
eslint.config.js Normal file
View File

@@ -0,0 +1,165 @@
import { defineConfig } from "eslint/config";
import eslint from "@eslint/js";
import globals from "globals";
import pluginVue from "eslint-plugin-vue";
import configPrettier from "eslint-config-prettier";
import pluginPrettier from "eslint-plugin-prettier";
import pluginTypeScript from "@typescript-eslint/eslint-plugin";
import * as parserVue from "vue-eslint-parser";
import * as parserTypeScript from "@typescript-eslint/parser";
import projectGlobals from "./.eslintrc-globals.js";
export default defineConfig([
eslint.configs.recommended,
{ ignores: ["**/.*", "**/dist/*", "*.d.ts", "public", "**/assets/*"] }, // 忽略文件配置单独放在一个对象,否则不生效
{
languageOptions: {
globals: {
...globals.browser,
...globals.es6,
...globals.node,
...projectGlobals,
},
},
plugins: {
prettier: pluginPrettier,
},
// 不指定 files则默认是所有文件生效
rules: {
...configPrettier.rules,
...pluginPrettier.configs.recommended.rules,
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", // 禁用 debugger
"no-unused-vars": [process.env.NODE_ENV === "production" ? "warn" : "warn", { vars: "all", args: "none" }], // 禁止出现未使用的变量,函数和函数的参数
"no-undef": process.env.NODE_ENV === "production" ? "warn" : "warn", // 禁用未声明的变量,除非它们在 /*global */ 注释中被提到
"no-console": "off", // 禁用 console
"accessor-pairs": "error", // 强制 getter 和 setter 在对象中成对出现
eqeqeq: ["error", "always", { null: "ignore" }], // 要求使用 === 和 !==
"no-class-assign": "error", // 禁止修改类声明的变量
"no-cond-assign": "error", // 禁止条件表达式中出现赋值操作符
"no-const-assign": "error", // 禁止修改 const 声明的变量
"no-dupe-keys": "error", // 禁止对象字面量中出现重复的 key
"no-empty-pattern": "error", // 禁止使用空解构模式
"no-extra-boolean-cast": "error", // 禁止不必要的布尔转换
"no-func-assign": "error", // 禁止对 function 声明重新赋值
"no-irregular-whitespace": "error", // 禁止不规则的空白
"no-label-var": "error", // 不允许标签与变量同名
"no-labels": ["error", { allowLoop: false, allowSwitch: false }], // 禁用标签语句
"no-lone-blocks": "error", // 禁用不必要的嵌套块
"no-multi-str": "error", // 禁止多行字符串
"no-global-assign": "error", // 不允许修改只读全局变量
"no-new-native-nonconstructor": "error", // 禁止 new Symbol、new Array、new Map 等
"no-new-wrappers": "error", // 禁止对 StringNumber 和 Boolean 使用 new 操作符
"no-obj-calls": "error", // 禁止把全局对象作为函数调用
"no-redeclare": "error", // 禁止多次声明同一变量
"no-return-assign": ["error", "except-parens"], // 禁止在 return 语句中使用赋值语句
"no-self-assign": "error", // 禁止自我赋值
"no-self-compare": "error", // 禁止自身比较
"no-sequences": "error", // 禁用逗号操作符
"func-call-spacing": "error", // 要求或禁止在函数标识符和其调用之间有空格
"no-undef-init": "error", // 禁止将变量初始化为 undefined
"no-unmodified-loop-condition": "error", // 该规则查找循环条件内的引用,然后检查这些引用的变量是否在循环中被修改
"no-unneeded-ternary": ["error", { defaultAssignment: false }], // 当存在更简单的选择时,此规则不允许三元运算符
"no-unreachable": "error", // 禁止在 return、throw、continue 和 break 语句后出现不可达代码
"no-unreachable-loop": "error", // 禁止循环体允许一次迭代的循环
"prefer-const": "error", // 要求使用 const 声明那些声明后不再被修改的变量
"no-useless-escape": "off", // 取消不必要的转义字符
},
},
{
files: ["**/*.vue"],
languageOptions: {
parser: parserVue,
parserOptions: {
parser: "@typescript-eslint/parser",
ecmaVersion: "latest",
ecmaFeatures: {
jsx: true,
},
extraFileExtensions: [".vue"],
sourceType: "module",
},
},
plugins: {
vue: pluginVue,
},
processor: pluginVue.processors[".vue"],
rules: {
...pluginVue.configs.base.rules,
...pluginVue.configs["essential"].rules,
...pluginVue.configs["recommended"].rules,
// vue (https://eslint.vuejs.org/rules)
"vue/v-slot-style": "error", // 强制执行 v-slot 指令样式
"vue/no-mutating-props": "off", // 不允许组件 prop 的改变
"vue/custom-event-name-casing": "off", // 为自定义事件名称强制使用特定大小写
"vue/attributes-order": "off", // vue api 使用顺序,强制执行属性顺序
"vue/one-component-per-file": "off", // 强制每个组件都应该在自己的文件中
"vue/html-closing-bracket-newline": "off", // 在标签的右括号之前要求或禁止换行
"vue/max-attributes-per-line": "off", // 强制每行的最大属性数
"vue/attribute-hyphenation": "off", // 对模板中的自定义组件强制执行属性命名样式
"vue/require-default-prop": "off", // 此规则要求为每个 prop 为必填时,必须提供默认值
"vue/multi-word-component-names": "off", // 要求组件名称始终为 “-” 链接的单词
"vue/valid-template-root": "off",
"vue/singleline-html-element-content-newline": "off", // 在单行元素的内容之前和之后需要换行符
"vue/multiline-html-element-content-newline": "off", // 在多行元素的内容之前和之后需要换行符
"vue/no-v-html": "off", // 禁止使用 v-html 来防止 XSS 攻击
},
},
{
files: ["**/*.?([cm])ts", "**/*.?([cm])tsx"],
languageOptions: {
// 使用了 @typescript-eslint/parser 解析器,下面 parserOptions 是该解析器的配置信息官网参考https://typescript.eslint.org.cn/packages/parser/#jsxpragma
parser: parserTypeScript,
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
warnOnUnsupportedTypeScriptVersion: false,
},
},
plugins: {
"@typescript-eslint": pluginTypeScript,
},
rules: {
...pluginTypeScript.configs.strict.rules,
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/no-redeclare": "error",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/prefer-as-const": "warn",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-unused-expressions": "off",
"@typescript-eslint/no-unsafe-function-type": "off",
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-wrapper-object-types": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/consistent-type-imports": [
"off",
{ disallowTypeAnnotations: false, fixStyle: "inline-type-imports" },
],
"@typescript-eslint/prefer-literal-enum-member": ["error", { allowBitwiseExpressions: true }],
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
},
],
"@typescript-eslint/no-dynamic-delete": "off",
},
},
{
files: ["**/*.d.ts"],
rules: {
"import/no-duplicates": "off",
},
},
{
files: ["**/*.?([cm])js"],
rules: {
"@typescript-eslint/no-require-imports": "off",
"@typescript-eslint/no-var-requires": "off",
},
},
]);