ประเมิน => permission รายการการประชุม
This commit is contained in:
parent
b3058bbd43
commit
c61e8b4805
6 changed files with 302 additions and 349 deletions
|
|
@ -118,7 +118,6 @@ onMounted(() => {
|
||||||
<div v-if="checkPermission($route)?.attrIsCreate">
|
<div v-if="checkPermission($route)?.attrIsCreate">
|
||||||
<q-btn
|
<q-btn
|
||||||
@click="router.push(`/evaluate/director/add`)"
|
@click="router.push(`/evaluate/director/add`)"
|
||||||
size="12px"
|
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
color="add"
|
color="add"
|
||||||
|
|
@ -220,7 +219,6 @@ onMounted(() => {
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="checkPermission($route)?.attrIsDelete"
|
v-if="checkPermission($route)?.attrIsDelete"
|
||||||
dense
|
dense
|
||||||
size="12px"
|
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
color="red"
|
color="red"
|
||||||
|
|
|
||||||
|
|
@ -1,45 +1,57 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import Form from "@/modules/12_evaluatePersonal/components/Meeting/Form.vue";
|
import { useQuasar } from "quasar";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useRouter } from "vue-router";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import { useQuasar } from "quasar";
|
|
||||||
import type { FormDataPost } from "@/modules/11_discipline/interface/request/director";
|
|
||||||
|
|
||||||
const $q = useQuasar();
|
|
||||||
const mixin = useCounterMixin();
|
|
||||||
const { messageError, showLoader, hideLoader, dialogConfirm, success } = mixin;
|
|
||||||
const router = useRouter();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* บันทึกข้อมูลที่เเก้ไข
|
* importType
|
||||||
* @param id ระบุ บุคคล
|
|
||||||
*/
|
*/
|
||||||
function onSubmit(formData: FormDataPost) {
|
import type { FormData } from "@/modules/12_evaluatePersonal/interface/index/meeting";
|
||||||
dialogConfirm($q, () => addData(formData));
|
|
||||||
}
|
|
||||||
|
|
||||||
function addData(formData: any) {
|
/**
|
||||||
showLoader();
|
* importComponents
|
||||||
http
|
*/
|
||||||
.post(config.API.meeting(), {
|
import Form from "@/modules/12_evaluatePersonal/components/Meeting/Form.vue";
|
||||||
round: formData.rounded ?? "",
|
|
||||||
title: formData.title,
|
/**
|
||||||
dateEnd: formData.dateMeetingEnd,
|
* importStore
|
||||||
dateStart: formData.dateMeetingStart,
|
*/
|
||||||
result: formData.consider,
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
duration: formData.period,
|
|
||||||
})
|
/**
|
||||||
.then((res) => {
|
* use
|
||||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
*/
|
||||||
})
|
const $q = useQuasar();
|
||||||
.catch((e) => {
|
const router = useRouter();
|
||||||
messageError($q, e);
|
const { messageError, showLoader, dialogConfirm, success, hideLoader } =
|
||||||
})
|
useCounterMixin();
|
||||||
.finally(async () => {
|
|
||||||
router.push(`/evaluate/meeting`);
|
/**
|
||||||
});
|
* บันทึกข้อมูลการประชุม
|
||||||
|
* @param formData ข้อมูลการประชุม
|
||||||
|
*/
|
||||||
|
function onSubmit(formData: FormData) {
|
||||||
|
dialogConfirm($q, () => {
|
||||||
|
showLoader();
|
||||||
|
http
|
||||||
|
.post(config.API.meeting(), {
|
||||||
|
round: formData.rounded ?? "",
|
||||||
|
title: formData.title,
|
||||||
|
dateEnd: formData.dateMeetingEnd,
|
||||||
|
dateStart: formData.dateMeetingStart,
|
||||||
|
result: formData.consider,
|
||||||
|
duration: formData.period,
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
router.push(`/evaluate/meeting`);
|
||||||
|
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,50 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted, reactive } from "vue";
|
import { ref, onMounted, reactive, computed } from "vue";
|
||||||
import Form from "@/modules/12_evaluatePersonal/components/Meeting/Form.vue";
|
|
||||||
import type { FormData } from "@/modules/12_evaluatePersonal/interface/index/meeting";
|
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import type { formData } from "@/modules/09_leave/interface/request/workTime";
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* importTyep
|
||||||
|
*/
|
||||||
|
import type { FormData } from "@/modules/12_evaluatePersonal/interface/index/meeting";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* importComponents
|
||||||
|
*/
|
||||||
|
import Form from "@/modules/12_evaluatePersonal/components/Meeting/Form.vue";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* importStore
|
||||||
|
*/
|
||||||
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* use
|
||||||
|
*/
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const personalId = ref<string>(route.params.id as string);
|
|
||||||
console.log(personalId.value);
|
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const mixin = useCounterMixin();
|
|
||||||
const {
|
const {
|
||||||
messageError,
|
messageError,
|
||||||
showLoader,
|
showLoader,
|
||||||
hideLoader,
|
hideLoader,
|
||||||
dialogConfirm,
|
dialogConfirm,
|
||||||
success,
|
success,
|
||||||
date2Thai,
|
|
||||||
dateToISO,
|
dateToISO,
|
||||||
} = mixin;
|
} = useCounterMixin();
|
||||||
|
|
||||||
/**เมื่อเริ่มโหลดหน้า
|
const personalId = ref<string>(route.params.id as string);
|
||||||
* เรียกใช้งาน fetchData เพื่อดึงข้อมูล
|
const routeName = ref<string>(route.name as string);
|
||||||
*/
|
const title = computed(() =>
|
||||||
onMounted(() => {
|
routeName.value === "evaluateMeetingdetail"
|
||||||
fetchData();
|
? "รายละเอียดการประชุม"
|
||||||
});
|
: "แก้ไขการประชุม"
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
//ข้อมูลการประชุม
|
||||||
* get ข้อมูลเก่ากรณีแก้ไขข้อมูล
|
const data = reactive({
|
||||||
*/
|
|
||||||
const data = reactive<any>({
|
|
||||||
rounded: "",
|
rounded: "",
|
||||||
dateMeeting: "",
|
dateMeeting: "",
|
||||||
dateMeetingStart: Date,
|
dateMeetingStart: Date,
|
||||||
|
|
@ -48,11 +56,11 @@ const data = reactive<any>({
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ดึงค่าจาก api
|
* function fetch ข้อมูลการประชุม
|
||||||
*/
|
*/
|
||||||
const fetchData = async () => {
|
function fetchData() {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
http
|
||||||
.get(config.API.meetingById(personalId.value))
|
.get(config.API.meetingById(personalId.value))
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const dataApi = res.data.result;
|
const dataApi = res.data.result;
|
||||||
|
|
@ -68,41 +76,48 @@ const fetchData = async () => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hideLoader();
|
setTimeout(() => {
|
||||||
|
hideLoader();
|
||||||
|
}, 2000);
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* บันทึกข้อมูลที่เเก้ไข
|
* บันทึกข้อมูลที่เเก้ไข
|
||||||
* @param id ระบุ บุคคล
|
* @param formData ข้อมูลการประชุม
|
||||||
*/
|
*/
|
||||||
function onSubmit(formData: FormData) {
|
function onSubmit(formData: FormData) {
|
||||||
dialogConfirm($q, () => putData(formData));
|
dialogConfirm($q, () => {
|
||||||
console.log(personalId.value);
|
showLoader();
|
||||||
|
http
|
||||||
|
.put(config.API.meetingById(personalId.value), {
|
||||||
|
round: formData.rounded ?? "",
|
||||||
|
title: formData.title,
|
||||||
|
dateStart: formData.dateMeetingStart
|
||||||
|
? dateToISO(formData.dateMeetingStart)
|
||||||
|
: null,
|
||||||
|
dateEnd: formData.dateMeetingEnd
|
||||||
|
? dateToISO(formData.dateMeetingEnd)
|
||||||
|
: null,
|
||||||
|
result: formData.consider,
|
||||||
|
duration: formData.period,
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||||
|
router.push(`/evaluate/meeting`);
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function putData(formData: any) {
|
onMounted(() => {
|
||||||
showLoader();
|
fetchData();
|
||||||
http
|
});
|
||||||
.put(config.API.meetingById(personalId.value), {
|
|
||||||
round: formData.rounded ?? "",
|
|
||||||
title: formData.title,
|
|
||||||
dateStart: dateToISO(formData.dateMeetingStart),
|
|
||||||
dateEnd: dateToISO(formData.dateMeetingEnd),
|
|
||||||
result: formData.consider,
|
|
||||||
duration: formData.period,
|
|
||||||
})
|
|
||||||
.then((res) => {
|
|
||||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
messageError($q, e);
|
|
||||||
})
|
|
||||||
.finally(async () => {
|
|
||||||
hideLoader();
|
|
||||||
router.push(`/evaluate/meeting`);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="col-xs-12 col-sm-12 col-md-11">
|
<div class="col-xs-12 col-sm-12 col-md-11">
|
||||||
|
|
@ -117,7 +132,7 @@ function putData(formData: any) {
|
||||||
class="q-mr-sm"
|
class="q-mr-sm"
|
||||||
@click="router.push(`/evaluate/meeting`)"
|
@click="router.push(`/evaluate/meeting`)"
|
||||||
/>
|
/>
|
||||||
แก้ไขการประชุม
|
{{ title }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Form :on-submit="onSubmit" :data="data" />
|
<Form :on-submit="onSubmit" :data="data" />
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,32 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, watch, onMounted } from "vue";
|
import { ref, reactive, onMounted, computed } from "vue";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import type {
|
|
||||||
FormData,
|
|
||||||
FormRef,
|
|
||||||
FileOj,
|
|
||||||
} from "@/modules/12_evaluatePersonal/interface/index/meeting";
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* importRtpe
|
||||||
|
*/
|
||||||
|
import type { FormData } from "@/modules/12_evaluatePersonal/interface/index/meeting";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* use
|
||||||
|
*/
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const id = ref<string>(route.params.id as string);
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const mixin = useCounterMixin();
|
|
||||||
const {
|
const {
|
||||||
messageError,
|
messageError,
|
||||||
showLoader,
|
showLoader,
|
||||||
dialogMessageNotify,
|
|
||||||
dialogConfirm,
|
|
||||||
success,
|
success,
|
||||||
date2Thai,
|
date2Thai,
|
||||||
hideLoader,
|
hideLoader,
|
||||||
dialogRemove,
|
dialogRemove,
|
||||||
} = mixin;
|
} = useCounterMixin();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* รับ props มาจาก page หลัก
|
* รับ props มาจาก page หลัก
|
||||||
*/
|
*/
|
||||||
|
|
@ -38,15 +40,13 @@ const props = defineProps({
|
||||||
default: () => "",
|
default: () => "",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const isReadonly = ref<boolean>(false); // อ่านได้อย่างเดียว
|
|
||||||
const emit = defineEmits(["formDataReturn"]);
|
const emit = defineEmits(["formDataReturn"]);
|
||||||
/**
|
|
||||||
* ข้อมูลเลขประจำตัวประชาชน
|
const id = ref<string>(route.params.id as string);
|
||||||
*/
|
const routeName = ref<string>(route.name as string);
|
||||||
//
|
const isReadonly = computed(() =>
|
||||||
const idCard = ref<string>("");
|
routeName.value === "evaluateMeetingdetail" ? true : false
|
||||||
const file = ref<any>();
|
);
|
||||||
const fileOj = reactive<FileOj[]>([]);
|
|
||||||
|
|
||||||
const formData = reactive<FormData>({
|
const formData = reactive<FormData>({
|
||||||
id: "",
|
id: "",
|
||||||
|
|
@ -57,94 +57,41 @@ const formData = reactive<FormData>({
|
||||||
consider: "",
|
consider: "",
|
||||||
period: "",
|
period: "",
|
||||||
title: "",
|
title: "",
|
||||||
// file: fileOj,
|
|
||||||
});
|
});
|
||||||
|
const file = ref<any>();
|
||||||
|
const fileData = ref<any>([]);
|
||||||
|
const fileDataDownload = ref<any>([]);
|
||||||
|
|
||||||
/**
|
/** บันทึกข้อมูล */
|
||||||
* เช็คข้อมูลจาก props
|
function submit() {
|
||||||
* เมื่อมีข้อมูล
|
props.onSubmit(formData);
|
||||||
* เก็บข้อมูลลง formData
|
|
||||||
*/
|
|
||||||
watch(props.data, async () => {
|
|
||||||
// console.log("data==>", props.data)
|
|
||||||
formData.id = props.data.id;
|
|
||||||
formData.rounded = props.data.rounded;
|
|
||||||
formData.dateMeetingStart = props.data.dateMeetingStart;
|
|
||||||
formData.dateMeetingEnd = props.data.dateMeetingEnd;
|
|
||||||
formData.consider = props.data.consider;
|
|
||||||
formData.period = props.data.period;
|
|
||||||
formData.title = props.data.title;
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ตรวจสอบข้อมูลก่อนส่งไปยัง api
|
|
||||||
*/
|
|
||||||
const roundedRef = ref<object | null>(null);
|
|
||||||
const dateMeetingStartRef = ref<object | null>(null);
|
|
||||||
const dateMeetingEndRef = ref<object | null>(null);
|
|
||||||
const considerRef = ref<object | null>(null);
|
|
||||||
const periodRef = ref<object | null>(null);
|
|
||||||
const titleRef = ref<object | null>(null);
|
|
||||||
|
|
||||||
const formRef: FormRef = {
|
|
||||||
rounded: roundedRef,
|
|
||||||
dateMeetingStartRef: dateMeetingStartRef,
|
|
||||||
dateMeetingEndRef: dateMeetingEndRef,
|
|
||||||
consider: considerRef,
|
|
||||||
period: periodRef,
|
|
||||||
title: titleRef,
|
|
||||||
};
|
|
||||||
|
|
||||||
/** ฟังชั่นตรวจสอบความถูกต้องก่อน บันทึก */
|
|
||||||
function onValidate() {
|
|
||||||
const hasError = [];
|
|
||||||
for (const key in formRef) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(formRef, key)) {
|
|
||||||
const property = formRef[key];
|
|
||||||
if (property.value && typeof property.value.validate === "function") {
|
|
||||||
const isValid = property.value.validate();
|
|
||||||
hasError.push(isValid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (hasError.every((result) => result === true)) {
|
|
||||||
props.onSubmit(formData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const fileData = ref<any>([]);
|
|
||||||
/**
|
/**
|
||||||
* ดึงค่าจาก api
|
* function fetch ข้อมูลไฟล์เอกสารหลักฐาน
|
||||||
*/
|
*/
|
||||||
const fetchDataFile = async () => {
|
function fetchDataFile() {
|
||||||
if (id.value != undefined) {
|
if (id.value != undefined) {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
http
|
||||||
.get(config.API.meetingFilebyId("การประชุม", id.value))
|
.get(config.API.meetingFilebyId("การประชุม", id.value))
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const dataFile = res.data;
|
const dataFile = res.data;
|
||||||
// const dataFile = res.data.result;
|
|
||||||
fileData.value = dataFile;
|
fileData.value = dataFile;
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
|
||||||
// messageError($q, e);
|
|
||||||
})
|
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hideLoader();
|
hideLoader();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* function download
|
* function ดาวน์โหลดไฟล์เอกสารหลักฐาน
|
||||||
*/
|
*/
|
||||||
const fileDataDownload = ref<any>([]);
|
function fetchDataFileDownload(pathName: string) {
|
||||||
const fetchDataFileDownload = async (pathName: string) => {
|
|
||||||
console.log(fileData.value[0].fileName);
|
|
||||||
if (id.value !== undefined) {
|
if (id.value !== undefined) {
|
||||||
showLoader();
|
showLoader();
|
||||||
console.log(fileData.value[0].fileName);
|
http
|
||||||
await http
|
|
||||||
.get(config.API.meetingFileDowloadbyId("การประชุม", id.value, pathName))
|
.get(config.API.meetingFileDowloadbyId("การประชุม", id.value, pathName))
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const dataFile = res.data;
|
const dataFile = res.data;
|
||||||
|
|
@ -158,13 +105,12 @@ const fetchDataFileDownload = async (pathName: string) => {
|
||||||
hideLoader();
|
hideLoader();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* addFiles
|
* function สร้างลิงค์อัปโหลดไฟล์เอกสารหลักฐาน
|
||||||
*/
|
*/
|
||||||
function uploadFile() {
|
function uploadFile() {
|
||||||
// fetchDataFile();
|
|
||||||
if (file) {
|
if (file) {
|
||||||
const fileList = [
|
const fileList = [
|
||||||
{
|
{
|
||||||
|
|
@ -191,64 +137,56 @@ function uploadFile() {
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
hideLoader();
|
||||||
.finally(async () => {
|
|
||||||
file.value = null;
|
|
||||||
// hideLoader();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function uploadfileURL(uploadUrl: string, file: any) {
|
/**
|
||||||
await axios
|
* function อัปโหลดไฟล์เอกสารหลักฐาน
|
||||||
|
*/
|
||||||
|
function uploadfileURL(uploadUrl: string, file: any) {
|
||||||
|
axios
|
||||||
.put(uploadUrl, file, {
|
.put(uploadUrl, file, {
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": file.type,
|
"Content-Type": file.type,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
success($q, "อัปโหลไฟล์สำเร็จ");
|
setTimeout(async () => {
|
||||||
|
await fetchDataFile();
|
||||||
|
await success($q, "อัปโหลไฟล์สำเร็จ");
|
||||||
|
file.value = null;
|
||||||
|
}, 500);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
messageError($q, err);
|
messageError($q, err);
|
||||||
})
|
hideLoader();
|
||||||
.finally(async () => {
|
|
||||||
await setTimeout(() => fetchDataFile(), 500);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteFile(id: string) {
|
|
||||||
dialogRemove($q, () => confirmDelete(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ยืนยัน ลบ ไฟล์
|
* function ยืนยันการลบไฟล์เอกสารหลักฐาน
|
||||||
* @param id id file
|
* @param fileName file
|
||||||
*/
|
*/
|
||||||
function confirmDelete(fileName: string) {
|
function deleteFile(fileName: string) {
|
||||||
showLoader();
|
dialogRemove($q, () => {
|
||||||
http
|
showLoader();
|
||||||
.delete(config.API.meetingFileDowloadbyId("การประชุม", id.value, fileName))
|
http
|
||||||
.then((res) => {
|
.delete(
|
||||||
success($q, `ลบไฟล์สำเร็จ`);
|
config.API.meetingFileDowloadbyId("การประชุม", id.value, fileName)
|
||||||
})
|
)
|
||||||
.catch((e) => {
|
.then(() => {
|
||||||
messageError($q, e);
|
setTimeout(async () => {
|
||||||
})
|
await fetchDataFile();
|
||||||
.finally(() => {
|
await success($q, `ลบไฟล์สำเร็จ`);
|
||||||
setTimeout(() => fetchDataFile(), 1000);
|
}, 1000);
|
||||||
});
|
})
|
||||||
}
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
//checkDate
|
hideLoader();
|
||||||
function checkDate() {
|
});
|
||||||
if (formData.dateMeetingEnd !== null && formData.dateMeetingStart !== null) {
|
});
|
||||||
if (formData.dateMeetingEnd <= formData.dateMeetingStart) {
|
|
||||||
formData.dateMeetingEnd = null;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log("One or both dates are null");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function inputEdit(val: boolean) {
|
function inputEdit(val: boolean) {
|
||||||
|
|
@ -260,22 +198,32 @@ function inputEdit(val: boolean) {
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
setTimeout(() => fetchDataFile(), 500);
|
setTimeout(() => {
|
||||||
// fetchDataFileDownload();
|
fetchDataFile();
|
||||||
|
if (props.data) {
|
||||||
|
formData.id = props.data.id;
|
||||||
|
formData.rounded = props.data.rounded;
|
||||||
|
formData.dateMeetingStart = props.data.dateMeetingStart;
|
||||||
|
formData.dateMeetingEnd = props.data.dateMeetingEnd;
|
||||||
|
formData.consider = props.data.consider;
|
||||||
|
formData.period = props.data.period;
|
||||||
|
formData.title = props.data.title;
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<form @submit.prevent.stop="onValidate">
|
<q-form greedy @submit.prevent @validation-success="submit">
|
||||||
<q-card bordered>
|
<q-card bordered>
|
||||||
<div class="col-12 row q-pa-md q-col-gutter-md">
|
<div class="col-12 row q-pa-md q-col-gutter-md">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<q-input
|
<q-input
|
||||||
:class="inputEdit(isReadonly)"
|
:class="inputEdit(isReadonly)"
|
||||||
|
:readonly="isReadonly"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
v-model="formData.rounded"
|
v-model="formData.rounded"
|
||||||
label="ครั้งที่"
|
label="ครั้งที่"
|
||||||
ref="roundedRef"
|
|
||||||
for="roundedRef"
|
for="roundedRef"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
:rules="[(val: string) => val !== null && val !== '' || `${'กรุณากรอกครั้งที่'}`]"
|
:rules="[(val: string) => val !== null && val !== '' || `${'กรุณากรอกครั้งที่'}`]"
|
||||||
|
|
@ -283,13 +231,15 @@ onMounted(() => {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<datepicker
|
<datepicker
|
||||||
|
:readonly="isReadonly"
|
||||||
menu-class-name="modalfix"
|
menu-class-name="modalfix"
|
||||||
v-model="formData.dateMeetingStart"
|
v-model="formData.dateMeetingStart"
|
||||||
:locale="'th'"
|
:locale="'th'"
|
||||||
autoApply
|
autoApply
|
||||||
:enableTimePicker="true"
|
:enableTimePicker="true"
|
||||||
week-start="0"
|
week-start="0"
|
||||||
@update:model-value="checkDate"
|
:class="inputEdit(isReadonly)"
|
||||||
|
:max-date="formData.dateMeetingEnd"
|
||||||
>
|
>
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
<template #year-overlay-value="{ value }">{{
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
|
@ -297,8 +247,8 @@ onMounted(() => {
|
||||||
}}</template>
|
}}</template>
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<q-input
|
<q-input
|
||||||
|
:readonly="isReadonly"
|
||||||
for="selectDate"
|
for="selectDate"
|
||||||
ref="dateMeetingStartRef"
|
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
:model-value="
|
:model-value="
|
||||||
|
|
@ -327,6 +277,8 @@ onMounted(() => {
|
||||||
:enableTimePicker="true"
|
:enableTimePicker="true"
|
||||||
week-start="0"
|
week-start="0"
|
||||||
:min-date="formData.dateMeetingStart"
|
:min-date="formData.dateMeetingStart"
|
||||||
|
:class="inputEdit(isReadonly)"
|
||||||
|
:readonly="isReadonly"
|
||||||
>
|
>
|
||||||
<template #year="{ year }">{{ year + 543 }}</template>
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
<template #year-overlay-value="{ value }">{{
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
|
@ -334,8 +286,8 @@ onMounted(() => {
|
||||||
}}</template>
|
}}</template>
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<q-input
|
<q-input
|
||||||
|
:readonly="isReadonly"
|
||||||
for="selectDate"
|
for="selectDate"
|
||||||
ref="dateMeetingEndRef"
|
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
:model-value="
|
:model-value="
|
||||||
|
|
@ -358,11 +310,11 @@ onMounted(() => {
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<q-input
|
<q-input
|
||||||
:class="inputEdit(isReadonly)"
|
:class="inputEdit(isReadonly)"
|
||||||
|
:readonly="isReadonly"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
v-model="formData.title"
|
v-model="formData.title"
|
||||||
label="หัวข้อการประชุม"
|
label="หัวข้อการประชุม"
|
||||||
ref="titleRef"
|
|
||||||
for="titleRef"
|
for="titleRef"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
:rules="[(val: string) => !!val || `${'กรุณากรอกหัวข้อการประชุม'}`]"
|
:rules="[(val: string) => !!val || `${'กรุณากรอกหัวข้อการประชุม'}`]"
|
||||||
|
|
@ -371,11 +323,11 @@ onMounted(() => {
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<q-input
|
<q-input
|
||||||
:class="inputEdit(isReadonly)"
|
:class="inputEdit(isReadonly)"
|
||||||
|
:readonly="isReadonly"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
v-model="formData.consider"
|
v-model="formData.consider"
|
||||||
label="ผลการพิจารณาของคณะกรรมการประเมินผลงานแต่ละคณะ"
|
label="ผลการพิจารณาของคณะกรรมการประเมินผลงานแต่ละคณะ"
|
||||||
ref="considerRef"
|
|
||||||
for="considerRef"
|
for="considerRef"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
type="textarea"
|
type="textarea"
|
||||||
|
|
@ -385,11 +337,11 @@ onMounted(() => {
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<q-input
|
<q-input
|
||||||
:class="inputEdit(isReadonly)"
|
:class="inputEdit(isReadonly)"
|
||||||
|
:readonly="isReadonly"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
v-model="formData.period"
|
v-model="formData.period"
|
||||||
label="ระยะเวลาในการแก้ไขผลงาน"
|
label="ระยะเวลาในการแก้ไขผลงาน"
|
||||||
ref="periodRef"
|
|
||||||
for="periodRef"
|
for="periodRef"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
type="textarea"
|
type="textarea"
|
||||||
|
|
@ -404,6 +356,7 @@ onMounted(() => {
|
||||||
<div class="col-12"><q-separator /></div>
|
<div class="col-12"><q-separator /></div>
|
||||||
<div class="col-12 q-pa-sm row">
|
<div class="col-12 q-pa-sm row">
|
||||||
<q-file
|
<q-file
|
||||||
|
:readonly="isReadonly"
|
||||||
for="inputFiles"
|
for="inputFiles"
|
||||||
class="col-11"
|
class="col-11"
|
||||||
outlined
|
outlined
|
||||||
|
|
@ -434,7 +387,6 @@ onMounted(() => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 q-pa-sm row" v-if="fileData.length > 0">
|
<div class="col-12 q-pa-sm row" v-if="fileData.length > 0">
|
||||||
<!-- v-if="file.length > 0" v-else -->
|
|
||||||
<q-list
|
<q-list
|
||||||
v-for="data in fileData"
|
v-for="data in fileData"
|
||||||
:key="data.id"
|
:key="data.id"
|
||||||
|
|
@ -446,7 +398,6 @@ onMounted(() => {
|
||||||
<q-item-section>{{ data.fileName }}</q-item-section>
|
<q-item-section>{{ data.fileName }}</q-item-section>
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-btn
|
<q-btn
|
||||||
size="12px"
|
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
dense
|
dense
|
||||||
|
|
@ -456,7 +407,7 @@ onMounted(() => {
|
||||||
><q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
><q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
size="12px"
|
v-if="!isReadonly"
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
dense
|
dense
|
||||||
|
|
@ -476,8 +427,8 @@ onMounted(() => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-separator />
|
<q-separator v-if="!isReadonly" />
|
||||||
<div class="row col-12 q-pa-sm">
|
<div class="row col-12 q-pa-sm" v-if="!isReadonly">
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-btn
|
<q-btn
|
||||||
for="ButtonOnSubmit"
|
for="ButtonOnSubmit"
|
||||||
|
|
@ -489,5 +440,5 @@ onMounted(() => {
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
</form>
|
</q-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,68 +1,30 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, useAttrs, onMounted, watch } from "vue";
|
import { ref, onMounted } from "vue";
|
||||||
import type { QTableProps } from "quasar";
|
import { checkPermission } from "@/utils/permissions";
|
||||||
import router from "@/router";
|
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useEvaluateMeetingDataStore } from "@/modules/12_evaluatePersonal/store/MeetingStore";
|
import router from "@/router";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* importStore
|
||||||
|
*/
|
||||||
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
import { useEvaluateMeetingDataStore } from "@/modules/12_evaluatePersonal/store/MeetingStore";
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const dataStore = useEvaluateMeetingDataStore();
|
const dataStore = useEvaluateMeetingDataStore();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const {
|
const { messageError, showLoader, hideLoader, dialogRemove, success } = mixin;
|
||||||
messageError,
|
|
||||||
showLoader,
|
|
||||||
hideLoader,
|
|
||||||
dialogConfirm,
|
|
||||||
dialogRemove,
|
|
||||||
success,
|
|
||||||
} = mixin;
|
|
||||||
|
|
||||||
// const currentPage = ref<number>(1);
|
|
||||||
// const maxPage = ref<number>(1);
|
|
||||||
// const page = ref<number>(1);
|
|
||||||
// const rowsPerPage = ref<number>(10);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*pagination ของตาราง
|
* function fetch ข้อมูลรายการการประชุม
|
||||||
*/
|
*/
|
||||||
const pagination = ref({
|
function getList() {
|
||||||
descending: false,
|
|
||||||
page: 1,
|
|
||||||
rowsPerPage: 10,
|
|
||||||
});
|
|
||||||
|
|
||||||
// watch(
|
|
||||||
// () => currentPage.value,
|
|
||||||
// () => {
|
|
||||||
// rowsPerPage.value = pagination.value.rowsPerPage;
|
|
||||||
// getList();
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
|
|
||||||
// watch(
|
|
||||||
// () => pagination.value.rowsPerPage,
|
|
||||||
// () => {
|
|
||||||
// rowsPerPage.value = pagination.value.rowsPerPage;
|
|
||||||
// currentPage.value = 1;
|
|
||||||
// getList();
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
async function getList() {
|
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
http
|
||||||
.get(
|
.get(config.API.meeting())
|
||||||
config.API
|
|
||||||
.meeting
|
|
||||||
// currentPage.value,
|
|
||||||
// rowsPerPage.value,
|
|
||||||
// filterKeyword.value
|
|
||||||
()
|
|
||||||
)
|
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
// maxPage.value = Math.ceil(res.data.result.total / rowsPerPage.value);
|
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
dataStore.fetchData(data);
|
dataStore.fetchData(data);
|
||||||
})
|
})
|
||||||
|
|
@ -75,31 +37,23 @@ async function getList() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ลบข้อมูล
|
* ลบรายการการประชุม
|
||||||
* @param id ไอดีของข้อมูล
|
* @param id รายการการประชุม
|
||||||
*/
|
*/
|
||||||
function clickDelete(id: string) {
|
function clickDelete(id: string) {
|
||||||
dialogRemove($q, async () => deleteData(id), `ลบข้อมูล`);
|
dialogRemove($q, async () => {
|
||||||
}
|
showLoader();
|
||||||
|
http
|
||||||
/**
|
.delete(config.API.meetingById(id))
|
||||||
* ลบข้อมูล
|
.then(async () => {
|
||||||
* @param id type
|
await getList();
|
||||||
*/
|
await success($q, "ลบข้อมูลสำเร็จ");
|
||||||
async function deleteData(id: string) {
|
})
|
||||||
console.log(id);
|
.catch((e) => {
|
||||||
showLoader();
|
messageError($q, e);
|
||||||
await http
|
showLoader();
|
||||||
.delete(config.API.meetingById(id))
|
});
|
||||||
.then((res) => {
|
});
|
||||||
success($q, "ลบข้อมูลสำเร็จ");
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
messageError($q, e);
|
|
||||||
})
|
|
||||||
.finally(async () => {
|
|
||||||
await getList();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**เมื่อเริ่มโหลดหน้า
|
/**เมื่อเริ่มโหลดหน้า
|
||||||
|
|
@ -107,7 +61,6 @@ async function deleteData(id: string) {
|
||||||
*/
|
*/
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
// get ข้อมูลแล้วโยนใส่ store
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -122,19 +75,22 @@ function resetFilter() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function filterFn() {
|
/**
|
||||||
getList();
|
*pagination ของตาราง
|
||||||
console.log("enter", filterKeyword.value);
|
*/
|
||||||
}
|
const pagination = ref({
|
||||||
|
descending: false,
|
||||||
|
page: 1,
|
||||||
|
rowsPerPage: 10,
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="toptitle text-dark col-12 row items-center">รายการการประชุม</div>
|
<div class="toptitle text-dark col-12 row items-center">รายการการประชุม</div>
|
||||||
<q-card flat bordered class="col-12 q-mt-sm q-pa-md">
|
<q-card flat bordered class="col-12 q-mt-sm q-pa-md">
|
||||||
<div class="row col-12 q-col-gutter-sm q-mb-sm">
|
<div class="row col-12 q-col-gutter-sm q-mb-sm">
|
||||||
<div>
|
<div v-if="checkPermission($route)?.attrIsCreate">
|
||||||
<q-btn
|
<q-btn
|
||||||
@click="router.push(`/evaluate/meeting/add`)"
|
@click="router.push(`/evaluate/meeting/add`)"
|
||||||
size="12px"
|
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
color="add"
|
color="add"
|
||||||
|
|
@ -154,7 +110,6 @@ function filterFn() {
|
||||||
outlined
|
outlined
|
||||||
debounce="300"
|
debounce="300"
|
||||||
placeholder="ค้นหา"
|
placeholder="ค้นหา"
|
||||||
@keydown.enter.prevent="filterFn"
|
|
||||||
>
|
>
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<q-icon v-if="filterKeyword == ''" name="search" />
|
<q-icon v-if="filterKeyword == ''" name="search" />
|
||||||
|
|
@ -197,17 +152,6 @@ function filterFn() {
|
||||||
v-model:pagination="pagination"
|
v-model:pagination="pagination"
|
||||||
:visible-columns="dataStore.visibleColumns"
|
:visible-columns="dataStore.visibleColumns"
|
||||||
>
|
>
|
||||||
<!-- <template v-slot:pagination="scope">
|
|
||||||
<q-pagination
|
|
||||||
v-model="currentPage"
|
|
||||||
active-color="primary"
|
|
||||||
color="dark"
|
|
||||||
:max="Number(maxPage)"
|
|
||||||
size="sm"
|
|
||||||
boundary-links
|
|
||||||
direction-links
|
|
||||||
></q-pagination>
|
|
||||||
</template> -->
|
|
||||||
<template v-slot:header="props">
|
<template v-slot:header="props">
|
||||||
<q-tr :props="props">
|
<q-tr :props="props">
|
||||||
<q-th auto-width />
|
<q-th auto-width />
|
||||||
|
|
@ -217,26 +161,50 @@ function filterFn() {
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body="props">
|
<template v-slot:body="props">
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
<q-tr :props="props">
|
||||||
<q-td auto-width>
|
<q-td auto-width>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
v-if="checkPermission($route)?.attrIsGet"
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
round
|
||||||
|
color="info"
|
||||||
|
icon="mdi-eye"
|
||||||
|
@click.pervent="
|
||||||
|
router.push(`/evaluate/meeting-detail/${props.row.id}`)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<q-tooltip>รายละเอียด</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
<q-btn
|
||||||
|
v-if="
|
||||||
|
checkPermission($route)?.attrIsGet &&
|
||||||
|
checkPermission($route)?.attrIsUpdate
|
||||||
|
"
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
round
|
||||||
|
color="edit"
|
||||||
|
icon="edit"
|
||||||
|
@click.pervent="
|
||||||
|
router.push(`/evaluate/meeting/${props.row.id}`)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
<q-btn
|
||||||
|
v-if="checkPermission($route)?.attrIsDelete"
|
||||||
dense
|
dense
|
||||||
size="12px"
|
|
||||||
flat
|
flat
|
||||||
round
|
round
|
||||||
color="red"
|
color="red"
|
||||||
@click="clickDelete(props.row.id)"
|
@click.pervent="clickDelete(props.row.id)"
|
||||||
icon="mdi-delete"
|
icon="mdi-delete"
|
||||||
>
|
>
|
||||||
<q-tooltip>ลบข้อมูล</q-tooltip>
|
<q-tooltip>ลบข้อมูล</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td
|
<q-td v-for="col in props.cols" :key="col.name" :props="props">
|
||||||
v-for="col in props.cols"
|
|
||||||
:key="col.name"
|
|
||||||
:props="props"
|
|
||||||
@click="router.push(`/evaluate/meeting/${props.row.id}`)"
|
|
||||||
>
|
|
||||||
<div v-if="col.name == 'no'">
|
<div v-if="col.name == 'no'">
|
||||||
{{ props.rowIndex + 1 }}
|
{{ props.rowIndex + 1 }}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -244,7 +212,6 @@ function filterFn() {
|
||||||
{{ col.value }}
|
{{ col.value }}
|
||||||
</div>
|
</div>
|
||||||
</q-td>
|
</q-td>
|
||||||
|
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
</d-table>
|
</d-table>
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ const directorPage = () =>
|
||||||
import("@/modules/12_evaluatePersonal/components/Director/MainPage.vue");
|
import("@/modules/12_evaluatePersonal/components/Director/MainPage.vue");
|
||||||
const directorAddPage = () =>
|
const directorAddPage = () =>
|
||||||
import("@/modules/12_evaluatePersonal/components/Director/AddPage.vue");
|
import("@/modules/12_evaluatePersonal/components/Director/AddPage.vue");
|
||||||
const directorEditPage = () =>
|
// const directorEditPage = () =>
|
||||||
import("@/modules/12_evaluatePersonal/components/Director/EditPage.vue");
|
// import("@/modules/12_evaluatePersonal/components/Director/EditPage.vue");
|
||||||
|
|
||||||
const meetingPage = () =>
|
const meetingPage = () =>
|
||||||
import("@/modules/12_evaluatePersonal/components/Meeting/MainPage.vue");
|
import("@/modules/12_evaluatePersonal/components/Meeting/MainPage.vue");
|
||||||
|
|
@ -58,16 +58,16 @@ export default [
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "/evaluate/director/:id",
|
// path: "/evaluate/director/:id",
|
||||||
name: "evaluateDirectorEdit",
|
// name: "evaluateDirectorEdit",
|
||||||
component: directorEditPage,
|
// component: directorEditPage,
|
||||||
meta: {
|
// meta: {
|
||||||
Auth: true,
|
// Auth: true,
|
||||||
Key: "SYS_EVA_INFO",
|
// Key: "SYS_EVA_INFO",
|
||||||
Role: "STAFF",
|
// Role: "STAFF",
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: "/evaluate/meeting",
|
path: "/evaluate/meeting",
|
||||||
name: "evaluateMeeting",
|
name: "evaluateMeeting",
|
||||||
|
|
@ -98,4 +98,14 @@ export default [
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/evaluate/meeting-detail/:id",
|
||||||
|
name: "evaluateMeetingdetail",
|
||||||
|
component: meetingEditPage,
|
||||||
|
meta: {
|
||||||
|
Auth: true,
|
||||||
|
Key: "SYS_EVA_INFO",
|
||||||
|
Role: "STAFF",
|
||||||
|
},
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue