kintone側実装
This commit is contained in:
2377
vue-project/my-kintone-plugin/src/assets/kuc.min.js
vendored
Normal file
2377
vue-project/my-kintone-plugin/src/assets/kuc.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,49 @@
|
|||||||
|
import type { SavedData } from "@/types/model";
|
||||||
|
import type { Button } from "kintone-ui-component";
|
||||||
|
|
||||||
|
export class KintoneIndexEventHandler {
|
||||||
|
private config: SavedData;
|
||||||
|
|
||||||
|
constructor(config: SavedData) {
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(): void {
|
||||||
|
this.addButtonToView();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ボタン追加
|
||||||
|
private addButtonToView(): void {
|
||||||
|
const headerSpace = kintone.app.getHeaderMenuSpaceElement();
|
||||||
|
if (!headerSpace){
|
||||||
|
throw new Error('このページではヘッダー要素が利用できません。');
|
||||||
|
};
|
||||||
|
|
||||||
|
// ボタン追加
|
||||||
|
if (document.getElementById('btn-data-fetch')) return;
|
||||||
|
const kuc = Kucs['1.18.0'];
|
||||||
|
const button = new kuc.Button({
|
||||||
|
text: this.config.buttonName,
|
||||||
|
type:"submit",
|
||||||
|
id:'btn-data-fetch',
|
||||||
|
});
|
||||||
|
|
||||||
|
// const button = document.createElement('button');
|
||||||
|
// button.id = 'btn-data-fetch';
|
||||||
|
// button.textContent = this.config.buttonName;
|
||||||
|
// button.style.margin = '0 8px';
|
||||||
|
button.addEventListener('click', () => this.handleButtonClick());
|
||||||
|
|
||||||
|
headerSpace.appendChild(button);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ボタンクリック
|
||||||
|
private async handleButtonClick(): Promise<void> {
|
||||||
|
try {
|
||||||
|
console.log('Button clicked! Starting data processing...');
|
||||||
|
alert('データ取得開始');
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error during data processing:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,22 +1,28 @@
|
|||||||
|
import { KintoneIndexEventHandler } from "./KintoneIndexEventHandler";
|
||||||
|
|
||||||
(function (PLUGIN_ID) {
|
(function (PLUGIN_ID) {
|
||||||
kintone.events.on('app.record.index.show', () => {
|
kintone.events.on('app.record.index.show', (event) => {
|
||||||
const spaceEl = kintone.app.getHeaderSpaceElement();
|
|
||||||
if (spaceEl === null) {
|
|
||||||
throw new Error('The header element is unavailable on this page.');
|
|
||||||
}
|
|
||||||
|
|
||||||
const fragment = document.createDocumentFragment();
|
|
||||||
const headingEl = document.createElement('h3');
|
|
||||||
const messageEl = document.createElement('p');
|
|
||||||
|
|
||||||
const config = kintone.plugin.app.getConfig(PLUGIN_ID);
|
const config = kintone.plugin.app.getConfig(PLUGIN_ID);
|
||||||
messageEl.textContent = config.message;
|
const handler = new KintoneIndexEventHandler(config);
|
||||||
messageEl.classList.add('plugin-space-message');
|
handler.init();
|
||||||
headingEl.textContent = 'Hello kintone plugin!';
|
// const spaceEl = kintone.app.getHeaderSpaceElement();
|
||||||
headingEl.classList.add('plugin-space-heading');
|
// if (spaceEl === null) {
|
||||||
|
// throw new Error('The header element is unavailable on this page.');
|
||||||
|
// }
|
||||||
|
|
||||||
fragment.appendChild(headingEl);
|
// const fragment = document.createDocumentFragment();
|
||||||
fragment.appendChild(messageEl);
|
// const headingEl = document.createElement('h3');
|
||||||
spaceEl.appendChild(fragment);
|
// const messageEl = document.createElement('p');
|
||||||
|
|
||||||
|
// const config = kintone.plugin.app.getConfig(PLUGIN_ID);
|
||||||
|
// messageEl.textContent = config.message;
|
||||||
|
// messageEl.classList.add('plugin-space-message');
|
||||||
|
// headingEl.textContent = 'Hello kintone plugin!';
|
||||||
|
// headingEl.classList.add('plugin-space-heading');
|
||||||
|
|
||||||
|
// fragment.appendChild(headingEl);
|
||||||
|
// fragment.appendChild(messageEl);
|
||||||
|
// spaceEl.appendChild(fragment);
|
||||||
|
return event;
|
||||||
});
|
});
|
||||||
})(kintone.$PLUGIN_ID);
|
})(kintone.$PLUGIN_ID);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"type": "APP",
|
"type": "APP",
|
||||||
"desktop": {
|
"desktop": {
|
||||||
"js": [
|
"js": [
|
||||||
|
"js/kuc.min.js",
|
||||||
"js/desktop.js"
|
"js/desktop.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
@@ -16,14 +17,14 @@
|
|||||||
"config": {
|
"config": {
|
||||||
"html": "html/config.html",
|
"html": "html/config.html",
|
||||||
"js": [
|
"js": [
|
||||||
"js/config.js"
|
"js/config.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
"css/51-modern-default.css",
|
"css/51-modern-default.css",
|
||||||
"css/config.css"
|
"css/config.css"
|
||||||
],
|
],
|
||||||
"required_params": [
|
"required_params": [
|
||||||
"message"
|
"buttonName"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
},
|
},
|
||||||
"mobile": {
|
"mobile": {
|
||||||
"js": [
|
"js": [
|
||||||
|
"js/kuc.min.js",
|
||||||
"js/mobile.js"
|
"js/mobile.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
|
|||||||
6
vue-project/my-kintone-plugin/src/types/index.d.ts
vendored
Normal file
6
vue-project/my-kintone-plugin/src/types/index.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
declare global {
|
||||||
|
const Kucs: {
|
||||||
|
[version: string]: any;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
export {};
|
||||||
@@ -53,7 +53,8 @@ export default defineConfig({
|
|||||||
targets: [
|
targets: [
|
||||||
{ src: 'dist/index.html', dest: 'dist/src/html', rename: 'config.html' },
|
{ src: 'dist/index.html', dest: 'dist/src/html', rename: 'config.html' },
|
||||||
{ src: 'src/manifest.json', dest: 'dist/src' },
|
{ src: 'src/manifest.json', dest: 'dist/src' },
|
||||||
{ src: 'src/assets/*', dest: 'dist/src/image' },
|
{ src: 'src/assets/*.js', dest: 'dist/src/js' },
|
||||||
|
{ src: 'src/assets/*.png', dest: 'dist/src/image' },
|
||||||
{ src: 'src/css/*', dest: 'dist/src/css' },
|
{ src: 'src/css/*', dest: 'dist/src/css' },
|
||||||
],
|
],
|
||||||
hook: 'writeBundle' // 指定在何时复制文件
|
hook: 'writeBundle' // 指定在何时复制文件
|
||||||
@@ -74,11 +75,11 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
entryFileNames: (chunkInfo) => {
|
entryFileNames: (chunkInfo) => {
|
||||||
// console.log(chunkInfo);
|
return 'src/js/[name].js'; // 默认处理为 JS 文件
|
||||||
return 'src/js/[name].js'; // 默认处理为 JS 文件
|
|
||||||
},
|
},
|
||||||
assetFileNames: 'src/[ext]/[name].[ext]',
|
assetFileNames: 'src/[ext]/[name].[ext]',
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
|
sourcemap:'inline',
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user