first
This commit is contained in:
@@ -0,0 +1,232 @@
|
||||
<!-- This example requires Tailwind CSS v2.0+ -->
|
||||
<template>
|
||||
<div class="divide-y divide-gray-200">
|
||||
<form class="lg:col-span-9">
|
||||
<!-- Profile section -->
|
||||
<div class="py-6 px-4 sm:p-6 lg:pb-8">
|
||||
<div class="sm:flex sm:items-center">
|
||||
<div class="sm:flex-auto">
|
||||
<h2 class="text-lg leading-6 font-medium text-gray-900">
|
||||
로그 상세 보기
|
||||
</h2>
|
||||
<p class="mt-1 text-sm text-gray-500"></p>
|
||||
</div>
|
||||
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none"></div>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 grid grid-cols-12 gap-6">
|
||||
<div class="col-span-12 sm:col-span-6">
|
||||
<label
|
||||
for="email"
|
||||
class="block text-sm font-medium text-gray-700"
|
||||
>이메일</label
|
||||
>
|
||||
<input
|
||||
id="email"
|
||||
v-model="email"
|
||||
disabled
|
||||
type="text"
|
||||
name="email"
|
||||
autocomplete="email"
|
||||
class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-sky-500 focus:border-sky-500 sm:text-sm"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="col-span-12 sm:col-span-6"></div>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 flex flex-col lg:flex-row">
|
||||
<div class="flex-grow space-y-6">
|
||||
<div>
|
||||
<label
|
||||
for="username"
|
||||
class="block text-sm font-medium text-gray-700"
|
||||
>
|
||||
사용자 이름
|
||||
</label>
|
||||
<div class="mt-1 rounded-md shadow-sm flex">
|
||||
<input
|
||||
id="username"
|
||||
v-model="displayName"
|
||||
disabled
|
||||
type="text"
|
||||
name="username"
|
||||
autocomplete="username"
|
||||
class="focus:ring-sky-500 focus:border-sky-500 flex-grow block w-full min-w-0 rounded-none rounded-r-md sm:text-sm border-gray-300"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label
|
||||
for="phone"
|
||||
class="block text-sm font-medium text-gray-700"
|
||||
>
|
||||
전화번호
|
||||
</label>
|
||||
<div class="mt-1 rounded-md shadow-sm flex">
|
||||
<input
|
||||
id="phone"
|
||||
v-model="phone"
|
||||
disabled
|
||||
type="text"
|
||||
name="phone"
|
||||
autocomplete="phone"
|
||||
class="focus:ring-sky-500 focus:border-sky-500 flex-grow block w-full min-w-0 rounded-none rounded-r-md sm:text-sm border-gray-300"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label
|
||||
for="about"
|
||||
class="block text-sm font-medium text-gray-700"
|
||||
>
|
||||
간단한 소개
|
||||
</label>
|
||||
<div class="mt-1">
|
||||
<textarea
|
||||
id="about"
|
||||
v-model="memo"
|
||||
disabled
|
||||
name="about"
|
||||
rows="3"
|
||||
class="shadow-sm focus:ring-sky-500 focus:border-sky-500 mt-1 block w-full sm:text-sm border border-gray-300 rounded-md"
|
||||
/>
|
||||
</div>
|
||||
<p class="mt-2 text-sm text-gray-500">
|
||||
로그 참고 사항으로 수정할 수 없습니다.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 grid grid-cols-12 gap-6">
|
||||
<div class="col-span-12 sm:col-span-6">
|
||||
<label
|
||||
for="email"
|
||||
class="block text-sm font-medium text-gray-700"
|
||||
>로그 태그</label
|
||||
>
|
||||
<input
|
||||
id="logTag"
|
||||
v-model="logTag"
|
||||
disabled
|
||||
type="text"
|
||||
name="logTag"
|
||||
autocomplete="logTag"
|
||||
class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-sky-500 focus:border-sky-500 sm:text-sm"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="col-span-12 sm:col-span-6"></div>
|
||||
</div>
|
||||
<div class="mt-6">
|
||||
<div>
|
||||
<label
|
||||
for="about"
|
||||
class="block text-sm font-medium text-gray-700"
|
||||
>
|
||||
부가 정보
|
||||
</label>
|
||||
<div class="mt-1">
|
||||
<vue-json-pretty
|
||||
class="bg-white shadow-sm focus:ring-sky-500 focus:border-sky-500 mt-1 block w-full sm:text-sm border border-gray-300 rounded-md"
|
||||
:path="'root'"
|
||||
:data="logMemo"
|
||||
>
|
||||
</vue-json-pretty>
|
||||
</div>
|
||||
<p class="mt-2 text-sm text-gray-500"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Privacy section -->
|
||||
<div class="pt-0">
|
||||
<div class="mt-4 py-4 px-4 flex justify-end sm:px-6">
|
||||
<button
|
||||
type="button"
|
||||
class="bg-white border border-gray-300 rounded-md shadow-sm py-2 px-4 inline-flex justify-center text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-sky-500"
|
||||
@click="doCancel"
|
||||
>
|
||||
이전 화면으로
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
definePageMeta({
|
||||
middleware: 'check-auth-admin',
|
||||
});
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
|
||||
const email = ref('');
|
||||
const displayName = ref('');
|
||||
const photoUrl = ref('');
|
||||
const phone = ref('');
|
||||
const memo = ref('');
|
||||
|
||||
const logTag = ref('');
|
||||
const logMemo = ref('');
|
||||
|
||||
let logInfo = {};
|
||||
let userInfo = {};
|
||||
|
||||
async function doCancel() {
|
||||
router.back();
|
||||
}
|
||||
|
||||
console.log('route.params=', route.params);
|
||||
|
||||
const hero = route.params.hero;
|
||||
const uid = route.params.uid;
|
||||
|
||||
console.log('hero=', hero);
|
||||
|
||||
let responseJson = await _crossCtl.doComm('select', 'admin:user:byid', {
|
||||
hero: uid,
|
||||
});
|
||||
console.log('responseJson=', responseJson);
|
||||
if (responseJson['responseMessage'] == 'ok') {
|
||||
userInfo = responseJson['data'][0];
|
||||
const tmpUserInfo = _utils.safeJSON(userInfo['infos']);
|
||||
|
||||
if (tmpUserInfo != null) {
|
||||
email.value = tmpUserInfo['email'];
|
||||
displayName.value = userInfo['display_name'];
|
||||
photoUrl.value = userInfo['photo_url'];
|
||||
phone.value = tmpUserInfo['phone'];
|
||||
memo.value = tmpUserInfo['memo'];
|
||||
} else {
|
||||
email.value = 'NaN';
|
||||
displayName.value = userInfo['display_name'];
|
||||
photoUrl.value = userInfo['photo_url'];
|
||||
phone.value = 'NaN';
|
||||
memo.value = 'NaN';
|
||||
}
|
||||
|
||||
responseJson = await _crossCtl.doComm('select', 'log:user', {
|
||||
hero: hero,
|
||||
});
|
||||
console.log('responseJson=', responseJson);
|
||||
if (responseJson['responseMessage'] == 'ok') {
|
||||
logInfo = responseJson['data'][0];
|
||||
const tmpLogMemo = _utils.safeJSON(logInfo['memo']);
|
||||
|
||||
console.log('logInfo = ', logInfo);
|
||||
console.log('tmpLogMemo = ', tmpLogMemo);
|
||||
|
||||
logTag.value = logInfo['tag'];
|
||||
logMemo.value = tmpLogMemo;
|
||||
} else {
|
||||
alert(responseJson['responseMessage']);
|
||||
}
|
||||
} else {
|
||||
alert(responseJson['responseMessage']);
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user