John.Hong 2 éve
commit
6d210bb11f

+ 0 - 0
.gitignore


+ 6 - 0
.obsidian/app.json

@@ -0,0 +1,6 @@
+{
+  "alwaysUpdateLinks": true,
+  "attachmentFolderPath": "./",
+  "livePreview": false,
+  "readableLineLength": false
+}

+ 3 - 0
.obsidian/appearance.json

@@ -0,0 +1,3 @@
+{
+  "theme": "moonstone"
+}

+ 19 - 0
.obsidian/core-plugins.json

@@ -0,0 +1,19 @@
+[
+  "file-explorer",
+  "global-search",
+  "switcher",
+  "graph",
+  "backlink",
+  "outgoing-link",
+  "tag-pane",
+  "page-preview",
+  "daily-notes",
+  "templates",
+  "note-composer",
+  "command-palette",
+  "editor-status",
+  "starred",
+  "outline",
+  "word-count",
+  "file-recovery"
+]

+ 1 - 0
.obsidian/hotkeys.json

@@ -0,0 +1 @@
+{}

+ 145 - 0
.obsidian/workspace

@@ -0,0 +1,145 @@
+{
+  "main": {
+    "id": "235f405555070fb5",
+    "type": "split",
+    "children": [
+      {
+        "id": "5a5d504908660aab",
+        "type": "leaf",
+        "state": {
+          "type": "markdown",
+          "state": {
+            "file": "需求/临时停车.md",
+            "mode": "preview",
+            "source": true
+          }
+        }
+      }
+    ],
+    "direction": "vertical"
+  },
+  "left": {
+    "id": "cad2d7806f18f994",
+    "type": "split",
+    "children": [
+      {
+        "id": "c3e466dbc76de46f",
+        "type": "tabs",
+        "children": [
+          {
+            "id": "00df73ce08b09e23",
+            "type": "leaf",
+            "state": {
+              "type": "file-explorer",
+              "state": {}
+            }
+          },
+          {
+            "id": "bbc046c5695690cd",
+            "type": "leaf",
+            "state": {
+              "type": "search",
+              "state": {
+                "query": "",
+                "matchingCase": false,
+                "explainSearch": false,
+                "collapseAll": false,
+                "extraContext": false,
+                "sortOrder": "alphabetical"
+              }
+            }
+          },
+          {
+            "id": "60f3361728eed826",
+            "type": "leaf",
+            "state": {
+              "type": "starred",
+              "state": {}
+            }
+          }
+        ]
+      }
+    ],
+    "direction": "horizontal",
+    "width": 300
+  },
+  "right": {
+    "id": "92f34ccd6e801b63",
+    "type": "split",
+    "children": [
+      {
+        "id": "d32b66c4175348fb",
+        "type": "tabs",
+        "children": [
+          {
+            "id": "8b34ea063b673d54",
+            "type": "leaf",
+            "state": {
+              "type": "backlink",
+              "state": {
+                "file": "需求/临时停车.md",
+                "collapseAll": true,
+                "extraContext": false,
+                "sortOrder": "alphabetical",
+                "showSearch": false,
+                "searchQuery": "",
+                "backlinkCollapsed": false,
+                "unlinkedCollapsed": true
+              }
+            }
+          },
+          {
+            "id": "889d581138d9c591",
+            "type": "leaf",
+            "state": {
+              "type": "outgoing-link",
+              "state": {
+                "file": "需求/临时停车.md",
+                "linksCollapsed": false,
+                "unlinkedCollapsed": true
+              }
+            }
+          },
+          {
+            "id": "beee34fe2125da71",
+            "type": "leaf",
+            "state": {
+              "type": "tag",
+              "state": {
+                "sortOrder": "frequency",
+                "useHierarchy": true
+              }
+            }
+          },
+          {
+            "id": "5e313fae9c606b20",
+            "type": "leaf",
+            "state": {
+              "type": "outline",
+              "state": {
+                "file": "需求/临时停车.md"
+              }
+            }
+          }
+        ],
+        "currentTab": 3
+      }
+    ],
+    "direction": "horizontal",
+    "width": 300,
+    "collapsed": true
+  },
+  "active": "5a5d504908660aab",
+  "lastOpenFiles": [
+    "开发/工作流程.md",
+    "开发/埋点.md",
+    "缺陷/未命名.md",
+    "日常/2022.9.1.md",
+    "项目/KIP/泊车缴费-开票流程.md",
+    "项目/KIP/泊车缴费-开票流程 1.md",
+    "项目/KIP/未命名.md",
+    "项目/cip-middleware-service/项目配置.md",
+    "项目/android/001文件上传.md",
+    "项目/CRM/小程序/readme.md"
+  ]
+}

+ 13 - 0
uniapp/001扫码.md

@@ -0,0 +1,13 @@
+```js
+	// 扫一扫
+	scanCode() {
+		const self = this
+		uni.scanCode({
+			success: function (res) {
+					console.log('条码类型:' + res.scanType);
+					console.log('条码内容:' + res.result);
+					self.scanObj = JSON.stringify(res)
+				}
+		})
+	},
+```

+ 0 - 0
uniapp/未命名.md


+ 2 - 0
zh/电脑.md

@@ -0,0 +1,2 @@
+.\sysadmin
+*Ab12345

+ 15 - 0
书签/工作相关.md

