Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
self-support
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
李俊赕
self-support
Commits
6871ae58
Commit
6871ae58
authored
May 18, 2021
by
Morson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://git.banshouhui.com/lijundan/self-support
parents
20020e2e
a7d87ed3
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
680 additions
and
584 deletions
+680
-584
.env.js
.env.js
+1
-1
App.vue
src/App.vue
+1
-1
XhFiles.vue
src/components/createCom/XhFiles.vue
+267
-267
XhServiceMeasure.vue
src/components/createCom/XhServiceMeasure.vue
+3
-0
customer.vue
src/components/mine/customer.vue
+3
-5
preview.vue
src/components/photo/preview.vue
+0
-1
index.js
src/components/upload/index.js
+180
-175
task.js
src/components/upload/task.js
+1
-1
learn.vue
src/pages/index/learn.vue
+12
-15
mine.vue
src/pages/index/mine.vue
+4
-5
assessment.vue
src/pages/learn/assessment.vue
+1
-1
section.vue
src/pages/learn/section.vue
+17
-10
complete.vue
src/pages/order/complete.vue
+187
-99
file.vue
src/pages/settle/file.vue
+1
-1
index.vue
src/pages/settle/index.vue
+1
-1
prompt.vue
src/pages/settle/prompt.vue
+1
-1
No files found.
.env.js
View file @
6871ae58
src/App.vue
View file @
6871ae58
...
@@ -77,7 +77,7 @@ export default {
...
@@ -77,7 +77,7 @@ export default {
// 系统自动登录::每次运行小程序重新获取用户信息
// 系统自动登录::每次运行小程序重新获取用户信息
await
this
.
autoLogin
();
await
this
.
autoLogin
();
this
.
deleteTempImg
()
//
this.deleteTempImg()
},
},
onShow
:
async
function
()
{
onShow
:
async
function
()
{
// 应用启动,或从后台进入前台显示
// 应用启动,或从后台进入前台显示
...
...
src/components/createCom/XhFiles.vue
View file @
6871ae58
src/components/createCom/XhServiceMeasure.vue
View file @
6871ae58
...
@@ -164,6 +164,9 @@
...
@@ -164,6 +164,9 @@
.text-title
{
.text-title
{
font-size
:
26rpx
;
font-size
:
26rpx
;
color
:
#333333
;
color
:
#333333
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
white-space
:
nowrap
;
}
}
}
}
</
style
>
</
style
>
src/components/mine/customer.vue
View file @
6871ae58
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
},
},
computed
:
{
computed
:
{
cusQrcode
()
{
cusQrcode
()
{
return
process
.
uniEnv
.
qn_base_url
+
'erweima-bg.png'
return
process
.
uniEnv
.
qn_base_url
+
(
this
.
isMine
?
'erweima-rk.png'
:
'erweima-bg.png'
)
},
},
minekefutuImage
()
{
minekefutuImage
()
{
return
process
.
uniEnv
.
qn_base_url
+
this
.
imageName
return
process
.
uniEnv
.
qn_base_url
+
this
.
imageName
...
@@ -150,8 +150,6 @@
...
@@ -150,8 +150,6 @@
color
:
#666666
;
color
:
#666666
;
width
:
100%
;
width
:
100%
;
margin-top
:
10rpx
;
margin-top
:
10rpx
;
display
:
flex
;
align-items
:
flex-end
;
.title-text
{
.title-text
{
font-weight
:
bold
;
font-weight
:
bold
;
...
...
src/components/photo/preview.vue
View file @
6871ae58
...
@@ -87,7 +87,6 @@
...
@@ -87,7 +87,6 @@
if
(
photo
.
tempPath
.
mixWater
){
if
(
photo
.
tempPath
.
mixWater
){
// 保存水印处理图片到本地
// 保存水印处理图片到本地
path
=
photo
.
tempPath
.
mixWater
path
=
photo
.
tempPath
.
mixWater
console
.
log
(
"path"
,
path
)
let
result1
=
await
this
.
saveLocal
(
path
)
let
result1
=
await
this
.
saveLocal
(
path
)
if
(
result1
){
if
(
result1
){
uni
.
showToast
({
uni
.
showToast
({
...
...
src/components/upload/index.js
View file @
6871ae58
...
@@ -47,13 +47,18 @@ export default {
...
@@ -47,13 +47,18 @@ export default {
*/
*/
async
saveToTask
(
files
)
{
async
saveToTask
(
files
)
{
// 生成key返回,然后把key放到异步上传的任务队列
// 生成key返回,然后把key放到异步上传的任务队列
let
lists
=
[]
let
lists
=
files
.
map
(
v
=>
{
for
(
let
i
=
0
;
i
<
files
.
length
;
i
++
)
{
return
{
const
path
=
files
[
i
]
key
:
randomChar
(
10
),
const
row
=
await
this
.
saveFiles
(
path
)
path
:
v
,
lists
.
push
(
row
)
src
:
''
}
}
})
// for (let i = 0; i < files.length; i++) {
// const path = files[i]
// const row = await this.saveFiles(path)
// lists.push(row)
// }
const
data
=
this
.
uploadTask
const
data
=
this
.
uploadTask
const
saveLists
=
data
.
concat
(
lists
)
const
saveLists
=
data
.
concat
(
lists
)
this
.
$u
.
vuex
(
'uploadTask'
,
saveLists
)
this
.
$u
.
vuex
(
'uploadTask'
,
saveLists
)
...
...
src/components/upload/task.js
View file @
6871ae58
...
@@ -32,7 +32,7 @@ export default {
...
@@ -32,7 +32,7 @@ export default {
}
}
})
})
uni
.
setStorageSync
(
'delImg'
,
delImg
)
// 已上传完的图片,会在启动系统的时候做一次清理
//
uni.setStorageSync('delImg', delImg) // 已上传完的图片,会在启动系统的时候做一次清理
that
.
$u
.
vuex
(
'uploadTask'
,
newTask
)
that
.
$u
.
vuex
(
'uploadTask'
,
newTask
)
}
}
...
...
src/pages/index/learn.vue
View file @
6871ae58
...
@@ -4,8 +4,7 @@
...
@@ -4,8 +4,7 @@
<text
class=
"title-view"
>
学习
</text>
<text
class=
"title-view"
>
学习
</text>
</u-navbar>
</u-navbar>
<image
:src=
"bannerImage"
mode=
""
class=
"banner"
></image>
<image
:src=
"bannerImage"
mode=
""
class=
"banner"
></image>
<u-tabs-swiper
bg-color=
"#F4F5F7"
inactive-color=
"#999999"
font-size=
"28"
ref=
"uTabs"
:list=
"tabs"
<u-tabs-swiper
bg-color=
"#F4F5F7"
inactive-color=
"#999999"
font-size=
"28"
ref=
"uTabs"
:list=
"tabs"
:current=
"current"
@
change=
"tabsChange"
:is-scroll=
"false"
:bar-width=
"52"
swiperWidth=
"750"
></u-tabs-swiper>
:current=
"current"
@
change=
"tabsChange"
:is-scroll=
"false"
:bar-width=
"52"
swiperWidth=
"750"
></u-tabs-swiper>
<swiper
class=
"swiper_group"
:current=
"swiperCurrent"
@
transition=
"transition"
@
animationfinish=
"animationfinish"
>
<swiper
class=
"swiper_group"
:current=
"swiperCurrent"
@
transition=
"transition"
@
animationfinish=
"animationfinish"
>
<swiper-item
@
touchmove
.
stop
.
prevent=
"stopTouchMove"
>
<swiper-item
@
touchmove
.
stop
.
prevent=
"stopTouchMove"
>
<scroll-view
scroll-y
style=
"height:100%;width:100%;"
>
<scroll-view
scroll-y
style=
"height:100%;width:100%;"
>
...
@@ -410,7 +409,6 @@ export default {
...
@@ -410,7 +409,6 @@ export default {
isReflesh
:
true
,
isReflesh
:
true
,
triggered
:
false
,
triggered
:
false
,
_freshing
:
false
,
_freshing
:
false
,
isOnLoad
:
0
};
};
},
},
onLoad
(
param
)
{
onLoad
(
param
)
{
...
@@ -428,14 +426,13 @@ export default {
...
@@ -428,14 +426,13 @@ export default {
},
},
},
},
onShow
:
function
(
param
)
{
onShow
:
function
(
param
)
{
this
.
isOnLoad
=
1
;
try
{
try
{
if
(
param
.
tabs
)
{
if
(
param
.
tabs
)
{
this
.
current
=
param
.
tabs
;
this
.
current
=
param
.
tabs
;
this
.
swiperCurrent
=
param
.
tabs
;
this
.
swiperCurrent
=
param
.
tabs
;
}
}
}
catch
(
e
)
{}
}
catch
(
e
)
{}
if
(
this
.
current
==
1
||
this
.
current
==
2
||
this
.
current
==
3
)
{
if
(
this
.
current
==
2
||
this
.
current
==
3
)
{
this
.
tabsChange
(
this
.
current
);
this
.
tabsChange
(
this
.
current
);
}
}
},
},
...
@@ -636,9 +633,7 @@ export default {
...
@@ -636,9 +633,7 @@ export default {
},
},
//考核认证,通用认证,考试通过or未通过查询接口请求
//考核认证,通用认证,考试通过or未通过查询接口请求
getUserExamInfo
()
{
getUserExamInfo
()
{
uni
.
showLoading
({
uni
.
hideLoading
();
title
:
"请稍候"
,
});
let
that
=
this
;
let
that
=
this
;
let
token
=
that
.
vuex_token
;
let
token
=
that
.
vuex_token
;
...
@@ -664,10 +659,12 @@ export default {
...
@@ -664,10 +659,12 @@ export default {
//动态获取条件
//动态获取条件
let
ruleDisc
=
res
.
data
.
ruleDisc
;
let
ruleDisc
=
res
.
data
.
ruleDisc
;
let
targetIndex
=
ruleDisc
.
indexOf
(
'('
);
let
targetIndex
=
ruleDisc
.
indexOf
(
"("
);
if
(
targetIndex
){
if
(
targetIndex
)
{
this
.
examList
[
i
].
condition
=
ruleDisc
.
substr
(
targetIndex
+
1
).
replace
(
')'
,
''
);
this
.
examList
[
i
].
condition
=
ruleDisc
.
substr
(
targetIndex
+
1
)
.
replace
(
")"
,
""
);
}
}
// examStatus 用户考试状态 0考试中 1考试完成 2未参与
// examStatus 用户考试状态 0考试中 1考试完成 2未参与
...
...
src/pages/index/mine.vue
View file @
6871ae58
...
@@ -55,11 +55,10 @@
...
@@ -55,11 +55,10 @@
return
this
.
vuex_settled
&&
this
.
vuex_settled
.
avatar
return
this
.
vuex_settled
&&
this
.
vuex_settled
.
avatar
},
},
name
()
{
name
()
{
return
this
.
settled
&&
(
this
.
settled
.
id_card_name
return
(
this
.
settled
&&
(
this
.
settled
.
id_card_name
||
this
.
settled
.
name
))
||
(
this
.
vuex_user
&&
(
this
.
vuex_user
.
name
||
this
.
vuex_user
.
loginName
))
||
this
.
settled
.
nickname
||
this
.
settled
.
name
)
},
},
mobile
()
{
mobile
()
{
return
this
.
settled
&&
this
.
settled
.
mobile
return
(
this
.
settled
&&
this
.
settled
.
mobile
)
||
(
this
.
vuex_user
&&
this
.
vuex_user
.
mobile
)
},
},
items
()
{
items
()
{
return
[
return
[
...
...
src/pages/learn/assessment.vue
View file @
6871ae58
...
@@ -158,7 +158,7 @@ export default {
...
@@ -158,7 +158,7 @@ export default {
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
data
.
ruleDisc
)
{
if
(
res
.
data
.
data
.
ruleDisc
)
{
var
str
=
res
.
data
.
data
.
ruleDisc
;
var
str
=
res
.
data
.
data
.
ruleDisc
;
let
strArr
=
str
.
split
(
'('
)[
0
].
split
(
','
);
let
strArr
=
str
.
split
(
"("
)[
0
].
split
(
","
);
this
.
desc
.
title
=
strArr
[
0
];
this
.
desc
.
title
=
strArr
[
0
];
this
.
desc
.
score
=
strArr
[
1
];
this
.
desc
.
score
=
strArr
[
1
];
this
.
desc
.
time
=
strArr
[
2
];
this
.
desc
.
time
=
strArr
[
2
];
...
...
src/pages/learn/section.vue
View file @
6871ae58
...
@@ -4,9 +4,9 @@
...
@@ -4,9 +4,9 @@
<u-navbar
back-icon-color=
"#000000"
:background=
"background"
title-color=
"#000000"
:border-bottom=
"false"
>
<u-navbar
back-icon-color=
"#000000"
:background=
"background"
title-color=
"#000000"
:border-bottom=
"false"
>
</u-navbar>
</u-navbar>
<view
class=
"uni-padding-wrap uni-common-mt"
>
<view
class=
"uni-padding-wrap uni-common-mt"
>
<view><video
object-fit=
"
cover
"
class=
"course-video"
id=
"courseVideo"
:src=
"courseSrc"
<view><video
object-fit=
"
fill
"
class=
"course-video"
id=
"courseVideo"
:src=
"courseSrc"
:options=
"playerOptions"
:playsinline=
"true"
@
play=
"playCourse"
@
error=
"videoErrorCallback"
:options=
"playerOptions"
:playsinline=
"true"
@
play=
"playCourse"
@
error=
"videoErrorCallback"
@
ready=
"playerReadied"
@
timeupdate=
"onPlayerTimeupdate($event)"
autoplay=
"true"
@
ready=
"playerReadied"
@
timeupdate=
"onPlayerTimeupdate($event)"
@
ended=
"setLearned()"
autoplay=
"true"
controls
></video></view>
controls
></video></view>
<view
class=
"title-content"
>
<view
class=
"title-content"
>
<view
class=
"item-content"
>
<view
class=
"item-content"
>
...
@@ -149,6 +149,16 @@
...
@@ -149,6 +149,16 @@
this
.
scrollValue
=
0
this
.
scrollValue
=
0
}
}
},
},
setLearned
()
{
let
param
=
{
section_id
:
this
.
section_id
,
video_time
:
this
.
videoTotalTime
,
status
:
1
};
this
.
$u
.
api
.
updateLearnCourses
(
param
).
then
((
res
)
=>
{}).
catch
((
err
)
=>
{
console
.
log
(
err
)
});
},
onPlayerTimeupdate
(
player
)
{
onPlayerTimeupdate
(
player
)
{
let
intCurrentTime
=
parseInt
(
player
.
detail
.
currentTime
);
let
intCurrentTime
=
parseInt
(
player
.
detail
.
currentTime
);
this
.
updateLearnedStatus
(
intCurrentTime
)
this
.
updateLearnedStatus
(
intCurrentTime
)
...
@@ -247,20 +257,17 @@
...
@@ -247,20 +257,17 @@
video_time
:
nowTime
,
video_time
:
nowTime
,
status
:
this
.
status
status
:
this
.
status
};
};
nowTime
=
parseInt
(
nowTime
);
if
(
nowTime
==
this
.
nowTime
){
if
(
nowTime
==
this
.
nowTime
){
return
return
}
}
this
.
nowTime
=
nowTime
;
this
.
nowTime
=
nowTime
;
if
(
this
.
status
==
1
||
nowTime
<
5
){
if
(
nowTime
%
this
.
howTimeToUpdateLearnedStatus
!=
0
){
//固定时间更新一次
return
return
}
}
if
(
nowTime
==
this
.
videoTotalTime
){
if
(
this
.
status
==
1
){
param
.
status
=
this
.
status
=
1
//已学再学时间设置为结束时间
}
else
if
(
nowTime
%
this
.
howTimeToUpdateLearnedStatus
!=
0
){
param
.
video_time
=
this
.
videoTotalTime
return
}
else
{
param
.
status
=
0
;
}
}
this
.
$u
.
api
.
updateLearnCourses
(
param
).
then
((
res
)
=>
{}).
catch
((
err
)
=>
{
this
.
$u
.
api
.
updateLearnCourses
(
param
).
then
((
res
)
=>
{}).
catch
((
err
)
=>
{
console
.
log
(
err
)
console
.
log
(
err
)
...
...
src/pages/order/complete.vue
View file @
6871ae58
...
@@ -24,60 +24,60 @@
...
@@ -24,60 +24,60 @@
<view
class=
"class-bd"
>
<view
class=
"class-bd"
>
<u-form-item
v-for=
"(item,itemIndex) in groupItem.items"
:key=
"itemIndex"
label-position=
"top"
<u-form-item
v-for=
"(item,itemIndex) in groupItem.items"
:key=
"itemIndex"
label-position=
"top"
:prop=
"item.fieldsName"
:border-bottom=
"false"
v-show=
"item.fieldsId != 200 || show200"
>
:prop=
"item.fieldsName"
:border-bottom=
"false"
v-show=
"item.fieldsId != 200 || show200"
>
<view
:class=
"[
{'label-bold': groupItem.name === '基本信息'}, 'label']" v-if="
typeToComponentType(item.fieldsType)!=='location'
&&
typeToComponentType(item.fieldsType)!=='form'
&&
typeToComponentType(item.fieldsType)
!=='label'">
<view
:class=
"[
{'label-bold': groupItem.name === '基本信息'}, 'label']" v-if="
item.formType!=='location'
&&
item.formType!=='form'
&&
item.formType
!=='label'">
<image
class=
"item-image"
:src=
"mixingImage"
v-if=
"item.required"
></image>
<image
class=
"item-image"
:src=
"mixingImage"
v-if=
"item.required"
></image>
{{
item
.
fieldsTitle
}}
{{
item
.
fieldsTitle
}}
</view>
</view>
<template
v-if=
"item.fieldsType"
>
<template
v-if=
"item.fieldsType"
>
<xh-input
v-if=
"
typeToComponentType(item.fieldsType)==='input'"
:groupIndex=
"groupIndex"
:type=
"inputType(item.fieldsType)
"
<xh-input
v-if=
"
item.formType==='input'"
:groupIndex=
"groupIndex"
:type=
"item.inputType
"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
</xh-input>
</xh-input>
<xh-multi-input
v-else-if=
"
typeToComponentType(item.fieldsType)
==='multiinput'"
<xh-multi-input
v-else-if=
"
item.formType
==='multiinput'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-multi-input>
</xh-multi-input>
<xh-radio
v-else-if=
"
typeToComponentType(item.fieldsType)
==='radio'"
<xh-radio
v-else-if=
"
item.formType
==='radio'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-radio>
</xh-radio>
<xh-checkbox
v-else-if=
"
typeToComponentType(item.fieldsType)
==='checkbox'"
<xh-checkbox
v-else-if=
"
item.formType
==='checkbox'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-checkbox>
</xh-checkbox>
<xh-select
v-else-if=
"
typeToComponentType(item.fieldsType)
==='select'"
<xh-select
v-else-if=
"
item.formType
==='select'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-select>
</xh-select>
<xh-files
v-else-if=
"
typeToComponentType(item.fieldsType)
==='file'"
<xh-files
v-else-if=
"
item.formType
==='file'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:partnerCompanyId=
"partnerCompanyId"
:categoryId=
"categoryId"
:value=
'form[item.fieldsName] || []'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:partnerCompanyId=
"partnerCompanyId"
:categoryId=
"categoryId"
:value=
'form[item.fieldsName] || []'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-files>
</xh-files>
<xh-location
v-else-if=
"
typeToComponentType(item.fieldsType)
==='location'"
<xh-location
v-else-if=
"
item.formType
==='location'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-location>
</xh-location>
<xh-scan
v-else-if=
"
typeToComponentType(item.fieldsType)
==='scan'"
<xh-scan
v-else-if=
"
item.formType
==='scan'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-scan>
</xh-scan>
<xh-picker
v-else-if=
"
typeToComponentType(item.fieldsType)
==='picker'"
<xh-picker
v-else-if=
"
item.formType
==='picker'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-picker>
</xh-picker>
<xh-service-measure
v-else-if=
"
typeToComponentType(item.fieldsType)
==='servicemeasure'"
<xh-service-measure
v-else-if=
"
item.formType
==='servicemeasure'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:orderId=
"orderId"
:categoryId=
"categoryId"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:orderId=
"orderId"
:categoryId=
"categoryId"
:orderServiceType=
"orderServiceType"
:specificationId=
"form['specificationId'] || 0"
:value=
"form[item.fieldsName]"
:orderServiceType=
"orderServiceType"
:specificationId=
"form['specificationId'] || 0"
:value=
"form[item.fieldsName]"
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-service-measure>
</xh-service-measure>
<xh-time
v-else-if=
"
typeToComponentType(item.fieldsType)
==='time'"
<xh-time
v-else-if=
"
item.formType
==='time'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-time>
</xh-time>
<xh-service-more
v-else-if=
"
typeToComponentType(item.fieldsType)
==='form'"
<xh-service-more
v-else-if=
"
item.formType
==='form'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:order-id=
"orderId"
:value=
'form[item.fieldsName] || ""'
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:order-id=
"orderId"
:value=
'form[item.fieldsName] || ""'
@
value-change=
"fieldValueChange"
>
@
value-change=
"fieldValueChange"
>
</xh-service-more>
</xh-service-more>
<xh-label
v-else-if=
"
typeToComponentType(item.fieldsType)
==='label'"
<xh-label
v-else-if=
"
item.formType
==='label'"
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
>
:groupIndex=
"groupIndex"
:itemIndex=
"itemIndex"
:item=
"item"
:value=
'form[item.fieldsName] || ""'
>
</xh-label>
</xh-label>
</
template
>
</
template
>
...
@@ -262,16 +262,104 @@
...
@@ -262,16 +262,104 @@
if
(
self
.
orderId
){
if
(
self
.
orderId
){
self
.
$u
.
api
.
getCompleteConfigAndData
(
self
.
orderId
).
then
((
res
)
=>
{
self
.
$u
.
api
.
getCompleteConfigAndData
(
self
.
orderId
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
self
.
list
=
res
.
data
.
config
self
.
initData
(
res
)
self
.
form
=
res
.
data
.
value
||
{}
// 异常单处理
if
(
self
.
auditResultsId
)
self
.
checkCompleteError
()
}
else
{
}
else
{
console
.
log
(
res
.
message
,
"获取订单完工项目失败!"
);
console
.
log
(
res
.
message
,
"获取订单完工项目失败!"
);
}
}
});
});
}
}
},
},
initData
(
res
)
{
for
(
var
item
of
res
.
data
.
config
)
{
for
(
var
i
of
item
.
items
)
{
for
(
var
d
of
i
.
items
)
{
var
inputType
=
'text'
var
formType
=
''
var
type
=
d
.
fieldsType
.
toLocaleLowerCase
()
switch
(
type
)
{
case
'text'
:
inputType
=
'textarea'
formType
=
'input'
break
case
'password'
:
inputType
=
'password'
formType
=
'input'
break
case
'textarea'
:
case
'number'
:
case
'decimal'
:
case
'double'
:
case
'integer'
:
formType
=
'input'
inputType
=
'digit'
break
case
'multiinput'
:
formType
=
'multiinput'
inputType
=
'text'
break
;
case
'select'
:
case
'specifications'
:
formType
=
'select'
inputType
=
'text'
break
case
'radio'
:
formType
=
'radio'
inputType
=
'text'
break
case
'checkbox'
:
formType
=
'checkbox'
inputType
=
'text'
break
case
'file'
:
case
'photos'
:
formType
=
'file'
inputType
=
'text'
break
case
'location'
:
formType
=
'location'
inputType
=
'text'
break
case
'scan'
:
case
'machine_code'
:
formType
=
'scan'
inputType
=
'text'
break
case
'picker'
:
case
'mutipicker'
:
formType
=
'picker'
inputType
=
'text'
break
case
'service_measures'
:
formType
=
'servicemeasure'
inputType
=
'text'
break
case
'time'
:
case
'date'
:
formType
=
'time'
inputType
=
'text'
break
case
'form'
:
formType
=
'form'
inputType
=
'text'
break
case
'label'
:
formType
=
'label'
inputType
=
'text'
break
}
d
.
formType
=
formType
d
.
inputType
=
inputType
if
(
d
.
fieldsId
==
200
)
{
d
.
required
=
res
.
data
.
value
[
'paymentMethodsType'
]
!=
'03'
}
}
}
}
this
.
list
=
res
.
data
.
config
this
.
form
=
res
.
data
.
value
||
{}
// 异常单处理
if
(
this
.
auditResultsId
)
this
.
checkCompleteError
()
},
checkCompleteError
()
{
// 异常单定位错误项
checkCompleteError
()
{
// 异常单定位错误项
let
self
=
this
let
self
=
this
self
.
list
.
forEach
((
panel
,
panelIndex
)
=>
{
self
.
list
.
forEach
((
panel
,
panelIndex
)
=>
{
...
@@ -482,87 +570,87 @@
...
@@ -482,87 +570,87 @@
}
}
},
},
inputType
(
type
)
{
//
inputType(type) {
var
inputType
=
''
//
var inputType = ''
let
ty
=
type
.
toLocaleLowerCase
()
//
let ty = type.toLocaleLowerCase()
switch
(
ty
)
{
//
switch (ty) {
case
'text'
:
//
case 'text':
inputType
=
'textarea'
//
inputType = 'textarea'
break
//
break
case
'password'
:
//
case 'password':
inputType
=
ty
//
inputType = ty
break
//
break
case
'decimal'
:
//
case 'decimal':
case
'number'
:
//
case 'number':
case
'double'
:
//
case 'double':
case
'integer'
:
//
case 'integer':
inputType
=
'digit'
//
inputType = 'digit'
break
//
break
case
'textarea'
:
//
case 'textarea':
default
:
//
default:
inputType
=
'text'
//
inputType = 'text'
break
//
break
}
//
}
return
inputType
//
return inputType
},
//
},
typeToComponentType
(
type
)
{
//
typeToComponentType(type) {
// 将fieldType类型统一转换为公共组件判定类型
//
// 将fieldType类型统一转换为公共组件判定类型
let
formType
=
''
//
let formType = ''
type
=
type
.
toLocaleLowerCase
()
//
type = type.toLocaleLowerCase()
switch
(
type
)
{
//
switch (type) {
case
'text'
:
//
case 'text':
case
'password'
:
//
case 'password':
case
'textarea'
:
//
case 'textarea':
case
'number'
:
//
case 'number':
case
'decimal'
:
//
case 'decimal':
case
'double'
:
//
case 'double':
case
'integer'
:
//
case 'integer':
formType
=
'input'
//
formType = 'input'
break
//
break
case
'multiinput'
:
//
case 'multiinput':
formType
=
'multiinput'
//
formType = 'multiinput'
break
;
//
break;
case
'select'
:
//
case 'select':
case
'specifications'
:
//
case 'specifications':
formType
=
'select'
//
formType = 'select'
break
//
break
case
'radio'
:
//
case 'radio':
formType
=
'radio'
//
formType = 'radio'
break
//
break
case
'checkbox'
:
//
case 'checkbox':
formType
=
'checkbox'
//
formType = 'checkbox'
break
//
break
case
'file'
:
//
case 'file':
case
'photos'
:
//
case 'photos':
formType
=
'file'
//
formType = 'file'
break
//
break
case
'location'
:
//
case 'location':
formType
=
'location'
//
formType = 'location'
break
//
break
case
'scan'
:
//
case 'scan':
case
'machine_code'
:
//
case 'machine_code':
formType
=
'scan'
//
formType = 'scan'
break
//
break
case
'picker'
:
//
case 'picker':
case
'mutipicker'
:
//
case 'mutipicker':
formType
=
'picker'
//
formType = 'picker'
break
//
break
case
'service_measures'
:
//
case 'service_measures':
formType
=
'servicemeasure'
//
formType = 'servicemeasure'
break
//
break
case
'time'
:
//
case 'time':
case
'date'
:
//
case 'date':
formType
=
'time'
//
formType = 'time'
break
//
break
case
'form'
:
//
case 'form':
formType
=
'form'
//
formType = 'form'
break
//
break
case
'label'
:
//
case 'label':
formType
=
'label'
//
formType = 'label'
break
//
break
}
//
}
return
formType
//
return formType
},
//
},
// ------------------------- 以下方法为展示滚动切换 -------------------------
// ------------------------- 以下方法为展示滚动切换 -------------------------
// 点击左边的栏目切换
// 点击左边的栏目切换
async
swichMenu
(
index
)
{
async
swichMenu
(
index
)
{
...
...
src/pages/settle/file.vue
View file @
6871ae58
...
@@ -159,7 +159,7 @@ export default {
...
@@ -159,7 +159,7 @@ export default {
label
:
"电工证照"
,
label
:
"电工证照"
,
required
:
true
,
required
:
true
,
maxImgs
:
1
,
maxImgs
:
1
,
tips
:
"上传电工证
证照片,图片大小不大于3M
"
,
tips
:
"上传电工证
或特种作业操作证
"
,
imgs
:
[],
imgs
:
[],
placeholderImages
:
[
process
.
uniEnv
.
qn_base_url
+
'diangong.png'
]
placeholderImages
:
[
process
.
uniEnv
.
qn_base_url
+
'diangong.png'
]
},
},
...
...
src/pages/settle/index.vue
View file @
6871ae58
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
4.有充电桩安装经验优先;'
4.有充电桩安装经验优先;'
},
{
},
{
title
:
'结算价格'
,
title
:
'结算价格'
,
content
:
'1.不同车企品牌结算价格不一,6
75元-189
0元不等;
\
n
\
content
:
'1.不同车企品牌结算价格不一,6
00元-200
0元不等;
\
n
\
2.结算价格为包工包料价,安装材料根据车企品牌规格自行采购(电缆、空开、漏保);
\
n
\
2.结算价格为包工包料价,安装材料根据车企品牌规格自行采购(电缆、空开、漏保);
\
n
\
3.结算账期:周结50%,剩余50%次月20号结算;'
3.结算账期:周结50%,剩余50%次月20号结算;'
},
{
},
{
...
...
src/pages/settle/prompt.vue
View file @
6871ae58
...
@@ -104,7 +104,7 @@
...
@@ -104,7 +104,7 @@
'icon-prompt.png'
'icon-prompt.png'
},
},
erweimaImage
()
{
erweimaImage
()
{
return
process
.
uniEnv
.
qn_base_url
+
'erweima-
bg
.png'
return
process
.
uniEnv
.
qn_base_url
+
'erweima-
rk
.png'
},
},
},
},
onLoad
(
e
)
{
onLoad
(
e
)
{
...
...
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