webview init

This commit is contained in:
OBKoro1 2019-12-27 16:02:37 +08:00
parent a6b5f3d039
commit af14a9fb8c
23 changed files with 123 additions and 524 deletions

View File

@ -5,6 +5,7 @@
<!-- TODO: package.json 抄一下 --> <!-- TODO: package.json 抄一下 -->
<!-- TODO: wiki readme --> <!-- TODO: wiki readme -->
<!-- TODO: npm包形式 --> <!-- TODO: npm包形式 -->
<!-- webview 的icon -->
### [V1.0.0] ### [V1.0.0]

View File

@ -1,37 +0,0 @@
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1556172456353'); /* IE9 */
src: url('iconfont.eot?t=1556172456353#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAR8AAsAAAAACWQAAAQvAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDSAqFXIRgATYCJAMYCw4ABCAFhG0HVBsSCBEVnKXJvkiwOVdw8wHj5Dy/qawRhsvNcxa0LLb4/g5tR4Nngudzv89zkzxYYFA7K4FAKECFCqFExtVWVgJCtoSy839+f++5X57EBiMZ901KQqJQl5RWN9/Nv9taNJaFeJaGHK75PCqMwjG9v0F/AFyuJYEDYXaq+MiVAAKb+/zB3iT75GtMjX5jC8r1f46lXiZYfjs7l4zgiucpeECRq8LRbA28gYz3fCCyQXeDA33l+yFAMOnoghqa3P3Bx2DvE0CmJ5JiwC9YMB1Mwde7Deca5Dig+GoPjcCx6PvlC2XCAIWjsY/2jDrEQ40FB61k/MfADRBAupwLYBeBBkoBDMhio2cBnWRKIROs/wZDGxCKj8JYbLyVtBOfh/+BgsIOCKGOG2SH/3loDIgL0oRCbEfWAYvHh4CN50OBTZR0a89DF5rTlELZPTK4C26JBXgCkoBNKWWvEIxBoaOE6fxNJEYiSmaYRAKvcDihBQ/ViSeeJSSSztUP4zBWT1e/SWzUrcUkn6AQdfbqgr41QKudmtDgpgyqbxBcq/3xEEvaH0F4rWHLh4YBRWohVXh2rlvs+v72brp5WO4e1+u23gVR+Ro9Dz7cPt73xINuG5Ugt9Z1Q6Kklir3fr5taZMIOkeIPzT5N2OxgDMtEo+Pt/vz6pn6OkyDUFNuQrGBqztuOCu71b71tapYrbjy1j2fuu6Ls0qIWvFGZw3OmOwsdX1QkXXsysu7rb3OU3AU815rt/P4LhGmEa6es+xFECmlIFGgapLiw2vaq8uqg9nMi2tx8+x7oxOEmf39d30loUJoBKJyrbPvT6s3R0fX6XjKRWzsBeXPTMYmymF9RY/5lVDYUdhEqnBwvXEYfdNwqdvLNeDX/9g9QEg8HqZdUVTc5h7/G3DmWn88+W+q1GoT+AltbgHC4nBxPBIhYU5UWXYhRWucCxDyakwDLBpuWiv378YiAIEUKzoGQP+Ed6KHWPUCAR8/tQXQ/9HHP+lnqLwd4x3Ft/3nhxgAHh/QEIwEfAKG+3zUXdPy30gHDhhDbltdo7X2tiKASwUseAEWgrOGvyUQzcdSurjBtSD4xGFQeKSBxicXabCl4BBCObj4VEMwJThdHEIMGWjEBAHFVAIQIpkERTgXQRPJOdJg38Ehni9wiRQyBDMkItcMIV80dmzboWDUIDtgFZXGtfNYXH+FaSMXLi+PWHfovI1DHETl/D6W6JY4wTfThNmAcVTAHngY5jlB5aiOioMac7UUhqbpiQJFRc9Yz7ZDwahBdsAqKk0wn8cqX3+FaSMXrqOlLniHztvFIQ6iAch9TTmo5VEe45tpwmzAOCpgD7gwdzIEVfOmOioOahNS1VKIRpmhmmB7XXGVdeAitrGfg/UiiCGBFDLIwYAUKhvzNi1FvqCJh6VgRtcZVDl5HGhZY3t6AAA=') format('woff2'),
url('iconfont.woff?t=1556172456353') format('woff'),
url('iconfont.ttf?t=1556172456353') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1556172456353#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-back:before {
content: "\e600";
}
.icon-signal-dot:before {
content: "\e616";
}
.icon-battery:before {
content: "\e6ae";
}
.icon-close:before {
content: "\e749";
}
.icon-wifi:before {
content: "\e618";
}

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1,41 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="back" unicode="&#58880;" d="M778.831952 796.363984L330.34711787 386.6552064l448.48483413-409.7087776c15.6992224-15.599024 15.6992224-40.92073601 0-56.534256-15.62759147-15.64187521-41.04950187-15.64187521-56.67709333 0L244.8166272 356.34359787000005c-8.33568214 8.33568214-11.91021866 19.41659519-11.3668 30.31182186-0.54341867 10.89501333 3.03111787 21.94735999 11.3668 30.31182187l477.33823147 435.93121174c15.62759147 15.64208747 41.04950187 15.64208747 56.67730559-2e-8C794.5311744 837.29900373 794.5311744 811.963008 778.831952 796.363984z" horiz-adv-x="1024" />
<glyph glyph-name="signal-dot" unicode="&#58902;" d="M96 384.00000001m-80 0a80 80 0 1 1 160 0 80 80 0 1 1-160 0ZM304 384.00000001m-80 0a80 80 0 1 1 160 0 80 80 0 1 1-160 0ZM512 384.00000001m-80 0a80 80 0 1 1 160 0 80 80 0 1 1-160 0ZM720 384.00000001m-80 0a80 80 0 1 1 160 0 80 80 0 1 1-160 0ZM928 384.00000001m-80 0a80 80 0 1 1 160 0 80 80 0 1 1-160 0Z" horiz-adv-x="1024" />
<glyph glyph-name="battery" unicode="&#59054;" d="M961.8925037 457.30322963v73.30322962c0 40.41386667-31.7970963 73.30322963-70.99733333 73.30322964H97.54548148c-39.20023703 0-70.99733333-32.768-70.99733333-73.30322964v-293.09155555c0-40.53522963 31.7970963-73.30322963 70.99733333-73.30322962h793.22832593c39.20023703 0 70.99733333 32.768 70.99733334 73.30322962v73.30322963c19.6608 0 35.55934815 16.384 35.55934814 36.65161482v73.30322963c0.12136297 20.02488889-15.77718518 36.53025185-35.43798519 36.53025185m-35.43798518-219.78832593c0-20.26761482-15.89854815-36.65161482-35.55934815-36.65161481H97.54548148c-19.6608 0-35.55934815 16.384-35.55934815 36.65161481V530.4850963c0 20.26761482 15.89854815 36.65161482 35.55934815 36.65161481h793.22832593c19.6608 0 35.55934815-16.384 35.55934814-36.65161481v-292.9701926z m0 0M96.33185185 237.5149037v294.912h795.65558518v-294.912H96.33185185z" horiz-adv-x="1024" />
<glyph glyph-name="close" unicode="&#59209;" d="M854.54777205 732.59326578a32.62236445 32.62236445 0 1 1-45.72309175-46.52570548c81.788928-80.40377205 126.86475061-187.70804939 126.86475061-302.09345106 0-233.63826725-190.02527289-423.66354015-423.66354015-423.66354015S88.33645985 150.33584197000005 88.33645985 384c0 114.48896475 45.04993185 221.74146053 126.86475062 302.09345106a32.62236445 32.62236445 0 1 1-45.72309175 46.52570547c-94.35889461-92.70188563-146.28282469-216.52447131-146.28282469-348.61915653 0-269.5617043 219.32067397-488.86943289 488.88237827-488.86943289S1000.88237827 114.41240493999999 1000.88237827 384c0 132.0429037-51.97571161 255.80076247-146.33460622 348.59326578zM512 351.4164717A32.60941906 32.60941906 0 0 1 544.60941906 384V840.28590459a32.60941906 32.60941906 0 0 1-65.21883812 0V384A32.60941906 32.60941906 0 0 1 512 351.4164717z" horiz-adv-x="1024" />
<glyph glyph-name="wifi" unicode="&#58904;" d="M520.92345605 594.6654742000001c144.86724308 0 284.17775427-55.66536794 389.16728063-155.49040479a20.13497775 20.13497775 0 0 1 28.33932876 0.22880659l75.57153911 76.25795881a20.95214431 20.95214431 0 0 1-0.163434 29.81022785c-275.54847731 264.07546367-710.28095163 264.07546367-985.82942898 0a20.95214431 20.95214431 0 0 1-0.19612119-29.81022785l75.60422631-76.25795881c7.77942322-7.84479575 20.42915685-7.94285725 28.33932873-0.22880659a564.69460348 564.69460348 0 0 0 389.16728063 155.49040479z m0-248.12437839c79.5919976 0 156.34025673-29.58141949 215.33966522-82.99140892a20.2984118 20.2984118 0 0 1 28.33932696 0.35955342l75.47347944 76.2579588a21.11557655 21.11557655 0 0 1-0.32686627 30.00634726c-179.64584102 167.12685247-457.87462459 167.12685247-637.55315099 0a21.14826371 21.14826371 0 0 1-0.29417909-30.00634726l75.4734794-76.2579588a20.2984118 20.2984118 0 0 1 28.33932698-0.35955342 320.98292415 320.98292415 0 0 0 215.20891835 82.99140892z m145.06336249-182.03196461a20.39647147 20.39647147 0 0 1-0.62104716 29.87559858 223.67476128 223.67476128 0 0 1-288.91731782 0 20.62527806 20.62527806 0 0 1-0.62104716-29.87559858l130.58317633-131.75989631a20.42915685 20.42915685 0 0 1 28.96037409 0l130.61586172 131.75989631z" horiz-adv-x="1024" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

