Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
111ca01f
Commit
111ca01f
authored
Mar 17, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
63701d4f
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
409 additions
and
36 deletions
+409
-36
courseoffer.vue
src/pages/sale/courseoffer.vue
+21
-35
myoffer.vue
src/pages/sale/myoffer.vue
+382
-0
routes.js
src/router/routes.js
+6
-1
No files found.
src/pages/sale/courseoffer.vue
View file @
111ca01f
...
...
@@ -133,33 +133,17 @@
</
template
>
<
template
v-slot:body-cell-OrderIdList=
"props"
>
<q-td
:props=
"props"
>
<span
title=
"点击查看订单"
v-for=
"item in props.row.OrderIdList"
style=
"cursor:pointer;color:blue;margin-left:5px;"
@
click=
"goOrderList(item)"
>
{{
item
}}
</span>
<span
title=
"点击查看订单"
v-for=
"item in props.row.OrderIdList"
style=
"cursor:pointer;color:blue;margin-left:5px;"
@
click=
"goOrderList(item)"
>
{{
item
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<div>
<q-btn
v-if=
"props.row.CustomerStatus==1||props.row.CustomerStatus==2"
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"editQuotation(props.row)"
/>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"gotoDetails(props.row)"
>
<q-item-section>
<q-item-label>
详情
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-if=
"props.row.CustomerStatus==1||props.row.CustomerStatus==2"
@
click=
"offerTransOrder(props.row)"
>
<q-item-section>
<q-item-label>
转订单
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"editOrderPrice(props.row)"
>
<q-item-section>
<q-item-label>
改价
</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"改价"
@
click=
"editOrderPrice(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"详情"
@
click=
"gotoDetails(props.row)"
/>
</div>
</q-td>
</
template
>
...
...
@@ -191,7 +175,9 @@
import
{
queryCourseOfferPage
,
}
from
'../../api/course/index'
import
{
mapState
}
from
"vuex"
;
import
{
mapState
}
from
"vuex"
;
export
default
{
meta
:
{
...
...
@@ -213,7 +199,7 @@
rowsPerPage
:
10
,
Name
:
""
,
IsGetDetails
:
1
,
CreateBy
:
0
CreateBy
:
0
},
pageCount
:
0
,
showForm
:
false
,
//是否显示报价单弹窗
...
...
@@ -297,30 +283,30 @@
}
],
showOrderForm
:
false
,
//是否显示转订单表单
commonId
:
0
,
showEditPrice
:
false
,
//是否显示改价表单
commonId
:
0
,
showEditPrice
:
false
,
//是否显示改价表单
}
},
computed
:
mapState
({
isHavePriceAction
(
state
)
{
if
(
state
.
user
.
userInfo
&&
state
.
user
.
userInfo
.
ActionMenuList
)
{
let
commonNum
=
0
;
if
(
state
.
user
.
userInfo
&&
state
.
user
.
userInfo
.
ActionMenuList
)
{
let
commonNum
=
0
;
let
action
=
state
.
user
.
userInfo
.
ActionMenuList
.
find
(
x
=>
{
if
(
x
.
FunctionCode
==
"Query_All_Offer"
)
{
commonNum
+=
1
;
commonNum
+=
1
;
}
});
this
.
commonId
=
state
.
user
.
userInfo
.
Id
;
this
.
commonId
=
state
.
user
.
userInfo
.
Id
;
return
commonNum
;
}
}
}),
mounted
()
{
this
.
currentUrl
=
this
.
$route
.
path
;
if
(
this
.
isHavePriceAction
>
0
)
{
this
.
msg
.
CreateBy
=
0
;
}
else
{
this
.
msg
.
CreateBy
=
this
.
commonId
;
if
(
this
.
isHavePriceAction
>
0
)
{
this
.
msg
.
CreateBy
=
0
;
}
else
{
this
.
msg
.
CreateBy
=
this
.
commonId
;
}
this
.
getcourseofferpage
();
},
...
...
@@ -340,7 +326,7 @@
this
.
showOrderForm
=
true
;
},
//改价
editOrderPrice
(
item
){
editOrderPrice
(
item
)
{
this
.
offerObj
=
item
;
this
.
showEditPrice
=
true
;
},
...
...
src/pages/sale/myoffer.vue
0 → 100644
View file @
111ca01f
<
style
>
li
{
list-style-type
:
none
;
}
.courseOffer
ul
{
padding
:
0px
;
}
.courseOffer
li
{
background
:
rgba
(
221
,
222
,
224
,
0.2
);
border-radius
:
4px
;
margin-top
:
15px
;
}
.courseOffer
li
.dline
{
display
:
table
;
width
:
100%
;
display
:
flex
;
flex-direction
:
row
;
}
.courseOffer
li
.d1
,
.courseOffer
li
.d2
,
.courseOffer
li
.d3
,
.courseOffer
li
.d4
,
.courseOffer
li
.d5
{
width
:
18%
;
padding
:
20px
20px
10px
;
}
.courseOffer
li
.d7
{
flex
:
1
;
width
:
1px
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
center
;
}
.courseOffer
li
.d1
.di-title
{
font-size
:
16px
;
color
:
#111111
;
}
.courseOffer
li
.d1
.di-c
{
font-size
:
14px
;
display
:
flex
;
line-height
:
28px
;
color
:
#111111
;
}
.courseOffer
li
.d6
{
padding
:
10px
20px
;
width
:
100%
;
height
:
inherit
;
position
:
relative
;
border-top
:
1px
solid
#dddee0
;
}
.courseOffer
li
.d6
.progress
{
width
:
100%
;
height
:
5px
;
position
:
absolute
;
left
:
0
;
bottom
:
0
;
}
.courseOffer
li
.d2
div
{
margin
:
2px
0
;
font-size
:
14px
;
color
:
#111111
;
}
.courseOffer
li
.d2-n
{
font-size
:
12px
;
color
:
#999999
;
margin-right
:
20px
;
}
.courseOffer
li
.d3
.d3-s
{
color
:
var
(
--q-color-negative
);
font-weight
:
bold
;
}
.courseOffer
li
.d3
div
{
margin
:
2px
0
;
font-size
:
14px
;
}
.courseOffer
li
.d4
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
2px
0
;
}
.courseOffer
li
.d5
div
{
font-size
:
14px
;
color
:
#111111
;
margin
:
2px
0
;
}
.courseOffer
.myCourseNName
{
width
:
25px
;
height
:
25px
;
border-radius
:
50%
;
color
:
#fff
!important
;
text-align
:
center
;
line-height
:
25px
;
background-color
:
#004d40
;
}
</
style
>
<
template
>
<div
class=
"page-body courseOffer"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.Name"
label=
"报价单名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
我的报价单
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"创建报价单"
@
click=
"editQuotation(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-OrderIdList=
"props"
>
<q-td
:props=
"props"
>
<span
title=
"点击查看订单"
v-for=
"item in props.row.OrderIdList"
style=
"cursor:pointer;color:blue;margin-left:5px;"
@
click=
"goOrderList(item)"
>
{{
item
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<div>
<q-btn
v-if=
"props.row.CustomerStatus==1||props.row.CustomerStatus==2"
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"editQuotation(props.row)"
/>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"gotoDetails(props.row)"
>
<q-item-section>
<q-item-label>
详情
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-if=
"props.row.CustomerStatus==1||props.row.CustomerStatus==2"
@
click=
"offerTransOrder(props.row)"
>
<q-item-section>
<q-item-label>
转订单
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"editOrderPrice(props.row)"
>
<q-item-section>
<q-item-label>
改价
</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</div>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</div>
<q-dialog
v-model=
"showForm"
persistent
>
<quotation-form
:obj=
"offerObj"
@
save=
"refreshPage()"
></quotation-form>
</q-dialog>
<q-dialog
v-model=
"showOrderForm"
persistent
>
<offertransorder-form
:obj=
"offerObj"
@
save=
"refreshPage()"
></offertransorder-form>
</q-dialog>
<q-dialog
v-model=
"showEditPrice"
persistent
>
<edittransorder-form
:obj=
"offerObj"
@
save=
"refreshPage()"
></edittransorder-form>
</q-dialog>
</div>
</template>
<
script
>
import
quotationForm
from
'../../components/sale/quotation-form'
import
offertransorderForm
from
'../../components/sale/offertransorder-form'
import
edittransorderForm
from
'../../components/sale/edittransorder-form'
import
{
queryCourseOfferPage
,
}
from
'../../api/course/index'
import
{
mapState
}
from
"vuex"
;
export
default
{
meta
:
{
title
:
"报价单"
},
components
:
{
quotationForm
,
offertransorderForm
,
edittransorderForm
},
data
()
{
return
{
currentUrl
:
""
,
data
:
[],
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
Name
:
""
,
IsGetDetails
:
1
,
CreateBy
:
0
},
pageCount
:
0
,
showForm
:
false
,
//是否显示报价单弹窗
offerObj
:
{},
//报价单信息
columns
:
[{
name
:
"SerialNum"
,
label
:
"流水号"
,
field
:
"SerialNum"
,
align
:
"left"
},
{
name
:
"Name"
,
label
:
"名称"
,
field
:
"Name"
,
align
:
"left"
},
{
name
:
"CustomerName"
,
required
:
true
,
label
:
"客户信息"
,
align
:
"left"
,
field
:
row
=>
row
.
CustomerName
},
{
name
:
"CustomerTel"
,
required
:
true
,
label
:
"客户电话"
,
align
:
"left"
,
field
:
row
=>
row
.
CustomerTel
},
{
name
:
"TotalOriginalPrice"
,
required
:
true
,
label
:
"总原价"
,
align
:
"left"
,
field
:
row
=>
row
.
TotalOriginalPrice
.
toFixed
(
2
)
},
{
name
:
"TotalPrice"
,
required
:
true
,
label
:
"总价"
,
align
:
"left"
,
field
:
row
=>
row
.
TotalPrice
.
toFixed
(
2
)
},
{
name
:
"TotalDiscountPrice"
,
required
:
true
,
label
:
"总优惠"
,
align
:
"left"
,
field
:
row
=>
row
.
TotalDiscountPrice
.
toFixed
(
2
)
},
{
name
:
"JoinNum"
,
label
:
"报名人数"
,
field
:
"JoinNum"
,
align
:
"left"
,
format
:
(
val
,
row
)
=>
`
${
val
}
人`
},
{
name
:
"CustomerStatusName"
,
label
:
"状态"
,
field
:
"CustomerStatusName"
,
align
:
"left"
,
format
:
(
val
,
row
)
=>
`
${
val
}
`
},
{
name
:
"CreateTimeStr"
,
label
:
"报价时间"
,
field
:
"CreateTimeStr"
,
align
:
"left"
},
{
name
:
"OrderIdList"
,
label
:
"订单号"
,
field
:
"OrderIdList"
,
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'Id'
}
],
showOrderForm
:
false
,
//是否显示转订单表单
commonId
:
0
,
showEditPrice
:
false
,
//是否显示改价表单
}
},
mounted
()
{
this
.
currentUrl
=
this
.
$route
.
path
;
this
.
msg
.
CreateBy
=
this
.
getLocalStorage
().
Id
;
this
.
getcourseofferpage
();
},
methods
:
{
//跳转到订单列表
goOrderList
(
item
)
{
this
.
$router
.
push
({
path
:
"/sale/myOrder"
,
query
:
{
OrderId
:
item
}
});
},
//报价单转订单
offerTransOrder
(
item
)
{
this
.
offerObj
=
item
;
this
.
showOrderForm
=
true
;
},
//改价
editOrderPrice
(
item
)
{
this
.
offerObj
=
item
;
this
.
showEditPrice
=
true
;
},
//刷新页面
refreshPage
()
{
this
.
showForm
=
false
;
this
.
showOrderForm
=
false
;
this
.
showEditPrice
=
false
;
this
.
getcourseofferpage
();
},
gotoDetails
(
item
)
{
this
.
$router
.
push
({
path
:
"/sale/quotation"
,
query
:
{
Id
:
item
.
Id
}
});
},
//显示报价单
editQuotation
(
item
)
{
this
.
showForm
=
true
;
this
.
offerObj
=
item
;
},
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getcourseofferpage
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getcourseofferpage
()
},
//获取报价单分页列表
getcourseofferpage
()
{
this
.
loading
=
true
;
queryCourseOfferPage
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
this
.
data
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}).
catch
(()
=>
{
this
.
loading
=
false
})
},
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
src/router/routes.js
View file @
111ca01f
...
...
@@ -427,10 +427,15 @@ const routes = [{
import
(
"pages/sale/courseList.vue"
)
},
{
path
:
"/sale/courseoffer"
,
//销售 报价单
path
:
"/sale/courseoffer"
,
//销售 报价单
管理
component
:
()
=>
import
(
"pages/sale/courseoffer.vue"
)
},
{
path
:
"/sale/myoffer"
,
//销售 我的报价单
component
:
()
=>
import
(
"pages/sale/myoffer.vue"
)
},
{
path
:
"/sale/myOrder"
,
//销售 我的订单
component
:
()
=>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment