Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
member
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
member
member
Commits
843b9218
Commit
843b9218
authored
Dec 23, 2021
by
黑潮
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: 宝宝信息
parent
1cfd07f5
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
161 additions
and
79 deletions
+161
-79
babyinfoDialog.vue
src/components/allCustomers/components/babyinfoDialog.vue
+142
-72
customerDetail.vue
src/components/allCustomers/customerDetail.vue
+18
-7
url.js
src/components/axios/url.js
+1
-0
No files found.
src/components/allCustomers/components/babyinfoDialog.vue
View file @
843b9218
...
...
@@ -12,69 +12,49 @@
<el-tab-pane
v-for=
"(item,index) in fieldsList"
:key=
"index"
:label=
"
item.form.name||item.bName
"
:label=
"
`宝宝$
{index + 1}${item['k20301'] ? `(${item['k20301']})`: '' }`
"
:name="`${index}`"
/>
>
<el-form
ref=
"form"
:model=
"item.form"
label-width=
"122px"
:inline=
"true"
>
<el-form-item
v-for=
"item in babyConfigTemplate.template"
:key=
"item.unifiedIdentification"
:label=
"item.fieldName+ ':'"
:prop=
"item.unifiedIdentification"
:rules=
"getRules(item)"
>
<el-input
v-if=
"item.fieldType == 0"
v-model=
"fieldsList[activeName].form[item.systemFieldId]"
:placeholder=
"item.fieldDescription"
type=
"text"
show-word-limit
:maxlength=
"item.limitCountMax"
style=
"width: 160px;"
/>
<el-date-picker
v-if=
"item.fieldType == 4"
:placeholder=
"item.fieldDescription"
style=
"width: 160px;"
v-model=
"fieldsList[activeName].form[item.systemFieldId]"
type=
"date"
/>
<el-select
v-if=
"item.fieldType == 2"
:placeholder=
"item.fieldDescription"
v-model=
"fieldsList[activeName].form[item.systemFieldId]"
style=
"width: 160px;"
>
<el-option
v-for=
"(el, index) in JSON.parse(item.fieldContent.replaceAll('\'', '"'))"
:key=
"index"
:label=
"el.name"
:value=
"el.name"
/>
</el-select>
</el-form-item>
</el-form>
</el-tab-pane>
</el-tabs>
<el-form
v-if=
"fieldsList[activeName]"
ref=
"form"
:model=
"fieldsList[activeName].form"
label-width=
"122px"
:inline=
"true"
:disabled=
"true"
>
<el-form-item
label=
"宝宝名称:"
prop=
"name"
>
<el-input
type=
"text"
maxlength=
"10"
show-word-limit
v-model=
"fieldsList[activeName].form.name"
style=
"width: 160px;"
/>
</el-form-item>
<el-form-item
label=
"宝宝生日:"
prop=
"birthDay"
>
<el-date-picker
style=
"width: 160px;"
v-model=
"fieldsList[activeName].form.birthDay"
type=
"date"
/>
</el-form-item>
<el-form-item
label=
"宝宝性别:"
prop=
"sex"
>
<el-select
v-model=
"fieldsList[activeName].form.sex"
style=
"width: 160px;"
>
<el-option
label=
"男"
:value=
"1"
/>
<el-option
label=
"女"
:value=
"2"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"宝宝身高(cm):"
prop=
"height"
>
<el-input
v-model=
"fieldsList[activeName].form.height"
type=
"text"
show-word-limit
style=
"width: 160px;"
/>
</el-form-item>
<el-form-item
label=
"宝宝体重(kg):"
prop=
"weight"
>
<el-input
v-model=
"fieldsList[activeName].form.weight"
type=
"text"
show-word-limit
style=
"width: 160px;"
/>
</el-form-item>
<el-form-item
label=
"鞋码(码):"
prop=
"shoeSize"
>
<el-input
v-model=
"fieldsList[activeName].form.shoeSize"
type=
"text"
show-word-limit
style=
"width: 160px;"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
>
<el-button
@
click=
"$emit('update:dialogVisible', false)"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"onSave"
:loading=
"loading"
>
保存
</el-button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
doFetch
}
from
'../../axios/api'
;
import
url
from
'../../axios/url'
;
export
default
{
name
:
'BabyinfoDialog'
,
props
:
{
...
...
@@ -88,43 +68,133 @@ export default {
return
[];
},
},
babyConfigTemplate
:
{
type
:
Object
,
default
:
()
=>
{
return
{}
}
}
},
data
()
{
return
{
visible
:
false
,
fieldsList
:
[],
activeName
:
'0'
,
loading
:
false
};
},
watch
:
{
dialogVisible
(
n
,
o
)
{
this
.
visible
=
n
;
if
(
n
)
{
const
filterObj
=
{
'宝宝名称'
:
'name'
,
'宝宝性别'
:
'sex'
,
'宝宝生日'
:
'birthDay'
,
'宝宝身高(cm)'
:
'height'
,
'宝宝体重(kg)'
:
'weight'
,
'鞋码(码)'
:
'shoeSize'
,
};
const
fieldList
=
this
.
childFieldsList
.
map
(
el
=>
{
el
.
form
=
{
name
:
''
,
sex
:
''
,
birthDay
:
''
,
height
:
''
,
weight
:
''
,
shoeSize
:
''
,
'k20301'
:
''
,
'k20302'
:
''
,
'k20303'
:
''
,
'k20304'
:
''
,
'k20305'
:
''
,
'k20306'
:
''
,
};
el
.
sonFields
.
map
(
field
=>
(
el
.
form
[
filterObj
[
field
.
fieldName
]]
=
field
.
fieldValue
));
el
.
sonFields
.
forEach
(
field
=>
{
el
.
form
[
field
.
unifiedIdentification
]
=
field
.
fieldValue
;
el
[
field
.
unifiedIdentification
]
=
field
.
fieldValue
;
});
return
el
;
});
this
.
fieldsList
=
JSON
.
parse
(
JSON
.
stringify
(
fieldList
));
let
formRef
=
this
.
$refs
.
form
if
(
Array
.
isArray
(
formRef
))
{
formRef
.
forEach
(
el
=>
{
el
.
clearValidate
();
})
}
else
if
(
formRef
)
{
formRef
.
clearValidate
();
}
}
},
},
methods
:
{
async
onSave
()
{
let
formRefs
=
this
.
$refs
.
form
;
if
(
Array
.
isArray
(
formRefs
))
{
for
(
let
i
=
0
;
i
<
formRefs
.
length
;
i
++
)
{
let
valid
=
await
formRefs
[
i
].
validate
().
catch
(()
=>
{
this
.
$message
.
error
(
`宝宝
${
i
+
1
}
信息填写错误`
);
})
if
(
!
valid
)
return
;
}
}
else
if
(
formRefs
)
{
let
valid
=
await
formRefs
.
validate
();
if
(
!
valid
)
return
;
}
let
params
=
{
fieldValueId
:
this
.
babyConfigTemplate
.
fieldValueId
,
memberId
:
this
.
babyConfigTemplate
.
memberId
,
enterpriseOpencardFieldId
:
this
.
babyConfigTemplate
.
enterpriseOpencardFieldId
,
systemFieldId
:
this
.
babyConfigTemplate
.
systemFieldId
,
unifiedIdentification
:
this
.
babyConfigTemplate
.
unifiedIdentification
,
fieldName
:
this
.
babyConfigTemplate
.
fieldName
,
fieldType
:
this
.
babyConfigTemplate
.
fieldType
,
fieldContent
:
this
.
babyConfigTemplate
.
fieldContent
,
fieldCode
:
this
.
babyConfigTemplate
.
fieldCode
,
fieldValue
:
this
.
babyConfigTemplate
.
fieldValue
,
}
let
babyTemplates
=
this
.
babyConfigTemplate
.
template
;
let
child
=
this
.
fieldsList
.
map
(
el
=>
{
let
value
=
[];
for
(
let
key
in
el
.
form
)
{
if
(
el
.
form
[
key
])
{
let
findItem
=
babyTemplates
.
find
(
e
=>
e
.
unifiedIdentification
==
key
);
let
fieldValue
=
el
.
form
[
key
];
if
(
findItem
.
fieldType
==
4
)
{
fieldValue
=
fieldValue
.
replaceAll
(
'-'
,
''
);
}
value
.
push
({
enterpriseOpencardFieldId
:
findItem
.
enterpriseOpencardFieldId
,
unifiedIdentification
:
findItem
.
unifiedIdentification
,
fieldValue
,
systemFieldId
:
findItem
.
systemFieldId
});
}
}
return
value
;
})
params
.
child
=
child
;
this
.
loading
=
true
;
doFetch
(
url
.
updateBabyInfo
,
Object
.
assign
({},
params
)).
then
(()
=>
{
this
.
$emit
(
'update:dialogVisible'
,
false
);
this
.
$parent
.
initData
();
}).
finally
(()
=>
{
this
.
loading
=
false
;
})
},
getRules
(
item
)
{
let
ruleReg
=
new
RegExp
(
item
.
ruleContent
)
let
validatePass
=
null
if
(
item
.
fieldType
==
0
)
{
validatePass
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
||
ruleReg
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
'请输入正确的内容'
));
}
}
return
{
validator
:
validatePass
,
trigger
:
'blur'
}
}
else
if
(
item
.
unifiedIdentification
==
'k20303'
)
{
let
rule
=
JSON
.
parse
(
item
.
fieldContent
.
replaceAll
(
'
\'
'
,
'"'
));
let
time
=
rule
.
timeLong
validatePass
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
||
value
===
null
)
{
callback
();
}
else
if
(
new
Date
().
getFullYear
()
-
new
Date
(
value
).
getFullYear
()
>
parseInt
(
time
))
{
callback
(
new
Error
(
`超过当前日期时间之前
${
time
}
年`
));
}
else
if
(
new
Date
(
value
)
>
new
Date
())
{
callback
(
new
Error
(
`超过当前日期时间`
));
}
else
{
callback
();
}
}
return
{
validator
:
validatePass
,
trigger
:
'blur'
}
}
else
{
return
null
}
},
cancel
()
{
this
.
$emit
(
'update:dialogVisible'
,
false
);
},
...
...
src/components/allCustomers/customerDetail.vue
View file @
843b9218
...
...
@@ -94,7 +94,7 @@
<div
class=
"vertical-line"
/>
<!--
<div
class=
"toggleTag"
@
click=
"toggleTag=!toggleTag"
>
{{
toggleTag
?
'收起'
:
'展开'
}}
<i
:class=
"toggleTag ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
/>
:class=
"toggleTag ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
/>
</div>
-->
</div>
<div
class=
"max1600"
>
...
...
@@ -109,11 +109,19 @@
{{
item
.
fieldValue
}}
</el-descriptions-item>
<el-descriptions-item
label=
"宝宝信息"
v-if=
"babyStr"
>
{{
babyStr
}}
<el-tooltip
class=
"item"
effect=
"dark"
open-delay=
"200"
content=
"查看宝宝信息"
placement=
"top-start"
>
{{
babyStr
}}
<el-tooltip
class=
"item"
effect=
"dark"
open-delay=
"200"
content=
"编辑宝宝信息"
placement=
"top-start"
>
<span
class=
"edit-span"
@
click=
"babyDialogVisible=true"
>
<icon-svg
icon-class=
"icon-chakanxiangqing-copy"
style=
"width:13px;height:14px;"
/>
<!--
<icon-svg
icon-class=
"icon-chakanxiangqing-copy"
style=
"width:13px;height:14px;"
/>
-->
<i
class=
"el-icon-edit"
></i>
</span>
</el-tooltip>
</el-descriptions-item>
...
...
@@ -470,8 +478,11 @@
<baseinfo-dialog
:dialogVisible
.
sync=
"baseinfoDialogVisible"
:baseInfo=
"member"
:nationCodeList=
"nationCodeList"
@
refresh=
"initData"
/>
<!-- 宝宝信息弹窗 -->
<babyinfo-dialog
:dialogVisible
.
sync=
"babyDialogVisible"
:childFieldsList=
"extendInfo.openChildrenField||[]"
/>
<babyinfo-dialog
:dialogVisible
.
sync=
"babyDialogVisible"
:childFieldsList=
"extendInfo.openChildrenField||[]"
:babyConfigTemplate=
"extendInfo.babyConfigTemplate || {}"
/>
<!-- 等级修改弹窗 -->
<customergrade-dialog
:dialogVisible
.
sync=
"gradeDialogVisible"
:memberId=
"memberId"
:gradeId=
"memberInfo.gradeId"
:gradeList=
"gradeList"
@
refresh=
"initData"
/>
...
...
src/components/axios/url.js
View file @
843b9218
...
...
@@ -2,6 +2,7 @@ const host = window.location.origin;
const
baseUrl
=
host
.
indexOf
(
'localhost'
)
>
-
1
?
'http://gicdev.demogic.com'
:
host
;
const
urlConfig
=
{
updateBabyInfo
:
'/api-member/update-member-baby-info'
,
// 更新宝宝信息
cliqueGradeList
:
'/api-admin/clique-grade-list'
,
doLogin
:
'/api-auth/dologin'
,
// 登录
enterprise
:
'/api-auth/list-login-enterprise'
,
//企业列表
...
...
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