Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-web-h5app-drs
Overview
Overview
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
zhuxiaomei
patzn-cloud-web-h5app-drs
Commits
c55e1d4c
Commit
c55e1d4c
authored
Mar 11, 2021
by
zhuxiaomei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
维护人员地点
parent
8e1e6a81
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
362 additions
and
41 deletions
+362
-41
RandomCreate.vue
src/page/sampling-plan/RandomCreate.vue
+194
-0
AddMaintain.vue
src/page/sampling-plan/add/AddMaintain.vue
+0
-1
SamplingPlanAdd.vue
src/page/sampling-plan/add/SamplingPlanAdd.vue
+3
-3
TaskRequirements.vue
src/page/sampling-plan/add/TaskRequirements.vue
+2
-2
CreateLocDIS.vue
src/page/sampling-plan/loc/CreateLocDIS.vue
+1
-1
LocAdd.vue
src/page/sampling-plan/loc/LocAdd.vue
+14
-10
SelectLoc.vue
src/page/sampling-plan/loc/SelectLoc.vue
+25
-24
CreateSamplerDIS.vue
src/page/sampling-plan/sampler/CreateSamplerDIS.vue
+0
-0
SamplerLab.vue
src/page/sampling-plan/sampler/SamplerLab.vue
+123
-0
No files found.
src/page/sampling-plan/RandomCreate.vue
0 → 100644
View file @
c55e1d4c
<
template
>
<div>
<div
class=
"layout-cont-btn"
>
<van-form>
<van-field
v-model=
"count"
name=
"count"
type=
"digit"
required
center
label=
"人员随机数量"
placeholder=
"请输入人员随机数量"
:rules=
"[
{ required: true, message: '' }]">
<template
#
button
>
<van-button
size=
"small"
type=
"info"
@
click=
"_create"
>
生成
</van-button>
</
template
>
</van-field>
<van-field
label=
"人员"
center
>
<
template
#
input
>
<Tag
v-for=
"(item,index) in userList"
:key=
"item.id"
:name=
"index"
closable
@
on-close=
"_handleClose"
>
{{
item
.
name
}}
</Tag>
<van-button
size=
"small"
type=
"default"
@
click=
"_add"
>
添加
</van-button>
</
template
>
</van-field>
</van-form>
<van-form>
<van-field
v-model=
"locCount"
name=
"count"
type=
"digit"
required
center
label=
"地点随机数量"
placeholder=
"请输入地点随机数量"
:rules=
"[{ required: true, message: '' }]"
>
<
template
#
button
>
<van-button
size=
"small"
type=
"info"
@
click=
"_locCreate"
>
生成
</van-button>
</
template
>
</van-field>
<van-field
label=
"地点"
center
>
<
template
#
input
>
<Tag
v-for=
"(item,index) in locList"
:key=
"item.id"
:name=
"index"
closable
@
on-close=
"_handleLocClose"
>
{{
item
.
name
}}
</Tag>
<van-button
size=
"small"
type=
"default"
@
click=
"_addLoc"
>
添加
</van-button>
</
template
>
</van-field>
</van-form>
</div>
<van-popup
v-model=
"showAllSelect"
>
<SelectSamplerChecked
@
cancel=
"showAllSelect=false"
@
on-change=
"_selectChange"
ref=
"select"
></SelectSamplerChecked>
</van-popup>
<van-popup
v-model=
"showSelect"
>
<SelectLocChecked
@
cancel=
"showSelect=false"
@
on-change=
"_selectLocChange"
ref=
"selectLoc"
></SelectLocChecked>
</van-popup>
<div
class=
"bottom-btn"
style=
"position: fixed;bottom: 0"
>
<van-button
type=
"info"
block
@
click=
"_save"
>
保存
</van-button>
</div>
</div>
</template>
<
script
>
import
{
samplingPlan
}
from
'../../api'
import
SelectSamplerChecked
from
'./sampler/SelectSamplerChecked'
import
SelectLocChecked
from
'./add/loc/SelectLocChecked'
export
default
{
name
:
"CreateSampler"
,
components
:
{
SelectSamplerChecked
,
SelectLocChecked
},
data
()
{
return
{
showAllSelect
:
false
,
planId
:
''
,
count
:
''
,
userList
:
[],
showSelect
:
false
,
locCount
:
''
,
locList
:
[]
}
},
mounted
()
{
this
.
planId
=
this
.
$route
.
query
.
planId
this
.
_getInfo
()
},
methods
:
{
_getInfo
:
async
function
()
{
const
result
=
await
samplingPlan
.
getSamplerPlace
({
planId
:
this
.
planId
})
if
(
result
)
{
this
.
userList
=
result
.
samplers
this
.
locList
=
result
.
places
;
}
},
_create
:
async
function
()
{
if
(
this
.
count
)
{
let
result
=
await
samplingPlan
.
generateSampler
({
count
:
this
.
count
,
planId
:
this
.
planId
})
if
(
result
)
{
this
.
$toast
(
'生成成功!'
)
this
.
userList
=
result
}
}
else
{
this
.
$toast
(
"请输入随机数量"
)
}
},
_handleClose
(
event
,
index
)
{
this
.
userList
.
splice
(
index
,
1
);
},
_add
()
{
this
.
showAllSelect
=
true
this
.
$nextTick
(
function
()
{
this
.
$refs
.
select
.
_open
(
this
.
planId
)
})
},
_selectChange
(
res
)
{
this
.
showAllSelect
=
false
this
.
userList
=
[...
res
,
...
this
.
userList
]
},
_save
:
async
function
()
{
if
(
this
.
userList
.
length
===
0
)
{
this
.
$toast
(
'请生成人员!'
)
}
else
if
(
this
.
locList
.
length
===
0
)
{
this
.
$toast
(
'请生成地点!'
)
}
else
{
let
result
=
await
samplingPlan
.
saveSamplerRandom
({
planId
:
this
.
planId
,
samplerIds
:
this
.
userList
.
map
(
item
=>
item
.
id
).
join
(
','
)
})
let
resultLoc
=
await
samplingPlan
.
savePlace
({
planId
:
this
.
planId
,
placeIds
:
this
.
locList
.
map
(
item
=>
item
.
id
).
join
(
','
)
})
if
(
result
&&
resultLoc
)
{
this
.
$toast
(
'保存成功!'
)
this
.
$router
.
go
(
-
2
)
}
}
},
_locCreate
:
async
function
()
{
if
(
this
.
locCount
)
{
let
result
=
await
samplingPlan
.
generatePlace
({
count
:
this
.
locCount
,
planId
:
this
.
planId
})
if
(
result
)
{
this
.
$toast
(
'生成成功!'
)
this
.
locList
=
result
}
}
else
{
this
.
$toast
(
"请输入随机数量"
)
}
},
_handleLocClose
(
event
,
name
)
{
const
index
=
this
.
locList
.
indexOf
(
name
);
this
.
locList
.
splice
(
index
,
1
);
},
_addLoc
()
{
this
.
showSelect
=
true
this
.
$nextTick
(
function
()
{
this
.
$refs
.
selectLoc
.
_open
(
this
.
planId
)
})
},
_selectLocChange
(
res
)
{
this
.
showSelect
=
false
this
.
locList
=
[...
res
,
...
this
.
locList
]
},
_back
()
{
this
.
$emit
(
'back'
)
},
_submit
:
async
function
()
{
if
(
this
.
userList
.
length
===
0
)
{
this
.
$toast
(
'请生成人员!'
)
}
else
if
(
this
.
locList
.
length
===
0
)
{
this
.
$toast
(
'请生成地点!'
)
}
else
{
let
result
=
await
samplingPlan
.
saveSubmitPlan
({
planId
:
this
.
planId
,
samplerIds
:
this
.
userList
.
map
(
item
=>
item
.
id
).
join
(
','
),
placeIds
:
this
.
locList
.
map
(
item
=>
item
.
id
).
join
(
','
)
})
if
(
result
)
{
this
.
$toast
(
'操作成功!'
)
this
.
$router
.
go
(
-
1
)
}
}
}
}
}
</
script
>
<
style
scoped
>
</
style
>
src/page/sampling-plan/add/
MaintainComponent
.vue
→
src/page/sampling-plan/add/
AddMaintain
.vue
View file @
c55e1d4c
...
...
@@ -70,7 +70,6 @@ import LocAdd from './loc/LocAdd'
import
SelectLoc
from
'./loc/SelectLoc'
export
default
{
name
:
"Maintain"
,
components
:
{
SamplerLab
,
LocAdd
,
...
...
src/page/sampling-plan/add/SamplingPlanAdd.vue
View file @
c55e1d4c
...
...
@@ -98,7 +98,7 @@
</van-form>
</div>
<div
v-else-if=
"active===1"
style=
"height: calc(100% - 63px)"
>
<
MaintainComponent
ref=
"maintain"
@
back=
"active--"
@
next=
"_nextTab3"
></MaintainComponent
>
<
AddMaintain
ref=
"maintain"
@
back=
"active--"
@
next=
"_nextTab3"
></AddMaintain
>
</div>
<div
v-else-if=
"active===2"
style=
"height: calc(100% - 63px)"
>
<TaskRequirements
ref=
"task"
@
next=
"_saveCreate"
@
back=
"active--"
></TaskRequirements>
...
...
@@ -119,13 +119,13 @@
<
script
>
import
{
samplingPlan
}
from
'../../../api'
import
TaskRequirements
from
'./TaskRequirements'
import
MaintainComponent
from
'./MaintainComponent
'
import
AddMaintain
from
'./AddMaintain
'
export
default
{
name
:
"SamplingPlanAdd"
,
components
:
{
TaskRequirements
,
MaintainComponent
,
AddMaintain
,
},
data
()
{
return
{
...
...
src/page/sampling-plan/add/TaskRequirements.vue
View file @
c55e1d4c
...
...
@@ -31,8 +31,8 @@
name=
"count"
type=
"digit"
required
center
label=
"随机数量"
placeholder=
"请输入随机数量"
label=
"
地点
随机数量"
placeholder=
"请输入
地点
随机数量"
:rules=
"[{ required: true, message: '' }]"
>
<
template
#
button
>
<van-button
size=
"small"
type=
"info"
@
click=
"_locCreate"
>
生成
</van-button>
...
...
src/page/sampling-plan/loc/CreateLoc.vue
→
src/page/sampling-plan/loc/CreateLoc
DIS
.vue
View file @
c55e1d4c
...
...
@@ -35,7 +35,7 @@
<
script
>
import
{
samplingPlan
}
from
'../../../api'
import
SelectLocChecked
from
'./SelectLocChecked'
import
SelectLocChecked
from
'.
./add/loc
/SelectLocChecked'
export
default
{
name
:
"CreateLoc"
,
...
...
src/page/sampling-plan/loc/LocAdd.vue
View file @
c55e1d4c
...
...
@@ -37,9 +37,9 @@
</
template
>
<
script
>
import
{
samplingPlace
}
from
'../../../api'
import
{
samplingPlace
}
from
'../../../api'
export
default
{
export
default
{
name
:
"LocAdd"
,
data
()
{
return
{
...
...
@@ -52,26 +52,30 @@
planId
:
''
}
},
mounted
()
{
this
.
planId
=
this
.
$route
.
query
.
planId
},
//
mounted() {
//
this.planId = this.$route.query.planId
//
},
methods
:
{
_save
(){
_open
(
planId
)
{
this
.
planId
=
planId
this
.
formObj
=
this
.
$resetFields
(
this
.
formObj
)
},
_save
()
{
this
.
$refs
.
form
.
submit
()
},
onSubmit
()
{
onSubmit
()
{
this
.
_saveOk
()
},
_saveOk
:
async
function
()
{
_saveOk
:
async
function
()
{
let
obj
=
{...
this
.
formObj
,
...{
planId
:
this
.
planId
}}
let
result
=
await
samplingPlace
.
add
(
this
.
$serializeForm
(
obj
))
if
(
result
)
{
this
.
$toast
(
'操作成功!'
)
this
.
$router
.
go
(
-
1
)
}
this
.
$emit
(
'on-change'
)
}
}
}
}
</
script
>
<
style
scoped
>
...
...
src/page/sampling-plan/loc/SelectLoc.vue
View file @
c55e1d4c
...
...
@@ -35,11 +35,11 @@
<van-checkbox-group
v-model=
"checkListValue"
ref=
"checkboxGroup"
>
<div
class=
"result-item"
v-for=
"(item,index) in resultList"
:key=
"index"
@
click=
"_tapItem(item)"
>
<div>
<van-checkbox
:name=
"item"
shape=
"square"
>
名称:{{item.name
}}
</van-checkbox>
<van-checkbox
:name=
"item"
shape=
"square"
>
名称:{{ item.name
}}
</van-checkbox>
</div>
<div>
地址:{{item.address
}}
</div>
<div>
经度:{{item.longitude
}}
</div>
<div>
纬度:{{item.latitude
}}
</div>
<div>
地址:{{ item.address
}}
</div>
<div>
经度:{{ item.longitude
}}
</div>
<div>
纬度:{{ item.latitude
}}
</div>
</div>
</van-checkbox-group>
</div>
...
...
@@ -52,10 +52,10 @@
</template>
<
script
>
import
{
samplingPlace
}
from
'../../../api'
import
{
samplingPlace
}
from
'../../../api'
let
that
=
{}
export
default
{
let
that
=
{}
export
default
{
data
()
{
return
{
map
:
{},
...
...
@@ -80,8 +80,7 @@
}
},
mounted
()
{
this
.
planId
=
this
.
$route
.
query
.
planId
this
.
_open
()
this
.
_open
(
this
.
$route
.
query
.
planId
)
},
methods
:
{
_tapItem
(
item
)
{
...
...
@@ -113,10 +112,12 @@
let
result
=
await
samplingPlace
.
savePlaces
(
data
)
if
(
result
)
{
this
.
$toast
(
'操作成功'
)
this
.
$router
.
go
(
-
1
)
this
.
$emit
(
'on-change'
)
}
},
_open
()
{
_open
(
planId
)
{
this
.
planId
=
planId
that
=
this
this
.
isSearch
=
false
this
.
map
=
new
AMap
.
Map
(
'areaContainer'
,
{
...
...
@@ -303,12 +304,12 @@
}
},
}
}
}
</
script
>
<
style
scoped
lang=
"less"
>
#areaPanel
{
#areaPanel
{
position
:
fixed
;
background-color
:
white
;
max-height
:
90%
;
...
...
@@ -316,9 +317,9 @@
top
:
10px
;
right
:
10px
;
width
:
280px
;
}
}
select
{
select
{
position
:
relative
;
-ms-flex
:
1
1
auto
;
flex
:
1
1
auto
;
...
...
@@ -336,28 +337,28 @@
-webkit-appearance
:
none
;
-moz-appearance
:
none
;
appearance
:
none
}
}
select
:not
(
:last-child
)
{
select
:not
(
:last-child
)
{
border-top-right-radius
:
0
;
border-bottom-right-radius
:
0
}
}
select
:not
(
:first-child
)
{
select
:not
(
:first-child
)
{
border-top-left-radius
:
0
;
border-bottom-left-radius
:
0
}
}
select
:focus
{
select
:focus
{
border-color
:
#80bdff
;
outline
:
0
;
box-shadow
:
0
0
0
.1rem
rgba
(
128
,
189
,
255
,
.1
)
}
}
select
:focus::-ms-value
{
select
:focus::-ms-value
{
color
:
#495057
;
background-color
:
#fff
}
}
</
style
>
src/page/sampling-plan/sampler/CreateSampler.vue
→
src/page/sampling-plan/sampler/CreateSampler
DIS
.vue
View file @
c55e1d4c
File moved
src/page/sampling-plan/sampler/SamplerLab.vue
0 → 100644
View file @
c55e1d4c
<
template
>
<customer-navBar-layout
style=
"width: 100vw;height:100vh"
>
<template
#
navBar
>
<van-nav-bar
title=
"选择人员"
left-arrow
@
click-left=
"_cancel"
></van-nav-bar>
</
template
>
<
template
#
content
>
<search-bar
label=
"地点"
@
search=
"_search"
></search-bar>
<div
class=
"layout-cont-s layout-cont-s-btn"
>
<van-pull-refresh
v-model=
"refreshing"
@
refresh=
"_refresh"
>
<van-list
v-model=
"loading"
:finished=
"finished"
finished-text=
"没有更多了"
@
load=
"_load"
>
<van-checkbox-group
v-model=
"checkListValue"
ref=
"checkboxGroup"
>
<van-swipe-cell
v-for=
"item in resultList"
:key=
"item.name"
>
<div
class=
"result-item"
@
click=
"_tapItem(item)"
>
<van-checkbox
:name=
"item"
shape=
"square"
></van-checkbox>
<div>
姓名:
{{
item
.
name
}}
</div>
<div>
电话:
{{
item
.
tel
}}
</div>
<div>
所属部门:
{{
item
.
department
}}
</div>
</div>
</van-swipe-cell>
</van-checkbox-group>
</van-list>
</van-pull-refresh>
</div>
<div
class=
"bottom-btn"
>
<van-button
type=
"info"
block
@
click=
"_add"
>
添加
</van-button>
</div>
</
template
>
</customer-navBar-layout>
</template>
<
script
>
/**
* 人员大库的操作
*/
import
{
sampler
,
samplingPlan
}
from
'../../../api'
export
default
{
data
()
{
return
{
resultList
:
[],
page
:
1
,
rows
:
10
,
refreshing
:
false
,
//刷新中...
loading
:
false
,
//加载中...
finished
:
false
,
//没有更多数据
checkListValue
:
[],
planId
:
''
}
},
methods
:
{
_open
(
planId
)
{
this
.
checkListValue
=
[]
this
.
planId
=
planId
this
.
_refresh
()
},
_search
(
value
)
{
this
.
key
=
value
this
.
_refresh
()
},
_refresh
()
{
this
.
page
=
1
this
.
_getData
()
},
_searchParams
()
{
let
data
=
{
page
:
this
.
page
,
rows
:
this
.
rows
,
name
:
this
.
key
,
};
return
this
.
$serializeForm
(
data
)
},
_getData
:
async
function
()
{
let
result
=
await
sampler
.
page
(
this
.
_searchParams
())
this
.
resultList
=
[...(
this
.
page
===
1
?
[]
:
this
.
resultList
),
...
result
.
records
]
this
.
refreshing
=
false
this
.
loading
=
false
if
(
this
.
resultList
.
length
===
result
.
total
)
{
this
.
finished
=
true
}
},
_load
()
{
this
.
page
=
this
.
page
+
1
;
this
.
_getData
()
},
_tapItem
(
item
)
{
if
(
this
.
checkListValue
.
indexOf
(
item
)
===
-
1
)
{
this
.
checkListValue
.
push
(
item
);
}
else
{
this
.
checkListValue
.
splice
(
this
.
checkListValue
.
indexOf
(
item
),
1
);
}
},
_add
:
async
function
()
{
if
(
this
.
checkListValue
.
length
===
0
)
{
this
.
$toast
(
'请至少选择一条数据!'
)
}
else
{
const
data
=
{
planId
:
this
.
planId
,
samplerIds
:
this
.
checkListValue
.
map
(
item
=>
item
.
id
).
join
(
','
)
}
const
result
=
await
samplingPlan
.
saveSampler
(
data
)
if
(
result
)
{
this
.
$emit
(
'on-change'
)
}
}
},
_cancel
()
{
this
.
$emit
(
'cancel'
)
}
}
}
</
script
>
<
style
scoped
>
</
style
>
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