Browse Source

2026-04-02

master
庄锐波 7 months ago
parent
commit
6b90d66ced
  1. 149
      zdxt-web-client/zdxt-enforcement-code-app/.eslintrc.js
  2. 27
      zdxt-web-client/zdxt-enforcement-code-app/.gitignore
  3. 127
      zdxt-web-client/zdxt-enforcement-code-app/LICENSE
  4. 36
      zdxt-web-client/zdxt-enforcement-code-app/README.en.md
  5. 341
      zdxt-web-client/zdxt-enforcement-code-app/README.md
  6. 5
      zdxt-web-client/zdxt-enforcement-code-app/babel.config.js
  7. 106
      zdxt-web-client/zdxt-enforcement-code-app/docs/.vitepress/config.js
  8. 17
      zdxt-web-client/zdxt-enforcement-code-app/docs/.vitepress/theme/index.ts
  9. 139
      zdxt-web-client/zdxt-enforcement-code-app/docs/.vitepress/theme/style.css
  10. 1
      zdxt-web-client/zdxt-enforcement-code-app/docs/guide/index.md
  11. 17
      zdxt-web-client/zdxt-enforcement-code-app/docs/index.md
  12. 1
      zdxt-web-client/zdxt-enforcement-code-app/docs/plugin/index.md
  13. 13
      zdxt-web-client/zdxt-enforcement-code-app/index.html
  14. 25
      zdxt-web-client/zdxt-enforcement-code-app/index.md
  15. 86
      zdxt-web-client/zdxt-enforcement-code-app/package.json
  16. BIN
      zdxt-web-client/zdxt-enforcement-code-app/preview/home.jpeg
  17. BIN
      zdxt-web-client/zdxt-enforcement-code-app/preview/分类.jpeg
  18. BIN
      zdxt-web-client/zdxt-enforcement-code-app/preview/地址二.jpeg
  19. BIN
      zdxt-web-client/zdxt-enforcement-code-app/preview/我的.jpeg
  20. BIN
      zdxt-web-client/zdxt-enforcement-code-app/preview/登录.jpeg
  21. BIN
      zdxt-web-client/zdxt-enforcement-code-app/preview/购物车.jpeg
  22. 29
      zdxt-web-client/zdxt-enforcement-code-app/src/App.vue
  23. 3
      zdxt-web-client/zdxt-enforcement-code-app/src/api/Classify.js
  24. 25
      zdxt-web-client/zdxt-enforcement-code-app/src/api/Home.js
  25. 2
      zdxt-web-client/zdxt-enforcement-code-app/src/api/My.js
  26. 4
      zdxt-web-client/zdxt-enforcement-code-app/src/api/ShopCard.js
  27. 19
      zdxt-web-client/zdxt-enforcement-code-app/src/api/administrative.js
  28. 4
      zdxt-web-client/zdxt-enforcement-code-app/src/api/common.js
  29. 195
      zdxt-web-client/zdxt-enforcement-code-app/src/api/enforce.js
  30. 182
      zdxt-web-client/zdxt-enforcement-code-app/src/api/enterprise.js
  31. 9
      zdxt-web-client/zdxt-enforcement-code-app/src/api/linkage.js
  32. 21
      zdxt-web-client/zdxt-enforcement-code-app/src/api/pdf.worker.min.mjs
  33. 56979
      zdxt-web-client/zdxt-enforcement-code-app/src/api/pdf.worker.mjs
  34. 10
      zdxt-web-client/zdxt-enforcement-code-app/src/api/user.js
  35. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bad.png
  36. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_analy_card.jpg
  37. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_analy_card_2.jpg
  38. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_analy_v4.jpg
  39. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_c.jpg
  40. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_count.jpg
  41. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_el.jpg
  42. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/code-ex.jpg
  43. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/com_sign.png
  44. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-bad-dis.png
  45. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-bad.png
  46. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-good-dis.png
  47. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-good.png
  48. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-verygood-dis.png
  49. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-verygood.png
  50. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/good.png
  51. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/home.jpeg
  52. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_60add.png
  53. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_addr.png
  54. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_arbw.png
  55. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_attach.png
  56. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_jd.png
  57. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_notice.png
  58. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_notice2.png
  59. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_notice3.png
  60. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_remind.png
  61. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_remind2.png
  62. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_sou.png
  63. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_check.jpg
  64. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_checkc.jpg
  65. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_code.jpg
  66. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_complain.jpg
  67. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_count.jpg
  68. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_scan.jpg
  69. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_scan2.jpg
  70. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/login.jpg
  71. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/logo.png
  72. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/make.png
  73. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/nodata.png
  74. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/onbad.png
  75. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/ongood.png
  76. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/orange.png
  77. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/plan.png
  78. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/red.png
  79. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/scan-btn.jpg
  80. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/scan-mean.jpg
  81. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/scan.png
  82. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg.png
  83. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg1.png
  84. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg1_1.png
  85. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg_1.png
  86. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_shine_org.gif
  87. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_shine_red.gif
  88. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_shine_yel.gif
  89. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/warn.png
  90. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/yellow.png
  91. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/分类.jpeg
  92. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/地址1.jpeg
  93. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/地址二.jpeg
  94. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/我的.jpeg
  95. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/购物车.jpeg
  96. BIN
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/logo.png
  97. 35
      zdxt-web-client/zdxt-enforcement-code-app/src/assets/style/index.less
  98. 22
      zdxt-web-client/zdxt-enforcement-code-app/src/common/globalConfigure.js
  99. 19
      zdxt-web-client/zdxt-enforcement-code-app/src/common/globalConstant.js
  100. 5
      zdxt-web-client/zdxt-enforcement-code-app/src/common/globalEventBus.js

149
zdxt-web-client/zdxt-enforcement-code-app/.eslintrc.js

