# 开发环境配置
* 中行支付对接需调用32位系统的插件。所以需要使用`32位`的node版本。[关于windows安装多版本nodejs](https://raythunder.cn/multiple-versions-node-on-windows/)

* 编译windows原生模块，一键安装所需构建工具。[安装windows-build-tools](https://www.npmjs.com/package/windows-build-tools)
* 安装原生依赖模块后（如node-ffi），需要把该模块编译成对应electron版本的原生模块。默认情况下会自动编译。

    如果有什么报错继续执行`npm run rebuild`
* 配置vue.config.js
    ```
    ....
    pluginOptions: {
        electronBuilder: {
        externals: ['ffi'],  // 这里填入原生模块
        // If you are using Yarn Workspaces, you may have multiple node_modules folders
        // List them all here so that VCP Electron Builder can find them
        nodeModulesPath: ['../../node_modules', './node_modules'],
        ...
    ```


# 开发步骤
> 注意先切换至32位nodejs

## 安装项目的全部依赖
```
yarn // 或 npm i
```

# 项目运行
## 测试环境
```
yarn run electron:serve  // 或 npm run electron:serve
```
## 打包
```
yarn run electron:build // 或 npm run electron:build
```

# .npmrc文件修改了相关软件包的源地址
electron测试环境首次启动时，需要安装chrome内核的相关开发者插件，可能需要翻墙安装。否则会导致启动失败

# TODO
- [ ] 身份证读取数据时，有空数据先更新空数据，否则新增数据
- [ ] IP地址获取错误

# 相关文档
* [vue-echart](https://github.com/ecomfe/vue-echarts/blob/master/README.zh_CN.md)
* [配置原生模块](https://nklayman.github.io/vue-cli-plugin-electron-builder/guide/guide.html#native-modules)
* [关于在electron中调用C++动态库的经验总结](https://blog.csdn.net/wang839305939/article/details/83780789)
* [node-ffi使用指南](https://juejin.im/post/5b58038d5188251b186bc902)
* [process和child_process使用详解](https://www.php.cn/js-tutorial-390359.html)
* [FileSaver.js 介绍](https://www.cnblogs.com/yunser/p/7629399.html)




# 其他
1. 二维码扫码机。注意关闭回车符设置
2. ○窗

## yarn 安装
https://yarnpkg.com/lang/zh-hans/docs/install/


ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/ npm install --save-dev electron

## yarn 常用命令
### 添加依赖包
```
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
```
### 将依赖项添加到不同依赖项类别

分别添加到 devDependencies、peerDependencies 和 optionalDependencies：
```
yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional
```
### 升级依赖包
```
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
```
### 移除依赖包
```
yarn remove [package]
```
# 西宁远程服务器
``` bash
route add 10.100.11.0 mask 255.255.255.0 192.168.17.165
```
```
10.100.11.10
clear
clear!@#
```

# 中行支付，密码键盘tusn配置文件
qrcode.pay/trans.ini
`post_url`,`get_url`,`TUSN`三个字段里的序列号与密码键盘背面的TUSN数字保持一致。

# 西宁款台号格式
011001、011002

# 西宁远程命令
./edge.exe -c xhlticket1 -a 10.0.19.201 -k xhlticket1 -l pres.cleartv.cn:11443

10.0.19.102
clear
clear!@#

var/www/cticket/winApp

`xining`

线下 hsz990814zshzy
自营 hsz990814zsh
分销 hsz990814zshfx

西宁线上账号：张立霞  1234qwer

# s631第一张打印空白，官方回复
http://www.chongshang.com.cn/news/view.asp?id=633

# 软件更新
打包后放至CDN服务器，同步更新根目录下的index.html里的版本号及下载地址。需要上传到服务器的文件为`index.html、软件包、latest.yml`。cnd服务的软件上传位置为`/home/clear/pcdn/client`

# 各景区名：
西宁景区
清鹤景区


# iconv-lite  关于报错_webpack_require()的解决方法
到node_modules中找到iconv-lite文件夹，lib文件夹，打开index.js，最下方有两个require的后一个参数括号去掉，如下：
``` js
var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
if (nodeVer) {

    // Load streaming support in Node v0.10+
    var nodeVerArr = nodeVer.split(".").map(Number);
    if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
        require("./streams");//修改这个
    }

    // Load Node primitive extensions.
    require("./extend-node");//修改这个
}
```

[vue-cli@3 + electron开发一款本地小说阅读器](https://www.jianshu.com/p/251abed3b6ba)


# 修改支付测试需要修改的地方
根据景点名称修改，配置文件的mock参数，以及：
1. @/utils/index.js  getPayResponse
2. @/utils/choosePay.js  


# 西宁
http://111.44.187.162:88 外网
http://10.100.11.10  内网
清鹤测试， 密码：clear!@#
# 西宁远程命令
./edge.exe -c xhlticket1 -a 10.0.19.201 -k xhlticket1 -l pres.cleartv.cn:11443

10.0.19.102
clear
clear!@#


# 狼山
GPU2+票务服务器 
10.251.9.111 
## 外网
http://61.147.239.41:2019
------------------------
./edge.exe -k lsnetworkgpu2 -c lsnetworkgpu2 -a 10.0.18.202 -l pmgt.cleartv.cn:11443

10.0.18.101
user:1qaz@WSX 


前端目录：
/var/www/frontend/frontend
访问：
http://10.251.9.111/frontend/1.html

内网应急下载地址
http://10.251.9.111/frontend/winApp/%E6%B8%85%E9%B9%A4%E5%94%AE%E6%A3%80%E7%A5%A8%E7%B3%BB%E7%BB%9F%20Setup%201.3.50.exe


# 军山 10.251.9.112
--------------
./edge.exe -k clearJunShan!@# -c clearnetwork -a 10.0.17.250 -l n2n.cleartv.cn:11443

10.0.17.103
user:1qaz@WSX 

前端目录：
/var/www/cticket/frontend/frontend
访问：
http://10.251.9.112/frontend/1.html

# 搭建内部npm
[sinopia的部署和使用](https://www.jianshu.com/p/737d38e9bb1e)
[用sinopia搭建内部npm服务](https://www.cnblogs.com/czf-zone/p/6860457.html)
[Electron实现在线升级及功能的热更新](https://www.jianshu.com/p/94038d299fa9)


# 涉及支付的页面

/ticketSale/retail
/ticketSale/quickSell
/ticketSale/group
/ticketSale/preOrderGroup
/ticketSale/discountSales
/membership/memberSales
/membership/memberPreSales   iccardCheckout
/membership/memberRecharge


# 注册到全局的组件
路径：src/components/GlobalComponents/

- `ChannelTag` 渠道标签，传入渠道id。
    - value: [number]
- `OrderStatusTag` 订单或票的状态标签，传入状态。
    - value: [string]
- `Ellipsis` 定长文字
    - type: 'tooltips'/'popover'
    - content: [string]
    - length: [number]
- `Tip` 图标文字提示
    - msg: [string]
- `QRReader` 二维码摄像头识别组件
    - v-model: [string]


# 线上demo对应线下地址
http://192.168.30.201

# 日志生成工具
```
npm install -g conventional-changelog-cli
```
不会重写之前的日志，在前一个标签基础上生成
```
conventional-changelog -p angular -i ./public/CHANGELOG.md -s
-r 10 生成10个版本
```

# 安装node 引擎报错

```bash
yarn install --ignore-engines
```

# 同步远程分支
```
git fetch origin --prune
```
# 终端配置
https://gitlab.cleartv.cn/clear-ticket/cticket-doc/-/blob/master/%E6%A3%80%E7%A5%A8%E7%BB%88%E7%AB%AF/checker/Readme.md

https://gitlab.cleartv.cn/clear-ticket/cticket-doc/-/blob/master/%E6%A3%80%E7%A5%A8%E7%BB%88%E7%AB%AF/checker/%E6%A3%80%E7%A5%A8%E7%BB%88%E7%AB%AF%E6%8E%A5%E5%8F%A3.md
