wechat_rob_mini/pages/console/password.js

54 lines
1.5 KiB
JavaScript

const { request, buildResultView } = require('../../utils/request');
Page({
data: {
length: 16,
type: 'mix',
plaintext: '',
ciphertext: '',
result: '',
resultCards: []
},
onInput(e) {
const key = e.currentTarget.dataset.key;
this.setData({ [key]: e.detail.value });
},
async generate() {
const result = await request({
url: '/api/console/password/generate',
method: 'POST',
data: { length: Number(this.data.length) || 16, type: this.data.type || 'mix' }
});
const view = buildResultView(result);
this.setData({ result: view.text, resultCards: view.cards });
},
async encrypt() {
if (!this.data.plaintext) {
const view = buildResultView('请输入明文');
this.setData({ result: view.text, resultCards: view.cards });
return;
}
const result = await request({
url: '/api/console/password/encrypt',
method: 'POST',
data: { plaintext: this.data.plaintext }
});
const view = buildResultView(result);
this.setData({ result: view.text, resultCards: view.cards });
},
async decrypt() {
if (!this.data.ciphertext) {
const view = buildResultView('请输入密文');
this.setData({ result: view.text, resultCards: view.cards });
return;
}
const result = await request({
url: '/api/console/password/decrypt',
method: 'POST',
data: { ciphertext: this.data.ciphertext }
});
const view = buildResultView(result);
this.setData({ result: view.text, resultCards: view.cards });
}
});