From a7de1cd8418f2a8802418fa2aa54d8f509fb31d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=90=8C=E6=B5=B7?= <963808678@qq.com> Date: Mon, 18 Sep 2023 15:32:30 +0800 Subject: [PATCH] first --- package.json | 9 +- src/App.vue | 31 +- src/Views/About.vue | 20 + src/Views/Booking/AddBooking.vue | 741 +++++++++++++++++ src/Views/Booking/OpenBT.vue | 131 +++ src/Views/Booking/index.vue | 238 ++++++ src/Views/Booking/initData.js | 19 + src/Views/BookingOrder/index.vue | 1075 +++++++++++++++++++++++++ src/Views/BookingOrder/initData.js | 19 + src/Views/BookingTemplate/index.vue | 281 +++++++ src/Views/BookingTemplate/initData.js | 19 + src/Views/Home.vue | 9 + src/Views/Login/index.vue | 159 ++++ src/Views/WebC/index.vue | 160 ++++ src/api/Index.js | 261 ++++++ src/assets/login.png | Bin 0 -> 28776 bytes src/assets/logo.png | Bin 6849 -> 10702 bytes src/components/SearchBox.vue | 183 +++++ src/components/TableBox.vue | 174 ++++ src/main.js | 39 +- src/router/index.js | 27 + src/store/index.js | 93 +++ src/utils/axios.js | 56 ++ vue.config.js | 27 +- 24 files changed, 3750 insertions(+), 21 deletions(-) create mode 100644 src/Views/About.vue create mode 100644 src/Views/Booking/AddBooking.vue create mode 100644 src/Views/Booking/OpenBT.vue create mode 100644 src/Views/Booking/index.vue create mode 100644 src/Views/Booking/initData.js create mode 100644 src/Views/BookingOrder/index.vue create mode 100644 src/Views/BookingOrder/initData.js create mode 100644 src/Views/BookingTemplate/index.vue create mode 100644 src/Views/BookingTemplate/initData.js create mode 100644 src/Views/Home.vue create mode 100644 src/Views/Login/index.vue create mode 100644 src/Views/WebC/index.vue create mode 100644 src/api/Index.js create mode 100644 src/assets/login.png create mode 100644 src/components/SearchBox.vue create mode 100644 src/components/TableBox.vue create mode 100644 src/router/index.js create mode 100644 src/store/index.js create mode 100644 src/utils/axios.js diff --git a/package.json b/package.json index 72388a0..b4040a7 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,15 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "axios": "^1.4.0", "core-js": "^3.8.3", - "vue": "^3.2.13" + "element-plus": "^2.3.9", + "node-sass": "^9.0.0", + "sass": "^1.66.1", + "sass-loader": "^13.3.2", + "vue": "^3.2.13", + "vue-router": "^4.2.4", + "vuex": "^4.1.0" }, "devDependencies": { "@babel/core": "^7.12.16", diff --git a/src/App.vue b/src/App.vue index 591a031..7bad6bb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,26 +1,31 @@ diff --git a/src/Views/About.vue b/src/Views/About.vue new file mode 100644 index 0000000..fcd257e --- /dev/null +++ b/src/Views/About.vue @@ -0,0 +1,20 @@ + + diff --git a/src/Views/Booking/AddBooking.vue b/src/Views/Booking/AddBooking.vue new file mode 100644 index 0000000..7beadb9 --- /dev/null +++ b/src/Views/Booking/AddBooking.vue @@ -0,0 +1,741 @@ + + + + diff --git a/src/Views/Booking/OpenBT.vue b/src/Views/Booking/OpenBT.vue new file mode 100644 index 0000000..cb64caa --- /dev/null +++ b/src/Views/Booking/OpenBT.vue @@ -0,0 +1,131 @@ + + diff --git a/src/Views/Booking/index.vue b/src/Views/Booking/index.vue new file mode 100644 index 0000000..595c212 --- /dev/null +++ b/src/Views/Booking/index.vue @@ -0,0 +1,238 @@ + + + diff --git a/src/Views/Booking/initData.js b/src/Views/Booking/initData.js new file mode 100644 index 0000000..74f93c2 --- /dev/null +++ b/src/Views/Booking/initData.js @@ -0,0 +1,19 @@ +let cargoIdData = [ + { + name: "S 普通货", + code: "S", + }, + { + name: "R 冻柜", + code: "R", + }, + { + name: "D 危险品", + code: "D", + }, + { + name: "O 超限箱", + code: "O", + }, +]; +export { cargoIdData }; diff --git a/src/Views/BookingOrder/index.vue b/src/Views/BookingOrder/index.vue new file mode 100644 index 0000000..0b1bd07 --- /dev/null +++ b/src/Views/BookingOrder/index.vue @@ -0,0 +1,1075 @@ + + + diff --git a/src/Views/BookingOrder/initData.js b/src/Views/BookingOrder/initData.js new file mode 100644 index 0000000..74f93c2 --- /dev/null +++ b/src/Views/BookingOrder/initData.js @@ -0,0 +1,19 @@ +let cargoIdData = [ + { + name: "S 普通货", + code: "S", + }, + { + name: "R 冻柜", + code: "R", + }, + { + name: "D 危险品", + code: "D", + }, + { + name: "O 超限箱", + code: "O", + }, +]; +export { cargoIdData }; diff --git a/src/Views/BookingTemplate/index.vue b/src/Views/BookingTemplate/index.vue new file mode 100644 index 0000000..0ccd39d --- /dev/null +++ b/src/Views/BookingTemplate/index.vue @@ -0,0 +1,281 @@ + + + diff --git a/src/Views/BookingTemplate/initData.js b/src/Views/BookingTemplate/initData.js new file mode 100644 index 0000000..74f93c2 --- /dev/null +++ b/src/Views/BookingTemplate/initData.js @@ -0,0 +1,19 @@ +let cargoIdData = [ + { + name: "S 普通货", + code: "S", + }, + { + name: "R 冻柜", + code: "R", + }, + { + name: "D 危险品", + code: "D", + }, + { + name: "O 超限箱", + code: "O", + }, +]; +export { cargoIdData }; diff --git a/src/Views/Home.vue b/src/Views/Home.vue new file mode 100644 index 0000000..61e4dab --- /dev/null +++ b/src/Views/Home.vue @@ -0,0 +1,9 @@ + + diff --git a/src/Views/Login/index.vue b/src/Views/Login/index.vue new file mode 100644 index 0000000..d67efc0 --- /dev/null +++ b/src/Views/Login/index.vue @@ -0,0 +1,159 @@ + + + diff --git a/src/Views/WebC/index.vue b/src/Views/WebC/index.vue new file mode 100644 index 0000000..82b18bb --- /dev/null +++ b/src/Views/WebC/index.vue @@ -0,0 +1,160 @@ + + + + diff --git a/src/api/Index.js b/src/api/Index.js new file mode 100644 index 0000000..c21f4f1 --- /dev/null +++ b/src/api/Index.js @@ -0,0 +1,261 @@ +import request from "@/utils/axios"; +// 用户登录 +const UserLogin = (data) => { + return request({ + data: { + url: "/api/bookingAip/user/login", + method: "post", + data, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 用户信息 +const UserGetLoginUser = (data) => { + return request({ + data: { + url: "/api/bookingAip/user/getLoginUser", + method: "get", + data, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 获取客户订单列表 +const bookingCustomList = (params) => { + return request({ + data: { + url: "/api/bookingAip/bookingCustom/list", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 保存客户订单 +const bookingCustomSave = (data) => { + return request({ + data: { + url: "/api/bookingAip/bookingCustom/save", + method: "post", + data, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 查询客户订单详情 +const bookingCustomInfo = (params) => { + return request({ + data: { + url: "/api/bookingAip/bookingCustom/info", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 上传文件/图片 +const Uploader = (data) => { + return request({ + data: { + url: "/api/bookingaip/file/Uploader/annexpic", + method: "post", + data, + headers: { + Authorization: localStorage.getItem("token"), + "Content-Type": "multipart/form-data", + }, + }, + }); +}; +// 删除客户订单 +const bookingCustomDelete = (data) => { + return request({ + data: { + url: "/api/bookingAip/bookingCustom/delete", + method: "post", + data, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 获取收发通模板列表 +const bookingTemplateList = (params) => { + return request({ + data: { + url: "/api/bookingAip/bookingTemplate/list", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 保存 +const bookingTemplateSave = (data) => { + return request({ + data: { + url: "/api/bookingAip/bookingTemplate/save", + method: "post", + data, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 删除 +const bookingTemplateDelete = (data) => { + return request({ + data: { + url: "/api/bookingAip/bookingTemplate/delete", + method: "post", + data, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; + +// 查询订单详情 +const bookingOrderInfo = (params) => { + return request({ + data: { + url: "/api/bookingAip/bookingOrder/info", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 获取订舱台账列表 +const bookingOrderList = (params) => { + return request({ + data: { + url: "/api/bookingAip/bookingOrder/list", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; + +// 船公司信息 +const GetCarrierlist = (params) => { + return request({ + data: { + url: "/api/commondb/carrierlist", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 箱型信息 +const GetCtnlist = (params) => { + return request({ + data: { + url: "/api/commondb/ctn", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 起始港信息 +const Getportloadlist = (params) => { + return request({ + data: { + url: "/api/commondb/portloadlist", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 目的港信息 +const Getportlist = (params) => { + return request({ + data: { + url: "/api/commondb/portlist", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 运输条款信息 +const Getservicelist = (params) => { + return request({ + data: { + url: "/api/commondb/service", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 付费方式信息 +const Getfrtlist = (params) => { + return request({ + data: { + url: "/api/commondb/frt", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 船名列表信息 +const Getvessellist = (params) => { + return request({ + data: { + url: "/api/commondb/vessellist", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 获取包装信息 +const Getpackagelist = (params) => { + return request({ + data: { + url: "/api/commondb/package", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; +// 获取客户订单服务列表 +const cobServiceItemTenantList = (params) => { + return request({ + data: { + url: "/api/bookingAip/cobServiceItemTenant/list", + method: "get", + params, + // headers: { Authorization: localStorage.getItem("token") }, + }, + }); +}; + +export { + UserLogin, + UserGetLoginUser, + bookingCustomList, + bookingCustomSave, + bookingCustomInfo, + Uploader, + bookingCustomDelete, + bookingTemplateList, + bookingTemplateSave, + bookingTemplateDelete, + bookingOrderInfo, + bookingOrderList, + GetCarrierlist, + GetCtnlist, + Getportloadlist, + Getportlist, + Getservicelist, + Getfrtlist, + Getvessellist, + Getpackagelist, + cobServiceItemTenantList, +}; diff --git a/src/assets/login.png b/src/assets/login.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee0e8a0eeac8faf4e9f57a2a4d0243390a03ab8 GIT binary patch literal 28776 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo.png b/src/assets/logo.png index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..d689ddfc9cc6e0c5dc574fa7dc62f731b1cfa06a 100644 GIT binary patch literal 10702 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 +
    + + +
    +

    + + + 订单查询 +

    + +
    +
    + 重置 + 查询 +
    +
    + + + + {{ item.title }} + + + + + + + + +

    -

    + + + +
    +
    +
    +
    +
    +
    + + + diff --git a/src/components/TableBox.vue b/src/components/TableBox.vue new file mode 100644 index 0000000..369759e --- /dev/null +++ b/src/components/TableBox.vue @@ -0,0 +1,174 @@ + + + diff --git a/src/main.js b/src/main.js index 01433bc..79c08ed 100644 --- a/src/main.js +++ b/src/main.js @@ -1,4 +1,35 @@ -import { createApp } from 'vue' -import App from './App.vue' - -createApp(App).mount('#app') +import { createApp } from "vue"; +import App from "./App.vue"; +import router from "./router"; +import store from "./store"; +import ElementUI, { ElMessage } from "element-plus"; +import * as ElementPlusIconsVue from "@element-plus/icons-vue"; +import zhCn from "element-plus/dist/locale/zh-cn.mjs"; +import "element-plus/dist/index.css"; +import axios from "axios"; +router.beforeEach((to, from, next) => { + if (!store.state.User.token) { + if (to.path == "/login") { + next(); + } else { + ElMessage({ + message: "登录信息过期,请重新登录!", + type: "warning", + }); + next("/login"); + } + } else { + next(); + } +}); +const app = createApp(App); +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component); +} +app.config.globalProperties.$axios = axios; +app.use(ElementUI, { + locale: zhCn, +}); +app.use(store); +app.use(router); +app.mount("#app"); diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..af67e33 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,27 @@ +import { createRouter, createWebHistory } from "vue-router"; +import WebC from "../Views/WebC"; +import Login from "../Views/Login"; +import Booking from "../Views/Booking"; +import AddBooking from "../Views/Booking/AddBooking.vue"; +import BookingTemplate from "../Views/BookingTemplate"; +import BookingOrder from "../Views/BookingOrder"; +import About from "../Views/About.vue"; + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: "/", + component: WebC, + children: [ + { path: "/about", component: About }, + { path: "/booking", component: Booking }, + { path: "/AddBooking", component: AddBooking }, + { path: "/BookingTemplate", component: BookingTemplate }, + { path: "/BookingOrder", component: BookingOrder }, + ], + }, + { path: "/login", component: Login }, + ], +}); +export default router; diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..8e0b0d5 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,93 @@ +import { createStore } from "vuex"; +import { + GetCarrierlist, + GetCtnlist, + Getportloadlist, + Getportlist, + Getservicelist, + Getfrtlist, + Getvessellist, + Getpackagelist, + cobServiceItemTenantList, +} from "@/api/Index"; +export default createStore({ + state: { + User: { + token: "", + userInfo: {}, + }, + Data: {}, + }, + mutations: { + XGetUser(state, payload) { + state.User = { ...state.User, ...payload }; + }, + XGetData(state, payload) { + state.Data = { ...state.Data, ...payload }; + }, + }, + actions: { + GetInitData(store) { + console.log("GetInitData"); + GetCarrierlist().then((res) => { + let RData = []; + res.data.forEach((item) => { + item.name = item.cnName; + RData.push(item); + }); + store.commit("XGetData", { Carrierlist: RData }); + }); + GetCtnlist().then((res) => { + let RData = []; + res.data.forEach((item) => { + item.name = item.code; + RData.push(item); + }); + store.commit("XGetData", { Ctnlist: RData }); + }); + Getportloadlist().then((res) => { + let RData = []; + res.data.forEach((item) => { + item.name = item.cnName; + RData.push(item); + }); + store.commit("XGetData", { portloadlist: RData }); + }); + Getportlist().then((res) => { + let RData = []; + res.data.forEach((item) => { + item.name = item.cnName; + RData.push(item); + }); + store.commit("XGetData", { portlist: RData }); + }); + Getservicelist().then((res) => { + let RData = []; + res.data.forEach((item) => { + item.name = item.cnName; + RData.push(item); + }); + store.commit("XGetData", { servicelist: RData }); + }); + Getfrtlist().then((res) => { + let RData = []; + res.data.forEach((item) => { + item.name = item.cnName; + RData.push(item); + }); + store.commit("XGetData", { frtlist: RData }); + }); + Getvessellist().then((res) => { + store.commit("XGetData", { vessellist: res.data }); + }); + Getpackagelist().then((res) => { + store.commit("XGetData", { packagelist: res.data }); + }); + cobServiceItemTenantList().then((res) => { + console.log("cobServiceItemTenantList", res); + store.commit("XGetData", { cobServiceItemTenantList: res.data }); + }); + }, + }, + modules: {}, +}); diff --git a/src/utils/axios.js b/src/utils/axios.js new file mode 100644 index 0000000..b081886 --- /dev/null +++ b/src/utils/axios.js @@ -0,0 +1,56 @@ +import axios from "axios"; +import { ElMessage } from "element-plus"; +import router from "../router"; +import store from "@/store"; +export default ({ data }) => { + let baseURL = ""; + // let baseURL = ""; + // if (data.url == "/user/login") { + // // baseURL = "http://60.209.125.238:35101"; //测试 + // baseURL = "http://djy-identity.myshipping.net"; //正式 + // } else { + // baseURL = process.env.VUE_APP_AXIOS_BASEURL; + // } + const server = axios.create({ + baseURL, + timeout: 60000, + headers: { Authorization: store.state.User.token }, + }); + server.interceptors.request.use( + function (config) { + return config; + }, + function (error) { + // Do something with request error + + return Promise.reject(error); + } + ); + server.interceptors.response.use( + (req) => { + if (req.data.code !== 200) { + if (req.data.code == 602) { + store.commit("XGetUser", { + token: "", + userInfo: {}, + }); + ElMessage({ + message: "登录信息过期,请重新登录!", + type: "warning", + }); + router.push("/login"); + } else { + ElMessage({ + message: req.data.message, + type: "warning", + }); + } + } + return req.data; + }, + (err) => { + return err; + } + ); + return server(data); +}; diff --git a/vue.config.js b/vue.config.js index 910e297..d24df82 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,4 +1,25 @@ -const { defineConfig } = require('@vue/cli-service') +const { defineConfig } = require("@vue/cli-service"); module.exports = defineConfig({ - transpileDependencies: true -}) + transpileDependencies: true, + publicPath: "/", //这个必须,引入静态资源需要从根路径引入,否则会找不到静态资源 + devServer: { + // history模式下的url会请求到服务器端,但是服务器端并没有这一个资源文件,就会返回404,所以需要配置这一项 + historyApiFallback: { + index: "/index.html", //与output的publicPath + }, + host: "localhost", + port: 8080, // 端口号 + https: false, // https:{type:Boolean} + open: false, // 配置后自动启动浏览器 + proxy: { + // 跨域处理 + "/api": { + target: "http://47.104.222.4:8210/api", //目标接口域名 + changeOrigin: true, //是否跨域 + pathRewrite: { + "^/api": "", //重写接口 + }, + }, + }, + }, +});