Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform-ui
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
youjj
cloud-platform-ui
Commits
e129b723
Commit
e129b723
authored
Apr 29, 2019
by
lixy
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://113.105.137.151:22280/youjj/cloud-platform-ui
# Conflicts: # src/router/index.js
parents
cb564837
b1806089
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1130 additions
and
67 deletions
+1130
-67
index.js
src/api/branchCompany/stock/index.js
+47
-0
index.js
src/api/branchCompany/stockApply/index.js
+45
-0
index.js
src/api/vehicle/departureLog/index.js
+10
-0
index.js
src/router/index.js
+85
-66
index.vue
src/views/baseInfo/branchCompany/index.vue
+41
-1
index.vue
src/views/branchCompany/index.vue
+3
-0
index.vue
src/views/branchCompany/stock/index.vue
+424
-0
index.vue
src/views/branchCompany/stockApply/index.vue
+216
-0
index.vue
src/views/vehicle/vehicleDepartureLog/index.vue
+259
-0
No files found.
src/api/branchCompany/stock/index.js
0 → 100644
View file @
e129b723
import
fetch
from
'utils/fetch'
;
export
function
getObj
(
id
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/'
+
id
,
method
:
'get'
});
}
export
function
page
(
param
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/page'
,
method
:
'get'
,
params
:
param
});
}
export
function
search
(
param
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/search'
,
method
:
'get'
,
params
:
param
});
}
export
function
addObj
(
param
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock'
,
method
:
'put'
,
data
:
param
});
}
export
function
updateObj
(
param
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock'
,
method
:
'post'
,
data
:
param
});
}
export
function
delObj
(
id
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/'
+
id
,
method
:
'delete'
});
}
src/api/branchCompany/stockApply/index.js
0 → 100644
View file @
e129b723
import
fetch
from
'utils/fetch'
;
export
function
getObj
(
id
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/apply/'
+
id
,
method
:
'get'
});
}
export
function
page
(
param
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/apply/page'
,
method
:
'get'
,
params
:
param
});
}
export
function
delObj
(
id
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/apply/'
+
id
,
method
:
'delete'
});
}
export
function
buyStock
(
id
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/apply/buy'
,
method
:
'post'
,
params
:
{
applyId
:
id
}
});
}
export
function
cancelApply
(
id
)
{
return
fetch
({
url
:
'/vehicle/branchCompany/stock/apply/cancel'
,
method
:
'post'
,
params
:
{
applyId
:
id
}
});
}
src/api/vehicle/departureLog/index.js
0 → 100644
View file @
e129b723
import
fetch
from
'utils/fetch'
;
export
function
page
(
param
)
{
return
fetch
({
url
:
'/vehicle/departure/page'
,
method
:
'get'
,
params
:
param
});
}
src/router/index.js
View file @
e129b723
...
@@ -21,28 +21,28 @@ export const constantRouterMap = [{
...
@@ -21,28 +21,28 @@ export const constantRouterMap = [{
component
:
_import
(
'login/index'
),
component
:
_import
(
'login/index'
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'/authredirect'
,
path
:
'/authredirect'
,
component
:
_import
(
'login/authredirect'
),
component
:
_import
(
'login/authredirect'
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'/map'
,
path
:
'/map'
,
component
:
_import
(
'map'
),
component
:
_import
(
'map'
),
name
:
'地图'
,
name
:
'地图'
,
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'/404'
,
path
:
'/404'
,
component
:
_import
(
'error/404'
),
component
:
_import
(
'error/404'
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'/401'
,
path
:
'/401'
,
component
:
_import
(
'error/401'
),
component
:
_import
(
'error/401'
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'/'
,
path
:
'/'
,
component
:
Layout
,
component
:
Layout
,
redirect
:
'/dashboard'
,
redirect
:
'/dashboard'
,
...
@@ -52,8 +52,8 @@ export const constantRouterMap = [{
...
@@ -52,8 +52,8 @@ export const constantRouterMap = [{
path
:
'dashboard'
,
path
:
'dashboard'
,
component
:
_import
(
'dashboard/index'
)
component
:
_import
(
'dashboard/index'
)
}]
}]
},
},
{
{
path
:
'/introduction'
,
path
:
'/introduction'
,
component
:
Layout
,
component
:
Layout
,
redirect
:
'/introduction/index'
,
redirect
:
'/introduction/index'
,
...
@@ -64,7 +64,7 @@ export const constantRouterMap = [{
...
@@ -64,7 +64,7 @@ export const constantRouterMap = [{
component
:
_import
(
'introduction/index'
),
component
:
_import
(
'introduction/index'
),
name
:
'简述'
name
:
'简述'
}]
}]
}
}
]
]
export
default
new
Router
({
export
default
new
Router
({
...
@@ -177,27 +177,21 @@ export const asyncRouterMap = [{
...
@@ -177,27 +177,21 @@ export const asyncRouterMap = [{
component
:
_import
(
'vehicle/accompanyingItem/index'
),
component
:
_import
(
'vehicle/accompanyingItem/index'
),
name
:
'随行物品管理'
,
name
:
'随行物品管理'
,
authority
:
'accompanyingItem'
authority
:
'accompanyingItem'
}]
},
},
{
{
path
:
'branchCompany/stock'
,
path
:
'/companyInfo'
,
component
:
_import
(
'branchCompany/stock/index'
),
component
:
_import
(
'baseInfo/companyInfo/index'
),
name
:
'分公司股权信息管理'
,
name
:
'公司信息'
,
authority
:
'branchCompany/stock'
authority
:
'companyInfo'
},
},
{
{
path
:
'branchCompany/stockApply'
,
path
:
'/stockCrowd'
,
component
:
_import
(
'branchCompany/stockApply/index'
),
component
:
_import
(
'baseInfo/stockCrowd/index'
),
name
:
'分公司股权信息管理'
,
name
:
'股权众筹'
,
authority
:
'branchCompany/stockApply'
authority
:
'stockCrowd'
}
},
]
{
},
{
path
:
'/stockCrowdDetail'
,
component
:
_import
(
'baseInfo/stockCrowdDetail/index'
),
name
:
'股权众筹详情页'
,
authority
:
'stockCrowd'
},
{
path
:
'/vehicle'
,
path
:
'/vehicle'
,
component
:
Layout
,
component
:
Layout
,
name
:
'车辆管理'
,
name
:
'车辆管理'
,
...
@@ -221,6 +215,31 @@ export const asyncRouterMap = [{
...
@@ -221,6 +215,31 @@ export const asyncRouterMap = [{
component
:
_import
(
'vehicle/vehicleWarningMsg/index'
),
component
:
_import
(
'vehicle/vehicleWarningMsg/index'
),
name
:
'车辆预警消息'
,
name
:
'车辆预警消息'
,
authority
:
'vehicleWarningMsg'
authority
:
'vehicleWarningMsg'
},
{
path
:
'vehicleDepartureLog'
,
component
:
_import
(
'vehicle/vehicleDepartureLog/index'
),
name
:
'车辆出车记录'
,
authority
:
'vehicleDepartureLog'
}
}
]
]
}];
},
{
path
:
'/companyInfo'
,
component
:
_import
(
'baseInfo/companyInfo/index'
),
name
:
'公司信息'
,
authority
:
'companyInfo'
},
{
path
:
'/stockCrowd'
,
component
:
_import
(
'baseInfo/stockCrowd/index'
),
name
:
'股权众筹'
,
authority
:
'stockCrowd'
},
{
path
:
'/stockCrowdDetail'
,
component
:
_import
(
'baseInfo/stockCrowdDetail/index'
),
name
:
'股权众筹详情页'
,
authority
:
'stockCrowd'
}
];
src/views/baseInfo/branchCompany/index.vue
View file @
e129b723
...
@@ -60,6 +60,18 @@
...
@@ -60,6 +60,18 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"100"
align=
"center"
label=
"经度"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
longitude
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"100"
align=
"center"
label=
"纬度"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
latitude
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"180"
align=
"center"
label=
"最后更新时间"
>
<el-table-column
width=
"180"
align=
"center"
label=
"最后更新时间"
>
<
template
scope=
"scope"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
updateTime
?
scope
.
row
.
updateTime
:
scope
.
row
.
createTime
}}
</span>
<span>
{{
scope
.
row
.
updateTime
?
scope
.
row
.
updateTime
:
scope
.
row
.
createTime
}}
</span>
...
@@ -91,7 +103,7 @@
...
@@ -91,7 +103,7 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model
.
number=
"form.status"
placeholder=
"请选择
省份(直辖市)
"
>
<el-select
v-model
.
number=
"form.status"
placeholder=
"请选择
状态
"
>
<el-option
v-for=
"(val, key, index) in companyStatusAndCode "
:key=
"val.code"
:label=
"val.val"
<el-option
v-for=
"(val, key, index) in companyStatusAndCode "
:key=
"val.code"
:label=
"val.val"
:value=
"val.code"
></el-option>
:value=
"val.code"
></el-option>
</el-select>
</el-select>
...
@@ -127,6 +139,14 @@
...
@@ -127,6 +139,14 @@
<el-input
v-model=
"form.addrDetail"
placeholder=
"请输入详细地址"
></el-input>
<el-input
v-model=
"form.addrDetail"
placeholder=
"请输入详细地址"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"经度"
prop=
"longitude"
>
<el-input
v-model
.
number=
"form.longitude"
placeholder=
"请输入经度"
></el-input>
</el-form-item>
<el-form-item
label=
"纬度"
prop=
"latitude"
>
<el-input
v-model
.
number=
"form.latitude"
placeholder=
"请输入纬度"
></el-input>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel('form')"
>
取 消
</el-button>
<el-button
@
click=
"cancel('form')"
>
取 消
</el-button>
...
@@ -167,10 +187,28 @@
...
@@ -167,10 +187,28 @@
addrTown
:
undefined
,
addrTown
:
undefined
,
addrDetail
:
undefined
,
addrDetail
:
undefined
,
leader
:
undefined
,
leader
:
undefined
,
longitude
:
undefined
,
latitude
:
undefined
,
leaderContactInfo
:
undefined
,
leaderContactInfo
:
undefined
,
updateTime
:
undefined
updateTime
:
undefined
},
},
rules
:
{
rules
:
{
latitude
:
[
{
type
:
'number'
,
required
:
false
,
message
:
'请输入数字'
,
trigger
:
'blur'
}
],
longitude
:
[
{
type
:
'number'
,
required
:
false
,
message
:
'请输入数字'
,
trigger
:
'blur'
}
],
status
:
[
status
:
[
{
{
type
:
'integer'
,
type
:
'integer'
,
...
@@ -470,6 +508,8 @@
...
@@ -470,6 +508,8 @@
addrTown
:
undefined
,
addrTown
:
undefined
,
addrDetail
:
undefined
,
addrDetail
:
undefined
,
leader
:
undefined
,
leader
:
undefined
,
longitude
:
undefined
,
latitude
:
undefined
,
leaderContactInfo
:
undefined
,
leaderContactInfo
:
undefined
,
updateTime
:
undefined
updateTime
:
undefined
};
};
...
...
src/views/branchCompany/index.vue
0 → 100644
View file @
e129b723
<
template
>
<router-view></router-view>
</
template
>
src/views/branchCompany/stock/index.vue
0 → 100644
View file @
e129b723
<
template
>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"filter-container"
>
<el-input
@
keyup
.
enter
.
native=
"handleFilter"
style=
"width: 200px;"
class=
"filter-item"
placeholder=
"公司名称"
v-model=
"listQuery.companyName"
></el-input>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
icon=
"search"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
v-if=
"btn_add"
style=
"margin-left: 10px;"
@
click=
"handleCreate"
type=
"primary"
icon=
"edit"
>
添加
</el-button>
</div>
<el-table
:key=
'tableKey'
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
label=
"ID"
width=
"65"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"110"
align=
"center"
label=
"公司名称"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
companyName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"110"
align=
"center"
label=
"剩余份额"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
balance
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"150"
align=
"center"
label=
"总份额"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
total
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"180"
align=
"center"
label=
"股权单价"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
price
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"180"
align=
"center"
label=
"地区"
>
<
template
scope=
"scope"
>
<span>
{{
getAddrStr
(
scope
.
row
.
addrProvince
,
scope
.
row
.
addrCity
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"180"
align=
"center"
label=
"状态"
>
<
template
scope=
"scope"
>
<span>
{{
stockStateStr
.
get
(
scope
.
row
.
state
).
label
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"150"
>
<
template
scope=
"scope"
>
<el-button
v-if=
"btn_edit"
size=
"small"
type=
"success"
@
click=
"handleUpdate(scope.row)"
>
编辑
</el-button>
<el-button
v-if=
"btn_del"
size=
"small"
type=
"danger"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
<el-dialog
:title=
"textMap[dialogStatus]"
:visible
.
sync=
"dialogFormVisible"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"form"
label-width=
"100px"
>
<el-form-item
label=
"公司名称"
prop=
"companyName"
>
<el-input
v-model=
"form.companyName"
placeholder=
"请输入公司名称"
></el-input>
</el-form-item>
<el-form-item
label=
"剩余份额"
prop=
"balance"
>
<el-input
v-model
.
number=
"form.balance"
placeholder=
"请输入剩余份额"
></el-input>
</el-form-item>
<el-form-item
label=
"总份额"
prop=
"total"
>
<el-input
v-model
.
number=
"form.total"
placeholder=
"请输入总份额"
></el-input>
</el-form-item>
<el-form-item
label=
"股权单价"
prop=
"price"
>
<el-input
v-model
.
number=
"form.price"
placeholder=
"请输入股权单价"
></el-input>
</el-form-item>
<el-form-item
label=
"省份"
prop=
"addrProvince"
>
<el-select
v-model
.
number=
"form.addrProvince"
placeholder=
"请选择省份(直辖市)"
>
<el-option
v-for=
"item in provinceRegions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"城市"
prop=
"addrCity"
>
<el-select
v-model
.
number=
"form.addrCity"
placeholder=
"请选择城市"
>
<el-option
v-for=
"item in cityRegions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"状态"
>
<el-select
class=
"filter-item"
v-model
.
number=
"state"
placeholder=
"请选择"
@
change=
"change()"
>
<el-option
v-for=
"item in Array.from(stockStateStr.keys())"
:key=
"stockStateStr.get(item).key"
:label=
"stockStateStr.get(item).label"
:value=
"stockStateStr.get(item).value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"公司图片"
prop=
"drivingLicensePath"
:style=
"{display:'block'}"
>
<el-upload
class=
"avatar-uploader"
:action=
"BASE_API + '/vehicle/branchCompany/stock/upload/companyPic'"
:show-file-list=
"false"
:headers=
"getHeaderWithToken"
:on-success=
"handleAvatarSuccess"
:before-upload=
"beforeAvatarUpload"
:style=
"{display:'block'}"
>
<img
v-if=
"$utils.isString(form.companyPic) && !$utils.isEmpty(form.companyPic)"
:src=
"getCompanyPicUrl(form.companyPic)"
class=
"avatar"
:style=
"{display:'block'}"
>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
:style=
"{lineHeight:'350px'}"
></i>
</el-upload>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleCancel('form')"
>
取 消
</el-button>
<el-button
v-if=
"dialogStatus=='create'"
type=
"primary"
@
click=
"create('form')"
>
确 定
</el-button>
<el-button
v-else
type=
"primary"
@
click=
"update('form')"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
search
,
getObj
,
addObj
,
updateObj
,
delObj
}
from
'api/branchCompany/stock/index'
;
import
{
getSonRegionByCodes
,
getRegionByCodes
}
from
'api/base_info/region/'
;
import
{
getToken
}
from
'utils/auth'
;
import
{
mapGetters
}
from
'vuex'
;
import
rsCode
from
'../../../utils/rsCode'
;
export
default
{
name
:
'branchCompanyStock'
,
data
()
{
return
{
BASE_API
:
process
.
env
.
BASE_API
,
showLoadingBody
:
false
,
state
:
null
,
stockStateStr
:
new
Map
([
[
-
1
,
{
key
:
-
1
,
label
:
'下架'
,
value
:
-
1
}],
[
0
,
{
key
:
0
,
label
:
'筹备中'
,
v1ue
:
0
}],
[
1
,
{
key
:
1
,
label
:
'筹备完成'
,
value
:
1
}],
[
2
,
{
key
:
2
,
label
:
'上架'
,
value
:
2
}]
]),
form
:
{
id
:
null
,
companyName
:
null
,
balance
:
null
,
total
:
null
,
price
:
null
,
addrProvince
:
null
,
addrCity
:
null
,
state
:
null
,
companyPic
:
null
},
rules
:
{
companyName
:
[
{
required
:
true
,
message
:
'请输入用户'
,
trigger
:
'blur'
}
],
total
:
[
{
required
:
true
,
message
:
'请输入总份额'
}
],
price
:
[
{
required
:
true
,
message
:
'请输入股权单价'
}
]
},
list
:
null
,
total
:
null
,
listLoading
:
true
,
listQuery
:
{
page
:
1
,
limit
:
20
,
companyName
:
null
},
dialogFormVisible
:
false
,
dialogStatus
:
''
,
btn_edit
:
false
,
btn_del
:
false
,
btn_add
:
false
,
textMap
:
{
update
:
'编辑'
,
create
:
'创建'
},
tableKey
:
0
,
addrProvince
:
[
{
required
:
true
,
type
:
'number'
,
message
:
'请选择省份'
,
trigger
:
'blur'
}
],
addrCity
:
[
{
required
:
true
,
type
:
'number'
,
message
:
'请选择城市'
,
trigger
:
'blur'
},
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
$utils
.
isInteger
(
this
.
form
.
addrProvince
)
&&
value
.
toString
().
substr
(
0
,
2
)
!=
this
.
form
.
addrProvince
.
toString
().
substr
(
0
,
2
))
{
return
callback
(
new
Error
(
'请选择省份下相应城市'
));
}
callback
();
},
trigger
:
'blur'
}
]
}
},
created
()
{
this
.
getList
();
this
.
btn_edit
=
this
.
elements
[
'branchCompany/stock:btn_update'
];
this
.
btn_del
=
this
.
elements
[
'branchCompany/stock:btn_delete'
];
this
.
btn_add
=
this
.
elements
[
'branchCompany/stock:btn_add'
];
},
computed
:
{
...
mapGetters
([
'elements'
]),
provinceRegions
()
{
return
getSonRegionByCodes
(
1
);
},
cityRegions
()
{
if
(
!
this
.
$utils
.
isInteger
(
this
.
form
.
addrProvince
))
{
return
null
;
}
return
getSonRegionByCodes
(
this
.
form
.
addrProvince
);
},
getHeaderWithToken
()
{
return
{
Authorization
:
getToken
()};
}
},
methods
:
{
getCompanyPicUrl
(
companyPic
)
{
return
process
.
env
.
BASE_API
+
'/vehicle/branchCompany/stock/download/companyPic?realFileRelPath='
+
encodeURI
(
companyPic
);
},
beforeAvatarUpload
(
file
)
{
const
isJPG
=
file
.
type
===
'image/jpeg'
||
file
.
type
===
'image/gif'
;
const
isLt2M
=
file
.
size
/
1024
/
1024
<
10
;
if
(
!
isJPG
)
{
this
.
$message
.
error
(
'上传图片只能是 JPG/GIF 格式!'
);
}
if
(
!
isLt2M
)
{
this
.
$message
.
error
(
'上传图片大小不能超过 10MB!'
);
}
this
.
showLoadingBody
=
true
;
return
isJPG
&&
isLt2M
;
},
handleAvatarSuccess
(
res
)
{
this
.
form
.
companyPic
=
res
.
data
;
this
.
showLoadingBody
=
false
;
this
.
$forceUpdate
();
},
handleUpdate
(
row
)
{
getObj
(
row
.
id
)
.
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
dialogFormVisible
=
true
;
this
.
dialogStatus
=
'update'
;
});
},
handleDelete
(
row
)
{
this
.
$confirm
(
'此操作将永久删除, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
delObj
(
row
.
id
)
.
then
(()
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
'删除成功'
,
type
:
'success'
,
duration
:
2000
});
const
index
=
this
.
list
.
indexOf
(
row
);
this
.
list
.
splice
(
index
,
1
);
});
});
},
update
(
formName
)
{
const
set
=
this
.
$refs
;
set
[
formName
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
dialogFormVisible
=
false
;
this
.
form
.
password
=
undefined
;
updateObj
(
this
.
form
).
then
(()
=>
{
this
.
dialogFormVisible
=
false
;
this
.
getList
();
this
.
$notify
({
title
:
'成功'
,
message
:
'修改成功'
,
type
:
'success'
,
duration
:
2000
});
});
}
else
{
return
false
;
}
});
},
getAddrStr
(
addrProvince
,
addrCity
)
{
if
(
addrProvince
&&
addrProvince
)
{
const
regions
=
getRegionByCodes
([
addrProvince
,
addrCity
]);
return
regions
[
0
].
name
+
' '
+
regions
[
1
].
name
;
}
return
''
;
},
create
(
formName
)
{
const
set
=
this
.
$refs
;
set
[
formName
].
validate
(
valid
=>
{
if
(
valid
)
{
addObj
(
this
.
form
)
.
then
(
response
=>
{
if
(
response
.
code
===
rsCode
.
RS_CODE_SUC
)
{
this
.
dialogFormVisible
=
false
;
this
.
getList
();
this
.
$notify
({
title
:
'成功'
,
message
:
'创建成功'
,
type
:
'success'
,
duration
:
2000
});
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
rsCode
.
msg
[
response
.
code
]
?
rsCode
.
msg
[
response
.
code
]
:
'操作失败!'
,
type
:
'error'
,
duration
:
2000
});
}
})
}
else
{
return
false
;
}
});
},
handleCancel
(
formName
)
{
this
.
dialogFormVisible
=
false
;
this
.
$refs
[
formName
].
resetFields
();
},
handleCreate
()
{
this
.
cleanForm
();
this
.
dialogStatus
=
'create'
;
this
.
dialogFormVisible
=
true
;
},
cleanForm
()
{
this
.
form
=
{
id
:
null
,
companyName
:
null
,
balance
:
null
,
total
:
null
,
price
:
null
,
addrProvince
:
null
,
addrCity
:
null
};
},
getList
()
{
this
.
listLoading
=
true
;
search
(
this
.
listQuery
)
.
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
listLoading
=
false
;
})
},
handleFilter
()
{
this
.
getList
();
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
},
change
()
{
this
.
form
.
state
=
this
.
state
;
}
}
}
</
script
>
src/views/branchCompany/stockApply/index.vue
0 → 100644
View file @
e129b723
<
template
>
<div
class=
"app-container calendar-list-container"
>
<el-table
:key=
'tableKey'
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
label=
"ID"
width=
"65"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"110"
align=
"center"
label=
"公司名称"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
companyName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"110"
align=
"center"
label=
"申请人"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
name
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"150"
align=
"center"
label=
"联系方式"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
tel
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"180"
align=
"center"
label=
"购买数量"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
count
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"180"
align=
"center"
label=
"状态"
>
<
template
scope=
"scope"
>
<span>
{{
applyState
[
scope
.
row
.
state
].
label
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"180"
align=
"center"
label=
"创建时间"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
createTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"150"
>
<
template
scope=
"scope"
>
<el-button
v-if=
"btn_buy && scope.row.state == 0"
size=
"small"
type=
"success"
@
click=
"handleBuy(scope.row)"
>
认购
</el-button>
<el-button
v-if=
"btn_cancel && scope.row.state == 0"
size=
"small"
type=
"success"
@
click=
"handleCancel(scope.row)"
>
放弃
</el-button>
<el-button
v-if=
"btn_del"
size=
"small"
type=
"danger"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
</div>
</template>
<
script
>
import
{
page
,
delObj
,
buyStock
,
cancelApply
}
from
'api/branchCompany/stockApply/index'
;
import
{
mapGetters
}
from
'vuex'
;
import
rsCode
from
'../../../utils/rsCode'
;
export
default
{
name
:
'branchCompanyStock'
,
data
()
{
return
{
form
:
{
id
:
null
,
companyId
:
null
,
companyName
:
null
,
name
:
null
,
tel
:
null
,
count
:
null
,
state
:
null
},
rules
:
{
// companyName: [
// {
// required: true,
// message: '请输入用户',
// trigger: 'blur'
// }
// ],
},
applyState
:
{
'-1'
:
{
key
:
-
1
,
label
:
'放弃购买'
},
0
:
{
key
:
0
,
label
:
'申请中'
},
1
:
{
key
:
1
,
label
:
'确认购买'
}
},
list
:
null
,
total
:
null
,
listLoading
:
true
,
listQuery
:
{
page
:
1
,
limit
:
20
},
dialogFormVisible
:
false
,
dialogStatus
:
''
,
btn_del
:
true
,
btn_buy
:
true
,
btn_cancel
:
true
,
tableKey
:
0
}
},
created
()
{
this
.
getList
();
this
.
btn_del
=
this
.
elements
[
'branchCompany/stockApply:btn_delete'
];
},
computed
:
{
...
mapGetters
([
'elements'
]),
provinceRegions
()
{
return
getSonRegionByCodes
(
1
);
},
cityRegions
()
{
if
(
!
this
.
$utils
.
isInteger
(
this
.
form
.
addrProvince
))
{
return
null
;
}
return
getSonRegionByCodes
(
this
.
form
.
addrProvince
);
}
},
methods
:
{
handleBuy
(
row
)
{
this
.
$confirm
(
'此操作将确认购买, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
buyStock
(
row
.
id
)
.
then
(()
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
'操作成功'
,
type
:
'success'
,
duration
:
2000
});
this
.
getList
();
});
});
},
handleCancel
(
row
)
{
this
.
$confirm
(
'此操作将放弃购买, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
cancelApply
(
row
.
id
)
.
then
(()
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
'操作成功'
,
type
:
'success'
,
duration
:
2000
});
this
.
getList
();
});
});
},
handleDelete
(
row
)
{
this
.
$confirm
(
'此操作将永久删除, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
delObj
(
row
.
id
)
.
then
(()
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
'删除成功'
,
type
:
'success'
,
duration
:
2000
});
const
index
=
this
.
list
.
indexOf
(
row
);
this
.
list
.
splice
(
index
,
1
);
});
});
},
getList
()
{
this
.
listLoading
=
true
;
page
(
this
.
listQuery
)
.
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
listLoading
=
false
;
})
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
}
}
}
</
script
>
src/views/vehicle/vehicleDepartureLog/index.vue
0 → 100644
View file @
e129b723
<
template
>
<div
class=
"app-container calendar-list-container"
>
<!--
<div
class=
"filter-container"
>
-->
<!--
<el-input
@
keyup
.
enter
.
native=
"handleFilter"
style=
"width: 200px;"
class=
"filter-item"
placeholder=
"车牌号"
--
>
<!-- v-model="listQuery.name">
</el-input>
-->
<!--
<el-button
class=
"filter-item"
type=
"primary"
v-waves
icon=
"search"
@
click=
"handleFilter"
>
搜索
</el-button>
-->
<!--
</div>
-->
<el-table
:key=
'tableKey'
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
label=
"车牌号"
width=
"65"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
row
.
numberPlate
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"用途"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
use
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"使用人"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
user
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"使用人电话"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
userTel
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"验车人"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
checkMan
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"验车人电话"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
checkManTel
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"出车时间"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
departureTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"还车时间"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
arrivalTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"开始公里数"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
mileageStart
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"80"
align=
"center"
label=
"结束公里数"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
mileageEnd
}}
</span>
</
template
>
</el-table-column>
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
<el-dialog
:title=
"textMap[dialogStatus]"
:visible
.
sync=
"dialogFormVisible"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"form"
label-width=
"100px"
>
<el-form-item
label=
"姓名"
prop=
"name"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
<el-form-item
label=
"性别"
>
<el-select
class=
"filter-item"
v-model=
"form.sex"
placeholder=
"请选择"
>
<el-option
v-for=
"item in sexOptions"
:key=
"item.key"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"卡号"
prop=
"cardNumber"
>
<el-input
v-model=
"form.cardNumber"
placeholder=
"请输入卡号"
></el-input>
</el-form-item>
<el-form-item
label=
"生日"
prop=
"birthday"
>
<el-date-picker
v-model=
"form.birthday"
type=
"date"
@
change=
"changeBirthday"
placeholder=
"请输入生日"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"身份证号码"
prop=
"idNumber"
>
<el-input
v-model=
"form.idNumber"
placeholder=
"请输入身份证号码"
></el-input>
</el-form-item>
<el-form-item
label=
"证件地址"
prop=
"certificateAddress"
>
<el-input
v-model=
"form.certificateAddress"
placeholder=
"请输入证件地址"
></el-input>
</el-form-item>
<el-form-item
label=
"电子邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
placeholder=
"请输入电子邮箱"
></el-input>
</el-form-item>
<el-form-item
label=
"微信"
prop=
"wx"
>
<el-input
v-model=
"form.wx"
placeholder=
"请输入微信号"
></el-input>
</el-form-item>
<el-form-item
label=
"会员类型"
prop=
"memberType"
>
<el-select
class=
"filter-item"
v-model=
"form.memberType"
placeholder=
"请选择"
>
<el-option
v-for=
"item in memberTypeOptions"
:key=
"item.key"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"联系电话"
prop=
"telephone"
>
<el-input
v-model=
"form.telephone"
placeholder=
"请输入联系电话"
></el-input>
</el-form-item>
<el-form-item
label=
"手机"
prop=
"mobilePhone"
>
<el-input
v-model=
"form.mobilePhone"
placeholder=
"请输入手机号码"
></el-input>
</el-form-item>
<el-form-item
label=
"常住地址"
prop=
"address"
>
<el-input
v-model=
"form.address"
placeholder=
"请输入常住地址"
></el-input>
</el-form-item>
<el-form-item
label=
"工作单位"
prop=
"workplace"
>
<el-input
v-model=
"form.workplace"
placeholder=
"请输入工作单位"
></el-input>
</el-form-item>
<el-form-item
label=
"职务"
prop=
"job"
>
<el-input
v-model=
"form.job"
placeholder=
"请输入职务"
></el-input>
</el-form-item>
<el-form-item
label=
"邀约人"
prop=
"inviter"
>
<el-input
v-model=
"form.inviter"
placeholder=
"请输入邀约人"
></el-input>
</el-form-item>
<el-form-item
label=
"职业"
prop=
"profession"
>
<el-input
v-model=
"form.profession"
placeholder=
"请输入职业"
></el-input>
</el-form-item>
<el-form-item
label=
"支付方式"
prop=
"payType"
>
<el-select
class=
"filter-item"
v-model=
"form.payType"
placeholder=
"请选择"
>
<el-option
v-for=
"item in payTypeOptions"
:key=
"item.key"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"会员签名日期"
prop=
"memberSignatureDate"
>
<el-date-picker
v-model=
"form.memberSignatureDate"
type=
"date"
@
change=
"changeMemberSignatureDate"
value-format=
"yyyy-MM-dd"
placeholder=
"请输入会员签名日期"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"经理"
prop=
"manager"
>
<el-input
v-model=
"form.manager"
placeholder=
"请输入经理姓名"
></el-input>
</el-form-item>
<el-form-item
label=
"经理签名日期"
prop=
"managerSignatureDate"
>
<el-date-picker
v-model=
"form.managerSignatureDate"
type=
"date"
@
change=
"changeManagerSignatureDate"
value-format=
"yyyy-MM-dd"
placeholder=
"请输入经理签名日期"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"家庭成员"
prop=
"family"
>
<el-row
v-for=
"(item, index) in form.family"
>
<el-col
:span=
"9"
>
<el-input
v-model=
"item.name"
placeholder=
"成员名称"
></el-input>
</el-col>
<el-col
class=
"line"
:span=
"2"
align=
"center"
>
-
</el-col>
<el-col
:span=
"9"
>
<el-input
v-model=
"item.relationship"
placeholder=
"成员关系"
></el-input>
</el-col>
<el-col
:span=
"4"
align=
"center"
>
<el-button
@
click=
"handleDeleteFamily(index)"
type=
"warning"
size=
"mini"
icon=
"el-tag__close el-icon-close"
></el-button>
</el-col>
</el-row>
<el-row>
<el-button
@
click=
"handleAddFamily()"
>
添加
</el-button>
</el-row>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel('form')"
>
取 消
</el-button>
<el-button
v-if=
"dialogStatus=='create'"
type=
"primary"
@
click=
"create('form')"
>
确 定
</el-button>
<el-button
v-else
type=
"primary"
@
click=
"update('form')"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
mapGetters
}
from
'vuex'
;
import
{
page
}
from
'api/vehicle/departureLog'
;
export
default
{
name
:
'vehicleDepartureLog'
,
data
()
{
return
{
form
:
{
id
:
null
,
numberPlate
:
null
,
vehicleId
:
null
,
use
:
null
,
user
:
null
,
userTel
:
null
,
checkMan
:
null
,
checkManTel
:
null
,
recycleMan
:
null
,
recycleManTel
:
null
,
departureTime
:
null
,
arrivalTime
:
null
,
mileageStart
:
null
,
mileageEnd
:
null
,
state
:
null
},
list
:
null
,
total
:
null
,
listLoading
:
true
,
listQuery
:
{
page
:
1
,
limit
:
20
,
name
:
undefined
},
dialogStatus
:
''
,
textMap
:
{
update
:
'编辑'
,
create
:
'创建'
},
tableKey
:
0
}
},
created
()
{
this
.
getList
();
},
computed
:
{
...
mapGetters
([
'elements'
])
},
methods
:
{
handleFilter
()
{
this
.
getList
();
},
getList
()
{
this
.
listLoading
=
true
;
page
(
this
.
listQuery
)
.
then
(
response
=>
{
this
.
list
=
response
.
data
.
rows
;
this
.
total
=
response
.
data
.
total
;
this
.
listLoading
=
false
;
})
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
}
}
}
</
script
>
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