From bd80933525e5b5309f6cd6fb5bcfb348eb19bba0 Mon Sep 17 00:00:00 2001 From: Saladin21 <13519187@std.stei.itb.ac.id> Date: Tue, 22 Mar 2022 10:26:02 +0700 Subject: [PATCH] create kpi static page --- src/router/index.js | 6 ++ src/views/KpiCreate.vue | 176 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 src/views/KpiCreate.vue diff --git a/src/router/index.js b/src/router/index.js index 02fd825..4476ea8 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -11,6 +11,7 @@ import KaryawanEdit from "../views/KaryawanEdit.vue"; import AdminInsert from "../views/AdminInsert.vue"; import AdminEdit from "../views/AdminEdit.vue"; import KpiIndex from "../views/KpiIndex.vue"; +import KpiCreate from "../views/KpiCreate.vue"; const routes = [ { @@ -73,6 +74,11 @@ const routes = [ name: "kpiIndex", component: KpiIndex, }, + { + path: "/manager/kpi/create", + name: "KpiCreate", + component: KpiCreate, + }, ]; const router = createRouter({ diff --git a/src/views/KpiCreate.vue b/src/views/KpiCreate.vue new file mode 100644 index 0000000..33ef8cd --- /dev/null +++ b/src/views/KpiCreate.vue @@ -0,0 +1,176 @@ +<template> + <div class="container-fluid"> + <div class="row flex-nowrap"> + <Sidebar></Sidebar> + <div class="col ps-md-2 pt-2"> + <Header></Header> + <div class="row p-3"> + <router-link :to="{ path: '/admin' }" style="text-decoration: none"> + <div class="d-flex flex-row justify-content-start align-items-center illustration" id="back"> + <i class="icon ion-chevron-left text-blue" style="font-size: 20px"></i> + <p class="text-blue ms-1">kembali</p> + </div> + </router-link> + </div> + <div class="row p-3"> + <h1 class="text-blue">Buat KPI</h1> + <hr class="my-4 " style="border: 1px solid #6992b4"> + </div> + <form @submit="insert" autocomplete="off" id="formAdmin"> + <div class="row p-3"> + <div class="col"> + <div class="mb-3 me-3"> + <label for="NameInput" class="text-blue"> Nama </label> + <input v-model="kpi_name" type="text" id="NameInput" class="form-control" required> + </div> + <div class="mb-3 me-3"> + <label for="deskripsiInput" class="text-blue"> Deskripsi </label> + <input v-model="description" type="text" id="deskripsiInput" class="form-control" required> + </div> + <div class="mb-3 me-3"> + <label for="typeInput" class="text-blue"> Periode </label> + <select + v-model="period_type" + class="form-select" + aria-label="Default select example" + id="typeInput"> + <option value="Harian" selected>Harian</option> + <option value="Mingguan">Mingguan</option> + <option value="Bulanan">Bulanan</option> + <option value="Custom">Custom</option> + </select> + </div> + <div v-show="period_type == 'Custom'" class="mb-3 me-3"> + <label for="deadlineInput" class="text-blue"> Waktu Deadline </label> + <input v-model="deadline" type="date" id="deadlineInput" class="form-control" required> + </div> + <div class="mb-3 me-3"> + <label for="deadlineTimeInput" class="text-blue"> Waktu Deadline </label> + <input v-model="deadline_time" type="time" id="deadlineTimeInput" class="form-control" required> + </div> + + <button type="submit" class="btn-blue p-1" >Simpan</button> + <router-link :to="{ path: '/user' }" style="text-decoration: none"> + <button class="btn-red p-1">Batalkan</button> + </router-link> + </div> + <div class="col"> + <div class="mb-3"> + <label for="typeInput" class="text-blue"> Jenis Target </label> + <select + v-model="target_type" + class="form-select" + aria-label="Default select example" + id="typeInput"> + <option value="Angka" selected>Angka</option> + <option value="Persentase">Persentase</option> + </select> + </div> + <div class="mb-3"> + <label for="targetInput" class="text-blue"> Target </label> + <input v-model="target" type="number" id="tarrgetInput" class="form-control" required> + </div> + <div class="mb-3"> + <label for="weightInput" class="text-blue"> Bobot </label> + <input v-model="weight" type="number" id="weightInput" class="form-control" required> + </div> + <div class="mb-3"> + <input class="form-check-input mt-1" type="checkbox" value="" id="CheckDefault"> + <label class="form-check-label text-blue ms-2" for="CheckDefault">Target Inverted </label> + </div> + + </div> + </div> + </form> + </div> + </div> + </div> +</template> + +<script> + +import Header from "../components/header" +import Sidebar from "../components/sidebar" +import { HTTP } from '../http-common' + + +export default { + name: "KpiCreate", + components: { + Header, + Sidebar + }, + data() { + return{ + emp_id: 1, + kpi_name: "", + description: "", + target: "", + inverted: false, + target_type: "Angka", + weight: 0, + period_type: "Harian", + deadline: "", + deadline_time: "", + } + }, + methods: { + insert(e){ + e.preventDefault(); + let data = { + username: this.username, + email: this.email, + password: this.password, + password_confirmation: this.password} + HTTP.post("register", data, { + headers:{ + 'Content-Type': 'application/json' + } + }).then((res)=>{ + if (res.status == 200){ + alert("Admin berhasil ditambahkan") + document.getElementById("formAdmin").reset(); + } + }).catch(()=>{ + alert("Gagal menambahkan Admin") + }) + + } + + }, + mounted(){ + } + +} +</script> + +<style scoped> +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + min-height: 100vh; + background-color: #fff; +} + +#back{ + cursor: pointer; +} + +.btn-blue { + background-color: #6992b4; + color: #f1f7fc; + border-radius: 8px; + margin-right: 5px; +} + +.btn-red { + background-color: #f4476b; + color: #f1f7fc; + border-radius: 8px; +} + +</style> \ No newline at end of file -- GitLab