Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
W
WX_h5
Project
Project
Details
Activity
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
godwithdh
WX_h5
Commits
b261b7fb
Commit
b261b7fb
authored
Jan 06, 2020
by
张锡奇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
upload
parent
7a1680e5
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
717 additions
and
158 deletions
+717
-158
Table.vue
src/components/Table.vue
+30
-2
host.js
src/libs/host.js
+1
-1
index.js
src/router/index.js
+2
-2
kanban.js
src/store/modules/tiip/kanban.js
+17
-3
index.vue
src/view/shopVersion/form/index.vue
+28
-5
index.vue
src/view/shopVersion/form/liabilities/index.vue
+0
-1
inventory.vue
src/view/tiip/chart/inventory.vue
+14
-4
abnormal.vue
src/view/tiip/kanban/abnormal.vue
+17
-8
index.vue
src/view/tiip/kanban/index.vue
+1
-1
operateCustomDetail.vue
src/view/tiip/kanban/operateCustomDetail.vue
+245
-38
operateDetail.vue
src/view/tiip/kanban/operateDetail.vue
+329
-32
index.vue
src/view/tiip/orderDetails/index.vue
+33
-61
No files found.
src/components/Table.vue
View file @
b261b7fb
...
...
@@ -145,7 +145,7 @@
'background':index % 2 == 0 ? tableStyle.complexTrBgColor : tableStyle.singleTrBgColor,
'text-overflow': x.ellipsis ? 'ellipsis' : 'none',
'overflow': x.ellipsis ? 'hidden' : 'none',
'white-space': x.ellipsis ? 'no
rmal
' : 'none',
'white-space': x.ellipsis ? 'no
wrap
' : 'none',
'position': x.fixed ? 'sticky' : 'static',
'left':x.fixed ? x.fixedLeftWidth : 'none',
'border-left':tableStyle.tbodyTdBorder ? tableStyle.tbodyTrBorderBottom : '0px',
...
...
@@ -154,10 +154,13 @@
'word-break': 'break-all'
}"
@click="clickTd(i,index)"
v-html="item[x.field]"
>
<RENDER
v-if=
"x.render"
:item=
"item"
:index=
"index"
:columns=
"x"
></RENDER>
<span
v-if=
"!x.render"
v-html=
"item[x.field]"
></span>
</td>
</tr>
<slot></slot>
</div>
...
...
@@ -193,6 +196,31 @@
<
script
>
import
Util
from
'@/libs/util.js'
import
Vue
from
'vue'
;
Vue
.
component
(
'RENDER'
,
{
render
:
function
(
createElement
)
{
let
self
=
this
;
return
this
.
columns
.
render
(
createElement
,{
row
:
this
.
item
,
index
:
this
.
index
});
},
props
:
{
columns
:
{
type
:
Object
,
required
:
true
},
item
:{
type
:
Object
,
required
:
true
},
index
:{
type
:
Number
,
required
:
true
}
}
})
export
default
{
name
:
'Table'
,
...
...
src/libs/host.js
View file @
b261b7fb
...
...
@@ -12,7 +12,7 @@ function urlFun(name){
/**
* 默认公司
*/
default
:
`http://192.168.4.
2
:5001`
,
default
:
`http://192.168.4.
31
:5001`
,
// default:`https://weixin.huansi.net/apiproxy/huansi/hszh_HSFabricTradeTest`,
// default:`https://weixin.huansi.net/apiproxy/huansi/service/proxy/${userID}`,
...
...
src/router/index.js
View file @
b261b7fb
...
...
@@ -231,11 +231,11 @@ let tipRoutes = [
path
:
'/main'
,
children
:[
{
path
:
'/tiip/orderDetails/list
/:type
'
,
path
:
'/tiip/orderDetails/list'
,
name
:
'orderDetailsIndex'
,
component
:()
=>
import
(
'@/view/tiip/orderDetails/index.vue'
),
meta
:{
title
:
'
采购信息
'
title
:
'
订单详情
'
}
},
]
...
...
src/store/modules/tiip/kanban.js
View file @
b261b7fb
...
...
@@ -10,9 +10,14 @@ const obj = {
},
orderItem
:{},
warehouseDetail
:{},
customerItem
:{}
customerItem
:{},
kanban
:{},
orderDetail
:{}
},
mutations
:
{
saveKanban
(
state
,
data
){
state
.
kanban
[
data
.
type
]
=
data
.
item
;
},
saveKanbanHdr
(
state
,
data
){
state
.
hdr
=
data
;
},
...
...
@@ -24,9 +29,15 @@ const obj = {
},
saveCustomerItem
(
state
,
data
){
state
.
customerItem
=
data
;
}
},
saveKanbanOrderDetail
(
state
,
data
){
state
.
orderDetail
=
data
;
},
},
actions
:
{
saveKanban
({
commit
},
data
){
commit
(
'saveKanban'
,
data
);
},
saveKanbanHdr
({
commit
},
data
){
commit
(
'saveKanbanHdr'
,
data
);
},
...
...
@@ -38,7 +49,10 @@ const obj = {
},
saveCustomerItem
({
commit
},
data
){
commit
(
'saveCustomerItem'
,
data
);
}
},
saveKanbanOrderDetail
({
commit
},
data
){
commit
(
'saveKanbanOrderDetail'
,
data
);
},
}
};
...
...
src/view/shopVersion/form/index.vue
View file @
b261b7fb
...
...
@@ -124,15 +124,18 @@
</div>
<div
class=
"TAB"
>
<button-tab
class=
"buttonTab"
:value=
"activeBtn"
>
<button-tab-item
@
on-item-click=
"
situation='salesStatistics'
"
>
销售统计
</button-tab-item>
<button-tab-item
@
on-item-click=
"
situation='empAna'
"
>
员工排行
</button-tab-item>
<button-tab-item
@
on-item-click=
"
situation='liabilities'
"
>
负债分析
</button-tab-item>
<button-tab-item
@
on-item-click=
"
situation='custom'
"
>
账单分析
</button-tab-item>
<button-tab-item
@
on-item-click=
"
situation='income'
"
>
收支分析
</button-tab-item>
<button-tab-item
@
on-item-click=
"
changeTab
"
>
销售统计
</button-tab-item>
<button-tab-item
@
on-item-click=
"
changeTab
"
>
员工排行
</button-tab-item>
<button-tab-item
@
on-item-click=
"
changeTab
"
>
负债分析
</button-tab-item>
<button-tab-item
@
on-item-click=
"
changeTab
"
>
账单分析
</button-tab-item>
<button-tab-item
@
on-item-click=
"
changeTab
"
>
收支分析
</button-tab-item>
</button-tab>
</div>
<div
class=
"CONTENT"
>
<keep-alive>
<component
:is=
"situation"
/>
</keep-alive>
</div>
</div>
</
template
>
...
...
@@ -172,6 +175,26 @@ export default {
await
this
.
getData
();
},
methods
:{
changeTab
(
index
){
switch
(
index
){
case
0
:
this
.
situation
=
'salesStatistics'
;
break
;
case
1
:
this
.
situation
=
'empAna'
;
break
;
case
2
:
this
.
situation
=
'liabilities'
;
break
;
case
3
:
this
.
situation
=
'custom'
;
break
;
case
4
:
this
.
situation
=
'income'
;
break
;
}
},
async
getData
(){
let
res
=
await
this
.
request
(
'getCipTotalamount'
,{
data
:{}
...
...
src/view/shopVersion/form/liabilities/index.vue
View file @
b261b7fb
...
...
@@ -140,7 +140,6 @@ export default {
await
this
.
getData
();
},
async
activated
(){
},
methods
:{
async
getData
(){
...
...
src/view/tiip/chart/inventory.vue
View file @
b261b7fb
...
...
@@ -74,15 +74,15 @@
<div
class=
"iCard"
v-for=
"(item,index) in chartData"
:key=
"index"
@
click=
"routerToWarehouseDetail(item)"
>
<div
class=
"warehouse"
:style=
"
{'color':'white'}">
{{
item
.
sStoreName
}}
</div>
<div
class=
"TITLE"
>
<span>
单位
</span>
<span>
总匹数
</span>
<span>
总数量
</span>
<span>
总匹数
</span>
<span>
单位
</span>
</div>
<div
class=
"unit"
v-for=
"(v,i) in item.child"
:key=
"i"
>
<div
class=
"ITEM"
>
<span>
{{
v
.
sUnit
}}
</span>
<span
style=
"color:#8a8a8a;"
>
{{
Number
(
v
.
nStockPieceQty
).
toLocaleString
()
}}
</span>
<span
style=
"color:#8a8a8a;"
>
{{
Number
(
v
.
nQty
).
toLocaleString
()
}}
</span>
<span
style=
"color:#8a8a8a;"
>
{{
Number
(
v
.
nStockPieceQty
).
toLocaleString
()
}}
</span>
<span>
{{
v
.
sUnit
}}
</span>
</div>
</div>
</div>
...
...
@@ -191,6 +191,9 @@ export default {
await
this
.
renderChart
();
})
},
activated
(){
document
.
getElementsByClassName
(
'content'
)[
0
].
scrollTo
(
0
,
this
.
$store
.
state
.
kanban
.
kanban
.
inventory
.
scrollTop
)
},
methods
:{
renderResize
()
{
// 判断横竖屏
...
...
@@ -339,6 +342,13 @@ export default {
// if(res.hasOwnProperty('set2')) this.list = res.set2;
},
routerToWarehouseDetail
(
item
){
this
.
$store
.
dispatch
(
'saveKanban'
,{
type
:
'inventory'
,
item
:{
scrollTop
:
document
.
getElementsByClassName
(
'content'
)[
0
].
scrollTop
}
});
this
.
$store
.
dispatch
(
'saveWarehouseDetail'
,
item
);
this
.
$router
.
push
({
name
:
'tiipChartWarehouseDetail'
});
}
...
...
src/view/tiip/kanban/abnormal.vue
View file @
b261b7fb
...
...
@@ -35,13 +35,13 @@
<div
class=
"abnormal"
>
<table
cellspacing=
"0"
>
<tr>
<td
style=
"width:100px;"
>
<td
style=
"width:100px;"
@
click=
"routerPushOperateDetail('销售退货')"
>
<div>
销售退货
</div>
</td>
<td>
<div>
{{
Number
(
value
[
'销售退货'
]
||
0
).
toLocaleString
()
}}
</div>
</td>
<td
style=
"width:100px;"
>
<td
style=
"width:100px;"
@
click=
"routerPushOperateDetail('采购退货')"
>
<div>
采购退货
</div>
</td>
<td>
...
...
@@ -49,13 +49,13 @@
</td>
</tr>
<tr>
<td>
<td
@
click=
"routerPushOperateDetail('加工回修')"
>
<div>
加工回修
</div>
</td>
<td>
<div>
{{
Number
(
value
[
'加工回修'
]
||
0
).
toLocaleString
()
}}
</div>
</td>
<td>
<td
@
click=
"routerPushOperateDetail('疵品汇总')"
>
<div>
疵品数量
</div>
</td>
<td>
...
...
@@ -80,13 +80,13 @@
</td>
</tr>
<tr>
<td>
<td
@
click=
"routerPushOperateDetail('供应商索赔')"
>
<div>
供应商赔款
</div>
</td>
<td>
<div>
{{
Number
(
value
[
'供应商索赔'
]
||
0
).
toLocaleString
()
}}
</div>
</td>
<td>
<td
@
click=
"routerPushOperateDetail('客户索赔')"
>
<div>
客户赔款
</div>
</td>
<td>
...
...
@@ -94,13 +94,13 @@
</td>
</tr>
<tr>
<td>
<td
@
click=
"routerPushOperateDetail('超期应收')"
>
<div>
超期应收额
</div>
</td>
<td>
<div>
{{
Number
(
value
[
'超期应收'
]
||
0
).
toLocaleString
()
}}
</div>
</td>
<td>
<td
@
click=
"routerPushOperateDetail('超期应付')"
>
<div>
超期应付额
</div>
</td>
<td>
...
...
@@ -155,6 +155,15 @@ export default {
})
}
},
routerPushOperateDetail
(
type
){
let
data
=
{};
data
.
sType
=
type
;
data
.
begin_date
=
util
.
dateFormat
(
this
.
start
,
"yyyy-MM-dd"
);
data
.
end_date
=
(
this
.
end
?
util
.
dateFormat
(
this
.
end
,
"yyyy-MM-dd"
):
util
.
dateFormat
(
new
Date
,
"yyyy-MM-dd"
))
+
' 23:59'
;
this
.
$store
.
dispatch
(
'saveKanbanHdr'
,
data
);
this
.
$store
.
dispatch
(
'saveRefresh'
,
true
);
this
.
$router
.
push
({
name
:
'tiipOperateDetail'
,
type
:
type
})
}
},
}
</
script
>
src/view/tiip/kanban/index.vue
View file @
b261b7fb
...
...
@@ -124,7 +124,7 @@
<span
:class=
"
{active:situation=='capital'}" @click="situation='capital'">资金概况
</span>
<span
:class=
"
{active:situation=='Finance'}" @click="situation='Finance'">财务概况
</span>
<span
:class=
"
{active:situation=='abnormal'}" @click="situation='abnormal'">异常预警
</span>
<span
:class=
"
{active:situation=='tiipChartInventory'}" @click="situation='tiipChartInventory'">库存
情况
</span>
<span
:class=
"
{active:situation=='tiipChartInventory'}" @click="situation='tiipChartInventory'">库存
资金
</span>
</div>
<div
class=
"content"
>
<component
:is=
"situation"
:dateMode=
"dateMode"
:start=
"DateValue[0]"
:end=
"DateValue[1]"
/>
...
...
src/view/tiip/kanban/operateCustomDetail.vue
View file @
b261b7fb
...
...
@@ -30,34 +30,7 @@ export default {
data
()
{
return
{
list
:[],
columns
:[
{
width
:
'25%'
,
name
:
'单号'
,
align
:
'center'
,
field
:
'sOrderNoHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
,
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQty'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
},
{
width
:
'25%'
,
name
:
'状态'
,
align
:
'center'
,
field
:
'sStatus'
}
],
columns
:[],
tableStyle
:{
theadBgColor
:
'rgba(223,238,253,1)'
,
complexTrBgColor
:
'white'
,
...
...
@@ -82,24 +55,227 @@ export default {
},
async
activated
(){
this
.
type
=
this
.
$route
.
params
.
type
;
let
title
=
''
;
if
(
this
.
hdr
.
sType
==
'采购'
){
t
itle
=
'采购'
;
t
his
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:(
this
.
type
==
'custom'
?
'采购'
:
'产品'
)
+
'订单列表'
})
;
}
else
if
(
this
.
hdr
.
sType
==
'加工'
){
t
itle
=
'加工'
;
t
his
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:(
this
.
type
==
'custom'
?
'加工'
:
'产品'
)
+
'订单列表'
})
;
}
else
if
(
this
.
hdr
.
sType
==
'检验'
){
title
=
'检验'
;
this
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:(
this
.
type
==
'custom'
?
'检验'
:
'产品'
)
+
'订单列表'
});
}
else
if
(
this
.
hdr
.
sType
==
'采购退货'
){
this
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:(
this
.
type
==
'custom'
?
'采购退货'
:
'产品'
)
+
'订单列表'
});
}
else
if
(
this
.
hdr
.
sType
==
"客户索赔"
){
this
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:
this
.
customerItem
.
sCustomerName
+
'理赔列表'
});
}
else
if
(
this
.
hdr
.
sType
==
"供应商索赔"
){
this
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:
this
.
customerItem
.
sProviderName
+
'理赔列表'
});
}
else
{
title
=
'客户'
;
this
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:(
this
.
type
==
'custom'
?
'客户'
:
'产品'
)
+
'订单列表'
});
}
if
(
this
.
hdr
.
sType
==
'采购退货'
||
this
.
hdr
.
sType
==
'销售退货'
){
this
.
columns
=
[
{
width
:
'25%'
,
name
:
'单号'
,
align
:
'center'
,
field
:
this
.
hdr
.
sType
==
'销售退货'
?
'sStoreInNoHTML'
:
'sStoreOutNoHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
,
},
{
width
:
'25%'
,
name
:
'匹数'
,
align
:
'center'
,
field
:
'nPieceHTML'
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQtyHTML'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
}
else
if
(
this
.
hdr
.
sType
==
'供应商索赔'
||
this
.
hdr
.
sType
==
'客户索赔'
){
this
.
columns
=
[
{
width
:
'25%'
,
name
:
'单号'
,
align
:
'center'
,
field
:
this
.
hdr
.
sType
==
'供应商索赔'
?
'sPayableNO'
:
'sReceivableNO'
,
underline
:
true
,
color
:
'#2d8cf0'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,{
style
:
{
'text-decoration'
:
'underline'
,
}
},
this
.
hdr
.
sType
==
'供应商索赔'
?
params
.
row
.
sPayableNO
:
params
.
row
.
sReceivableNO
)
}
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
},
{
width
:
'25%'
,
name
:
'汇率'
,
align
:
'center'
,
field
:
'nExchangeRate'
},
{
width
:
'25%'
,
name
:
'日期'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,
Util
.
dateFormat
(
this
.
hdr
.
sType
==
'供应商索赔'
?
params
.
row
.
dPayableDate
:
params
.
row
.
dReceivableDate
,
'yyyy-MM-dd'
))
}
},
]
}
else
if
(
this
.
hdr
.
sType
==
'疵品汇总'
){
this
.
columns
=
[
{
width
:
'25%'
,
name
:
'单号'
,
align
:
'center'
,
underline
:
true
,
color
:
'#2d8cf0'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,{
style
:
{
'text-decoration'
:
'underline'
,
},
on
:{
'click'
:()
=>
{
this
.
getDetail
(
2
,
this
.
hdr
.
sType
,
params
.
row
.
sStoreInNo
);
}
}
},
params
.
row
.
sStoreInNo
)
}
},
{
width
:
'25%'
,
name
:
'匹数'
,
align
:
'center'
,
field
:
'nStockPieceQty'
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nStockQty'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmount'
,
color
:
'#339966'
}
]
}
else
if
(
this
.
hdr
.
sType
==
'超期应收'
||
this
.
hdr
.
sType
==
'超期应付'
){
this
.
columns
=
[
{
width
:
'20%'
,
name
:
'单号'
,
align
:
'center'
,
field
:
this
.
hdr
.
sType
==
'超期应付'
?
'sPayableNO'
:
'sReceivableNO'
,
underline
:
true
,
color
:
'#2d8cf0'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,{
style
:
{
'text-decoration'
:
'underline'
,
}
},
this
.
hdr
.
sType
==
'超期应付'
?
params
.
row
.
sPayableNO
:
params
.
row
.
sReceivableNO
)
}
},
{
width
:
'20%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmount'
,
color
:
'#339966'
},
{
width
:
'20%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQty'
,
},
{
width
:
'20%'
,
name
:
'汇率'
,
align
:
'center'
,
field
:
'nExchangeRate'
},
{
width
:
'20%'
,
name
:
'日期'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,
Util
.
dateFormat
(
this
.
hdr
.
sType
==
'超期应付'
?
params
.
row
.
dPayableDate
:
params
.
row
.
dReceivableDate
,
'yyyy-MM-dd'
))
}
}
]
}
else
{
this
.
columns
=
[
{
width
:
'25%'
,
name
:
'单号'
,
align
:
'center'
,
field
:
'sOrderNoHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
,
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQty'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
},
{
width
:
'25%'
,
name
:
'状态'
,
align
:
'center'
,
field
:
'sStatus'
}
]
}
this
.
$store
.
dispatch
(
"CAHNGE_META_INFO"
,
{
title
:(
this
.
type
==
'custom'
?
title
:
'产品'
)
+
'订单列表'
});
await
this
.
getData
();
this
.
global
.
$off
(
'clickTd'
);
//点击表格列触发
this
.
global
.
$on
(
'clickTd'
,
async
(
res
)
=>
{
if
(
this
.
hdr
.
sType
==
'接单'
){
this
.
list
[
res
.
trIndex
].
dReceivedDate
=
Util
.
dateFormat
(
this
.
list
[
res
.
trIndex
].
dReceivedDate
,
'yyyy-MM-dd'
);
this
.
$store
.
dispatch
(
'searchOrderSaveHdr'
,
this
.
list
[
res
.
trIndex
]);
this
.
$router
.
push
({
name
:
'searchOrderTrack'
})
}
else
if
(
this
.
hdr
.
sType
==
'采购'
||
this
.
hdr
.
sType
==
'加工'
||
this
.
hdr
.
sType
==
'成品入库'
||
this
.
hdr
.
sType
==
'销售'
||
this
.
hdr
.
sType
==
'检验'
||
this
.
hdr
.
sType
==
'收货'
){
await
this
.
getDetail
(
1
,
this
.
hdr
.
sType
,
this
.
list
[
res
.
trIndex
].
sOrderNo
);
}
else
if
(
this
.
hdr
.
sType
==
'供应商索赔'
||
this
.
hdr
.
sType
==
'超期应付'
){
await
this
.
getDetail
(
2
,
this
.
hdr
.
sType
,
this
.
list
[
res
.
trIndex
].
sPayableNO
);
}
else
if
(
this
.
hdr
.
sType
==
'客户索赔'
||
this
.
hdr
.
sType
==
'超期应收'
){
await
this
.
getDetail
(
2
,
this
.
hdr
.
sType
,
this
.
list
[
res
.
trIndex
].
sReceivableNO
);
}
else
if
(
this
.
hdr
.
sType
==
'加工回修'
){
await
this
.
getDetail
(
2
,
this
.
hdr
.
sType
,
this
.
list
[
res
.
trIndex
].
sOrderNo
);
}
else
if
(
this
.
hdr
.
sType
==
'销售退货'
){
await
this
.
getDetail
(
2
,
this
.
hdr
.
sType
,
this
.
list
[
res
.
trIndex
].
sStoreInNo
);
}
else
if
(
this
.
hdr
.
sType
==
'采购退货'
){
await
this
.
getDetail
(
2
,
this
.
hdr
.
sType
,
this
.
list
[
res
.
trIndex
].
sStoreOutNo
);
}
})
},
methods
:{
...
...
@@ -111,10 +287,22 @@ export default {
{
key
:
"end_date"
,
value
:
this
.
hdr
.
end_date
}
];
if
(
this
.
type
==
'custom'
){
if
(
this
.
hdr
.
sType
==
'采购'
||
this
.
hdr
.
sType
==
'加工'
||
this
.
hdr
.
sType
==
'检验'
||
this
.
hdr
.
sType
==
'收货'
||
this
.
hdr
.
sType
==
'成品入库'
){
postData
.
push
({
key
:
"upbProviderGUID"
,
value
:
this
.
customerItem
.
upbProviderGUID
})
if
(
this
.
hdr
.
sType
==
'采购退货'
||
this
.
hdr
.
sType
==
'采购'
||
this
.
hdr
.
sType
==
'加工'
||
this
.
hdr
.
sType
==
'检验'
||
this
.
hdr
.
sType
==
'收货'
||
this
.
hdr
.
sType
==
'成品入库'
||
this
.
hdr
.
sType
==
'加工回修'
){
postData
.
push
({
key
:
"upbProviderGUID"
,
value
:
this
.
customerItem
.
upbProviderGUID
});
if
(
this
.
hdr
.
sType
==
'采购退货'
||
this
.
hdr
.
sType
==
'加工回修'
){
postData
[
0
].
value
=
'Abnormal early warning-customer-sOrder'
}
}
else
if
(
this
.
hdr
.
sType
==
'供应商索赔'
||
this
.
hdr
.
sType
==
'超期应付'
){
postData
[
0
].
value
=
'Abnormal early warning-customer-sOrder'
postData
.
push
({
key
:
"upbProviderGUID"
,
value
:
this
.
customerItem
.
ufiCheckItemGUID
});
}
else
if
(
this
.
hdr
.
sType
==
'客户索赔'
||
this
.
hdr
.
sType
==
'超期应收'
){
postData
[
0
].
value
=
'Abnormal early warning-customer-sOrder'
postData
.
push
({
key
:
"upbCustomerGUID"
,
value
:
this
.
customerItem
.
ufiCheckItemGUID
});
}
else
{
postData
.
push
({
key
:
"upbCustomerGUID"
,
value
:
this
.
customerItem
.
upbCustomerGUID
})
postData
.
push
({
key
:
"upbCustomerGUID"
,
value
:
this
.
customerItem
.
upbCustomerGUID
});
if
(
this
.
hdr
.
sType
==
'销售退货'
||
this
.
hdr
.
sType
==
'疵品汇总'
){
postData
[
0
].
value
=
'Abnormal early warning-customer-sOrder'
}
}
}
else
{
postData
.
push
({
key
:
"sSampleMaterialNo"
,
value
:
this
.
customerItem
.
sSampleMaterialNo
})
...
...
@@ -126,8 +314,27 @@ export default {
res
.
map
(
x
=>
{
x
.
sOrderNoHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sOrderNo
}
</span></div>`
;
x
.
nAmountHTML
=
`<div><span style="color:#339966;">
${
x
.
nAmount
}
</span></div>`
;
if
(
this
.
hdr
.
sType
==
'销售退货'
||
this
.
hdr
.
sType
==
'采购退货'
){
x
.
nQtyHTML
=
`<div><span">
${
this
.
hdr
.
sType
==
'销售退货'
?
x
.
nSumInQty
:
x
.
nSumOutQty
}
</span></div>`
;
x
.
nPieceHTML
=
`<div><span">
${
this
.
hdr
.
sType
==
'销售退货'
?
x
.
nInPieceQty
:
x
.
nOutPieceQty
}
</span></div>`
;
if
(
this
.
hdr
.
sType
==
'销售退货'
){
x
.
sStoreInNoHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sStoreInNo
}
</span></div>`
;
}
else
{
x
.
sStoreOutNoHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sStoreOutNo
}
</span></div>`
;
}
}
})
this
.
list
=
res
;
},
async
getDetail
(
mode
,
sType
,
sOrderNo
){
let
postData
=
[
{
key
:
"url"
,
value
:
mode
==
1
?
'Operation gai sType-customer-sOrder-dtl'
:
'Abnormal early warning-customer-sOrder-dtl'
},
{
key
:
"sType"
,
value
:
sType
},
{
key
:
"sOrderNo"
,
value
:
sOrderNo
},
]
let
result
=
await
this
.
request
(
'getBoss'
,{
data
:
postData
,
params
:{}},
'加载中'
,{});
this
.
$store
.
dispatch
(
'saveKanbanOrderDetail'
,
result
);
this
.
$router
.
push
({
name
:
'orderDetailsIndex'
})
}
},
components
:{
...
...
src/view/tiip/kanban/operateDetail.vue
View file @
b261b7fb
...
...
@@ -339,6 +339,296 @@ export default {
underline
:
true
}
]
}
else
if
(
this
.
hdr
.
sType
==
'销售退货'
||
this
.
hdr
.
sType
==
'采购退货'
){
this
.
tabList
=
[
{
value
:
'退货信息'
,
key
:
'0'
},
{
value
:
'产品信息'
,
key
:
'1'
}
];
this
.
columns
=
[
{
width
:
'25%'
,
name
:
this
.
hdr
.
sType
==
'销售退货'
?
'客户'
:
'供应商'
,
align
:
'center'
,
field
:
this
.
hdr
.
sType
==
'销售退货'
?
'sCustomerNameHTML'
:
'sProviderNameHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
},
{
width
:
'25%'
,
name
:
'匹数'
,
align
:
'center'
,
field
:
'nPieceHTML'
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQtyHTML'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
this
.
columns1
=
[
{
width
:
'40%'
,
name
:
'产品'
,
align
:
'center'
,
field
:
'sMaterial'
,
color
:
'#2d8cf0'
,
underline
:
true
},
{
width
:
'20%'
,
name
:
'匹数'
,
align
:
'center'
,
field
:
'nPieceHTML'
,
},
{
width
:
'20%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQtyHTML'
,
},
{
width
:
'20%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
}
else
if
(
this
.
hdr
.
sType
==
'供应商索赔'
||
this
.
hdr
.
sType
==
'客户索赔'
){
this
.
showTab
=
false
;
this
.
columns
=
[
{
width
:
'25%'
,
name
:
this
.
hdr
.
sType
==
'客户索赔'
?
'客户'
:
'供应商'
,
align
:
'center'
,
field
:
this
.
hdr
.
sType
==
'客户索赔'
?
'sCustomerNameHTML'
:
'sProviderNameHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
},
{
width
:
'25%'
,
name
:
'总数量'
,
align
:
'center'
,
field
:
'nQtyHTML'
,
},
{
width
:
'25%'
,
name
:
'总金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
}
else
if
(
this
.
hdr
.
sType
==
'疵品汇总'
){
this
.
tabList
=
[
{
value
:
'主信息'
,
key
:
'0'
},
{
value
:
'产品信息'
,
key
:
'1'
}
];
this
.
columns
=
[
{
width
:
'25%'
,
name
:
'客户'
,
align
:
'center'
,
field
:
'sCustomerNameHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
},
{
width
:
'25%'
,
name
:
'匹数'
,
align
:
'center'
,
field
:
'nStockPieceQty'
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nStockQty'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
this
.
columns1
=
[
{
width
:
'40%'
,
name
:
'产品'
,
align
:
'center'
,
field
:
'sMaterial'
,
color
:
'#2d8cf0'
,
underline
:
true
},
{
width
:
'20%'
,
name
:
'匹数'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,
params
.
row
.
nStockPieceQty
)
}
},
{
width
:
'20%'
,
name
:
'数量'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,
params
.
row
.
nStockPieceQty
)
}
},
{
width
:
'20%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
}
else
if
(
this
.
hdr
.
sType
==
'超期应收'
||
this
.
hdr
.
sType
==
'超期应付'
){
this
.
tabList
=
[
{
value
:
'主信息'
,
key
:
'0'
},
{
value
:
'产品信息'
,
key
:
'1'
}
];
this
.
columns
=
[
{
width
:
'25%'
,
name
:
this
.
hdr
.
sType
==
'超期应收'
?
'客户'
:
'供应商'
,
align
:
'center'
,
field
:
this
.
hdr
.
sType
==
'超期应收'
?
'sCustomerNameHTML'
:
'sProviderNameHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQtyHTML'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
this
.
columns1
=
[
{
width
:
'40%'
,
name
:
'产品'
,
align
:
'center'
,
field
:
'sMaterial'
,
color
:
'#2d8cf0'
,
underline
:
true
},
{
width
:
'20%'
,
name
:
'数量'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,
params
.
row
.
nQty
)
}
},
{
width
:
'20%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
}
else
if
(
this
.
hdr
.
sType
==
'加工回修'
){
this
.
tabList
=
[
{
value
:
'主信息'
,
key
:
'0'
},
{
value
:
'产品信息'
,
key
:
'1'
}
];
this
.
columns
=
[
{
width
:
'25%'
,
name
:
'客户'
,
align
:
'center'
,
field
:
'sProviderNameHTML'
,
underline
:
true
,
color
:
'#2d8cf0'
},
{
width
:
'25%'
,
name
:
'匹数'
,
align
:
'center'
,
field
:
'nStockPieceQty'
},
{
width
:
'25%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nStockQty'
,
},
{
width
:
'25%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
this
.
columns1
=
[
{
width
:
'40%'
,
name
:
'产品'
,
align
:
'center'
,
field
:
'sMaterial'
,
color
:
'#2d8cf0'
,
underline
:
true
},
{
width
:
'20%'
,
name
:
'匹数'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,
params
.
row
.
nStockPieceQty
)
}
},
{
width
:
'20%'
,
name
:
'数量'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'span'
,
params
.
row
.
nStockPieceQty
)
}
},
{
width
:
'20%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
}
else
{
this
.
columns
=
[
{
...
...
@@ -404,28 +694,7 @@ export default {
if
(
this
.
hdr
.
sType
==
'加工'
){
this
.
columns1
=
this
.
columns
;
}
else
{
this
.
columns1
=
[
{
width
:
'40%'
,
name
:
'产品'
,
align
:
'center'
,
field
:
'sMaterial'
,
color
:
'#2d8cf0'
,
underline
:
true
,
},
{
width
:
'30%'
,
name
:
'数量'
,
align
:
'center'
,
field
:
'nQtyHTML'
,
},
{
width
:
'30%'
,
name
:
'金额'
,
align
:
'center'
,
field
:
'nAmountHTML'
,
}
]
this
.
columns1
=
this
.
columns1
;
}
this
.
getData
();
},
...
...
@@ -440,11 +709,15 @@ export default {
postData
[
0
].
value
=
'Operation gai sType-customer'
;
if
(
this
.
hdr
.
sType
==
'加工'
){
postData
.
push
({
key
:
'sProcessCategory'
,
value
:
'坯布'
});
}
else
if
(
this
.
hdr
.
sType
==
'超期应收'
||
this
.
hdr
.
sType
==
'超期应付'
||
this
.
hdr
.
sType
==
'加工回修'
||
this
.
hdr
.
sType
==
'疵品汇总'
||
this
.
hdr
.
sType
==
'销售退货'
||
this
.
hdr
.
sType
==
'采购退货'
||
this
.
hdr
.
sType
==
'供应商索赔'
||
this
.
hdr
.
sType
==
'客户索赔'
){
postData
[
0
].
value
=
'Abnormal early warning-customer'
;
}
}
else
if
(
this
.
activeTab
==
'1'
){
if
(
this
.
hdr
.
sType
==
'加工'
){
postData
[
0
].
value
=
'Operation gai sType-customer'
;
postData
.
push
({
key
:
'sProcessCategory'
,
value
:
'成品布'
});
}
else
if
(
this
.
hdr
.
sType
==
'超期应收'
||
this
.
hdr
.
sType
==
'超期应付'
||
this
.
hdr
.
sType
==
'加工回修'
||
this
.
hdr
.
sType
==
'疵品汇总'
||
this
.
hdr
.
sType
==
'销售退货'
||
this
.
hdr
.
sType
==
'采购退货'
){
postData
[
0
].
value
=
'Abnormal early warning-sMaterial'
;
}
}
let
res
=
await
this
.
request
(
'getBoss'
,{
...
...
@@ -453,20 +726,44 @@ export default {
},
'加载中'
,{})
if
(
this
.
activeTab
==
1
&&
this
.
hdr
.
sType
!=
'加工'
){
res
.
map
(
x
=>
{
x
.
sMaterial
=
`<div><span style="color:#FF6633">
${
x
.
sSampleMaterialNo
}
</span><br><span style="color:black;">
${
this
.
hdr
.
sType
==
'成品入库'
?
x
.
sMaterialName
:
x
.
sSampleMaterialName
}
</span></div>`
if
(
this
.
hdr
.
sType
==
'销售退货'
||
this
.
hdr
.
sType
==
'采购退货'
){
x
.
nQtyHTML
=
`<div><span">
${
this
.
hdr
.
sType
==
'销售退货'
?
x
.
nSumInQty
:
x
.
nSumOutQty
}
</span></div>`
;
x
.
nPieceHTML
=
`<div><span">
${
this
.
hdr
.
sType
==
'销售退货'
?
x
.
nInPieceQty
:
x
.
nOutPieceQty
}
</span></div>`
;
}
else
{
x
.
nQtyHTML
=
`<div><span">
${
x
.
nQty
||
x
.
nOutQty
||
x
.
nInQty
}
</span></div>`
;
}
x
.
nAmountHTML
=
`<div><span style="color:#339966;">
${
x
.
nAmount
}
</span></div>`
;
x
.
nQtyHTML
=
`<div><span">
${
x
.
nQty
||
x
.
nOutQty
||
x
.
nInQty
}
</span></div>`
;
x
.
sMaterial
=
`<div><span style="color:#FF6633">
${
x
.
sSampleMaterialNo
||
''
}
</span><br><span style="color:black;">
${
this
.
hdr
.
sType
==
'成品入库'
?
x
.
sMaterialName
||
''
:
x
.
sSampleMaterialName
||
''
}
</span></div>`
})
}
else
{
res
.
map
(
x
=>
{
x
.
sCustomerNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sCustomerName
||
''
}
</span></div>`
;
x
.
sProviderNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sProviderName
||
''
}
</span></div>`
;
x
.
sSalesNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sSalesName
||
''
}
</span></div>`
;
x
.
nAmountHTML
=
`<div><span style="color:#339966;">
${
x
.
nAmount
}
</span></div>`
;
x
.
nQtyHTML
=
`<div><span">
${
x
.
nQty
||
x
.
nOutQty
||
0
}
</span></div>`
;
x
.
sMaterialHTML
=
`<div><span">
${
x
.
sSampleMaterialNo
||
''
}
<br>
${
x
.
sSampleMaterialName
||
''
}
</span></div>`
;
x
.
sFollowerNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sFollowerName
||
''
}
</span></div>`
;
x
.
sCreatorHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sCreator
||
''
}
</span></div>`
;
if
(
this
.
hdr
.
sType
==
'销售退货'
||
this
.
hdr
.
sType
==
'采购退货'
){
if
(
this
.
hdr
.
sType
==
'销售退货'
){
x
.
sCustomerNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sCustomerName
}
</span></div>`
;
}
else
if
(
this
.
hdr
.
sType
==
'采购退货'
){
x
.
sProviderNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sProviderName
}
</span></div>`
;
}
x
.
nQtyHTML
=
`<div><span">
${
this
.
hdr
.
sType
==
'销售退货'
?
x
.
nSumInQty
:
x
.
nSumOutQty
}
</span></div>`
;
x
.
nPieceHTML
=
`<div><span">
${
this
.
hdr
.
sType
==
'销售退货'
?
x
.
nInPieceQty
:
x
.
nOutPieceQty
}
</span></div>`
;
x
.
nAmountHTML
=
`<div><span style="color:#339966;">
${
x
.
nAmount
}
</span></div>`
;
}
else
if
(
this
.
hdr
.
sType
==
'供应商索赔'
||
this
.
hdr
.
sType
==
'客户索赔'
){
x
.
nQtyHTML
=
`<div><span">
${
x
.
nQty
||
x
.
nOutQty
||
0
}
</span></div>`
;
x
.
nAmountHTML
=
`<div><span style="color:red;">
${
x
.
nAmount
}
</span></div>`
;
if
(
this
.
hdr
.
sType
==
'客户索赔'
){
x
.
sCustomerNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sCustomerName
}
</span></div>`
;
}
else
if
(
this
.
hdr
.
sType
==
'供应商索赔'
){
x
.
sProviderNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sProviderName
}
</span></div>`
;
}
}
else
{
x
.
sCustomerNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sCustomerName
||
''
}
</span></div>`
;
x
.
sProviderNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sProviderName
||
''
}
</span></div>`
;
x
.
sSalesNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sSalesName
||
''
}
</span></div>`
;
x
.
nAmountHTML
=
`<div><span style="color:#339966;">
${
x
.
nAmount
}
</span></div>`
;
x
.
nQtyHTML
=
`<div><span">
${
x
.
nQty
||
x
.
nOutQty
||
0
}
</span></div>`
;
x
.
sMaterialHTML
=
`<div><span">
${
x
.
sSampleMaterialNo
||
''
}
<br>
${
x
.
sSampleMaterialName
||
''
}
</span></div>`
;
x
.
sFollowerNameHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sFollowerName
||
''
}
</span></div>`
;
x
.
sCreatorHTML
=
`<div><span style="text-decoration:underline;">
${
x
.
sCreator
||
''
}
</span></div>`
;
}
})
}
this
.
list
=
res
;
...
...
src/view/tiip/orderDetails/index.vue
View file @
b261b7fb
...
...
@@ -101,11 +101,11 @@
<div
v-for=
"(v2,i2) in v1.child"
:key=
'i2'
>
<div
v-for=
"(v3,i3) in v2.child"
:key=
"i3"
>
<div>
<span>
{{
v3
.
sFieldCaption
}}
</span>
<span>
{{
v3
.
key
}}
</span>
<div>
<div>
<div>
{{
DATA
[
v3
.
sFieldName
]
}}
{{
v3
.
value
}}
</div>
</div>
</div>
...
...
@@ -132,76 +132,48 @@ export default {
},
computed
:{
...
mapState
({
orderDetail
:
state
=>
state
.
kanban
.
orderDetail
})
},
async
mounted
(){
window
.
d
=
this
;
},
async
activated
(){
await
this
.
getDetail
();
this
.
filterFields
(
hdrFields
,
this
.
list
,
'采购基本合同'
);
this
.
list
=
this
.
filterFields
();
},
methods
:{
async
getDetail
(){
let
apiURL
;
switch
(
this
.
$route
.
params
.
type
){
case
'pbcontract'
:
apiURL
=
'getTiipPbcontract'
break
;
case
'pay'
:
apiURL
=
'getTiipFipayable'
break
;
case
'receive'
:
apiURL
=
'getTiipFireceivable'
break
;
case
'fabric'
:
case
'inspectionReport'
:
apiURL
=
'getTiipFabric'
break
;
default
:
break
;
}
let
hdrResult
=
await
this
.
request
(
apiURL
,{
data
:[
{
key
:
'url'
,
value
:
this
.
$route
.
params
.
type
==
'inspectionReport'
?
'Inspection Report'
:
'hdr'
}
]
},
true
);
hdrResult
.
map
(
x
=>
{
for
(
let
y
in
x
){
if
(
isNaN
(
x
[
y
])
&&!
isNaN
(
Date
.
parse
(
x
[
y
]))){
x
[
y
]
=
Util
.
dateFormat
(
x
[
y
],
'yyyy-MM-dd'
)
filterFields
(){
var
data
=
Util
.
deepClone
(
this
.
orderDetail
);
var
arr
=
[];
for
(
let
a
in
data
){
for
(
let
b
of
data
[
a
]){
arr
.
push
({
title
:
b
.
sType
,
child
:[]});
let
item
=
arr
[
arr
.
length
-
1
];
if
(
item
.
child
.
length
<=
0
){
item
.
child
.
push
({
child
:[]
})
}
}
})
this
.
DATA
=
hdrResult
[
0
];
},
filterFields
(
fields
,
arr
,
title
){
arr
.
push
({
title
:
title
,
child
:[]});
let
data
=
arr
[
arr
.
length
-
1
];
for
(
let
y
of
hdrFields
){
let
flag
=
false
;
if
(
data
.
child
.
length
<=
0
){
data
.
child
.
push
({
rowCount
:
y
.
rowCount
,
child
:[]
})
}
for
(
let
x
of
data
.
child
){
if
(
x
.
child
.
length
!=
x
.
rowCount
&&
x
.
rowCount
==
y
.
rowCount
){
flag
=
true
;
x
.
child
.
push
(
y
);
for
(
let
c
in
b
){
var
flag
=
false
;
for
(
let
d
of
item
.
child
){
if
(
c
!=
'sType'
){
if
(
d
.
child
.
length
<
2
){
d
.
child
.
push
({
key
:
c
,
value
:
b
[
c
]
})
flag
=
true
;
}
}
}
if
(
!
flag
&&
c
!=
'sType'
){
item
.
child
.
push
({
child
:[{
key
:
c
,
value
:
b
[
c
]}]})
}
}
}
if
(
!
flag
){
data
.
child
.
push
({
rowCount
:
y
.
rowCount
,
child
:[
y
]
})
}
}
}
return
arr
;
}
},
components
:{
...
...
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