@@ -0,0 +1,15 @@
+设计稿:https://lanhuapp.com/dashboard/#/item?fid=all
+
+jira:https://kerryprops.atlassian.net/jira/software/c/projects/KIP/boards/38
+
+ confluence:https://kerryprops.atlassian.net/wiki/home
+
+gitlab:http://git.kerryprops.com/scrm
+
+S端前端代码:[http://git.kerryprops.com/kerry-integrated-platform/kip-admin-portal](http://git.kerryprops.com/kerry-integrated-platform/kip-admin-portal)
+
+C端小程序端代码:[http://git.kerryprops.com/kerry-integrated-platform/KIP-for-consumer](http://git.kerryprops.com/kerry-integrated-platform/KIP-for-consumer)
+
+uni-app 微信支付:[https://www.jianshu.com/p/cbed1fc80d73](https://www.jianshu.com/p/cbed1fc80d73)
+
+Studio Tron Wiki:[https://kerryprops.atlassian.net/wiki/spaces/TAIC/pages/1212575/Studio+Tron](https://kerryprops.atlassian.net/wiki/spaces/TAIC/pages/1212575/Studio+Tron)

+ 377 - 0
工具/node/版本管理.md

@@ -0,0 +1,377 @@
+### windows10:
+[https://docs.volta.sh/reference/](https://docs.volta.sh/reference/)
+
+
+
+原文:[https://juejin.cn/post/7085383981100695565](https://juejin.cn/post/7085383981100695565)
+
+![还在用nvm做node管理工具?快来试试Volta吧!](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1bf745e50de048caaa0d0f6b2dd08938~tplv-k3u1fbpfcp-zoom-crop-mark:3024:3024:3024:1702.awebp?)
+
+### 还在用nvm做node管理工具?快来试试Volta吧!
+
+### SUBCOMMANDS:速查命令
+
+```bash
+volta fetch        将工具缓存到本地,方便使用,下次不用重新下载
+volta install      下载一个工具例如 volta install node@14(自动下载稳定版本)   切换node版本也可以使用此命令
+volta uninstall    卸载一个工具,指定详细名称如node/npm/cnpm/yarn
+volta pin          将使用的工具版本固定到json中
+volta list         查看当前使用工具的版本,后面加上工具名称如node/npm/cnpm/yarn都可以
+volta completions  不知道有啥用
+volta which        查看volta安装目录
+volta setup        切换当前使用的用户,没啥用
+volta help         没啥用
+复制代码
+```
+
+> 为什么会用Volta呢?因为这段时间电脑上的yarn出了问题,**yarn install**之后就报错`There appears to be trouble with your network connection. Retrying...`,期间找了很多方法都没有解决,但是今天用Volta安装了yarn之后居然奇迹般的可以下载了,速度还特别快。虽然可以了,但依然不知道什么原因导致的。不过又可以用yarn了,开心😄~~ ![avatar](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/49f900faa7444b3ca165f19e359d7478~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.awebp)
+
+# 🥤什么是Volta
+
+标题说 Node.js 版本控制,但你也可以做 npm/yarn 版本控制。[在官方网站上](https://link.juejin.cn/?target=https%3A%2F%2Fvolta.sh%2F "https://volta.sh/"),它被介绍为“无忧无虑的 JavaScript 工具管理器”。当我把项目的 Node.js 的版本控制统一到 Volta 的时候,DX 上去了很多,我感受到了 Volta 的好处。
+
+> 目前没有详细解释的中文资源,所以我阅读了官方文档并酌情将其翻译成中文。 希望有大佬可以无痛阅读并介绍Volta。
+
+# 🥤Volta概述
+
+我们来看看官网介绍的三个功能。 [Get Started →](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Fguide%2Fgetting-started%2F "https://docs.volta.sh/guide/getting-started/")
+
+##### ⚡ Fast| 快
+
+Install and run any JS tool quickly and seamlessly! Volta is built in Rust and ships as a snappy static binary.
+
+> 快速无缝地安装和运行任何 JS 工具!Volta 内置于 Rust 并作为一个活泼的静态二进制文件提供。 Volta 是由 Rust 制作的,因此它比其他版本控制工具运行得更快。 *** 快点很好。***
+
+##### ⚡ Reliable| 稳固|可靠
+
+Ensure everyone in your project has the same tools—without interfering with their workflow.
+
+> 确保项目中的每个人都拥有相同的工具,而不会干扰他们的工作流程 。 这是我觉得最受益的地方。 `volta pin`您可以使用该命令轻松对齐项目成员的 Node.js 和 npm 版本。  
+> 我将在文章后面详细解释如何使用它,所以我先放着它。
+
+##### ⚡ Universal| 万能
+
+No matter the package manager, Node runtime, or OS, one command is all you need: `volta install`.
+
+> 无论是包管理器、Node 运行时还是操作系统,您只需要一个命令:`volta install`.  
+> Windows/Mac/Linux。适用于任何操作系统。  
+> 除非每个人都在使用 Volta,否则它无法工作,因此它可以在任何操作系统上运行很重要。
+
+# 🔔特点
+
+让我们快速浏览一下这些功能。
+
+-   速度⚡️
+-   逐个项目的无缝版本切换
+-   跨平台支持,包括 Windows 和所有 Unix shell
+-   支持多个包管理器
+-   工具安装稳定(每次节点升级后无需重新安装)
+-   用于特定于站点的自定义的可扩展性挂钩
+
+# ❣️为什么要使用 Volta?| 为什么选择Volta?
+
+> 使用 Volta,一旦您选择了 Node 引擎,您就不必担心它。切换项目不需要您手动切换版本。您可以在工具链中安装 npm 软件包二进制文件,而无需定期重新安装它们或找出它们停止工作的原因。
+
+### 快速设置和切换 Node 引擎
+
+> 您可以获取和使用特定版本的节点。
+
+```shell
+$ volta install node@14
+复制代码
+```
+
+> 您会立即注意到该工具的响应能力。您的开发时间很宝贵!JavaScript 开发人员应该得到一个快速的工具。🙂
+
+当然我觉得安装很快。
+
+### 协作者的可复制环境
+
+> Volta 允许您使用单个命令选择项目的节点引擎和包管理器。
+
+```shell
+~~路径/到/你的/项目~~
+$ volta pin node@12
+复制代码
+```
+
+> Volta 将 Node 引擎的确切版本存储在 package.json 中,因此您可以将您的选择提交给 git。从那时起,每次您在项目目录中运行 Node 时,Volta 都会自动切换到与您选择相同版本的 Node 。同样,您的合作者也可以通过在他们各自的开发机器上安装 Volta 来做同样的事情。
+
+这就是Volta的全部意义所在。这是每个人都在使用Volta的条件,但是创建环境的人可以`volta pin`通过命令修复版本,其他成员可以不假思索地执行它`npm install`。 能省去检查版本的麻烦。
+
+### 😏重新安装?
+
+> Volta 允许您将喜欢的软件包二进制文件安装为命令行工具,而不必担心会破坏您的开发项目。更好的是,这些工具在安装期间固定到特定的 Node 引擎,除非您明确指示它们,否则不会更改。
+
+```shell
+$ npm install -g surge
+$ surge -h
+复制代码
+```
+
+即使使用此全局安装,也会为每个项目记住版本,因此您不必担心版本。
+
+# 🛠️安装 Volta | 入门
+
+现在让我们安装 Volta。
+
+安装前最好把当前使用的Node版本控制工具去掉,但也并非必须的。
+
+工具的删除部分(nodebrew, NVM, nodist, ...)的模式太多了,所以我就省略删除方法了。请根据自己的环境检查!
+
+> 如果按照了nodebrew,可以通过参考[这篇文章将其删除。](https://link.juejin.cn/?target=)
+
+## 安装Volta
+
+[按照官方入门](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Fguide%2Fgetting-started "https://docs.volta.sh/guide/getting-started")安装。  
+如果操作系统是 Mac / Linux(包括 WSL),您可以使用以下命令轻松安装它。
+
+```shell
+$ curl https://get.volta.sh | bash
+复制代码
+```
+
+命令是`| bash`,但即使是那些使用 zsh /fish 的人也可以毫无问题地安装它。让我们照原样做吧!  
+我很感激通行证会自动通过。
+
+对于 Windows,可以使用 Windows 安装程序,一路next即可
+
+⚠️对于 Windows,使用 Volta 似乎需要一些设置,因此请按照[官网的说明进行设置。](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Fguide%2Fgetting-started "https://docs.volta.sh/guide/getting-started"),~~但是我没有设置依旧可以使用~~,可以理解为开箱即用。
+
+## 确认已安装
+
+`.zshrc`查看shell配置文件如带有`cat`命令的文件等,如果写入如下路径,就OK了。 ~/.zshrc
+
+```shell
+export VOLTA_HOME="$HOME/.volta"
+export PATH="$VOLTA_HOME/bin:$PATH"
+复制代码
+```
+
+重新启动终端一次`volta`,检查是否可以使用该命令。
+
+```shell
+$ volta --version
+复制代码
+```
+
+-   👊🏽显示Volta版本时安装完成!
+
+# ✔了解 Volta
+
+> Volta 的工作是`node`管理JavaScript 命令行工具,例如作为 JavaScript 包的一部分提供的可执行文件`npm`。 与包管理器一样,Volta 会根据您当前的目录跟踪您正在处理的项目。Volta 工具链中的工具会自动检测您在使用特定版本工具的项目中,并将您引导到最适合您的工具版本。`yarn`
+
+## 管理你的工具链
+
+> Volta 工具链管理的工具由`volta install`两个`volta uninstall`命令控制
+
+### Node安装
+
+> 在工具链中安装工具时,安装的版本是该工具的_默认版本_。除非您在一个项目目录中工作,其中您有一个固定版本的 Node 以使用不同的版本,否则它默认为 Volta 使用的版本。 例如,您可以通过安装特定版本来选择 Node 的默认版本。
+
+```shell
+$ volta install node@14.15.5
+复制代码
+```
+
+> 如果您没有指定确切的版本,Volta 会选择与您的请求相匹配的适当版本。
+
+```shell
+$ volta install node@14
+复制代码
+```
+
+> `latest`您也可以安装最新版本。此外,如果您完全省略版本,Volta 将选择并安装最新的 LTS 版本。
+
+```shell
+$ volta install node@latest
+# Node@LTS
+$ volta install node
+复制代码
+```
+
+> 当您运行任何这些命令时,由 Volta 在 PATH 环境(或 Windows 上的 Path)中提供的节点可执行文件默认自动运行所选版本的节点。 同样,您可以使用`volta install npm`和`volta install yarn`分别选择 npm 和 Yarn 包管理器的版本。这些工具使用所选节点的默认版本运行。
+
+### 节点引擎固定
+
+> `volta pin`您可以使用命令来选择项目的 Node 引擎和包管理器的版本。
+
+```shell
+$ volta pin node@14.17
+$ volta pin npm@6.14
+复制代码
+```
+
+将Volta保存到`package.json`:
+
+```json
+"volta":  {  
+	"node":  "14.17.3",  
+	"npm":  "6.14.13"  
+}
+复制代码
+```
+
+> 这样,使用 Volta 进行项目开发的每个人都将自动获得与json设置的相同版本。
+
+### 使用项目工具
+
+> node和包管理器可执行文件不是工具链中唯一的智能工具。工具链中的包二进制文件也可以识别当前目录并尊重当前项目结构。
+
+> 例如,安装 Typescript 包会将编译器可执行文件 ( `tsc`) 添加到工具链中。 终端
+
+```shell
+$ npm install --global typescript
+复制代码
+```
+
+> 根据您参与的项目,此可执行文件将切换到您项目中选择的 TypeScript 版本。
+
+```shell
+cd /path/to/project-using-typescript-3.9.4
+tsc --version # 3.9.4
+
+cd /path/to/project-using-typescript-4.1.5
+tsc --version # 4.1.5
+复制代码
+```
+
+如您所见,不仅 Node 和 npm / Yarn 等包管理器,而且通过它们安装的包二进制文件都受到 Volta 的监控。因此,它会自动切换每个项目的版本。
+
+### 安全便利
+
+> Volta 的工具链会跟踪您的位置。因此,您使用的工具将始终优先考虑您正在处理的项目的设置。这意味着您在切换项目时不必担心更改已安装软件的状态。 此外,每次运行工具时,Volta 都会覆盖跟踪,使 npm 或 Yarn 脚本永远不会知道工具链的内容。 结合这两个特性,Volta 解决了全局封装的问题。换句话说,Volta 提供了全局包安装的便利,但没有危险。 例如,`npm i -g typescript`您可以安全地安装 TypeScript,`tsc`并享受直接从控制台调用它的便利。
+
+# 💡Volta 命令
+
+`volta`命令行二进制参考如下。[(点此查看](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Freference%2F "https://docs.volta.sh/reference/")官方命令参考)
+
+```shell
+The JavaScript Launcher ⚡
+    To install a tool in your toolchain, use `volta install`.
+    To pin your project's runtime or package manager, use `volta pin`.
+USAGE:
+    volta [FLAGS] [SUBCOMMAND]
+FLAGS:
+        --verbose    
+            Enables verbose diagnostics
+        --quiet      
+            Prevents unnecessary output
+    -v, --version    
+            Prints the current version of Volta
+    -h, --help       
+            Prints help information
+SUBCOMMANDS:
+    fetch          Fetches a tool to the local machine
+    install        Installs a tool in your toolchain
+    uninstall      Uninstalls a tool from your toolchain
+    pin            Pins your project's runtime or package manager
+    list           Displays the current toolchain
+    completions    Generates Volta completions
+    which          Locates the actual binary that will be called by Volta
+    setup          Enables Volta for the current user / shell
+    help           Prints this message or the help of the given subcommand(s)
+复制代码
+```
+
+## Volta常用命令介绍
+
+最后,我想介绍一些常用的命令。
+
+### `volta install`
+
+`volta install`设置工具的默认版本。如果未缓存本地指定的版本,请从该工具中获取它。  
+如何使用`volta install [FLAGS] <tool[@version]>`。 上面说明了安装时指定版本的方法,但总结如下。
+
+```shell
+# 安装指定版本的node
+$ volta install node@14.17.3  
+
+# 安装特定版本中的稳定的node版本
+$ volta install node@14  
+
+# 安装LTS版本的node 
+$ volta install  node  
+
+# 安装最新版本的node
+$ volta install node@latest
+复制代码
+```
+
+### `volta pin`
+
+`volta pin package.json`该命令更新项目文件以使用所选版本的工具。  
+此命令只能用于节点和包管理器(npm / Yarn)。  
+使用方法是`volta pin [FLAGS] <tool[@version]>`。
+
+```shell
+# node版本固定
+$ volta pin node@14.17
+
+# npm版本固定
+$ volta pin npm@6.14 
+# or volta pin yarn@1.19
+复制代码
+```
+
+在项目目录中执行上述`volta pin`命令时,`package.json`将写入以下设置。
+
+```diff-json
+{
+  ...,
++ "volta": {
++   "node": "14.17.3",
++   "npm": "6.14.13" //or "yarn": "1.19.2"
++ }
+}
+复制代码
+```
+
+通过与您的团队共享此`package.json`内容,例如在 GitHub 上,每个人都可以使用相同版本的 Node 或 npm。
+
+例如,假设您在`package.json`一个项目中运行了上述设置。如果 npm 的版本缓存在 本地机器上,将显示。 如果它没有缓存在本地机器上,它将从安装开始,并在安装完成时显示。`npm -v`  
+`6.14.13``6.14.13`  
+`6.14.13``6.14.13`
+
+这样,如果你本地有那个版本,它会自动切换到那个版本,否则它会从版本安装开始。
+
+这很方便,而且`npm install`即使你运行它而不用担心版本,版本也会自动对齐,所以`package-lock.json`不会有任何差异。(npm 6系和7系`package-lock.json`的内容很不一样。)
+
+### `volta list`
+
+`volta list`该命令检查并显示包含已安装 Node 运行时、包管理器和二进制文件的包。  
+如何使用`volta list [FLAGS] [OPTIONS] [tool]`。
+
+`volta list`该命令的用法总结如下。
+
+```shell
+# 使用方法
+volta list [FLAGS] [OPTIONS] [tool]
+# Flags
+-c, --current # 显示当前活动工具
+              # 此标志为缺省设置
+-d, --default # 显示默认工具
+    --verbose # 启用高级诊断
+    --quiet   # 防止不必要的显示
+-h, --help    # 显示帮助信息
+
+# OPTIONS
+--format <format>   # 指定输出格式
+                    # 有效值为`human`or`plain`
+                    # 默认值为`human`,否则为`plain`
+                    
+# ARGS
+<tool>  # 指定要列出的工具(node,npm,yarn或其他二进制文件)
+        # 指定all以显示所有内容
+复制代码
+```
+
+`volta list`您可以查看该项目中使用的工具的版本。  
+`volta list all`现在您可以看到 Volta 管理的工具列表。
+
+# 💬概括
+
+写了这么长的一句话,希望大家能明白Volta的魅力。  
+我认为这对于主要开发 JavaScript 的人来说是最好的解决方案。 我们相信您使用 Volta 的人越多,您就越能享受到它的好处,所以请考虑将它介绍给您的开发团队。
+
+🙏感谢您阅读到最后。再见。

+ 20 - 0
工具/webstorm/识别rpx.md

@@ -0,0 +1,20 @@
+### 待优化
+不能识别行内和.css文件
+
+[https://wufengxue.github.io/2021/05/21/WebStorm-rpx-support.html](https://wufengxue.github.io/2021/05/21/WebStorm-rpx-support.html)
+
+4.2 wechat-miniprogram-plugin(最终方案)
+     直接在 WebStorm 设置中的插件市场搜索安装,也是未能生效。查看插件文档介绍,发现有类似需求的评论。
+
+
+
+     查看其 gitee 项目,最终在一个已关闭的 issue 中找到了解决方案:
+
+WebStorm -> Preferences… -> 左侧搜索框输入 wechat -> Languages & Frameworks -> Wechat Mini Program -> 右侧的菜单中,将【小程序支持】切换到【启用】-> Apply -> OK -> 等待1至2分钟,标红自动消失,格式化代码不再添加空格
+
+
+5 总结
+
+著作权归作者所有。
+商业转载请联系作者获得授权,非商业转载请注明出处。
+原文: https://wufengxue.github.io/2021/05/21/WebStorm-rpx-support.html

BIN
开发/e7da216e1d4abf8d356d44aefb43d5d.png


+ 44 - 0
开发/埋点.md

@@ -0,0 +1,44 @@
+服务提供商:北京神策
+
+npm版本:sa-sdk-miniprogram@1.17.2
+
+```js
+// 埋点  
+this.sensorsClick('$ClickFavoritesIcon', {  
+ ticket_id: item.ticketId,  
+ vipcode: app.globalData.member.vipcode,  
+ redirect_url: '',  
+})
+```
+
+```js
+onLoad:页面首次加载时进行埋点操作
+// 埋点本地化  
+this.preUrl = uni.getStorageSync('previousUrl');  
+uni.setStorageSync('previousUrl', '/pages/activity/myActivityDetails.vue');
+```
+
+```js
+// 埋点方法  
+sensorsClick(eventName, params) {  
+  let optionsQuery = uni.getStorageSync('options_query')  
+  let fixedParams = {  
+      cta_itemno: '',  
+      cta_name: '',  
+      previous_url: this.preUrl || '',  
+      // 原previous_url: uni.getStorageSync('previousUrl') || ''  
+      // previous_url: 使用sdk预置参数$referrer,  
+      $brand_id:uni.getStorageSync('groupId'),  
+      $location: uni.getStorageSync('mallid'),  
+      $channel: optionsQuery.channel || '',  
+      // $utm_lbs: this.optionsQuery.utm_lbs || '',  
+      $utm_channel: optionsQuery.utm_channel || '',  
+      $utm_method: optionsQuery.utm_method || '',  
+      $utm_source: optionsQuery.utm_source || '',  
+      $utm_function: optionsQuery.utm_function || '',  
+      $utm_user: optionsQuery.utm_user || '',  
+    },  
+    finalParams = Object.assign(fixedParams, params)  
+  this.$sensors.track(eventName, finalParams)  
+},
+```

+ 2 - 0
开发/工作流程.md

@@ -0,0 +1,2 @@
+![[e7da216e1d4abf8d356d44aefb43d5d.png]]
+

+ 1 - 0
日常/2022.9.1.md

@@ -0,0 +1 @@
+jira状态

+ 0 - 0
缺陷/未命名.md


BIN
需求/32a57fe1f418766df45343e8c606b07.png


BIN
需求/Pasted image 20220906112627.png


+ 149 - 0
需求/临时停车.md

@@ -0,0 +1,149 @@
+[https://kerryprops.atlassian.net/browse/KIP-5945](https://kerryprops.atlassian.net/browse/KIP-5945)
+[https://kerryprops.atlassian.net/browse/KIP-5946](https://kerryprops.atlassian.net/browse/KIP-5946)
+
+## crm小程序端,
+逻辑部分:获取用户的一些信息
+groupId、kipUserId、mallId、(小程序端生成uuid)
+
+在getZindexForHomePage接口中,设置 临时停车的h5地址并且修改 linkType(管理端配置)
+
+#### 微信支付
+接收h5端拼接的微信支付信息,发起微信支付,将结果通过websocket返回给h5端
+
+## websocket通信协议
+说明:2端中间的通信数据,必须为 Object对象。通信时会统一加密通信数据,解密之后的数据格式如下;
+
+数据类型说明:
+```
+{
+	type: string   事件类型
+	options: any{}  通信时携带的数据,为 Object 类型
+}
+```
+
+1、h5端打开微信小程序页面
+```js
+type:'openWxPage'
+options: {
+  url: string 必须是完整地址
+  data: any{} 传输的数据
+}
+```
+
+2、微信小程序打开h5端页面
+```js
+type:'openHtmlPage'
+options: {
+  url: string 必须是完整地址
+  data: any{} 传输的数据
+}
+```
+
+3、h5端发起微信支付
+```js
+type:'openWxPay'
+options: {
+  //... 发起支付时所需的数据
+}
+```
+
+4、微信支付操作结束通知h5端(包含未支付和支付成功)
+```js
+type:'wxPayDone'
+options: {
+  //...支付结束之后的回调数据
+}
+```
+
+#### 加解密
+```js
+import CryptoJS from 'crypto-js'  
+const key = CryptoJS.enc.Utf8.parse("2B3C13E421D12ACF");  //十六位十六进制数作为密钥  
+const iv = CryptoJS.enc.Utf8.parse('ACE23C13D4B21F12');   //十六位十六进制数作为密钥偏移量  
+  
+//加密方法  
+export function Encrypt(word) {  
+  let srcs = CryptoJS.enc.Utf8.parse(word);  
+  let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });  
+  return encrypted.ciphertext.toString().toUpperCase();  
+}  
+  
+//解密方法  
+export function Decrypt(word) {  
+  let encryptedHexStr = CryptoJS.enc.Hex.parse(word);  
+  let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);  
+  let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });  
+  let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);  
+  return decryptedStr.toString();  
+}
+```
+
+#### uni socket协议
+[https://uniapp.dcloud.net.cn/api/request/websocket.html#connectsocket](https://uniapp.dcloud.net.cn/api/request/websocket.html#connectsocket)
+#### html socket协议
+
+
+#### node socket协议实现原理
+[http://zhenhua-lee.github.io/node/socket.html](http://zhenhua-lee.github.io/node/socket.html)
+## webview 页面能力
+[https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html](https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html)
+
+#### WebSocket-微信小程序
+[地址](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/development/websocket/miniprogram.html)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#### 流程图(废弃)
+![[临时停车H5流程图.svg]]
+
+说明:
+1、用户(进|出)停车场扫码
+2、小程序端判断为临时停车,向后端发起请求,获取临时停车的(h5地址+token|token)
+3、进入小程序端的webview
+4、用户离开停车场时,在H5端发起微信支付。通过websocket通知小程序端吊起微信支付,获取在h5端发起微信支付。支付完成之后,用户离开停车场。
+
+

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
需求/临时停车H5流程图.svg


+ 64 - 0
需求/停车缴费.md

@@ -0,0 +1,64 @@
+缴费记录
+```js
+      uni.navigateTo({
+
+        url: './parkingFeeList',
+
+      })
+
+      this.sensorsClick('$ClickParkRouter', {
+
+        cta_itemno: '',
+
+        cta_name: '缴费记录',
+
+        redirect_url: '/pages/parkingFee/parkingFeeList.vue',
+
+      })
+```
+停车券兑换
+```js
+ uni.navigateTo({
+
+        url: '/pages/pointsMall/pointsMall?exchangeTypes=2',
+
+      })
+
+      this.sensorsClick('$ClickParkRouter', {
+
+        cta_itemno: '',
+
+        cta_name: '停车券兑换',
+
+        redirect_url: '/pages/pointsMall/pointsMall.vue',
+
+      })
+
+    },
+```
+
+停车发票
+路径:/pages/parkingFee/parkingReceipt/parkingReceipt.vue
+```js
+uni.navigateTo({
+	url: './parkingReceipt/parkingReceipt',
+})
+
+this.sensorsClick('$ClickParkRouter', {
+	cta_itemno: '',
+	cta_name: '停车发票',
+	redirect_url: '/pages/parkingFee/parkingReceipt/parkingReceipt.vue',
+})
+```
+
+车辆管理:
+
+	路径:/pages/parkingFee/vehicleManagement.vue
+
+
+
+
+
+
+
+pages/parkingFee/parkingFeeDetailSuccess

+ 12 - 0
需求/前海机器人2022-9-1.md

@@ -0,0 +1,12 @@
+![[32a57fe1f418766df45343e8c606b07.png]]
+
+10点-10点半的机器人的需求梳理
+
+
+[https://kerryprops.atlassian.net/browse/KIP-5869](https://kerryprops.atlassian.net/browse/KIP-5869)
+
+[https://kerryprops.atlassian.net/browse/KIP-5872](https://kerryprops.atlassian.net/browse/KIP-5872)
+
+
+
+dataOffice 配置需求

+ 1 - 0
需求/月泊车需求.md

@@ -0,0 +1 @@
+![[Pasted image 20220906112627.png]]

+ 0 - 0
需求/未命名.md


+ 18 - 0
项目/CRM/小程序/readme.md

@@ -0,0 +1,18 @@
+### 车牌号
+```
+["浙C12410","浙C12411","浙C12412","浙C12413","浙C12414","浙C12415","浙C12416","浙C12417","浙C12418","浙C12419","浙C12420","浙C12421","浙C12422","浙C12423","浙C12424","浙C12425","浙C12426","浙C12427","浙C12428","浙C12429","浙C12430","浙C12431","浙C12432","浙C12433","浙C12434","浙C12435","浙C12436","浙C12437","浙C12438","浙C12439","浙C12440","浙C12441","浙C12442","浙C12443","浙C12444","浙C12445","浙C12446","浙C12447","浙C12448","浙C12449","浙C12450","浙C12451","浙C12452","浙C12453","浙C12454","浙C12455","浙C12456","浙C12457","浙C12458","浙C12459","浙C12460","浙C12461","浙C12462","浙C12463","浙C12464","浙C12465","浙C12466","浙C12467","浙C12468","浙C12469","浙C12470","浙C12471","浙C12472","浙C12473","浙C12474","浙C12475","浙C12476","浙C12477","浙C12478","浙C12479","浙C12480","浙C12481","浙C12482","浙C12483","浙C12484","浙C12485","浙C12486","浙C12487","浙C12488","浙C12489","浙C12490","浙C12491","浙C12492","浙C12493","浙C12494","浙C12495","浙C12496","浙C12497","浙C12498"]
+```
+
+
+### 小程序appid
+##### Kerry+嘉里嘉
+wx2a1741f02f7bb650
+
+#### 嘉里中心
+wxd830fe4d1e04988e
+
+#### 嘉里Kerry+
+wx92c3e55fbef6b2af
+
+
+src\pages\package-profile\invoice\components\invoice-form.vue

+ 0 - 0
项目/KIP/未命名.md


+ 76 - 0
项目/KIP/泊车缴费-开票流程 1.md

@@ -0,0 +1,76 @@
+创建发票
+接口:https://qa-apim.kerryplus.com/c/api/parking/v1/kip-order/invoice/upload
+
+示例:
+```
+curl 'https://qa-apim.kerryplus.com/c/api/parking/v1/kip-order/invoice/upload' \
+  -H 'Connection: keep-alive' \
+  -H 'Accept-Language: zh' \
+  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjIwMjIzMjAsInVzZXIiOnsidXNlcklkIjoiOGE4NDgxMTY4MmNmMDI0MjAxODJlZDVmYjhjNDAwMGQiLCJ1c2VyQ29kZSI6MTAyNDc3MjQsIm5pY2tOYW1lIjoi55yL55m96bm_772e772e8J-OhCIsInBob25lTnVtYmVyIjoiMTUyNjc2MTc0NzMiLCJmcm9tVHlwZSI6IkMiLCJzb3VyY2UiOiJLSVAiLCJpc05ld1VzZXIiOmZhbHNlLCJoZWFkRW1wdHkiOmZhbHNlLCJzaWdudXBNZXRob2QiOiIwIn0sInVzZXJfbmFtZSI6ImNvbS5rZXJyeXByb3BzLmtpcC5zZXJ2aWNlLmF1dGguc2VjdXJpdHkuY29tbW9uLkxvZ2luVXNlckA3ODIzNjQyZCIsImp0aSI6IjhlYzRlZDQxLTg0YzYtNDlmMS04Y2VjLTBhYmI2NDkzODM4YyIsImNsaWVudF9pZCI6IktJUCIsInNjb3BlIjpbImFwcCJdfQ.JaqWnYCqZv6byOY6SPS_8Iakas4pbAcO_Nis9nx7twAyuKKIrpGvm210w2izjK7H-FjsSssDx-MA6bQf_PnL8_8IH55vNYzZjWaLM2JRjpKKHE42S_khcGLLbQu5GIahRfKY8sVl_OKR5_uU_EHPw5_IyXyom7eMaThjICiNmP1sAcAyKep7K5pVG5INHFHUhvYqnWvAeGWEcbj8G-ccKDByZrs2As-5J-a7ND7rdSmDz5uLg6TVMrrz_ioRzMKX-xzYbV7n1tAn3bbqZVxZLDJXvbONOEZ1yLHmna6Y75BmTLVRcxzPZpzBu4BonMTKXMMR85SLazeAPnF-R6xJNA' \
+  -H 'content-type: application/json' \
+  -H 'EagleEye-SessionID: qylUy7nUhO2dzmqaXt7ss52qdmL5' \
+  -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2208010 MicroMessenger/8.0.5 Language/zh_CN webview/' \
+  -H 'appId: wx92c3e55fbef6b2af' \
+  -H 'lbsId: 8a84819f7c6e260e017c7f16cc2501cd' \
+  -H 'EagleEye-pAppName: avmv3yefy0@56c9b90b5328ce1' \
+  -H 'EagleEye-TraceID: 4dede13c1661935992538112228ce1' \
+  -H 'brandId: 8a84819f7c6e260e017c72669bbe01c2' \
+  -H 'Accept: */*' \
+  -H 'Sec-Fetch-Site: cross-site' \
+  -H 'Sec-Fetch-Mode: cors' \
+  -H 'Sec-Fetch-Dest: empty' \
+  -H 'Referer: https://servicewechat.com/wx92c3e55fbef6b2af/devtools/page-frame.html' \
+  --data-binary '{"invoiceType":"gvate","titleType":"1","invoiceTitle":"中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中","email":"john.hong@kerryprops.com","remark":"","orderNo":"335559505284796096","taxNo":"","tel":"","address":"","bankAccount":"","bankName":"","title":"","taxCode":"","orderType":"MONTH_PARKING_ORDER"}' \
+  --compressed
+```
+
+
+发票详情:
+接口:https://qa-apim.kerryplus.com/c/api/parking/v1/kip-order/invoice/record?orderNo=335559505284796096
+
+示例:
+```
+curl 'https://qa-apim.kerryplus.com/c/api/parking/v1/kip-order/invoice/record?orderNo=335559505284796096' \
+  -H 'Connection: keep-alive' \
+  -H 'Accept-Language: zh' \
+  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjIwMjIzMjAsInVzZXIiOnsidXNlcklkIjoiOGE4NDgxMTY4MmNmMDI0MjAxODJlZDVmYjhjNDAwMGQiLCJ1c2VyQ29kZSI6MTAyNDc3MjQsIm5pY2tOYW1lIjoi55yL55m96bm_772e772e8J-OhCIsInBob25lTnVtYmVyIjoiMTUyNjc2MTc0NzMiLCJmcm9tVHlwZSI6IkMiLCJzb3VyY2UiOiJLSVAiLCJpc05ld1VzZXIiOmZhbHNlLCJoZWFkRW1wdHkiOmZhbHNlLCJzaWdudXBNZXRob2QiOiIwIn0sInVzZXJfbmFtZSI6ImNvbS5rZXJyeXByb3BzLmtpcC5zZXJ2aWNlLmF1dGguc2VjdXJpdHkuY29tbW9uLkxvZ2luVXNlckA3ODIzNjQyZCIsImp0aSI6IjhlYzRlZDQxLTg0YzYtNDlmMS04Y2VjLTBhYmI2NDkzODM4YyIsImNsaWVudF9pZCI6IktJUCIsInNjb3BlIjpbImFwcCJdfQ.JaqWnYCqZv6byOY6SPS_8Iakas4pbAcO_Nis9nx7twAyuKKIrpGvm210w2izjK7H-FjsSssDx-MA6bQf_PnL8_8IH55vNYzZjWaLM2JRjpKKHE42S_khcGLLbQu5GIahRfKY8sVl_OKR5_uU_EHPw5_IyXyom7eMaThjICiNmP1sAcAyKep7K5pVG5INHFHUhvYqnWvAeGWEcbj8G-ccKDByZrs2As-5J-a7ND7rdSmDz5uLg6TVMrrz_ioRzMKX-xzYbV7n1tAn3bbqZVxZLDJXvbONOEZ1yLHmna6Y75BmTLVRcxzPZpzBu4BonMTKXMMR85SLazeAPnF-R6xJNA' \
+  -H 'content-type: application/json' \
+  -H 'EagleEye-SessionID: Cml097gUhngdp8xs4vFgjkpq9hXO' \
+  -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2208010 MicroMessenger/8.0.5 Language/zh_CN webview/' \
+  -H 'appId: wx92c3e55fbef6b2af' \
+  -H 'lbsId: 8a84819f7c6e260e017c7f16cc2501cd' \
+  -H 'EagleEye-pAppName: avmv3yefy0@56c9b90b5328ce1' \
+  -H 'EagleEye-TraceID: 4dede13c1661936262907123628ce1' \
+  -H 'brandId: 8a84819f7c6e260e017c72669bbe01c2' \
+  -H 'Accept: */*' \
+  -H 'Sec-Fetch-Site: cross-site' \
+  -H 'Sec-Fetch-Mode: cors' \
+  -H 'Sec-Fetch-Dest: empty' \
+  -H 'Referer: https://servicewechat.com/wx92c3e55fbef6b2af/devtools/page-frame.html' \
+  --compressed
+```
+
+
+
+
+```
+curl 'https://qa-apim.kerryplus.com/c/api/parking/v1/kip-order/invoice/upload' \
+  -H 'Connection: keep-alive' \
+  -H 'Accept-Language: zh' \
+  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjIwMjIzMjAsInVzZXIiOnsidXNlcklkIjoiOGE4NDgxMTY4MmNmMDI0MjAxODJlZDVmYjhjNDAwMGQiLCJ1c2VyQ29kZSI6MTAyNDc3MjQsIm5pY2tOYW1lIjoi55yL55m96bm_772e772e8J-OhCIsInBob25lTnVtYmVyIjoiMTUyNjc2MTc0NzMiLCJmcm9tVHlwZSI6IkMiLCJzb3VyY2UiOiJLSVAiLCJpc05ld1VzZXIiOmZhbHNlLCJoZWFkRW1wdHkiOmZhbHNlLCJzaWdudXBNZXRob2QiOiIwIn0sInVzZXJfbmFtZSI6ImNvbS5rZXJyeXByb3BzLmtpcC5zZXJ2aWNlLmF1dGguc2VjdXJpdHkuY29tbW9uLkxvZ2luVXNlckA3ODIzNjQyZCIsImp0aSI6IjhlYzRlZDQxLTg0YzYtNDlmMS04Y2VjLTBhYmI2NDkzODM4YyIsImNsaWVudF9pZCI6IktJUCIsInNjb3BlIjpbImFwcCJdfQ.JaqWnYCqZv6byOY6SPS_8Iakas4pbAcO_Nis9nx7twAyuKKIrpGvm210w2izjK7H-FjsSssDx-MA6bQf_PnL8_8IH55vNYzZjWaLM2JRjpKKHE42S_khcGLLbQu5GIahRfKY8sVl_OKR5_uU_EHPw5_IyXyom7eMaThjICiNmP1sAcAyKep7K5pVG5INHFHUhvYqnWvAeGWEcbj8G-ccKDByZrs2As-5J-a7ND7rdSmDz5uLg6TVMrrz_ioRzMKX-xzYbV7n1tAn3bbqZVxZLDJXvbONOEZ1yLHmna6Y75BmTLVRcxzPZpzBu4BonMTKXMMR85SLazeAPnF-R6xJNA' \
+  -H 'content-type: application/json' \
+  -H 'EagleEye-SessionID: qylUy7nUhO2dzmqaXt7ss52qdmL5' \
+  -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 wechatdevtools/1.06.2208010 MicroMessenger/8.0.5 Language/zh_CN webview/' \
+  -H 'appId: wx92c3e55fbef6b2af' \
+  -H 'lbsId: 8a84819f7c6e260e017c7f16cc2501cd' \
+  -H 'EagleEye-pAppName: avmv3yefy0@56c9b90b5328ce1' \
+  -H 'EagleEye-TraceID: 4dede13c1661935992538112228ce1' \
+  -H 'brandId: 8a84819f7c6e260e017c72669bbe01c2' \
+  -H 'Accept: */*' \
+  -H 'Sec-Fetch-Site: cross-site' \
+  -H 'Sec-Fetch-Mode: cors' \
+  -H 'Sec-Fetch-Dest: empty' \
+  -H 'Referer: https://servicewechat.com/wx92c3e55fbef6b2af/devtools/page-frame.html' \
+  --data-binary '{"invoiceType":"gvate","titleType":"1","invoiceTitle":"中中中中中中中中中中中中中中中中中中中中中中中中中中中中中中","email":"john.hong@kerryprops.com","remark":"","orderNo":"335559505284796096","taxNo":"","tel":"","address":"","bankAccount":"","bankName":"","title":"","taxCode":"","orderType":"MONTH_PARKING_ORDER"}' \
+  --compressed
+```

+ 5 - 0
项目/KIP/泊车缴费-开票流程.md

@@ -0,0 +1,5 @@
+1、创建发票
+接口:https://qa-apim.kerryplus.com/c/api/parking/v1/kip-order/invoice/upload
+
+2、发票详情:
+接口:https://qa-apim.kerryplus.com/c/api/parking/v1/kip-order/invoice/record?orderNo=335559505284796096

+ 6 - 0
项目/android/001文件上传.md

@@ -0,0 +1,6 @@
+文件上传:
+定时将相册中的视频文件。同步到
+
+摄像头(最好2k),录音机(频率要高)+OS+文件同步+远程控制(预算有限)
+
+看预算

+ 2 - 0
项目/cip-middleware-service/项目配置.md

@@ -0,0 +1,2 @@
+[https://juejin.cn/post/6865926810061045774](https://juejin.cn/post/6865926810061045774)
+

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott