diff --git a/config/index.js b/config/index.js index dc6777d2..029c2cfb 100644 --- a/config/index.js +++ b/config/index.js @@ -6,19 +6,34 @@ const path = require('path') module.exports = { dev: { - // Paths assetsSubDirectory: '', assetsPublicPath: '/', proxyTable: { - '/api/m1/xm': { target: 'http://localhost:7067', changeOrigin: true, pathRewrite: { - '^/api/m1/xm': '/xm' - } - }, + '^/api/m1/xm': '/xm' + } + }, + + '/api/m1/sys': { + target: 'http://192.168.0.103:7015', + changeOrigin: true, + pathRewrite: { + '^/api/m1/sys': '/sys' + } + }, + + '/api/m1/pay': { + target: 'http://192.168.0.103:7125', + changeOrigin: true, + pathRewrite: { + '^/api/m1/pay': '/pay' + } + }, + /** '/api/m1/workflow': { target: 'http://localhost:7080', diff --git a/src/App.vue b/src/App.vue index a28656a6..623b032d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -10,3 +10,4 @@ } + diff --git a/src/api/mdp/pay/pay.js b/src/api/mdp/pay/pay.js new file mode 100644 index 00000000..6df3bf22 --- /dev/null +++ b/src/api/mdp/pay/pay.js @@ -0,0 +1,6 @@ +import axios from '@/utils/request' +import config from '@/common/config' +let base = config.getPayBasePath(); + +export const aliPay = params => { return axios.post(`${base}/alipay/uniOrder`, params) } +export const weixinPay = params => { return axios.post(`${base}/wxpay/uniOrder/native`, params) } diff --git a/src/api/mdp/sys/modules.js b/src/api/mdp/sys/modules.js index bb0a6ee8..862d5dbd 100644 --- a/src/api/mdp/sys/modules.js +++ b/src/api/mdp/sys/modules.js @@ -3,5 +3,6 @@ import config from '@/common/config' let base = config.getSysBasePath(); + export const getAllMenuModule = params => { return axios.get(`${base}/sys/sys/mdp/menu/menuModule/list`, {params: params }); }; export const getBuyMenuModule = params => { return axios.get(`${base}/sys/sys/mdp/menu/menuModuleBranch/list`, {params: params }); }; diff --git a/src/api/mdp/sys/order.js b/src/api/mdp/sys/order.js new file mode 100644 index 00000000..876a61ca --- /dev/null +++ b/src/api/mdp/sys/order.js @@ -0,0 +1,6 @@ +import axios from '@/utils/request' +import config from '@/common/config' +let base = config.getSysBasePath(); + +export const createOrder = params => { return axios.post(`${base}/mdp/mo/moOrder/create`, params) }; + diff --git a/src/assets/image/module/xm/xm_gongshi.png b/src/assets/image/module/xm/xm_gongshi.png new file mode 100644 index 00000000..5611aef9 Binary files /dev/null and b/src/assets/image/module/xm/xm_gongshi.png differ diff --git a/src/common/config.js b/src/common/config.js index f2b526ad..0fe1accc 100644 --- a/src/common/config.js +++ b/src/common/config.js @@ -87,5 +87,10 @@ export default { }, getImBasePath:function(){ return '/im/im' + }, + getPayBasePath:function() { + return '/pay/pay' } + + } diff --git a/src/components/ModulesMenu/allMenus.vue b/src/components/ModulesMenu/allMenus.vue index 9a11328a..6639609b 100644 --- a/src/components/ModulesMenu/allMenus.vue +++ b/src/components/ModulesMenu/allMenus.vue @@ -114,7 +114,7 @@ export default { }); this.selectMenus = tempArr; }, - + selectItem() {}, goBuy(item) { this.visible = false; diff --git a/src/components/ModulesMenu/index.scss b/src/components/ModulesMenu/index.scss index be0b8c4a..b94f0ad5 100644 --- a/src/components/ModulesMenu/index.scss +++ b/src/components/ModulesMenu/index.scss @@ -55,8 +55,9 @@ display: flex; height: 210px; flex-direction: column; - // width: calc((100% / 5) - 10px); - width: 170px; + width: calc((100% / 4) - 20px); + margin-right: 20px; + // width: 170px; border: 2px solid #EDF0F9; box-shadow: 0px 3px 4px 0px rgba(186, 184, 184, 0.1); border-radius: 8px; @@ -64,7 +65,6 @@ position: relative; cursor: pointer; margin-top: 10px; - margin-right: 10px; img { width: 94px; height: 94px; diff --git a/src/components/ModulesMenu/modulesOfIcon.js b/src/components/ModulesMenu/modulesOfIcon.js index 82844eb9..8a7c62ba 100644 --- a/src/components/ModulesMenu/modulesOfIcon.js +++ b/src/components/ModulesMenu/modulesOfIcon.js @@ -22,6 +22,7 @@ import xmProduct from '@/assets/image/module/xm/xm_product_management.png' import xmProject from '@/assets/image/module/xm/xm_project_management.png' import xmTest from '@/assets/image/module/xm/xm_test.png' import xmCrowd from '@/assets/image/module/xm/xm_crowd-sourcing.png' +import xmWorkLoad from '@/assets/image/module/xm/xm_gongshi.png' export const modulesOfIcon = [ @@ -119,7 +120,7 @@ export const modulesOfIcon = [ }, { id: 'xm-workload', - logoUrl: '', + logoUrl: xmWorkLoad, }, { id: 'xm-crowd', diff --git a/src/router/routes_my_work.js b/src/router/routes_my_work.js index a012cdd8..e3d222ed 100644 --- a/src/router/routes_my_work.js +++ b/src/router/routes_my_work.js @@ -32,6 +32,15 @@ export default { title: '设置', icon: 'component' } + }, + { + path: 'message', + component: _import('myWork/message/index'), + name: '消息中心', + meta: { + title: '消息中心', + icon: 'component' + } }, ] } diff --git a/src/router/routes_order.js b/src/router/routes_order.js index f3c593a1..7e0bb17f 100644 --- a/src/router/routes_order.js +++ b/src/router/routes_order.js @@ -21,6 +21,24 @@ export default { title: '我的', icon: 'component' } + }, + { + path: 'create', + component: _import('order/createOrder'), + name: '创建订单', + meta: { + title: '创建订单', + icon: 'component' + } + }, + { + path: 'paySuccess', + component: _import('order/paySuccess'), + name: '支付成功', + meta: { + title: '支付成功', + icon: 'component' + } } ] }, diff --git a/src/views/login/components/login.vue b/src/views/login/components/login.vue index 828bae3f..d60ce41d 100644 --- a/src/views/login/components/login.vue +++ b/src/views/login/components/login.vue @@ -155,7 +155,7 @@ export default { loginForm: { displayUserid: '', password: '', - authType:'sms',//password/sms/password_display_userid 分别为账户密码、短信验证码快捷登录 + authType:'password_display_userid',//password/sms/password_display_userid 分别为账户密码、短信验证码快捷登录 phoneno:'',//手机号码 smsCode:'',//短信验证码 }, diff --git a/src/views/myWork/message/index.scss b/src/views/myWork/message/index.scss new file mode 100644 index 00000000..ca8d1719 --- /dev/null +++ b/src/views/myWork/message/index.scss @@ -0,0 +1,73 @@ +.message_card { + font-size: 24px; + font-weight: bold; + color: #303030; + line-height: 54px; + .message_type { + cursor: pointer; + margin-right: 58px; + position: relative; + } + + .message_type_active { + color: #4779F6; + } + + .message_type_active::after { + content: ''; + position: absolute; + width: 100px; // 边框的宽度 + height: 2px; + border-radius: 3px; + left: 50%; //距离 view 标签的距离 + bottom: -10px; + background-color: #4779F6; // 颜色 + transform: translateX(-50%); + } +} + +.message_content { + margin-top: 20px; + background: #fff; + height: calc(100vh - 172px); + overflow: auto; + cursor: pointer; + padding: 20px; + .message_content_box { + .title { + font-size: 18px; + font-weight: bold; + color: #303030; + line-height: 54px; + position: relative; + } + + .title::after { + content: ""; + position: absolute; + width: 12px; + height: 12px; + border-radius: 50%; + background-color: #E52929; + top: 8px; + } + + .date { + color: #606060; + } + + .text { + display: inline-block; + margin-top: 20px; + font-size: 14px; + font-weight: 400; + color: #606060; + line-height: 14px; + } + .line { + margin: 30px 0 15px 0; + border-bottom: 1px solid #D7D7D7; + opacity: 0.43; + } + } +} \ No newline at end of file diff --git a/src/views/myWork/message/index.vue b/src/views/myWork/message/index.vue new file mode 100644 index 00000000..81604af7 --- /dev/null +++ b/src/views/myWork/message/index.vue @@ -0,0 +1,78 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/components/orderSkeleton.vue b/src/views/order/components/orderSkeleton.vue new file mode 100644 index 00000000..dc55716f --- /dev/null +++ b/src/views/order/components/orderSkeleton.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/createOrder.vue b/src/views/order/createOrder.vue new file mode 100644 index 00000000..86e5035d --- /dev/null +++ b/src/views/order/createOrder.vue @@ -0,0 +1,223 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/enterprise.vue b/src/views/order/enterprise.vue new file mode 100644 index 00000000..745dd0ed --- /dev/null +++ b/src/views/order/enterprise.vue @@ -0,0 +1,399 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/flagShip.vue b/src/views/order/flagShip.vue new file mode 100644 index 00000000..9ed5628d --- /dev/null +++ b/src/views/order/flagShip.vue @@ -0,0 +1,143 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/index.scss b/src/views/order/index.scss index cffa4bf3..ebfb66c9 100644 --- a/src/views/order/index.scss +++ b/src/views/order/index.scss @@ -1,7 +1,7 @@ .full_continer { width: 100%; height: 100%; - overflow: hidden; + overflow: hidden; position: relative; .banner { margin-top: 35px; @@ -16,7 +16,7 @@ } h2 { - font-size: 24px; + font-size: 28px; font-family: PingFang SC; font-weight: bold; color: #303030; @@ -34,6 +34,7 @@ h2 { p { margin-top: 34px; color: #7D7D7D; + font-size: 20px; } } @@ -50,233 +51,287 @@ h2 { margin-top: 24px; display: flex; flex-direction: row; - width: 172px; - height: 86px; + width: 220px; + height: 110px; margin-right: 20px; border-radius: 5px; background-color: #F4F5F8; cursor: pointer; img { - width: 80px; - height: 80px; + width: 110px; + height: 110px; } .desc { - margin-left: 10px; + margin-left: 8px; display: flex; flex-direction: column; justify-content: center; align-items: center; + font-size: 16px; p:nth-child(2) { margin-top: 8px; - font-size: 12px; + font-size: 14px; } } } .select { + font-size: 30px; position: absolute; right: 5px; - top: 10px; + top: 2px; color: #409EFF; } } } - .sys_type { - margin-top: 52px; - .sys_desc { - display: flex; - height: 46px; + .submit { + margin-top: 35px; + } + } +} + + + + +.enterprise { + .sys_type { + margin-top: 52px; + .sys_desc { + display: flex; + height: 46px; + width: 100%; + h2 { + margin-right: 44px; line-height: 46px; - h2 { - margin-right: 44px; - } - span { + } + .selectItem { + display: flex; + flex-direction: row; + .item { + display: flex; margin-right: 60px; + height: 46px; + align-items: center; cursor: pointer; font-size: 18px; - font-weight: bold; - color: #606060; + } + .active { + font-size: 22px; + color: rgb(116, 155, 242); } } - - .sys_modules { - margin-top: 30px; + } + .sys_modules { + margin-top: 30px; + display: flex; + flex-wrap: wrap; + .active { + border: 2px solid rgb(116, 155, 242) !important; + } + .module { display: flex; - flex-direction: row; - .module { - width: 161px; - height: 189px; + flex-direction: column; + background: #FFFFFF; + margin-right: 30px; + .head { + width: 180px; + height: 200px; + border: 1px solid #E3E4E6; border-radius: 8px; - margin-right: 20px; - border: 2px solid #E3E4E6; + margin-bottom: 20px; + position: relative; cursor: pointer; .module_top { - height: 120px; display: flex; + height: 170px; + flex-direction: column; justify-content: center; align-items: center; - flex-direction: column; img { - width: 73px; - height: 73px; + width: 90px; + height: 90px; margin-top: 20px; } span { - margin-top: 20px; - font-size: 14px; color: #606060; + margin-top: 20px; + font-size: 18px; } } .module_bottom { height: 30px; - text-align: center; - line-height: 30px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + .selected { + color: #fff; + } + } + .module_bottom_active { + background-color: rgb(116, 155, 242); } + + } - } - } - .buy_count { - margin-top: 40px; - h2 { - span { - font-size: 12px; - margin-left: 5px; - color: #C7C7C7; + .footer { + margin-bottom: 20px; } } - .buy_count_items { + + + } + } + .buy_count { + margin-top: 32px; + h2 { + span { + font-size: 18px; + margin-left: 5px; + color: #C7C7C7; + } + } + .buy_count_items { + display: flex; + flex-direction: row; + margin-top: 30px; + .oItem { + margin-right: 30px; display: flex; - flex-direction: row; - margin-top: 30px; - .oItem { - margin-right: 12px; - display: flex; - flex-direction: column; - width: 204px; - height: 110px; - border: 3px solid rgb(245, 246, 246); - justify-content: center; - border-radius: 6px; - .item_header { - height: 40px; - width: 100%; - text-align: center; - line-height: 30px; - color: #606060; - border-bottom: 2px solid rgb(245, 246, 246); - } - .item_bottom { - height: 50px; - width: 100%; - text-align: center; - line-height: 60px; - } + flex-direction: column; + width: 200px; + height: 120px; + border: 2px solid #E3E4E6; + justify-content: center; + border-radius: 6px; + .item_header { + height: 40px; + width: 100%; + text-align: center; + line-height: 30px; + color: #606060; + border-bottom: 2px solid #E3E4E6; + } + .item_bottom { + width: 100%; + text-align: center; + line-height: 60px; } - } - - } - - .buy_date { - margin-top: 50px; - h2 { - margin-bottom: 30px; } - .buy_date_items { + } + } + + .buy_date { + margin-top: 50px; + h2 { + margin-bottom: 30px; + } + .buy_date_items { + display: flex; + flex-direction: row; + .oItem { display: flex; - flex-direction: row; - .oItem { + flex-direction: column; + width: 200px; + height: 144px; + border-radius: 8px; + margin-right: 30px; + border: 2px solid #E3E4E6; + cursor: pointer; + .header { + position: relative; + height: 44px; + width: 100%; + text-align: center; + line-height: 44px; + color: #424141; + border-bottom: 2px solid #E3E4E6; + .select { + font-size: 30px; + position: absolute; + right: 10px; + top: 5px; + color: #409EFF; + } + } + .bottom { + height: 100px; + width: 100%; + position: relative; display: flex; + justify-content: center; flex-direction: column; - width: 209px; - height: 157px; - border-radius: 8px; - margin-right: 30px; - border: 2px solid #E3E4E6; - cursor: pointer; - .header { - position: relative; - height: 60px; - width: 100%; - text-align: center; - line-height: 60px; - color: #424141; - border-bottom: 2px solid #E3E4E6; - .select { - position: absolute; - right: 10px; - top: 10px; - } + align-items: center; + img { + width: 113px; + height: 40px; } - .bottom { - height: 80px; - width: 100%; - text-align: center; - position: relative; - img { - width: 113px; - height: 40px; - } - p { - margin-top: 12px; - } - .normal { - margin-top: 57px; - } + p { + margin-top: 12px; + } + .normal { + margin-top: 57px; } - } + } } - - .pay_way { - margin-top: 50px; - h2 { - margin-bottom: 20px; - } - .pay_way_items { + } + + .pay_way { + margin-top: 50px; + h2 { + margin-bottom: 20px; + } + .pay_way_items { + display: flex; + .oItem { display: flex; - .oItem { - display: flex; - flex-direction: row; - align-items: center; - width: 209px; - height: 70px; - margin-right: 20px; - border: 2px solid #E3E4E6; - border-radius: 8px; - margin-top: 5px; - img { - width: 45px; - height: 37px; - margin: 13px 18px 13px 40px; - } + flex-direction: row; + align-items: center; + width: 200px; + height: 80px; + margin-right: 30px; + border: 2px solid #E3E4E6; + border-radius: 8px; + margin-top: 5px; + position: relative; + cursor: pointer; + img { + width: 50px; + height: 50px; + margin: 13px 18px 13px 40px; + } + .select { + font-size: 30px; + position: absolute; + right: 5px; + top: 5px; + color: #409EFF; } - } - .phone { - margin-top: 10px !important; - width: 440px; } } - .pay_allAmount { - margin-top: 30px; - h2 { - margin-bottom: 20px; - } - .allAmount { - font-size: 24px; - font-weight: bold; - color: #FA5A55; - margin-bottom: 20px; - } + .phone { + margin-top: 10px !important; + width: 440px; } - - .submit { - margin-top: 35px; + } + + .pay_allAmount { + margin-top: 30px; + h2 { + margin-bottom: 20px; + } + .allAmount { + font-size: 22px; + font-weight: bold; + color: #FA5A55; + margin-bottom: 20px; + b { + font-size: 38px; + } } - - - } -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/views/order/index.vue b/src/views/order/index.vue index 23a94a92..f3f2c807 100644 --- a/src/views/order/index.vue +++ b/src/views/order/index.vue @@ -1,11 +1,14 @@ diff --git a/src/views/order/list.vue b/src/views/order/list.vue new file mode 100644 index 00000000..6b0a2ee4 --- /dev/null +++ b/src/views/order/list.vue @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/paySuccess.vue b/src/views/order/paySuccess.vue new file mode 100644 index 00000000..3a75555c --- /dev/null +++ b/src/views/order/paySuccess.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file