11.20 save add new Article API Implement...

This commit is contained in:
kms
2022-11-20 17:55:16 +09:00
parent 918b6c8cb2
commit df3c2e19af
5 changed files with 38 additions and 20 deletions

View File

@@ -20,7 +20,7 @@
<router-link to="/" class="nav-link active" active-class="active">Home</router-link> <router-link to="/" class="nav-link active" active-class="active">Home</router-link>
</li> </li>
<li class="nav-item" v-if="isLogin"> <li class="nav-item" v-if="isLogin">
<router-link to="/article" class="nav-link" active-class="active">New Article</router-link> <router-link to="/editor/" class="nav-link" active-class="active">New Article</router-link>
</li> </li>
<li class="nav-item" v-if="isLogin"> <li class="nav-item" v-if="isLogin">
<router-link to="/settings" class="nav-link" active-class="active"><i class="ion-gear-a"></i>Settings</router-link> <router-link to="/settings" class="nav-link" active-class="active"><i class="ion-gear-a"></i>Settings</router-link>
@@ -46,14 +46,9 @@ export default {
name: "TheHeader", name: "TheHeader",
setup(){ setup(){
const store = useStore(); const store = useStore();
const token = ref("");
const username = ref("");
const isLogin = ref(false); const isLogin = ref(false);
onMounted(()=> { onMounted(()=> {
console.log("mounted!", isLogin.value);
if(store.state.token == ""){ if(store.state.token == ""){
isLogin.value = false; isLogin.value = false;
}else{ }else{

View File

@@ -23,8 +23,8 @@ const routes = [
component: () => import(/* webpackChunkName "inputTag" */ '@/views/TheRegister.vue') component: () => import(/* webpackChunkName "inputTag" */ '@/views/TheRegister.vue')
}, },
{ {
path: "/article", path: "/editor/",
name: "Article", name: "ArticleEditor",
component: () => import(/* webpackChunkName "inputTag" */ '@/views/TheArticle.vue') component: () => import(/* webpackChunkName "inputTag" */ '@/views/TheArticle.vue')
}, },
{ {

View File

@@ -8,20 +8,20 @@
<form> <form>
<fieldset> <fieldset>
<fieldset class="form-group"> <fieldset class="form-group">
<input type="text" class="form-control form-control-lg" placeholder="Article Title"> <input type="text" class="form-control form-control-lg" placeholder="Article Title" v-model="article.title">
</fieldset> </fieldset>
<fieldset class="form-group"> <fieldset class="form-group">
<input type="text" class="form-control" placeholder="What's this article about?"> <input type="text" class="form-control" placeholder="What's this article about?" v-model="article.description">
</fieldset> </fieldset>
<fieldset class="form-group"> <fieldset class="form-group">
<textarea class="form-control" rows="8" <textarea class="form-control" rows="8"
placeholder="Write your article (in markdown)"></textarea> placeholder="Write your article (in markdown)" v-model="article.body"></textarea>
</fieldset> </fieldset>
<fieldset class="form-group"> <fieldset class="form-group">
<input type="text" class="form-control" placeholder="Enter tags"> <input type="text" class="form-control" placeholder="Enter tags" v-model="tag">
<div class="tag-list"></div> <div class="tag-list"></div>
</fieldset> </fieldset>
<button class="btn btn-lg pull-xs-right btn-primary" type="button"> <button @click="addArticle" class="btn btn-lg pull-xs-right btn-primary" type="button">
Publish Article Publish Article
</button> </button>
</fieldset> </fieldset>
@@ -36,8 +36,35 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import {reactive ,ref } from "vue";
import axios from "axios";
import { useStore } from "vuex";
export default { export default {
name: "TheArticle" name: "TheArticle",
setup(){
const url = import.meta.env.VITE_BASE_URL;
const store = useStore();
const token = store.state.token
const tag = ref("")
const article = reactive({
title: "",
description: "",
body: "",
tagList: new Array(tag),
})
const addArticle = () => {
console.log(article)
axios.post(url+"/api/articles",JSON.stringify({article}) ,{headers:{
Authorization : "TOKEN " + token,
"Content-Type": `application/json`,
}})
.then(response => {console.log(response)})
}
return { article,tag, addArticle }
}
} }
</script> </script>

View File

@@ -148,7 +148,6 @@ export default defineComponent({
} }
}).then(response => { }).then(response => {
setProfile(response.data.profile) setProfile(response.data.profile)
console.log(response)
}) })
}else{ }else{
axios.post(url + "/api/profiles/" + profile.username + "/follow",{ axios.post(url + "/api/profiles/" + profile.username + "/follow",{
@@ -158,7 +157,6 @@ export default defineComponent({
} }
}).then(response => { }).then(response => {
setProfile(response.data.profile) setProfile(response.data.profile)
console.log(response)
}) })
} }
} }

View File

@@ -85,10 +85,8 @@ export default {
}) })
.then(response => { .then(response => {
store.dispatch("LOGIN",response.data.user) store.dispatch("LOGIN",response.data.user)
.then(()=>{ allHideError();
allHideError(); router.push({name: "Home"});
router.push({name: "Home"});
});
}) })
.catch(error =>{ .catch(error =>{
const code = error.response.data.errors.code; const code = error.response.data.errors.code;