解决两个问题:
1、config.js中写错URL导致axios请求失败; 2、axios为CROS发送两次请求,第一次的method是options,在token过滤器中需要忽略。
This commit is contained in:
parent
72b935c4b3
commit
e676e98a6e
@ -2,8 +2,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-01-29 10:39:41
|
* @Date: 2023-01-29 10:39:41
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-01-29 10:39:44
|
* @LastEditTime: 2023-02-04 17:12:05
|
||||||
* @FilePath: \requirement\src\main\java\com\cpic\xim\web\filters\cros\CrosFilter.java
|
* @FilePath: /后端-需求/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java
|
||||||
* @Description: 过滤器,用于对CROS访问进行响应。允许任何来源的访问。
|
* @Description: 过滤器,用于对CROS访问进行响应。允许任何来源的访问。
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
@ -33,7 +33,7 @@ public class CrosFilter implements Filter
|
|||||||
response.setHeader( "Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE" );
|
response.setHeader( "Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE" );
|
||||||
response.setHeader( "Access-Control-Max-Age", "0" );
|
response.setHeader( "Access-Control-Max-Age", "0" );
|
||||||
response.setHeader( "Access-Control-Allow-Headers",
|
response.setHeader( "Access-Control-Allow-Headers",
|
||||||
"Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token" );
|
"Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token,username" );
|
||||||
response.setHeader( "Access-Control-Allow-Credentials", "true" );
|
response.setHeader( "Access-Control-Allow-Credentials", "true" );
|
||||||
response.setHeader( "XDomainRequestAllowed", "1" );
|
response.setHeader( "XDomainRequestAllowed", "1" );
|
||||||
response.setHeader( "XDomainRequestAllowed", "1" );
|
response.setHeader( "XDomainRequestAllowed", "1" );
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-01-29 10:50:49
|
* @Date: 2023-01-29 10:50:49
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-01-29 10:55:27
|
* @LastEditTime: 2023-02-04 18:05:18
|
||||||
* @FilePath: \requirement\src\main\java\com\cpic\xim\web\filters\token\TokenFilter.java
|
* @FilePath: /后端-需求/src/main/java/com/cpic/xim/web/filters/token/TokenFilter.java
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
@ -11,6 +11,7 @@
|
|||||||
package com.cpic.xim.web.filters.token;
|
package com.cpic.xim.web.filters.token;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Enumeration;
|
||||||
import javax.servlet.Filter;
|
import javax.servlet.Filter;
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
@ -19,9 +20,11 @@ import javax.servlet.ServletResponse;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
@SuppressWarnings( "unused")
|
@SuppressWarnings( "unused" )
|
||||||
public class TokenFilter implements Filter
|
public class TokenFilter implements Filter
|
||||||
{
|
{
|
||||||
|
private static final String FILTE_METHODS = "POST,GET";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doFilter( ServletRequest req, ServletResponse resp, FilterChain chain )
|
public void doFilter( ServletRequest req, ServletResponse resp, FilterChain chain )
|
||||||
throws ServletException, IOException
|
throws ServletException, IOException
|
||||||
@ -29,8 +32,14 @@ public class TokenFilter implements Filter
|
|||||||
HttpServletRequest request = (HttpServletRequest) req;
|
HttpServletRequest request = (HttpServletRequest) req;
|
||||||
HttpServletResponse response = (HttpServletResponse) resp;
|
HttpServletResponse response = (HttpServletResponse) resp;
|
||||||
|
|
||||||
// 获取请求中的token字符串
|
String method = request.getMethod().toUpperCase();
|
||||||
String token = request.getHeader( "Token" );
|
|
||||||
|
// 只处理POST和GET
|
||||||
|
if ( FILTE_METHODS.indexOf( method ) != -1 )
|
||||||
|
{
|
||||||
|
// 检查token
|
||||||
|
String token = request.getHeader( "token" );
|
||||||
|
}
|
||||||
|
|
||||||
chain.doFilter( request, response );
|
chain.doFilter( request, response );
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
VUE_APP_API_URL_LOGIN = "http://222.76.244.118:11001/admin-system/account/p13_account_check"
|
VUE_APP_API_URL_LOGIN = "http://222.76.244.118:11001/admin-system/account/p13_account_check"
|
||||||
VUE_APP_API_URL_UPLOAD_FILE= "http://222.76.244.118:11001/admin-system/file/file-upload.do"
|
VUE_APP_API_URL_UPLOAD_FILE= "http://222.76.244.118:11001/admin-system/file/file-upload.do"
|
||||||
VUE_APP_API_URL_REQUIREMENT_STATUS= "http://222.76.244.118:11001/requirement/query_requirement_status.do"
|
VUE_APP_API_URL_REQUIREMENT_STATUS= "http://localhost:8080/requirement/query_requirement_status.do"
|
@ -2,14 +2,14 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-01-04 11:05:44
|
* @Date: 2023-01-04 11:05:44
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-02-04 01:02:13
|
* @LastEditTime: 2023-02-04 16:35:20
|
||||||
* @FilePath: \IT工具综合平台\src\layout\Index.vue
|
* @FilePath: /IT工具综合平台/src/layout/Index.vue
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<el-container id="layout-container" v-loading="pageVisible" element-loading-text="载入应用数据…">
|
<el-container id="layout-container" v-loading="ui.ageVisible" element-loading-text="载入应用数据…">
|
||||||
<el-header id="layout-header">
|
<el-header id="layout-header">
|
||||||
<LayoutHeader />
|
<LayoutHeader />
|
||||||
</el-header>
|
</el-header>
|
||||||
@ -28,35 +28,57 @@
|
|||||||
import LayoutAside from "./components/Aside.vue";
|
import LayoutAside from "./components/Aside.vue";
|
||||||
import LayoutHeader from "./components/Header.vue";
|
import LayoutHeader from "./components/Header.vue";
|
||||||
import LayoutMain from "./components/Main.vue";
|
import LayoutMain from "./components/Main.vue";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
import { onMounted, computed, reactive } from "vue";
|
||||||
|
// import { query_requirement_status } from "@/utils/api/requirement/requirement.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "layoutPage",
|
name: "layoutPage",
|
||||||
|
setup()
|
||||||
|
{
|
||||||
|
const store = useStore();
|
||||||
|
|
||||||
|
const ui = reactive(
|
||||||
|
{
|
||||||
|
pageVisible: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const asideWidth = computed(() =>
|
||||||
|
{
|
||||||
|
const collapse = store.state.app.asideBarCollapse;
|
||||||
|
|
||||||
|
return collapse === true ? "65px" : "180px";
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(() =>
|
||||||
|
{
|
||||||
|
|
||||||
|
//加载数据
|
||||||
|
// query_requirement_status()
|
||||||
|
// .then((response) =>
|
||||||
|
// {
|
||||||
|
// // debugger;
|
||||||
|
// const data = response.data;
|
||||||
|
|
||||||
|
// console.log(data);
|
||||||
|
// })
|
||||||
|
// .catch((error) =>
|
||||||
|
// {
|
||||||
|
// // debugger;
|
||||||
|
// console.log(error);
|
||||||
|
// });
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
ui,
|
||||||
|
asideWidth,
|
||||||
|
};
|
||||||
|
},
|
||||||
components: {
|
components: {
|
||||||
LayoutAside,
|
LayoutAside,
|
||||||
LayoutHeader,
|
LayoutHeader,
|
||||||
LayoutMain,
|
LayoutMain,
|
||||||
},
|
},
|
||||||
data()
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
pageVisible: true,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
asideWidth()
|
|
||||||
{
|
|
||||||
const collapse = this.$store.state.app.asideBarCollapse;
|
|
||||||
|
|
||||||
return collapse === true ? "65px" : "180px";
|
|
||||||
},
|
|
||||||
},
|
|
||||||
mounted()
|
|
||||||
{
|
|
||||||
setTimeout(() =>
|
|
||||||
{
|
|
||||||
this.pageVisible = false;
|
|
||||||
}, 3000);
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -2,18 +2,20 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2022-12-14 15:12:46
|
* @Date: 2022-12-14 15:12:46
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-01-11 14:20:04
|
* @LastEditTime: 2023-02-04 15:59:09
|
||||||
* @FilePath: \admin_system\src\store\index.js
|
* @FilePath: /IT工具综合平台/src/store/index.js
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
import { createStore } from 'vuex';
|
import { createStore } from 'vuex';
|
||||||
import app from "./modules/app";
|
import app from "./modules/app";
|
||||||
|
import requirement from "./modules/requirement";
|
||||||
|
|
||||||
const store = createStore({
|
const store = createStore({
|
||||||
modules: {
|
modules: {
|
||||||
app,
|
app,
|
||||||
|
requirement,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
21
code/web/IT工具综合平台/src/store/modules/requirement.js
Normal file
21
code/web/IT工具综合平台/src/store/modules/requirement.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-02-04 15:55:16
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @LastEditTime: 2023-02-04 16:00:54
|
||||||
|
* @FilePath: /IT工具综合平台/src/store/modules/requirement.js
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const state = {
|
||||||
|
status: {},
|
||||||
|
status_update_time: new Date(),
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
namespaced: true,
|
||||||
|
state,
|
||||||
|
};
|
||||||
|
|
@ -2,8 +2,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2022-12-23 11:10:23
|
* @Date: 2022-12-23 11:10:23
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2022-12-23 11:11:58
|
* @LastEditTime: 2023-02-04 17:08:15
|
||||||
* @FilePath: \admin_system\src\utils\api\config.js
|
* @FilePath: /IT工具综合平台/src/utils/api/config.js
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
@ -11,4 +11,5 @@
|
|||||||
|
|
||||||
export const API_URL = {
|
export const API_URL = {
|
||||||
URL_LOGIN: process.env.VUE_APP_API_URL_LOGIN,
|
URL_LOGIN: process.env.VUE_APP_API_URL_LOGIN,
|
||||||
|
URL_QUERY_REQUIREMENT_STATUS: process.env.VUE_APP_API_URL_REQUIREMENT_STATUS,
|
||||||
};
|
};
|
@ -2,8 +2,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2022-12-22 09:10:20
|
* @Date: 2022-12-22 09:10:20
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-02-03 22:04:22
|
* @LastEditTime: 2023-02-04 15:45:51
|
||||||
* @FilePath: \IT工具综合平台\src\utils\api\info\account.js
|
* @FilePath: /IT工具综合平台/src/utils/api/info/account.js
|
||||||
* @Description: 登录登出相关的API。
|
* @Description: 登录登出相关的API。
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
@ -11,7 +11,6 @@
|
|||||||
import instance from "@/utils/api/request";
|
import instance from "@/utils/api/request";
|
||||||
import { API_URL } from "@/utils/api/config"; //所有API的地址
|
import { API_URL } from "@/utils/api/config"; //所有API的地址
|
||||||
import router from "../../../router/index";
|
import router from "../../../router/index";
|
||||||
import store from "../../../store/index";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录请求函数
|
* 登录请求函数
|
||||||
@ -34,8 +33,6 @@ export function Login(userInfo)
|
|||||||
*/
|
*/
|
||||||
export function Logout()
|
export function Logout()
|
||||||
{
|
{
|
||||||
console.log(store);
|
|
||||||
|
|
||||||
window.localStorage.removeItem("token");
|
window.localStorage.removeItem("token");
|
||||||
window.localStorage.removeItem("user_info");
|
window.localStorage.removeItem("user_info");
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2022-12-22 17:18:10
|
* @Date: 2022-12-22 17:18:10
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-01-12 17:47:39
|
* @LastEditTime: 2023-02-04 17:20:01
|
||||||
* @FilePath: \admin_system\src\utils\api\request.js
|
* @FilePath: /IT工具综合平台/src/utils/api/request.js
|
||||||
* @Description: 配置axios拦截器
|
* @Description: 配置axios拦截器
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
@ -16,7 +16,7 @@ import router from "@/router";
|
|||||||
const service = axios.create(
|
const service = axios.create(
|
||||||
{
|
{
|
||||||
baseURL: "",
|
baseURL: "",
|
||||||
timeout: 5000,
|
// timeout: 5000,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -27,11 +27,13 @@ const service = axios.create(
|
|||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
function (config)
|
function (config)
|
||||||
{
|
{
|
||||||
|
console.log(store);
|
||||||
|
|
||||||
//axios拦截器请求,在请求的header加上用户名和token
|
//axios拦截器请求,在请求的header加上用户名和token
|
||||||
if (store.state.app.userInfo)
|
if (store.state.app.userInfo)
|
||||||
{
|
{
|
||||||
//如果userInfo存在,则加上用户名和token
|
//如果userInfo存在,则加上用户名和token
|
||||||
const username = store.state.app.userInfo.user_info.p13uid;
|
const username = store.state.app.userInfo.staff_info.p13uid;
|
||||||
const token = store.state.app.userInfo.token;
|
const token = store.state.app.userInfo.token;
|
||||||
|
|
||||||
config.headers["token"] = token;
|
config.headers["token"] = token;
|
||||||
@ -48,6 +50,7 @@ service.interceptors.request.use(
|
|||||||
},
|
},
|
||||||
function (error)
|
function (error)
|
||||||
{
|
{
|
||||||
|
console.log("请求拦截器失败!");
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
24
code/web/IT工具综合平台/src/utils/api/requirement/requirement.js
Normal file
24
code/web/IT工具综合平台/src/utils/api/requirement/requirement.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-02-04 15:48:00
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @LastEditTime: 2023-02-04 17:11:07
|
||||||
|
* @FilePath: /IT工具综合平台/src/utils/api/requirement/requirement.js
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
|
*/
|
||||||
|
import instance from "@/utils/api/request";
|
||||||
|
import { API_URL } from "@/utils/api/config";
|
||||||
|
|
||||||
|
function query_requirement_status()
|
||||||
|
{
|
||||||
|
return instance.request(
|
||||||
|
{
|
||||||
|
method: "post",
|
||||||
|
url: API_URL.URL_QUERY_REQUIREMENT_STATUS,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { query_requirement_status };
|
@ -3,8 +3,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2022-12-14 15:23:54
|
* @Date: 2022-12-14 15:23:54
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-02-03 15:46:55
|
* @LastEditTime: 2023-02-04 16:55:12
|
||||||
* @FilePath: \IT工具综合平台\src\views\account\Login32.vue
|
* @FilePath: /IT工具综合平台/src/views/account/Login.vue
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
@ -43,8 +43,8 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" class="el-button-block" @click="login" :disabled="submit_btn_disable"
|
<el-button type="primary" class="el-button-block" @click="login" :disabled="ui.submit_btn_disable"
|
||||||
:loading="submit_btn_loading">
|
:loading="ui.submit_btn_loading">
|
||||||
{{ ui.current_menu === "login" ? "登录" : "注册" }}
|
{{ ui.current_menu === "login" ? "登录" : "注册" }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -183,6 +183,8 @@ export default {
|
|||||||
//将获取到的用户信息和token保存到vuex和localStorage
|
//将获取到的用户信息和token保存到vuex和localStorage
|
||||||
const saveUserInfo = (userInfo) =>
|
const saveUserInfo = (userInfo) =>
|
||||||
{
|
{
|
||||||
|
console.log("保存用户信息");
|
||||||
|
console.log("保存用户信息", store);
|
||||||
//保存到vuex
|
//保存到vuex
|
||||||
store.commit("app/SET_USERINFO", userInfo);
|
store.commit("app/SET_USERINFO", userInfo);
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-01-06 15:30:12
|
* @Date: 2023-01-06 15:30:12
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-02-01 16:07:55
|
* @LastEditTime: 2023-02-04 16:56:36
|
||||||
* @FilePath: \IT工具综合平台\src\views\overview\Desktop.vue
|
* @FilePath: /IT工具综合平台/src/views/overview/Desktop.vue
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
@ -60,33 +60,52 @@
|
|||||||
<el-col :span="10"></el-col>
|
<el-col :span="10"></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-button type="danger" @click="test_1">测试</el-button>
|
<el-button type="danger" @click="testRequest">测试</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script >
|
<script >
|
||||||
|
import { reactive, onBeforeMount } from "vue";
|
||||||
|
import { query_requirement_status } from "@/utils/api/requirement/requirement.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "DeskTop",
|
name: "DeskTop",
|
||||||
data()
|
setup()
|
||||||
{
|
{
|
||||||
|
let start_date = reactive(new Date());
|
||||||
|
let end_date = reactive(new Date());
|
||||||
|
|
||||||
|
onBeforeMount(() =>
|
||||||
|
{
|
||||||
|
end_date = new Date(Date.now());
|
||||||
|
start_date = new Date();
|
||||||
|
|
||||||
|
start_date.setMonth(end_date.getMonth() - 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
const testRequest = () =>
|
||||||
|
{
|
||||||
|
//加载数据;
|
||||||
|
query_requirement_status()
|
||||||
|
.then((response) =>
|
||||||
|
{
|
||||||
|
// debugger;
|
||||||
|
const data = response.data;
|
||||||
|
|
||||||
|
console.log(data);
|
||||||
|
})
|
||||||
|
.catch((error) =>
|
||||||
|
{
|
||||||
|
// debugger;
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
start_date: null,
|
start_date,
|
||||||
end_date: null,
|
end_date,
|
||||||
|
testRequest,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
|
||||||
test_1()
|
|
||||||
{
|
|
||||||
this.deleteConfirm();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
created()
|
|
||||||
{
|
|
||||||
this.end_date = new Date(Date.now());
|
|
||||||
this.start_date = new Date();
|
|
||||||
|
|
||||||
this.start_date.setMonth(this.end_date.getMonth() - 1);
|
|
||||||
//this.start_date.setMonth();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -2,18 +2,8 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-01-25 23:16:29
|
* @Date: 2023-01-25 23:16:29
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @LastEditTime: 2023-02-03 11:07:02
|
* @LastEditTime: 2023-02-04 15:46:29
|
||||||
* @FilePath: \IT工具综合平台\src\views\requirement\RequirementEditing.vue
|
* @FilePath: /IT工具综合平台/src/views/requirement/RequirementEditing.vue
|
||||||
* @Description:
|
|
||||||
*
|
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
|
||||||
-->
|
|
||||||
<!--
|
|
||||||
* @Author: Kane
|
|
||||||
* @Date: 2023-01-25 23:13:47
|
|
||||||
* @LastEditors: Kane
|
|
||||||
* @LastEditTime: 2023-01-25 23:15:21
|
|
||||||
* @FilePath: \admin_system\src\views\requirement\RequirementManager.vue
|
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user