Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-shop
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-shop
Commits
fba7a029
提交
fba7a029
authored
6月 01, 2021
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
ca9a1354
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
179 行增加
和
23 行删除
+179
-23
.config.dev.js
.config.dev.js
+10
-10
base.js
src/api/base.js
+5
-0
order.js
src/api/order.js
+14
-0
userAutocomplete.vue
src/components/base/userAutocomplete.vue
+79
-0
sidebar.vue
src/components/layout/sidebar.vue
+1
-1
add.vue
src/pages/order/add.vue
+70
-12
没有找到文件。
.config.dev.js
浏览文件 @
fba7a029
module
.
exports
=
{
domain
:
'dev.ezijing.com'
,
url
:
'https://
learn-api
.ezijing.com/api'
,
url
:
'https://
shop-admin2
.ezijing.com/api'
,
webpack
:
{
externals
:
{
CKEDITOR
:
'window.CKEDITOR'
,
...
...
@@ -9,16 +9,16 @@ module.exports = {
regeneratorRuntime
:
'window.regeneratorRuntime'
,
wx
:
'window.wx'
,
WeixinJSBridge
:
'window.WeixinJSBridge'
},
devServer
:
{
proxy
:
{
'/api/shop'
:
{
target
:
'http://172.16.3.11:8089'
,
changeOrigin
:
true
,
pathRewrite
:
{
'^/api/shop'
:
''
}
}
}
}
// devServer: {
// proxy: {
// '/api/shop': {
// target: 'http://172.16.3.11:8089',
// changeOrigin: true,
// pathRewrite: { '^/api/shop': '' }
// }
// }
// }
},
ProvidePlugin
:
{},
others
:
{
...
...
src/api/base.js
浏览文件 @
fba7a029
...
...
@@ -27,3 +27,8 @@ export function uploadFile(data) {
headers
:
{
'Content-Type'
:
'multipart/form-data'
}
})
}
// 搜索用户
export
function
userSearch
(
params
)
{
return
httpRequest
.
get
(
'/api/usercenter/server/user/search-user'
,
{
params
})
}
src/api/order.js
浏览文件 @
fba7a029
...
...
@@ -13,9 +13,23 @@ export function getOrderSearchList(data) {
export
function
getOrderList
(
data
)
{
return
httpRequest
.
post
(
'/api/shop/order/search'
,
data
)
}
/**
* 创建订单
*/
export
function
addOrder
(
data
)
{
return
httpRequest
.
post
(
'/api/shop/order/add'
,
data
)
}
/**
* 获取商品规格
*/
export
function
getSkuList
(
data
)
{
return
httpRequest
.
post
(
'/api/shop/commodity/spu/spec/value/search'
,
data
)
}
/**
* 获取商品规格
*/
export
function
orderSearch
(
data
)
{
return
httpRequest
.
post
(
'/api/shop/pay/order/search'
,
data
)
}
src/components/base/userAutocomplete.vue
0 → 100644
浏览文件 @
fba7a029
<
template
>
<div
class=
"user-autocomplete"
>
<el-select
v-model=
"searchType"
style=
"width: 120px"
>
<el-option
label=
"用户名"
value=
"username"
></el-option>
<el-option
label=
"手机号"
value=
"mobile"
></el-option>
<el-option
label=
"邮箱"
value=
"email"
></el-option>
<el-option
label=
"昵称"
value=
"nickname"
></el-option>
</el-select>
<el-select
placeholder=
"搜索"
filterable
remote
style=
"width: 100%"
:remote-method=
"fetchUserList"
:loading=
"loading"
@
change=
"handleChange"
v-bind=
"$attrs"
v-on=
"$listeners"
>
<el-option
:label=
"user.realname || user.nickname"
:value=
"user.id"
v-for=
"user in userList"
:key=
"user.id"
>
<div
style=
"display: flex"
>
<span>
{{
user
.
realname
||
user
.
nickname
}}
<template
v-if=
"user.mobile"
>
(手机号:
{{
user
.
mobile
}}
)
</
template
>
</span>
<span
class=
"t1"
v-if=
"user.email"
>
邮箱:{{ user.email }}
</span>
<span
class=
"t1"
v-else
>
ID:{{ user.id }}
</span>
</div>
</el-option>
</el-select>
</div>
</template>
<
script
>
import
{
userSearch
}
from
'@/api/base'
export
default
{
data
()
{
return
{
searchType
:
'username'
,
searchValue
:
''
,
userList
:
[],
loading
:
false
}
},
methods
:
{
fetchUserList
(
searchValue
)
{
const
params
=
{}
params
[
this
.
searchType
]
=
searchValue
this
.
loading
=
true
userSearch
(
params
)
.
then
(
response
=>
{
this
.
userList
=
response
.
items
})
.
finally
(()
=>
{
this
.
loading
=
false
})
},
handleChange
(
userId
)
{
const
user
=
this
.
userList
.
find
(
user
=>
user
.
id
===
userId
)
this
.
$emit
(
'change'
,
userId
,
user
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
.user-autocomplete
{
display
:
flex
;
.el-select
+
.el-select
{
margin-left
:
10px
;
}
.t1
{
color
:
#8492a6
;
font-size
:
13px
;
margin
:
0
20px
0
10px
;
}
}
</
style
>
src/components/layout/sidebar.vue
浏览文件 @
fba7a029
...
...
@@ -50,7 +50,7 @@ export default {
children
:
[
{
name
:
'店铺信息'
,
path
:
'/setting/info'
},
{
name
:
'联系我们'
,
path
:
'/setting/contact'
},
{
name
:
'通用设置'
,
path
:
'/setting/general'
},
//
{ name: '通用设置', path: '/setting/general' },
{
name
:
'商品设置'
,
path
:
'/setting/goods'
}
]
}
...
...
src/pages/order/add.vue
浏览文件 @
fba7a029
...
...
@@ -2,19 +2,35 @@
<div>
<el-form
:model=
"ruleForm"
:rules=
"rules"
label-position=
"top"
ref=
"ruleForm"
@
submit
.
native
.
prevent
>
<app-card
title=
"用户信息"
>
<el-form-item
label=
"关联用户"
prop=
"customer_id"
>
<el-input
v-model=
"ruleForm.customer_id"
/>
</el-form-item>
<user-autocomplete
v-model=
"ruleForm.customer_id"
></user-autocomplete>
</app-card>
<app-card
title=
"商品信息"
>
<el-form-item
label=
"关联商品"
prop=
"customer_id"
>
<el-input
v-model=
"ruleForm.customer_id"
/>
<el-form-item
label=
"关联商品"
prop=
"spu_id"
>
<el-input
v-model=
"ruleForm.spu_id"
/>
</el-form-item>
<el-form-item
label=
"商品规格"
prop=
"sku_id"
>
<el-radio-group
v-model=
"ruleForm.sku_id"
>
<el-radio
border
:label=
"item.sku_id"
:key=
"item.sku_id"
v-for=
"item in skuList"
>
<span
class=
"sku-name"
>
{{
item
.
spec_values
}}
</span><span
class=
"sku-price"
>
¥
{{
item
.
price
}}
</span>
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"商品
规格"
prop=
"customer_id
"
>
<el-input
v-model=
"ruleForm.customer_id"
/
>
<el-form-item
label=
"商品
数量"
prop=
"buy_count
"
>
<el-input
-number
v-model=
"ruleForm.buy_count"
:min=
"1"
></el-input-number
>
</el-form-item>
</app-card>
<app-card
title=
"外部订单信息"
></app-card>
<app-card
title=
"外部订单信息"
>
<el-select
placeholder=
"支付流水号"
filterable
remote
style=
"width: 100%"
:remote-method=
"fetchPayList"
v-model=
"ruleForm.payment_order_id"
>
<el-option
:label=
"item.name"
:value=
"item.id"
v-for=
"item in payList"
:key=
"item.id"
/>
</el-select>
</app-card>
<div
class=
"form-footer"
>
<div
class=
"inner"
>
<el-button
type=
"primary"
>
取消
</el-button>
...
...
@@ -27,18 +43,30 @@
<
script
>
import
AppCard
from
'@/components/base/card'
import
UserAutocomplete
from
'@/components/base/userAutocomplete'
import
{
addOrder
,
getSkuList
,
orderSearch
}
from
'@/api/order'
export
default
{
components
:
{
AppCard
},
components
:
{
AppCard
,
UserAutocomplete
},
data
()
{
return
{
ruleForm
:
{
spu_id
:
''
,
customer_id
:
''
customer_id
:
''
,
spu_id
:
'6805043172159258624'
,
sku_id
:
''
,
buy_count
:
1
,
payment_order_id
:
''
},
rules
:
{
spu_name
:
[{
required
:
true
,
message
:
'商品名称不可为空'
,
trigger
:
'blur'
}],
chart_oss
:
[{
required
:
true
,
message
:
'最少需要添加一张商品图'
,
trigger
:
'blur'
}]
},
skuList
:
[],
payList
:
[]
}
},
watch
:
{
'ruleForm.spu_id'
:
skuId
=>
{
this
.
getSkuList
(
skuId
)
}
},
computed
:
{
...
...
@@ -51,7 +79,26 @@ export default {
submit
()
{
this
.
$refs
.
ruleForm
.
validate
().
then
(
this
.
handleAdd
)
},
handleAdd
()
{}
handleAdd
()
{
const
params
=
Object
.
assign
({
shop_id
:
this
.
shopId
},
this
.
ruleForm
)
params
.
buy_count
=
params
.
buy_count
.
toString
()
addOrder
(
params
).
then
(
response
=>
{
console
.
log
(
response
)
})
},
getSkuList
(
skuId
)
{
getSkuList
({
shop_id
:
this
.
shopId
,
spu_id
:
skuId
}).
then
(
response
=>
{
this
.
skuList
=
response
.
data
})
},
fetchPayList
(
value
)
{
orderSearch
({
payment_order_id
:
value
}).
then
(
response
=>
{
console
.
log
(
response
)
})
}
},
beforeMount
()
{
this
.
getSkuList
(
this
.
ruleForm
.
spu_id
)
}
}
</
script
>
...
...
@@ -60,6 +107,17 @@ export default {
::v-deep
.el-form--label-top
.el-form-item__label
{
padding
:
0
;
}
::v-deep
.el-radio
{
margin
:
0
20px
20px
0
!
important
;
}
::v-deep
.el-form-item__content
{
line-height
:
unset
;
}
.sku-price
{
margin-left
:
10px
;
padding-left
:
10px
;
border-left
:
1px
solid
#dcdfe6
;
}
.form-footer
{
position
:
sticky
;
bottom
:
0
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论