54 lines
1.5 KiB
JavaScript
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 });
|
|
}
|
|
});
|