@ -0,0 +1,149 @@
// https://eslint.org/docs/user-guide/configuring
module.exports = {
//此项是用来告诉eslint找当前配置文件不能往父级查找
root: true,
//此项是用来指定eslint解析器的,解析器必须符合规则,babel-eslint解析器是对babel解析器的包装使其与ESLint解析
parser: "babel-eslint",
//此项是用来指定javaScript语言类型和风格,sourceType用来指定js导入的方式,默认是script,此处设置为module,指某块导入方式
parserOptions: {
// 设置 script(默认) 或 module,如果代码是在ECMASCRIPT中的模块
sourceType: "module",
ecmaVersion: 6,
ecmaFeatures: {
jsx: true,
},
},
// 此项指定环境的全局变量,下面的配置指定为浏览器环境
env: {
browser: true,
node: true,
commonjs: true,
es6: true,
amd: true,
},
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
// 此项是用来配置标准的js风格,就是说写代码的时候要规范的写,如果你使用vs-code我觉得应该可以避免出错
extends: "vue",
// 此项是用来提供插件的,插件名称省略了eslint-plugin-,下面这个配置是用来规范html的
plugins: ["html", "flow-vars", "react"],
/*
下面这些rules是用来设置从插件来的规范代码的规则,使用必须去掉前缀eslint-plugin-
主要有如下的设置规则,可以设置字符串也可以设置数字,两者效果一致
"off" -> 0 关闭规则
"warn" -> 1 开启警告规则
"error" -> 2 开启错误规则
*/
rules: {
// 不需要
"space-before-function-paren": 0, // 函数定义时括号前面要不要有空格
"eol-last": 0, // 文件以单一的换行符结束
"no-extra-semi": 0, // 可以多余的冒号
semi: 0, // 语句可以不需要分号结尾
eqeqeq: 0, // 必须使用全等
"one-var": 0, // 连续声明
"no-undef": 0, // 可以 有未定义的变量
// 警告
"no-extra-boolean-cast": 1, // 不必要的bool转换
"no-extra-parens": 1, // 非必要的括号
"no-empty": 1, // 块语句中的内容不能为空
"no-use-before-define": [1, "nofunc"], // 未定义前不能使用
complexity: [1, 10], // 循环复杂度
"no-unused-vars": 1, // 不能有声明后未被使用的变量或参数
// vue
"flow-vars/define-flow-type": 1,
"flow-vars/use-flow-type": 1,
// react
"react/jsx-uses-react": 2,
"react/jsx-uses-vars": 2,
// 错误
"comma-dangle": [2, "never"], // 对象字面量项尾不能有逗号
"no-debugger": 2, // 禁止使用debugger
"no-constant-condition": 2, // 禁止在条件中使用常量表达式 if(true) if(1)
"no-dupe-args": 2, // 函数参数不能重复
"no-dupe-keys": 2, // 在创建对象字面量时不允许键重复 {a:1,a:1}
"no-duplicate-case": 2, // switch中的case标签不能重复
"no-empty-character-class": 2, // 正则表达式中的[]内容不能为空
"no-invalid-regexp": 2, // 禁止无效的正则表达式
"no-func-assign": 2, // 禁止重复的函数声明
"valid-typeof": 2, // 必须使用合法的typeof的值
"no-unreachable": 2, // 不能有无法执行的代码
"no-unexpected-multiline": 2, // 避免多行表达式
"no-sparse-arrays": 2, // 禁止稀疏数组, [1,,2]
"no-shadow-restricted-names": 2, // 严格模式中规定的限制标识符不能作为声明时的变量名使用
"no-cond-assign": 2, // 禁止在条件表达式中使用赋值语句
"no-native-reassign": 2, // 不能重写native对象
// 代码风格
"no-else-return": 1, // 如果if语句里面有return,后面不能跟else语句
"no-multi-spaces": 1, // 不能用多余的空格
"key-spacing": [
1,
{
// 对象字面量中冒号的前后空格
beforeColon: false,
afterColon: true,
},
],
"block-scoped-var": 2, // 块语句中使用var
"consistent-return": 2, // return 后面是否允许省略
"accessor-pairs": 2, // 在对象中使用getter/setter
"dot-location": [2, "property"], // 对象访问符的位置,换行的时候在行首还是行尾
"no-lone-blocks": 2, // 禁止不必要的嵌套块
"no-labels": 2, // 禁止标签声明
"no-extend-native": 2, // 禁止扩展native对象
"no-floating-decimal": 2, // 禁止省略浮点数中的0 .5 3.
"no-loop-func": 2, // 禁止在循环中使用函数(如果没有引用外部变量不形成闭包就可以)
"no-new-func": 2, // 禁止使用new Function
"no-self-compare": 2, // 不能比较自身
"no-sequences": 2, // 禁止使用逗号运算符
"no-throw-literal": 2, // 禁止抛出字面量错误 throw "error";
"no-return-assign": [2, "always"], // return 语句中不能有赋值表达式
"no-redeclare": [
2,
{
// 禁止重复声明变量
builtinGlobals: true,
},
],
"no-unused-expressions": [
2,
{
// 禁止无用的表达式
allowShortCircuit: true,
allowTernary: true,
},
],
"no-useless-call": 2, // 禁止不必要的call和apply
"no-useless-concat": 2,
"no-void": 2, // 禁用void操作符
"no-with": 2, // 禁用with
"space-infix-ops": 2, // 中缀操作符周围要不要有空格
"valid-jsdoc": [
2,
{
// jsdoc规则
requireParamDescription: true,
requireReturnDescription: true,
},
],
"no-warning-comments": [
2,
{
// 不能有警告备注
terms: ["todo", "fixme", "any other term"],
location: "anywhere",
},
],
curly: 1, // 必须使用 if(){} 中的{}
// common js
"no-duplicate-imports": 1,
},
};

27
zdxt-web-client/zdxt-enforcement-code-app/.gitignore

@ -0,0 +1,27 @@
.DS_Store
node_modules
/dist
/configs
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
package-lock.json
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
*.zip
docs/.vitepress/cache
package-lock.json

127
zdxt-web-client/zdxt-enforcement-code-app/LICENSE

@ -0,0 +1,127 @@
木兰宽松许可证, 第2版
木兰宽松许可证, 第2版
2020年1月 http://license.coscl.org.cn/MulanPSL2
您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束:
0. 定义
“软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
“贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
“贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
“法人实体”是指提交贡献的机构及其“关联实体”。
“关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
1. 授予版权许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。
2. 授予专利许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。
3. 无商标许可
“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。
4. 分发限制
您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
5. 免责声明与责任限制
“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。
6. 语言
“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。
条款结束
如何将木兰宽松许可证,第2版,应用到您的软件
如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:
1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;
3, 请将如下声明文本放入每个源文件的头部注释中。
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
Mulan Permissive Software License,Version 2
Mulan Permissive Software License,Version 2 (Mulan PSL v2)
January 2020 http://license.coscl.org.cn/MulanPSL2
Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions:
0. Definition
Software means the program and related documents which are licensed under this License and comprise all Contribution(s).
Contribution means the copyrightable work licensed by a particular Contributor under this License.
Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License.
Legal Entity means the entity making a Contribution and all its Affiliates.
Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity.
1. Grant of Copyright License
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not.
2. Grant of Patent License
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken.
3. No Trademark License
No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4.
4. Distribution Restriction
You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software.
5. Disclaimer of Warranty and Limitation of Liability
THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
6. Language
THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL.
END OF THE TERMS AND CONDITIONS
How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software
To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps:
i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner;
ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package;
iii Attach the statement to the appropriate annotated syntax at the beginning of each source file.
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.

36
zdxt-web-client/zdxt-enforcement-code-app/README.en.md

@ -0,0 +1,36 @@
# vue3+vant3+h5
#### Description
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

341
zdxt-web-client/zdxt-enforcement-code-app/README.md

