diff --git a/app/src/components/Inventory.vue b/app/src/components/Inventory.vue
index 127e345..a5a56c6 100644
--- a/app/src/components/Inventory.vue
+++ b/app/src/components/Inventory.vue
@@ -399,6 +399,7 @@
watch: {
async tablename() {
if (this.$route.params.tablename) {
+ this.haveSearch = false;
this.progress = true;
this.title = '';
await this.getHeaders();
@@ -430,6 +431,7 @@
this.headers = [];
this.headers.push({'text': '', 'value': 'actions', sortable: false});
this.insertItem = {};
+ this.searchItem = {};
this.cols = resp.data.data;
resp.data.data.forEach((item) => {
let header = {'text': null, 'value': null};
@@ -470,6 +472,7 @@
delete this.insertItem.tablename;
this.getInventories();
this.close();
+ alert('已新增');
}
);
},
@@ -504,7 +507,11 @@
let yes = confirm('確定刪除');
if (yes) {
this.$axios.delete(`/deleteOne?tablename=${this.tablename}&&id=${item.id}`).then(() => {
- this.getInventories();
+ if (this.haveSearch === true) {
+ this.search();
+ } else {
+ this.getInventories();
+ }
alert('已刪除');
});
}
@@ -546,6 +553,7 @@
}
},
importFile() {
+ this.progress = true;
const formData = new FormData();
formData.append('tablename', this.tablename);
formData.append('file', this.file);
@@ -553,6 +561,7 @@
document.getElementById('file').value = null;
this.getInventories();
this.file = null;
+ this.progress = false;
this.dialogImport = false;
});
diff --git a/app/src/plugins/axios.js b/app/src/plugins/axios.js
index a36d4fa..e2698ab 100644
--- a/app/src/plugins/axios.js
+++ b/app/src/plugins/axios.js
@@ -2,7 +2,7 @@ import axios from 'axios';
//在開發環境中的測試 development
if(process.env.NODE_ENV === 'development') {
- axios.defaults.baseURL = '/api'
+ axios.defaults.baseURL = '/rms/api'
}
//在生產環境中的測試 production
if(process.env.NODE_ENV === 'production') {
diff --git a/app/vue.config.js b/app/vue.config.js
index b6c4cb9..577edc7 100644
--- a/app/vue.config.js
+++ b/app/vue.config.js
@@ -17,10 +17,10 @@ module.exports= {
devServer: {
proxy: {
'/api': {
- target: 'http://localhost:8081/api/',
+ target: 'http://localhost:8080/rms/api/',
changeOrigin: true,
pathRewrite: {
- '^/api': '',
+ '^/rms/api': '',
},
},
},
diff --git a/pom.xml b/pom.xml
index 7762ae0..5e67b77 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
com.moze
rms
- 0.0.1-SNAPSHOT
+ 1.0
war
rms
diff --git a/src/main/java/com/moze/rms/RequestInterceptor.java b/src/main/java/com/moze/rms/RequestInterceptor.java
new file mode 100644
index 0000000..a192f01
--- /dev/null
+++ b/src/main/java/com/moze/rms/RequestInterceptor.java
@@ -0,0 +1,33 @@
+package com.moze.rms;
+
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Component
+public class RequestInterceptor implements HandlerInterceptor {
+
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+
+ String uri = request.getRequestURI().substring(request.getContextPath().length());
+// //當呼叫後端api
+ if (uri.startsWith("/api/")) {
+ return true;
+ } else {
+ if (uri.equals("/index.html")) {
+ return true;
+ } else if (uri.startsWith("/js/") || uri.startsWith("/manifest") || uri.startsWith("/img") || uri.startsWith("/fonts") || uri.startsWith("/css")) {
+ return true;
+ } else {
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/index.html");
+ dispatcher.forward(request, response);
+ return false;
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/moze/rms/config/JdbiFactory.java b/src/main/java/com/moze/rms/config/JdbiFactory.java
index c44f60f..5fe3f2c 100644
--- a/src/main/java/com/moze/rms/config/JdbiFactory.java
+++ b/src/main/java/com/moze/rms/config/JdbiFactory.java
@@ -23,21 +23,21 @@ public class JdbiFactory {
public Jdbi getInstance() {
TransactionAwareDataSourceProxy proxy = new TransactionAwareDataSourceProxy(dataSource);
Jdbi jdbi = Jdbi.create(proxy);
- jdbi.setSqlLogger(new SqlLogger() {
- @Override
- public void logBeforeExecution(StatementContext ctx) {
- if (ctx.getStatement() != null)
- System.out.println(ctx.getStatement().toString());
- }
+// jdbi.setSqlLogger(new SqlLogger() {
// @Override
-// public void logAfterExecution(StatementContext context) {
-//// jdbi.setSqlLogger(SqlLogger.NOP_SQL_LOGGER);
+// public void logBeforeExecution(StatementContext ctx) {
+// if (ctx.getStatement() != null)
+//// System.out.println(ctx.getStatement().toString());
// }
-// @Override
-// public void logException(StatementContext context, SQLException ex) {
-//// jdbi.setSqlLogger(SqlLogger.NOP_SQL_LOGGER);
-// }
- });
+//// @Override
+//// public void logAfterExecution(StatementContext context) {
+////// jdbi.setSqlLogger(SqlLogger.NOP_SQL_LOGGER);
+//// }
+//// @Override
+//// public void logException(StatementContext context, SQLException ex) {
+////// jdbi.setSqlLogger(SqlLogger.NOP_SQL_LOGGER);
+//// }
+// });
return jdbi.installPlugin(new SqlObjectPlugin());
}
// @Bean
diff --git a/src/main/java/com/moze/rms/config/WebConfig.java b/src/main/java/com/moze/rms/config/WebConfig.java
new file mode 100644
index 0000000..ac5a9b5
--- /dev/null
+++ b/src/main/java/com/moze/rms/config/WebConfig.java
@@ -0,0 +1,34 @@
+package com.moze.rms.config;
+
+
+import com.moze.rms.RequestInterceptor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+@EnableWebMvc
+public class WebConfig implements WebMvcConfigurer {
+
+ @Autowired
+ private RequestInterceptor interceptor;
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(interceptor).addPathPatterns("/**");
+ }
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+
+ registry.addResourceHandler("/**").addResourceLocations(
+ "classpath:/resources/*",
+ "classpath:/resources/public/*",
+ "classpath:/public/",
+ "classpath:/public/",
+ "/**");
+ }
+
+}
diff --git a/src/main/java/com/moze/rms/controller/AccountController.java b/src/main/java/com/moze/rms/controller/AccountController.java
index 9d16853..3b86f4f 100644
--- a/src/main/java/com/moze/rms/controller/AccountController.java
+++ b/src/main/java/com/moze/rms/controller/AccountController.java
@@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
+import java.util.Optional;
@RestController
@RequestMapping("/api/account")
@@ -17,8 +18,8 @@ public class AccountController {
@PostMapping("/login")
public JsonResult login(@RequestBody Map data) {
- Map user = accountDAO.findUser(data.get("account"));
- if (user.get("pwd").equals(data.get("password"))) {
+ Optional