1
src/assets/scripts/element2.13.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,65 +0,0 @@
@-webkit-keyframes slideLeftIn {
0% {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
opacity: 0;
}
to {
-webkit-transform: translateZ(0);
transform: translateZ(0);
opacity: 1;
}
}
@keyframes slideLeftIn {
0% {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
opacity: 0;
}
to {
-webkit-transform: translateZ(0);
transform: translateZ(0);
opacity: 1;
}
}
@-webkit-keyframes slideRightOut {
0% {
-webkit-transform: translateZ(0);
transform: translateZ(0);
opacity: 1;
}
to {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
opacity: 0;
}
}
@keyframes slideRightOut {
0% {
-webkit-transform: translateZ(0);
transform: translateZ(0);
opacity: 1;
}
to {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
opacity: 0;
}
}
.slide-left-in {
-webkit-animation: slideLeftIn 0.2s forwards;
animation: slideLeftIn 0.2s forwards;
}
.slide-right-out {
-webkit-animation: slideRightOut 0.2s forwards;
animation: slideRightOut 0.2s forwards;
}

View File

View File

@ -15,22 +15,3 @@ body {
overflow: auto; overflow: auto;
} }
a {
text-decoration: none;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.flex-fill {
flex: 1;
}
[v-cloak] {
display: none;
}

View File

@ -1,94 +0,0 @@
html,
body {
height: 100%;
}
.device-container {
display: flex;
flex-direction: column;
height: 100%;
}
.device-select {
padding: 10px 0 20px;
}
.form-select {
border: 1px solid #ccc;
border-radius: 4px;
height: 40px;
padding: 8px 12px;
/* width: 100%; */
font-size: 16px;
}
.form-select:focus {
border-color: #2b90d9;
outline: none;
}
.device-preview {
margin: 0 auto;
display: flex;
flex-direction: column;
box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.5);
}
.device-preview-head {
background-color: #2b2b2b;
color: #fff;
}
.device-navigate-info {
display: flex;
align-items: center;
font-size: 12px;
height: 22px;
line-height: 22px;
padding: 0 6px;
}
.device-navigate-left {
display: flex;
}
.device-navigate-time {
flex: 1;
}
.device-navigate-right {
display: flex;
justify-content: flex-end;
}
.device-navigate-operator {
margin: 0 3px;
}
.icon-signal-dot {
font-size: 30px !important;
}
.icon-battery {
font-size: 25px !important;
}
.device-navigate-bar {
padding: 10px;
display: flex;
}
.navigate-left {
}
.navigate-title {
flex: 1;
}
.navigate-right {
}
.device-preview-body {
border: none;
flex: 1;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1,54 +0,0 @@
.form-container {
padding: 20px 15px;
width: 400px;
margin: 0 auto;
}
.form-head {
margin-bottom: 20px;
}
.form-title {
font-weight: bold;
font-size: 30px;
}
.form-input-group {
margin-bottom: 20px;
}
.form-input {
border: 1px solid #ccc;
border-radius: 4px;
height: 40px;
padding: 8px 12px;
width: 100%;
font-size: 16px;
}
.form-input:focus {
border-color: #2b90d9;
outline: none;
}
.btn-login {
padding: 8px 12px;
background-color: #2b90d9;
color: #fff;
border-radius: 4px;
display: inline-block;
text-align: center;
width: 100%;
}
.btn-login:hover {
color: #fff;
}
.btn-login:focus {
outline: none;
}
.btn-login:active {
background-color: #a5dff9;
}

View File

@ -1,96 +0,0 @@
#xpLogin {
position: relative;
}
.form-container {
padding: 20px 15px;
width: 600px;
margin: 0 auto;
}
.form-head {
margin-bottom: 20px;
}
.form-title {
font-weight: bold;
font-size: 30px;
}
.form-input-group {
margin-bottom: 20px;
width: 600px;
display: flex;
}
.form-input-group span {
width: 100px;
text-align: left;
}
.form-input {
border: 1px solid #ccc;
border-radius: 4px;
height: 40px;
padding: 8px 12px;
width: 67%;
font-size: 16px;
}
.form-input:focus {
border-color: #2b90d9;
outline: none;
}
.exit-enter {
position: absolute;
right: 10%;
top: 5%;
background-color: #2b90d9;
padding: 8px 12px;
width: 100px;
border-radius: 4px;
color: #fff;
text-align: center;
cursor: pointer;
}
.btn-login {
padding: 8px 12px;
background-color: #2b90d9;
color: #fff;
border-radius: 4px;
display: inline-block;
text-align: center;
width: 67%;
margin: 0 auto;
}
.btn-login-loading {
background: gray;
}
.btn-login:hover {
color: #fff;
}
.btn-login:focus {
outline: none;
}
.qrcode_info {
display: flex;
flex-direction: column;
}
.qrcode_info div {
margin: 8px 0;
}
.qrcode_father {
margin: 50px 0 0 0;
padding-bottom: 20px;
display: flex;
justify-content: center;
}
#qrcode {
padding: 25px;
background: #fff;
}
.cursor {
cursor: pointer;
}