@ -0,0 +1,341 @@
# vue3+vant4
## 项目地址
<a href="https://www.lanlianjiu.xyz/#/login" target="_blank">vue项目演示</a><br/>
<a href="http://www.react.lanlianjiu.xyz/#/login" target="_blank">react项目演示</a><br/>
<span>react项目代码:<a href="https://gitee.com/674074365/react-antd-h5" target="_blank">react项目代码</a></span>
## 环境版本
```
npm-check-updates@16.14.12 (ncu -u)
nvm@1.1.11
node@20.0.0
npm@9.6.4
```
## 项目重要知识点
```html
(keep-alive分支采用回调函数方式实现页面缓存前进触发初始化函数后退达到页面缓存效果,当前分支采用的是中央事件总线通知的形式实现)
1. 采用 vue3 + vite + pinia
2.可通过配置路由实现页面缓存效果(路由插件+中央事件总线+keep-alive组件+component组件构成)
3. 使用 unplugin-auto-import
插件实现自动导入库、方法、函数、自定义等,以$global为前缀作为全局自动导入
4.使用unplugin-vue-components 插件实现自动导入UI库、指定文件下自动全局导入作为组件
5.通过模块化配置vite插件,在vite-config/plugins文件夹下配置vite插件
6.全局方法、变量有:$globalReady、$globalStore、$globalRegisterStore、$globalEventBus
$globalLang、$globalConfigure、$globalHttp、$globalRequestUrl、$globalRequest
$globalConstant、$globalRouter、$globalRouterModules、$globalExpandRouter
```
## 脚手架
master 分支使用 vite + pinia
## 项目安装
```
npm install 或 cnpm install
```
## 项目启动
```
npm run vite
```
## 项目打包
```
npm run build:dev
npm run build:prod
```
## 项目目录结构
```
|-- src
| |-- api // api地址
| |-- assets // 样式以及图片
| |-- common // 公用模块
| | |-- globalConfigure.js // 全局自动导入页面缓存初始化函数
| | |-- globalConstant.js // 全局自动导入常量
| | |-- globalEventBus.js // 全局通知实例
| | |-- globalExpandRouter.js // 全局自动导入路由处理方法
| | |-- globalHttp.js // 全局自动导入请求处理函数
| | |-- globalInitialize.js // 全局自动导入初始化方法
| | |-- globalLocales.js // 全局自动导入国际化方法
| | |-- globalRequest.js // 全局自动导入请求拦截方法
| | |-- globalRouter.js // 全局自动导入路由配置
| | |-- globalStore.js // 全局自动导入pinia处理函数
| |-- components // 全局自动注册组件
| |-- constant // 全局自动注册常量
| |-- locales // 多语言配置
| |-- router // 路由模块
| |-- store // pinia
| |-- util // 工具类
| |-- views // 页面
| |-- App.vue // 入口文件
| |-- main.js // 入口js文件
|--vite-config // vite配置
| |--plugins // vite插件配置
| |--index.js // vite处理配置
|--vite-env // vite环境配置
| |-- .env // 本地环境配置
| |-- .env.dev // 测试环境配置
| |-- .env.prod // 生产环境配置
|
|-- .eslintrc.js // es配置
|-- babel.config.js // babel配置
|-- vite.config.js // 脚手架配置
```
## 项目全局导入自定义函数、UI 库、自定义组件
```
(1)安装 unplugin-vue-components 插件用于导入组件库和自定义组件,安装 unplugin-auto-import 用于导入方法、变量等
(2)vite.config.js 配置说明
```
```js
import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import { baseCfg, pluginCfg } from "./vite-config";
export default async ({ mode }) => {
const { VITE_BASE_URL } = loadEnv(mode, process.cwd());
return defineConfig({
...baseCfg({ VITE_BASE_URL }),
plugins: [vue(), ...(await pluginCfg({ VITE_BASE_URL }))],
});
};
```
```
(3) 对于vite.config.js配置,通过在vite-config/plugins文件夹下建js文件,在index.js会自动加载,在index.js文件内也可配置vite的基本配置
(4) 对于unplugin-auto-import.js的配置, 针对vue、vue-router、vue-i18n、pinia页面无需使用例如: import { useRouter } from "vue-router";
可以直接使用 const route = useRouter()
(5) 对于unplugin-auto-import.js的配置,针对对象内的配置自定义导入的,key为路径,值为数组的形式,
数组内的名称必须要与路径配置的文件export {}导
出的名称一致
(6) 针对unplugin-auto-import.js的自定义配置导出名称建议都以:$global作前缀定义,以说明是通过插件全局自动导入,
配置则在unplugin-auto-import.js文件内
(7) 对于unplugin-vue-components.js配置,会读取dirs项数组内的路径加载以extensions项配置的后缀名的文件,
目前以加载src/components下的所有.vue文件作为组件:
在文件夹内的index.vue文件时,组件会以文件夹名称作为组件名,例如:components/footer-nav/index.vue
组件名为<footer-nav></footer-nav>, 除index.vue以外的文件则以vue文件名作为组件。
(8) 规范化建议在components文件夹下的组件文件夹以分割号作为间隔命名文件夹名称,文件夹内建一个index.vue文件
(9) vue文件同名机制是以外层的文件优先作为组件,以文件排在前面的文件优先
```
## 项目路由原理
```
注意:本地调试时,在缓存页面进行刷新时可能会导致不触发路由通知初始化的情况 (缓存路由配置只能使用push、replace方式跳转)。
路由大体分为两种:缓存页面、不缓存页面
1.通过路由配置+路由插件+中央事件总线+keep-alive组件+component组件共同构成
2.配置不缓存组件:配置isKeepAlive为fasle或者不配置
```
```js
{
path: "/setting",
name: "setting",
component: () => import("@/views/common/setting.vue"),
meta: {},
},
```
```
3.配置缓存路由:
(1)只要在src/router 内的所有模块js文件内的isKeepAlive设置为true,则页面起缓存效果
```
```js
{
path: "/addressList",
name: "addressList",
component: () => import("@/views/common/addressList.vue"),
meta: {
isKeepAlive: true,
},
},
```
```
(2)在使用页面(缓存页面)的生命周期使用($globalConfigure已插件全局导入可直接使用),页面实现再次进入重载可定义一个变量(isReload)和在根元素配合v-if使用起到页面重新渲染效果
```
```js
<template>
<div v-if="isReload"></div>
</template>
const isReload = ref(false)
onMounted(() => {
$globalConfigure(() => {
isReload = false
console.log("缓存页面时--总监听事件接收--用于初始化操作");
nextTick(()=>{
isReload = true
})
});
});
```
```
(3)在(2)的$globalConfigure内做当前页面初始化操作
通过以上四步配置达到效果是:使用push()、replace()方法跳进页面会初始化当前页面,在当前页面再跳入其他页面后,
再返回当前页面当前页面不会初始化起到缓存效果。例子:A->B->C, B页面缓存,C倒回B不初始化B页面,
当C倒回B倒回A后再由A-B页面会执行初始化函数$globalConfigure
4.配置无限A页面跳A页面缓存路由:
(1)只要在src/views/router 内的所有模块js文件内的isRouterKeepAlive需要设置为true,则页面起缓存效果
```
```js
{
path: "/goodsDetail",
name: "goodsDetail",
component: () => import("@/views/common/goodsDetail.vue"),
meta: {
isRouterKeepAlive: true
},
},
```
```
(2) 在使用页面(缓存页面)的生命周期使用($globalConfigure已插件全局导入可直接使用),页面实现再次进入重载可定义一个变量(isReload)和在根元素配合v-if使用起到页面重新渲染效果 同上3.点
(3)使用push()、replace() 在query或parmas上带唯一标识(业务Id或时间戳)
(4)该配置实现的效果,A页面内有链接,点击跳转还是跳到A页面,但当业务id改变时,跳转后会触发页面初始化函数,在点击回退上一页面时,
上一页面缓存的是跳转前的页面数据。
5. 针对isKeepAlive与isRouterKeepAlive的优先级问题,isRouterKeepAlive优先级高于isKeepAlive
6.路由(编程式)传参
(1)使用query传参
```
```js
跳转:
const router = useRouter();
router.push({
name: "路由名称",
query: { 参数 },
});
```
```js
接收:
const router = useRouter();
const queryParmas = router?.currentRoute?.value?.query
```
```
(2) 使用state传参 (用于传较多参数)
```
```js
跳转:
const router = useRouter();
router.push({
name: "路由名称",
state: { 参数 },
});
```
```js
接收:
const stateParmas = history.state
```
## 项目国际化配置
```
src/locales文件夹下:
1.ZH-CN文件夹配置中文json
2.US-EN文件夹配置英文json
3.ZH-CN/common.json、US-EN/common.json 中配置时使用:$t("文件名.json文件内定义的key") 如 $t("common.home")
4. 远程接口配置国际化覆盖本地配置:接口返回的json格式要与本地配置的json格式一致才能起到远程覆盖本地的效果
```
## 项目 pinia 配置
```
1.src/store文件夹下的每个js文件代表一个模块
2.模块命名规则:use+文件名首字母大写(store唯一ID),如:Common.js,处理后模块为useCommon
3.本地起项目,若store中模块store唯一ID存在重复时,调试中会提示报错重复的具体store的ID
4.pinia持久化使用pinia-plugin-persistedstate插件,配置参考pinia-plugin-persistedstate官网
5.在Common.js内
export default defineStore("store唯一ID", {
state: () => ({}),
getters: {},
actions: {},
});
```
```
5.页面使用:
(1)const { useCommon } = $globalStore; // 已用插件导入全局(vue文件内可结构)
(2) 通过 $globalStore.模块名.(state/getters/actions)的变量或方法进行使用。
```
```js
useCommon.subMsgKey; // 使用state
useCommon.SET_GOODS_NUM(); //调用actions
```
## 项目组件 name 属性设置
```
1.安装vite-plugin-vue-setup-extend插件,在vite.config.js进行插件配置,
在vite-config/plugins下建vite-plugin-vue-setup-extend.js文件
```
```js
import setupExtend from "vite-plugin-vue-setup-extend"; //组件命名插件
const vueSetupExtend = (viteEnv = {}) => {
return setupExtend();
};
export { vueSetupExtend };
```
```
2.在页面组件内使用:
```
```js
<script setup name="wc-test-global-2">
onMounted(() => {});
</script>
```
## 项目图片
![登录](https://gitee.com/674074365/vue3-vant3-h5/raw/master/preview/%E7%99%BB%E5%BD%95.jpeg "登录")
![首页](https://gitee.com/674074365/vue3-vant3-h5/raw/master/preview/home.jpeg "首页")
![分类](https://gitee.com/674074365/vue3-vant3-h5/raw/master/preview/%E5%88%86%E7%B1%BB.jpeg "分类")
![购物车](https://gitee.com/674074365/vue3-vant3-h5/raw/master/preview/%E8%B4%AD%E7%89%A9%E8%BD%A6.jpeg "购物车")
![我的](https://gitee.com/674074365/vue3-vant3-h5/raw/master/preview/%E6%88%91%E7%9A%84.jpeg "我的")
![地址](https://gitee.com/674074365/vue3-vant3-h5/raw/master/preview/%E5%9C%B0%E5%9D%80%E4%BA%8C.jpeg "地址")

5
zdxt-web-client/zdxt-enforcement-code-app/babel.config.js

@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}

106
zdxt-web-client/zdxt-enforcement-code-app/docs/.vitepress/config.js

@ -0,0 +1,106 @@
export default {
base: "/",
themeConfig: {
siteTitle: 'vue3-vue3-h5',
nav: [
{ text: '文档', link: '/guide/', activeMatch: '/guide/' },
{ text: '插件', link: '/plugin/', activeMatch: '/plugin/' }
],
sidebar: {
'/guide/': [
{
text: '演示地址',
collapsible: true,
collapsed: false,
items: []
},
{
text: '项目环境',
collapsible: true,
collapsed: false,
items: []
},
{
text: '项目重点',
collapsible: true,
collapsed: false,
items: []
},
{
text: '项目运行',
collapsible: true,
collapsed: false,
items: []
},
{
text: '项目结构',
collapsible: true,
collapsed: false,
items: []
},
{
text: '全局导入',
collapsible: true,
collapsed: false,
items: []
},
{
text: '项目路由',
collapsible: true,
collapsed: false,
items: []
},
{
text: '项目国际化',
collapsible: true,
collapsed: false,
items: []
},
{
text: '状态管理',
collapsible: true,
collapsed: false,
items: []
}
],
'/plugin/': [
{
text: '插件配置',
collapsible: true,
collapsed: false,
items: []
},
{
text: 'vite-plugin-legacy',
collapsible: true,
collapsed: false,
items: []
},
{
text: 'unplugin-auto-import',
collapsible: true,
collapsed: false,
items: []
},
{
text: 'unplugin-vue-components',
collapsible: true,
collapsed: false,
items: []
}
],
},
socialLinks: [
{ icon: "github", link: "https://gitee.com/674074365/vue3-vant3-h5" },
],
footer: {
message: "Released under the MIT License.",
copyright: "Copyright © 2023-present lan",
},
},
};

17
zdxt-web-client/zdxt-enforcement-code-app/docs/.vitepress/theme/index.ts

@ -0,0 +1,17 @@
// https://vitepress.dev/guide/custom-theme
import { h } from 'vue'
import type { Theme } from 'vitepress'
import DefaultTheme from 'vitepress/theme'
import './style.css'
export default {
extends: DefaultTheme,
Layout: () => {
return h(DefaultTheme.Layout, null, {
// https://vitepress.dev/guide/extending-default-theme#layout-slots
})
},
enhanceApp({ app, router, siteData }) {
// ...
}
} satisfies Theme

139
zdxt-web-client/zdxt-enforcement-code-app/docs/.vitepress/theme/style.css

@ -0,0 +1,139 @@
/**
* Customize default theme styling by overriding CSS variables:
* https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
*/
/**
* Colors
*
* Each colors have exact same color scale system with 3 levels of solid
* colors with different brightness, and 1 soft color.
*
* - `XXX-1`: The most solid color used mainly for colored text. It must
* satisfy the contrast ratio against when used on top of `XXX-soft`.
*
* - `XXX-2`: The color used mainly for hover state of the button.
*
* - `XXX-3`: The color for solid background, such as bg color of the button.
* It must satisfy the contrast ratio with pure white (#ffffff) text on
* top of it.
*
* - `XXX-soft`: The color used for subtle background such as custom container
* or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
* on top of it.
*
* The soft color must be semi transparent alpha channel. This is crucial
* because it allows adding multiple "soft" colors on top of each other
* to create a accent, such as when having inline code block inside
* custom containers.
*
* - `default`: The color used purely for subtle indication without any
* special meanings attched to it such as bg color for menu hover state.
*
* - `brand`: Used for primary brand colors, such as link text, button with
* brand theme, etc.
*
* - `tip`: Used to indicate useful information. The default theme uses the
* brand color for this by default.
*
* - `warning`: Used to indicate warning to the users. Used in custom
* container, badges, etc.
*
* - `danger`: Used to show error, or dangerous message to the users. Used
* in custom container, badges, etc.
* -------------------------------------------------------------------------- */
:root {
--vp-c-default-1: var(--vp-c-gray-1);
--vp-c-default-2: var(--vp-c-gray-2);
--vp-c-default-3: var(--vp-c-gray-3);
--vp-c-default-soft: var(--vp-c-gray-soft);
--vp-c-brand-1: var(--vp-c-indigo-1);
--vp-c-brand-2: var(--vp-c-indigo-2);
--vp-c-brand-3: var(--vp-c-indigo-3);
--vp-c-brand-soft: var(--vp-c-indigo-soft);
--vp-c-tip-1: var(--vp-c-brand-1);
--vp-c-tip-2: var(--vp-c-brand-2);
--vp-c-tip-3: var(--vp-c-brand-3);
--vp-c-tip-soft: var(--vp-c-brand-soft);
--vp-c-warning-1: var(--vp-c-yellow-1);
--vp-c-warning-2: var(--vp-c-yellow-2);
--vp-c-warning-3: var(--vp-c-yellow-3);
--vp-c-warning-soft: var(--vp-c-yellow-soft);
--vp-c-danger-1: var(--vp-c-red-1);
--vp-c-danger-2: var(--vp-c-red-2);
--vp-c-danger-3: var(--vp-c-red-3);
--vp-c-danger-soft: var(--vp-c-red-soft);
}
/**
* Component: Button
* -------------------------------------------------------------------------- */
:root {
--vp-button-brand-border: transparent;
--vp-button-brand-text: var(--vp-c-white);
--vp-button-brand-bg: var(--vp-c-brand-3);
--vp-button-brand-hover-border: transparent;
--vp-button-brand-hover-text: var(--vp-c-white);
--vp-button-brand-hover-bg: var(--vp-c-brand-2);
--vp-button-brand-active-border: transparent;
--vp-button-brand-active-text: var(--vp-c-white);
--vp-button-brand-active-bg: var(--vp-c-brand-1);
}
/**
* Component: Home
* -------------------------------------------------------------------------- */
:root {
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: -webkit-linear-gradient(
120deg,
#bd34fe 30%,
#41d1ff
);
--vp-home-hero-image-background-image: linear-gradient(
-45deg,
#bd34fe 50%,
#47caff 50%
);
--vp-home-hero-image-filter: blur(44px);
}
@media (min-width: 640px) {
:root {
--vp-home-hero-image-filter: blur(56px);
}
}
@media (min-width: 960px) {
:root {
--vp-home-hero-image-filter: blur(68px);
}
}
/**
* Component: Custom Block
* -------------------------------------------------------------------------- */
:root {
--vp-custom-block-tip-border: transparent;
--vp-custom-block-tip-text: var(--vp-c-text-1);
--vp-custom-block-tip-bg: var(--vp-c-brand-soft);
--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
}
/**
* Component: Algolia
* -------------------------------------------------------------------------- */
.DocSearch {
--docsearch-primary-color: var(--vp-c-brand-1) !important;
}

1
zdxt-web-client/zdxt-enforcement-code-app/docs/guide/index.md

@ -0,0 +1 @@
# menu1 index

17
zdxt-web-client/zdxt-enforcement-code-app/docs/index.md

@ -0,0 +1,17 @@
---
layout: home
title: 项目文档
hero:
name: 项目文档
text: vite+vue+vant
actions:
- theme: brand
text: 文档
link: /guide/
- theme: alt
text: 插件
link: /plugin/
---

1
zdxt-web-client/zdxt-enforcement-code-app/docs/plugin/index.md

@ -0,0 +1 @@
# menu2 index

13
zdxt-web-client/zdxt-enforcement-code-app/index.html

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"/>
<title>执法监督码</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

25
zdxt-web-client/zdxt-enforcement-code-app/index.md

@ -0,0 +1,25 @@
---
# https://vitepress.dev/reference/default-theme-home-page
layout: home
hero:
name: "My Awesome Project"
text: "A VitePress Site"
tagline: My great project tagline
actions:
- theme: brand
text: Markdown Examples
link: /markdown-examples
- theme: alt
text: API Examples
link: /api-examples
features:
- title: Feature A
details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
- title: Feature B
details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
- title: Feature C
details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
---

86
zdxt-web-client/zdxt-enforcement-code-app/package.json

@ -0,0 +1,86 @@
{
"name": "vue3-vant4-h5",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"vite": "vite",
"build": "vite build",
"build:dev": "vite build --mode dev",
"build:pro": "vite build --mode prod",
"preview": "vite preview",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:serve": "vitepress serve docs",
"docs:preview": "vitepress preview docs"
},
"dependencies": {
"@zxing/library": "^0.20.0",
"axios": "^1.6.7",
"compressorjs": "^1.2.1",
"core-js": "^3.44.0",
"crawlee": "^3.12.0",
"crawler": "^2.0.2",
"crypto-js": "^4.2.0",
"date-fns": "^3.6.0",
"echarts": "^5.5.0",
"html2canvas": "^1.4.1",
"jsonp": "^0.2.1",
"lodash": "^4.17.21",
"mitt": "^3.0.1",
"pdfh5": "^1.4.9",
"pdfjs-dist": "^4.10.38",
"pinia": "^2.1.7",
"pinia-plugin-persistedstate": "^3.2.1",
"playwright": "^1.48.2",
"sass": "^1.71.1",
"szient-js-sdk": "^1.2.2",
"vant": "^4.8.5",
"vconsole": "^3.15.1",
"vue": "^3.4.21",
"vue-dompurify-html": "^5.0.1",
"vue-i18n": "^9.9.1",
"vue-pdf": "^1.0.0",
"vue-pdf-embed": "^1.2.1",
"vue-qrcode-reader": "^5.5.3",
"vue-router": "^4.3.0",
"vue3-pdfjs": "^0.0.1",
"weixin-js-sdk": "^1.6.5"
},
"devDependencies": {
"@vitejs/plugin-basic-ssl": "^1.1.0",
"@vitejs/plugin-legacy": "^6.0.2",
"@vitejs/plugin-vue": "^5.0.4",
"amfe-flexible": "^2.2.1",
"autoprefixer": "^10.4.17",
"jszip": "^3.10.1",
"less": "^4.2.0",
"less-loader": "^12.2.0",
"postcss-pxtorem": "^6.1.0",
"unplugin-auto-import": "^0.17.5",
"unplugin-vue-components": "^0.26.0",
"vite": "^6.2.6",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-eslint": "^1.8.1",
"vite-plugin-progress": "^0.0.7",
"vite-plugin-style-import": "^2.0.0",
"vite-plugin-vue-setup-extend": "^0.4.0",
"vitepress": "^1.6.3"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}

BIN
zdxt-web-client/zdxt-enforcement-code-app/preview/home.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/preview/分类.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/preview/地址二.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/preview/我的.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/preview/登录.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/preview/购物车.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

29
zdxt-web-client/zdxt-enforcement-code-app/src/App.vue

@ -0,0 +1,29 @@
<template>
<router-view v-slot="{ Component, route }">
<!-- 路由缓存 -->
<keep-alive>
<component :is="Component" v-if="route?.meta?.isKeepAlive || route?.meta?.isRouterKeepAlive"
:key="route?.meta?.isRouterKeepAlive ? route?.fullPath : route?.name" />
</keep-alive>
<!-- 不缓存 -->
<component :is="Component" v-if="(!route?.meta?.isKeepAlive) && (!route?.meta?.isRouterKeepAlive)"
:key="route.name" />
</router-view>
</template>
<script setup name="App">
onMounted(async () => {
const handleLoadUrl = inject('$provideLoadUrl')
const getGoodsnum = inject('$provideGoodsnum')
const getLang = inject('$provideLang')
const path = handleLoadUrl()
if (!['/', '/login'].includes(path)) {
await getGoodsnum();
await getLang();
}
});
</script>

3
zdxt-web-client/zdxt-enforcement-code-app/src/api/Classify.js

@ -0,0 +1,3 @@
export const classifyGoods = "/classifyGoods"
export const getClassify = "/getClassify"

25
zdxt-web-client/zdxt-enforcement-code-app/src/api/Home.js

@ -0,0 +1,25 @@
import { _get, _post,_form } from "../http/index";
export const getCarousel = "/getCarousel"
export const boutiqueGoods = "/boutiqueGoods"
export const recommendGoods = "/recommendGoods"
export const userLogin = (params, success, error) => _post("/appLogin", params, success, error);
export const testLogin = (params, success, error) => _post("/app/thirdLogin/testLogin", params, success, error);
//查询字典
export const getDict = (params, success, error) => _get("/app/queryDict",params,success,error);
//获取级联街道字典
export const getRegionCascade = (params, success, error) => _get("/app/code/item/getRegionCascade",params,success,error);
//查询用户关联企业授权信息
export const getEnterpriseMerchantAuthorization = (params, success, error) => _get("/app/code/authorization/queryList",params,success,error);
//深i企登录
export const getSiqLoginAuth = (params, success, error) => _post("/app/thirdLogin/siqLogin",params,success,error);
export const getSiqLoginAuthTest = (params, success, error) => _post("/app/thirdLogin/siqLoginTest",params,success,error);
// 深圳易平台登录
export const getSzyptLoginAuth = (code, success, error) => _get("/app/thirdLogin/szyptLogin/"+code,null,success,error);
export const szyptGetToken = (params, success, error) => _get("/app/thirdLogin/szyptGetToken",params,success,error);
// 获取包裹的数据
export const siqCode = (params, success, error) => _get("/app/thirdLogin/getSiqCode",params,success,error);

2
zdxt-web-client/zdxt-enforcement-code-app/src/api/My.js

@ -0,0 +1,2 @@
export const getAddersslist = "/getAddersslist"
export const getAddressedit = "/getAddressedit"

4
zdxt-web-client/zdxt-enforcement-code-app/src/api/ShopCard.js

@ -0,0 +1,4 @@
export const getCard = "/getCard"
export const delGoods = "/delCard"
export const changeGoods = "/changeGoods"

19
zdxt-web-client/zdxt-enforcement-code-app/src/api/administrative.js

@ -0,0 +1,19 @@
import { _get, _post,_form,_delete } from "../http/index";
//行政检查预约登记
export const addEnterpriseLawEnforcement = (params, success, error) => _post("/app/code/enforcement/add",params,success,error)
export const editEnterpriseLawEnforcement = (params, success, error) => _post("/app/code/enforcement/edit",params,success,error)
export const editEnterpriseLawEnforcementDeputyOrder = (params, success, error) => _post("/app/code/enforcement/editDeputyOrder",params,success,error)
//行政检查预约详情
export const getEnterpriseLawEnforcement = (id, success, error) => _get("/app/code/enforcement/getById/" + id,null,success,error)
export const getByUserIdAndZero = (userId, success, error) => _get("/app/code/enforcement/getByUserIdAndZero/"+ userId,null,success,error)
export const getByIdToDataFillIn = (id, success, error) => _get("/app/code/enforcement/getByIdToDataFillIn/" + id,null,success,error)
export const cancelEnterpriseLawEnforcement = (id, success, error) => _get("/app/code/enforcement/cancel/" + id,null,success,error)
//查询历史检查信息
export const queryEnterpriseLawEnforcementList = (params, success, error) => _post("/app/code/enforcement/queryList",params,success,error)
export const queryTotal = (params, success, error) => _get("/app/code/enforcement/queryTotal",params,success,error)

4
zdxt-web-client/zdxt-enforcement-code-app/src/api/common.js

@ -0,0 +1,4 @@
export const getGoodsNum = "/getGoodsNum"
export const getGoodsdetal = "/getGoodsdetal"
export const getLang = "/getLanguage"

195
zdxt-web-client/zdxt-enforcement-code-app/src/api/enforce.js

@ -0,0 +1,195 @@
/**
* 执法端接口
*/
import { _get, _post,_form,_delete } from "../http/index";
/**
* 执法计划列表
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnforcementInspectionProgramList = (params, success, error) => _get("/app/code/enforcementInspectionProgram/queryList", params, success, error);
export const transPdf = (params, success, error) => _post("/app/system/enforceNotice/transPdf", params, success, error);
/**
*
* 执法计划列表 无权限接口
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnforcementInspectionProgramListNoPermission = (params, success, error) => _get("/app/code/enforcementInspectionProgram/queryListNoPermission", params, success, error);
/**
* 后台通知接口
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnforceSystemNotice = (params, success, error) => _get("/app/system/enforceNotice/listNoPermission", params, success, error);
export const queryEnforceSystemNoticeDetail = (id, success, error) =>_get("/app/system/enforceNotice/detail/" + id,null,success,error)
/**
* 执法计划列表 无权限 不分页接口
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnforcementInspectionProgramListNoPermissionNoPaging = (params, success, error) => _get("/app/code/enforcementInspectionProgram/queryListNoPermissionNoPaging", params, success, error);
export const queryEnforcementNotice = (params, success, error) => _get("/app/code/enforcementInspectionProgram/queryNoticeList", params, success, error);
/**
* 执法计划列表 按id查询
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const detail = (id, success, error) => _get("/app/code/enforcementInspectionProgram/detail/"+id, null, success, error);
/**
* 添加年度执法计划
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const addEnforcementInspectionProgram = (params, success, error) =>_post("/app/code/enforcementInspectionProgram/add", params, success, error)
/**
* 修改年度执法计划
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const editEnforcementInspectionProgram = (params, success, error) =>_post("/app/code/enforcementInspectionProgram/edit", params, success, error)
//保存执法信息登记
export const addEnforcementRegistration = (params, success, error) => _post("/app/code/registration/add",params,success,error)
export const editEnforcementRegistration = (params, success, error) => _post("/app/code/registration/edit",params,success,error)
export const editEnforcementRegistration2 = (params, success, error) => _post("/app/code/registration/edit2",params,success,error)
export const getRegByUserIdAndZero = (userId, success, error) => _get("/app/code/registration/getByUserIdAndZero/"+ userId,null,success,error)
export const getByUserIdAndEnterpriseNumber = (modth, userId, enterpriseNumber, success, error) => _get("/app/code/registration/getByUserIdAndEnterpriseNumber/"+ modth +"/"+ userId +"/"+ enterpriseNumber,null,success,error)
export const getByIdToDataFillIn = (id, success, error) => _get("/app/code/registration/getByIdToDataFillIn/" + id,null,success,error)
//查询历史检查信息
export const queryRegistrationList = (params, success, error) => _post("/app/code/registration/queryList",params,success,error)
export const queryRegistrationListNew = (params, success, error) => _get("/app/code/registration/queryListNew",params,success,error)
export const queryRegistrationByEpId = (params, success, error) => _get("/app/code/registration/queryByEpId",params,success,error)
//查询预警列表
// export const queryEarlyWarning = (params, success, error) => _get("/code/registration/queryEarlyWarning",params,success,error)
export const queryEarlyWarning = (params, success, error) => _get("/app/code/LawEnforcementWarningList/queryList",params,success,error)
//查询预警列表
// export const queryEarlyWarning = (params, success, error) => _get("/code/registration/queryEarlyWarning",params,success,error)
export const queryEarlyWarningNew = (params, success, error) => _get("/app/code/LawEnforcementWarningList/queryListNew",params,success,error)
/**
* 查询当前企业本月预警信息列表
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryListByEnterpriseNumber = (params, success, error) => _get("/app/code/LawEnforcementWarningList/queryListByEnterpriseNumber",params,success,error)
export const queryListByEnterpriseNumberNew = (params, success, error) => _get("/app/code/LawEnforcementWarningList/queryListByEnterpriseNumberNew",params,success,error)
/**
* 查询用户信息
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryUserInfo = (userId, success, error) => _get("/app/getUserInfo/"+ userId, null,success,error)
export const getUserInfoAndDept = (userId, success, error) => _get("/app/getUserInfoAndDept/"+ userId, null,success,error)
/**
* 查询执法登记信息详情
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnforcementRegistrationById = (id, success, error) =>_get("/app/code/registration/queryById/" + id,null,success,error)
export const queryEnforcementRegistrationUniteById = (id, success, error) =>_get("/app/code/registration/queryUniteById/" + id,null,success,error)
//查询附件
export const getAttr = (id, success, error) => _get("/app/code/registration/queryFiles/" + id,null,success,error);
//查询统计分析数据
export const queryStatisticalData = (params, success, error) => _get("/app/statistical/statisticalData",params,success,error)
// 查询执法登记详情
export const queryRegistrationById = (id,success, error) =>_get("/app/code/registration/queryById/" + id,null,success,error)
/** 判断二维码是否有效 */
export const checkIsState = (num, id, success, error) => _get("/app/enterpriseInformation/checkIsState/"+ num +"/"+ id, null,success,error)
/** 二维码失效 */
export const unQrCode = (id, success, error) => _get("/app/enterpriseInformation/unQrCode/"+ id, null,success,error)
/** 生成新的企业二维码 */
export const addQrCode = (num, success, error) => _get("/app/enterpriseInformation/addQrCode/"+ num, null,success,error)
/**
* 市监获取企业信息
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const getEnterpriseInfoBySj = (params,success,error) =>_get("/app/enterpriseInformation/getEnterpriseInfoBySj",params,success,error)
/**
* 市监获取企业信息
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const getDeptListToDept = (params,success,error) =>_get("/app/enforcementCheckStatistics/getDeptListToDept",params,success,error)
/**
* 市监获取企业信息
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const getDeptListToPerson = (params,success,error) =>_get("/app/enforcementCheckStatistics/getDeptListToPerson",params,success,error)
/**
* 综合分析
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const whole = (params,success,error) =>_get("/app/appComprehensiveAnalysis/whole",params,success,error)
/**
* 查询一小时内的联合检查信息
* @param {企业统一信用码} enterpriseNumber
* @param {*} success
* @param {*} error
* @returns
*/
export const queryUnionByHour = (enterpriseNumber, reason, enforcementTime, unionNo, success, error) => _get("/app/code/registration/queryUnionByHour/"+enterpriseNumber+"/"+reason+"/"+enforcementTime+"/"+unionNo, null,success,error)
//保存执法信息登记
export const addNonEnforcementRegistration = (params, success, error) => _post("/app/code/nonRegistration/add",params,success,error)
export const queryNonRegistrationList = (params, success, error) => _post("/app/code/nonRegistration/queryList",params,success,error)
export const queryNonRegistrationById = (id, success, error) => _get("/app/code/nonRegistration/queryById/"+id,null,success,error)

182
zdxt-web-client/zdxt-enforcement-code-app/src/api/enterprise.js

@ -0,0 +1,182 @@
import { _get, _post,_form,_delete } from "../http/index";
//企业信息登记
export const addEnterpriseInformation = (params, success, error) => _post("/app/enterpriseInformation/add", params, success, error);
//查询企业信息
export const searchEnterpriseByNumber = (enterpriseNumber, success, error) => _get("/app/enterpriseInformation/searchEnterpriseByNumber/"+enterpriseNumber, null, success, error);
//查询企业二维码
export const queryEnterpriseInformationQrCode = (enterpriseNumber, success, error) => _get("/app/enterpriseInformation/getQrCode/"+enterpriseNumber,null,success,error)
//查询企业执法登记列表
export const queryRegistrationList = (params, success, error) => _get("/app/code/registration/queryList",params,success,error)
//查询企业执法登记列表-企业端修改联合检查查询语句
export const queryEnterpriseList = (params, success, error) => _get("/app/code/registration/queryEnterpriseList",params,success,error)
//查询企业执法登记列表 - 剔除执法日期距离今天超过5天的执法记录
export const queryRegistrationList2 = (params, success, error) => _get("/app/code/registration/queryList2",params,success,error)
//查询执法日期距离今天至5日内的的执法记录
export const queryListWithFiveDay = (params, success, error) => _get("/app/code/registration/queryListWithFiveDay",params,success,error)
/**
* 查询企业执法登记列表-不分页
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const selectRegistrationList = (params, success, error) => _get("/app/code/registration/selectList",params,success,error)
//保存在线投诉
export const addEnterpriseComplaint = (params, success, error) => _post("/app/code/complaint/add",params,success,error)
// 投诉-- 查询行政and非行政未被投诉列表
export const getAllCheckList = (params, success, error) => _post("/app/code/complaint/getAllCheckList",params,success,error)
// 查询
export const getEnterpriseComplaintById = (id, success, error) => _get("/app/code/complaint/getById/"+id,null,success,error)
//查询投诉工单详情
export const complaintInfoById = (params, success, error) => _get("/app/code/complaint/queryById",params,success,error)
//查询投诉工单处置进度列表
export const complaintInfoProcessById = (params, success, error) => _get("/app/code/complaint/queryProcessById",params,success,error)
//工单办结
export const mssqQueryEndInfo = (params, success, error) => _get("/app/code/complaint/mssqQueryEndInfo",params,success,error)
// 诉求工单评价页面
export const toMssqAppraise = (params, success, error) => _post("/app/code/complaint/mssqAppraise",params,success,error)
// 诉求工单评价页面
export const queryEnterpriseComplaintList = (params, success, error) => _post("/app/code/complaint/queryList",params,success,error)
export const getObjByKey = (params, success, error) => _get("/app/satisfy/getObjByKey/"+params,null,success,error)
export const mssqDownFiles = (params, success, error) => _post("/app/satisfy/mssqDownFiles",params,success,error)
export const mssqDownFile = (params, success, error) => _post("/app/satisfy/mssqDownFile",params,success,error)
/**
* 查询企业行政执法通知记录
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnforcementList = (params, success, error) => _post("/app/code/enforcement/queryList",params,success,error)
/**
* 查询企业信息
* @returns
*/
export const getEnterpriseInformation = (id,success,error) => _get("/app/enterpriseInformation/getEnterpriseInformation/" + id,null,success,error)
/**
* 查询企业列表
* @param {} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnterpriseInfoList = (params, success, error) =>_get("/app/enterpriseInformation/queryList",params, success, error)
/**
* 查询企业列表
* @param {} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnterpriseInfoListAndQrInfo = (params, success, error) =>_post("/app/enterpriseInformation/queryListAndQrInfo",params, success, error)
/**
* 查询企业历史二维码生成记录
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryHistoryQrCodeList = (params, success, error) =>_get("/app/enterpriseInformation/queryHistoryQrCodeList",params, success, error)
/**
* 查询历史检查案件
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryXzjcjbxxList = (params, success, error) =>_post("/app/xzjcjbxx/queryList", params,success, error)
/**
* 查询强制案件
* @param {*} enterpriseNumber
* @param {*} success
* @param {*} error
* @returns
*/
export const queryQZAJList = (params, success, error) =>_post("/app/xzjcjbxx/queryQZAJList", params,success, error)
/**
* 查询历史处罚案件
* @param {*} enterpriseNumber
* @param {*} success
* @param {*} error
* @returns
*/
export const queryCFAJList = (params, success, error) =>_post("/app/xzjcjbxx/queryCFAJList",params,success, error)
/**
* 查询企业是否存在
* @param {*} enterpriseNumber 企业统一信用代码
* @param {*} success
* @param {*} error
* @returns
*/
export const checkIsExists = (enterpriseNumber, success, error) =>_get("/app/enterpriseInformation/checkIsExists/" + enterpriseNumber,null,success, error)
/**
* 保存企业对行政执法的评价
* @param {*} enterpriseNumber 企业统一信用代码
* @param {*} success
* @param {*} error
* @returns
*/
export const addEvaluateInfo = (params, success, error) =>_post("/app/evaluate/add",params,success, error)
/**
* 查询民生诉求执法部门列表
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryComplaintItemList = (params, success, error) =>_get("/app/code/item/queryList",params,success, error)
/**
* 查询执法人员统计数据
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryStatisticsIndicatorPart1 = (params, success, error) =>_get("/app/enforcementCheckStatistics/statisticsIndicatorPart1",params,success,error)
/**
* 查询统计个人分析数据
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryStatisticsIndicatorPart2 = (params, success, error) =>_get("/app/enforcementCheckStatistics/statisticsIndicatorPart2",params,success,error)
/**
* 查询统计部门分析数据
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryStatisticsIndicatorPart3 = (params, success, error) =>_get("/app/enforcementCheckStatistics/statisticsIndicatorPart3",params,success,error)
//获取全部执法单位
export const getAllEnforceDept = (params, success, error) => _post("/app/code/registration/getAllEnforceDept",params,success,error)

9
zdxt-web-client/zdxt-enforcement-code-app/src/api/linkage.js

@ -0,0 +1,9 @@
import { _get, _post,_form,_delete } from "../http/index";
export const queryLinkage = (params, success, error) => _get("/app/code/linkage/listByParentId",params,success,error)
export const queryLinkageById = (params, success, error) => _post("/app/code/linkage/objById",params,success,error)
export const queryLinkageDictByValueAndParentId = (params, success, error) => _post("/app/code/linkage/selectLinkageDictByValueAndParentId",params,success,error)
export const queryLinkageDictByValue = (params, success, error) => _post("/app/code/linkage/selectLinkageDictByValue",params,success,error)
export const queryLinkageDictByValueNoAuth = (params, success, error) => _post("/app/code/linkage/selectLinkageDictByValueNoAuth",params,success,error)
export const queryZqyjjdm = (params, success, error) => _get("/app/zqyjjdm/list",params,success,error)

21
zdxt-web-client/zdxt-enforcement-code-app/src/api/pdf.worker.min.mjs

File diff suppressed because one or more lines are too long

56979
zdxt-web-client/zdxt-enforcement-code-app/src/api/pdf.worker.mjs

File diff suppressed because one or more lines are too long

10
zdxt-web-client/zdxt-enforcement-code-app/src/api/user.js

@ -0,0 +1,10 @@
import { _get, _post,_form,_delete } from "../http/index";
//查询用户列表
export const queryUsers = (params, success, error) => _post("/app/queryUsersByPage",params,success,error)
export const queryAUsers = (params, success, error) => _get("/app/listAApp",params,success,error)
export const queryUsersNoPermission = (params, success, error) => _get("/app/listUsersNoPermission",params,success,error)
//查询部门列表
export const queryDepts = (params, success, error) => _get("/app/listDeptAppNoPermission",params,success,error)
export const nextDeptByparentId = (params, success, error) => _get("/app/nextDeptByparentId",params,success,error)

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bad.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_analy_card.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_analy_card_2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_analy_v4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_c.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_count.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/bg_el.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/code-ex.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/com_sign.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-bad-dis.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-bad.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-good-dis.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-good.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-verygood-dis.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/eval-verygood.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/good.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/home.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_60add.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_addr.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_arbw.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_attach.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_jd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_notice.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_notice2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_notice3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_remind.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_remind2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/icon_sou.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_check.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_checkc.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_code.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_complain.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_count.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_scan.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/item_scan2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/login.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/make.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 955 B

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/nodata.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/onbad.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/ongood.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/orange.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/plan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/red.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/scan-btn.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/scan-mean.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/scan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg1_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_bg_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_shine_org.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_shine_red.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/tab_shine_yel.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/warn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/yellow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/分类.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/地址1.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/地址二.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/我的.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/images/购物车.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
zdxt-web-client/zdxt-enforcement-code-app/src/assets/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

35
zdxt-web-client/zdxt-enforcement-code-app/src/assets/style/index.less

@ -0,0 +1,35 @@
html,body,#app{
width: 100%;
height: 100%;
overflow: hidden;
}
/**
* 适配 iphone 底部安全区
*/
@supports (bottom: env(safe-area-inset-bottom)){
#app {
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
}
}
.app_content{
overflow: hidden;
}
.warp_body{
overflow-y: scroll;
background-color: #f4f4f4;
flex: 1;
margin-top: 2%;
}
.header_body {
height: 50px;
}
.footer_body{
height: 1.5rem;
}
.no_data{
display: flex;
margin: auto;
}

22
zdxt-web-client/zdxt-enforcement-code-app/src/common/globalConfigure.js

@ -0,0 +1,22 @@
const $globalConfigure = (callback, data) => {
const { subMsgKey = "" } = $globalStore.useCommon;
if (subMsgKey) {
$globalEventBus.on(subMsgKey, ($event) => {
if (
callback &&
Object.prototype.toString.call(callback) === "[object Function]"
) {
callback({
subMsgKey,
event: $event,
});
}
});
} else {
callback &&
Object.prototype.toString.call(callback) === "[object Function]" &&
callback({});
}
};
export { $globalConfigure };

19
zdxt-web-client/zdxt-enforcement-code-app/src/common/globalConstant.js

@ -0,0 +1,19 @@
const modulesConstant = import.meta.glob("../constant/**/*.js", {
import: "default",
eager: true,
});
const constantArr = [];
const $globalConstant = {};
for (const [key, value] of Object.entries(modulesConstant)) {
for (const [childKey, childValue] of Object.entries(value)) {
if (constantArr.includes(childValue)) {
console.error(`文件${key}中常量${childValue}存在重复`);
} else {
constantArr.push(childValue);
$globalConstant[childKey] = childValue;
}
}
}
export { $globalConstant };

5
zdxt-web-client/zdxt-enforcement-code-app/src/common/globalEventBus.js

@ -0,0 +1,5 @@
import mitt from "mitt";
const $globalEventBus = new mitt()
export {
$globalEventBus
};

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save