View File

@ -2,14 +2,14 @@
* Author : OBKoro1 * Author : OBKoro1
* Date : 2019-12-25 15:15:42 * Date : 2019-12-25 15:15:42
* LastEditors : OBKoro1 * LastEditors : OBKoro1
* LastEditTime : 2019-12-26 21:00:27 * LastEditTime : 2019-12-27 13:27:08
* FilePath : /autoCommit/src/extension.ts * FilePath : /autoCommit/src/extension.ts
* Description : 自动commit插件 * Description : 自动commit插件
* https://github.com/OBKoro1 * https://github.com/OBKoro1
*/ */
import * as vscode from 'vscode'; import * as vscode from 'vscode';
// import ExtensionLogic from './models/index' import ExtensionLogic from './models/index'
import { setExtensionContext } from './util/vscodeUtil' import { setExtensionContext } from './util/vscodeUtil'
@ -18,8 +18,7 @@ export function activate(context: vscode.ExtensionContext) {
setExtensionContext(context) setExtensionContext(context)
const autoCommit = vscode.commands.registerCommand('extension.autoCommit', () => { const autoCommit = vscode.commands.registerCommand('extension.autoCommit', () => {
// new ExtensionLogic(context) new ExtensionLogic(context)
vscode.window.showInformationMessage('hello koro22333')
}) })
// 当插件关闭时被清理的可清理列表 // 当插件关闭时被清理的可清理列表

View File

@ -2,96 +2,100 @@
* Author : OBKoro1 * Author : OBKoro1
* Date : 2019-12-19 20:23:57 * Date : 2019-12-19 20:23:57
* LastEditors : OBKoro1 * LastEditors : OBKoro1
* LastEditTime : 2019-12-25 15:23:38 * LastEditTime : 2019-12-27 15:50:22
* FilePath : /autoCommit/src/index.js * FilePath : /autoCommit/src/index.js
* Description : 自动commit * Description : 自动commit
* https://github.com/OBKoro1 * https://github.com/OBKoro1
*/ */
const { execSync } = require('child_process') const { execSync } = require('child_process');
const moment = require('moment') const moment = require('moment');
const fs = require('fs') const fs = require('fs');
class autoCommit { class autoCommit {
constructor () { constructor() {
this.init() this.init();
} }
getData () { getData() {
this.getAllDay(this.paramsObj.beginDay, this.paramsObj.endDay) this.getAllDay(this.paramsObj.beginDay, this.paramsObj.endDay);
this.readyCommit() this.readyCommit();
} }
// 格式化日期 // 格式化日期
formatTime (time) { formatTime(time) {
return `${time} 08:00` return `${time} 08:00`;
} }
// 获取两个日期之间的间隔: [ '2019-02-02', '2019-02-03' ... ] // 获取两个日期之间的间隔: [ '2019-02-02', '2019-02-03' ... ]
getAllDay (begin, end) { getAllDay(begin, end) {
this.timeArr = [] this.timeArr = [];
const beginSplit = begin.split('-') const beginSplit = begin.split('-');
const endSplit = end.split('-') const endSplit = end.split('-');
const beginDate = new Date() const beginDate = new Date();
beginDate.setUTCFullYear(beginSplit[0], beginSplit[1] - 1, beginSplit[2]) beginDate.setUTCFullYear(beginSplit[0], beginSplit[1] - 1, beginSplit[2]);
const endDate = new Date() const endDate = new Date();
endDate.setUTCFullYear(endSplit[0], endSplit[1] - 1, endSplit[2]) endDate.setUTCFullYear(endSplit[0], endSplit[1] - 1, endSplit[2]);
const beginNumber = beginDate.getTime() const beginNumber = beginDate.getTime();
const endNumber = endDate.getTime() const endNumber = endDate.getTime();
for (let k = beginNumber; k <= endNumber;) { for (let k = beginNumber; k <= endNumber; ) {
const day = new Date(parseInt(k)) const day = new Date(parseInt(k));
const dayFormat = moment(day).format('YYYY-MM-DD') const dayFormat = moment(day).format('YYYY-MM-DD');
this.timeArr.push(dayFormat) this.timeArr.push(dayFormat);
k = k + 24 * 60 * 60 * 1000 k = k + 24 * 60 * 60 * 1000;
} }
} }
init () { init() {
// TODO: 获取参数 // TODO: 获取参数
let paramsObj = { let paramsObj = {
beginDay: '2019-12-20', beginDay: '2019-12-27',
itemSrc: '/Users/koro/work/web_my/testCommit' // 要commit的项目地址 itemSrc: '/Users/koro/work/web_my/testCommit' // 要commit的项目地址
} };
let defaultOption = { let defaultOption = {
beginDay: moment().format('YYYY-MM-DD'), // 默认为今天 beginDay: moment().format('YYYY-MM-DD'), // 默认为今天
endDay: moment().format('YYYY-MM-DD'), // 默认为今天 endDay: moment().format('YYYY-MM-DD'), // 默认为今天
fileSrc: `commit.md`, fileSrc: `commit.md`,
commitNumber: 1 // 每天commit 次数 commitNumber: 1 // 每天commit 次数
} };
this.paramsObj = Object.assign(defaultOption, paramsObj) this.paramsObj = Object.assign(defaultOption, paramsObj);
this.getData() this.getData();
} }
// commit // commit
readyCommit () { readyCommit() {
console.log('日期数组:', this.timeArr) console.log('日期数组:', this.timeArr);
console.log('每个日期提交次数:', this.paramsObj.commitNumber) console.log('每个日期提交次数:', this.paramsObj.commitNumber);
let totalNum = 0 // 总commit次数 let totalNum = 0; // 总commit次数
// 遍历日期 // 遍历日期
this.timeArr.forEach(item => { this.timeArr.forEach(item => {
// 每个日期commit次数 // 每个日期commit次数
for (let i = 0; i < this.paramsObj.commitNumber; i++) { for (let i = 0; i < this.paramsObj.commitNumber; i++) {
let time = this.formatTime(item) // 2019-01-02 08:00 let time = this.formatTime(item); // 2019-01-02 08:00
time = moment(time).format() // 2019-01-02T00:00:00+0800 time = moment(time).format(); // 2019-01-02T00:00:00+0800
const commitContent = `${time}${i}` const commitContent = `${time}${i}`;
fs.writeFileSync( fs.writeFileSync(
`${this.paramsObj.itemSrc}/${this.paramsObj.fileSrc}`, `${this.paramsObj.itemSrc}/${this.paramsObj.fileSrc}`,
commitContent, commitContent,
'utf-8' 'utf-8'
) );
this.myExecSync( let res = this.myExecSync(
`cd ${this.paramsObj.itemSrc} && git add . && git commit -m 'autoCommit' --date='${time}' && git pull && git push origin master` `cd ${this.paramsObj.itemSrc} && git add . && git commit -m 'autoCommit' --date='${time}' && git pull && git push origin master`
) );
console.log('res 开始', res);
console.log('res 结束');
let cmd = `git log -1 \ let cmd = `git log -1 \
--date=iso --pretty=format:'{"commit": "%h","author": "%aN <%aE>","date": "%ad","message": "%s"},' \ --date=iso --pretty=format:'{"commit": "%h","author": "%aN <%aE>","date": "%ad","message": "%s"},' \
$@ | \ $@ | \
perl -pe 'BEGIN{print "["}; END{print "]\n"}' | \ perl -pe 'BEGIN{print "["}; END{print "]\n"}' | \
perl -pe 's/},]/}]/'` perl -pe 's/},]/}]/'`;
this.myExecSync(cmd) let log = this.myExecSync(cmd);
this.totalNum++ console.log('log 开始', log);
console.log('log 结束');
totalNum++;
console.log('commit内容', commitContent) console.log('commit内容', commitContent);
console.log(`总commit次数${totalNum}`)
} }
}) console.log(`总commit次数${totalNum}`);
});
} }
myExecSync (cmd) { myExecSync(cmd) {
// 除了该方法直到子进程完全关闭后才返回 执行完毕 返回 // 除了该方法直到子进程完全关闭后才返回 执行完毕 返回
try { try {
const res = execSync(cmd, { const res = execSync(cmd, {
@ -101,12 +105,12 @@ class autoCommit {
killSignal: 'SIGTERM', killSignal: 'SIGTERM',
cwd: undefined, cwd: undefined,
env: undefined env: undefined
}) });
return res return res;
} catch (err) { } catch (err) {
console.log(`执行命令出错:${cmd}`) console.log(`执行命令出错:${cmd}`);
} }
} }
} }
new autoCommit() new autoCommit();

View File

@ -2,7 +2,7 @@
* Author : OBKoro1 * Author : OBKoro1
* Date : 2019-12-25 17:08:18 * Date : 2019-12-25 17:08:18
* LastEditors : OBKoro1 * LastEditors : OBKoro1
* LastEditTime : 2019-12-26 17:41:05 * LastEditTime : 2019-12-27 14:40:39
* FilePath : /autoCommit/src/models/index.ts * FilePath : /autoCommit/src/models/index.ts
* Description : 插件逻辑入口 * Description : 插件逻辑入口
* https://github.com/OBKoro1 * https://github.com/OBKoro1
@ -20,6 +20,7 @@ class ExtensionLogic {
public constructor(context: vscode.ExtensionContext) { public constructor(context: vscode.ExtensionContext) {
this.context = context; this.context = context;
this.autoCommitView = new WebView(this.context, this.messageCallBack); this.autoCommitView = new WebView(this.context, this.messageCallBack);
this.createView()
} }
createView() { createView() {
const option = { const option = {

18
src/util/util.ts Normal file
View File

@ -0,0 +1,18 @@
/*
* Author : OBKoro1
* Date : 2019-12-27 15:55:42
* LastEditors : OBKoro1
* LastEditTime : 2019-12-27 15:57:54
* FilePath : /autoCommit/src/util/util.ts
* Description : 公共函数
* https://github.com/OBKoro1
*/
// 生成指定范围的随机数
function RandomNumber(min: number, max: number): number {
return Math.round(Math.random() * (max - min)) + min;
}
export {
RandomNumber // 生成指定范围的随机数
};

View File

@ -1,77 +1,60 @@
<!--
* @Github: https://github.com/OBKoro1
* @Author: OBKoro1
* @Date: 2019-06-29 13:27:49
* @LastEditors: OBKoro1
* @LastEditTime: 2019-11-27 11:32:30
* @Description: webview 登录页面
-->
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head>
<head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>晓黑板登录</title> <title>Github自动提交commit工具</title>
<link href="../assets/styles/element-ui2.13.min.css" rel="stylesheet" />
<link href="../assets/styles/base.css" rel="stylesheet" /> <link href="../assets/styles/base.css" rel="stylesheet" />
<link href="../assets/styles/login.css" rel="stylesheet" /> <link href="../assets/styles/autoCommit.css" rel="stylesheet" />
</head> </head>
<body> <body>
<div class="form-container text-center v-cloak" id="xpLogin"> <div id="app">
<div class="form-head"> <el-container>
<p class="form-title">晓黑板账号密码登录</p> <el-header>Header</el-header>
</div> <el-main>Main</el-main>
<div class="form-input-group"> </el-container>
<input ref="elUserName" @keyup.enter="login" type="text" class="form-input" placeholder="一统账号" v-model.number="userName" />
</div>
<div class="form-input-group">
<input ref="elPassword" @keyup.enter="login" type="password" class="form-input" placeholder="一统密码" v-model="password" />
</div>
<div class="form-input-group">
<a href="javascript:;" class="btn-login" @click="login">登录</a>
</div> </div>
</div> </div>
</body>
<script src="../assets/scripts/vue.min.js"></script> <script src="../assets/scripts/vue.min.js"></script>
<script src="../assets/scripts/element2.13.min.js"></script>
<script> <script>
const vscode = acquireVsCodeApi() const vscode = acquireVsCodeApi();
new Vue({ new Vue({
el: '#app',
data() { data() {
return { return {
// userName: 18850985993, // userName: 18850985993,
// password: 'HgbOBKoro1' // password: 'HgbOBKoro1'
userName: '', };
password: ''
}
}, },
mounted() { mounted() {
this.initListener() this.initListener();
}, },
methods: { methods: {
// 登录 // 登录
login() { login() {
const { elUserName, elPassword } = this.$refs const { elUserName, elPassword } = this.$refs;
const { userName, password } = this.$data const { userName, password } = this.$data;
const formData = { const formData = {
username: String(userName), username: String(userName),
password: String(password) password: String(password)
} };
if (!userName) { if (!userName) {
this.postMessage('用户名不能为空') this.postMessage('用户名不能为空');
elUserName.focus() elUserName.focus();
return return;
} }
if (!password) { if (!password) {
this.postMessage('密码不能为空') this.postMessage('密码不能为空');
elPassword.focus() elPassword.focus();
return return;
} }
this.postMessage('user-login-message', 'event', formData) this.postMessage('user-login-message', 'event', formData);
}, },
// 发送消息到插件 // 发送消息到插件
postMessage(text, command = 'alert', params) { postMessage(text, command = 'alert', params) {
@ -79,23 +62,21 @@
command, command,
text, text,
params params
}) });
}, },
// 注册 // 注册
initListener() { initListener() {
window.addEventListener('message', event => { window.addEventListener('message', event => {
console.log('event', event) console.log('event', event);
const { command, data } = event.data const { command, data } = event.data;
console.log('登录成功 addEventListener', event) console.log('登录成功 addEventListener', event);
if (command === 'success') { if (command === 'success') {
// 登录成功 // 登录成功
} }
}) });
},
} }
}).$mount('#xpLogin') }
}).$mount('#xpLogin');
</script> </script>
</body>
</html> </html>