Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
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
杨凯
YDL-Component-Medical
Commits
4779cea0
Commit
4779cea0
authored
Jan 03, 2020
by
徐健
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
私聊改造項目完成
parent
31b740d3
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
840 additions
and
64 deletions
+840
-64
YDLMessageFragment.java
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
+20
-6
ServiceApi.kt
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceApi.kt
+6
-0
ServiceImpl.kt
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceImpl.kt
+8
-0
ServiceItemBean.java
m-im/src/main/java/com/yidianling/uikit/custom/http/response/ServiceItemBean.java
+557
-0
ConsultServiceViewCallback.kt
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/callback/ConsultServiceViewCallback.kt
+4
-1
ExpertConsultServiceDetailView.kt
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceDetailView.kt
+90
-1
ExpertConsultServiceItemView.kt
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceItemView.kt
+46
-11
ExpertConsultServiceListDialog.kt
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceListDialog.kt
+14
-26
ExpertConsultServiceView.kt
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceView.kt
+33
-15
im_service_package_bg.xml
m-im/src/main/res/drawable/im_service_package_bg.xml
+10
-0
im_expert_consult_service_detail_view.xml
m-im/src/main/res/layout/im_expert_consult_service_detail_view.xml
+18
-2
im_expert_consult_service_item_view.xml
m-im/src/main/res/layout/im_expert_consult_service_item_view.xml
+33
-1
im_nim_message_activity_text_layout.xml
m-im/src/main/res_uikit/layout/im_nim_message_activity_text_layout.xml
+1
-1
No files found.
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
View file @
4779cea0
...
@@ -529,7 +529,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -529,7 +529,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
//关注
//关注
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
private
void
focus
()
{
private
void
focus
()
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
()
!=
null
)
if
(
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
()
!=
null
)
{
// 未关注才能进行关注
// 未关注才能进行关注
if
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
isFollowed
==
false
)
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
isFollowed
==
false
)
{
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
isFollowed
=
true
;
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
isFollowed
=
true
;
...
@@ -551,7 +551,9 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -551,7 +551,9 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
}
},
throwable
->
{
},
throwable
->
{
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
isFollowed
=
false
;
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
isFollowed
=
false
;
ToastUtil
.
toastShort
(
throwable
.
toString
());});
ToastUtil
.
toastShort
(
throwable
.
toString
());
});
}
}
}
}
}
...
@@ -560,18 +562,30 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -560,18 +562,30 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
}
//初始化聊天顶部快捷菜单
//初始化聊天顶部快捷菜单
@SuppressLint
(
"CheckResult"
)
private
void
initMenu
()
{
private
void
initMenu
()
{
View
rela_zixun
=
rootView
.
findViewById
(
R
.
id
.
rela_zixun
);
View
rela_zixun
=
rootView
.
findViewById
(
R
.
id
.
rela_zixun
);
rela_zixun
.
setOnClickListener
(
view
->
{
rela_zixun
.
setOnClickListener
(
view
->
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
)
{
if
(
sessionId
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
(
)
!=
null
)
{
if
(
expertConsultServiceListDialog
==
null
)
{
if
(
expertConsultServiceListDialog
==
null
)
{
if
(
getActivity
()
!=
null
)
{
ServiceImpl
.
Companion
.
getInstance
().
serviceList
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
doctorId
)
expertConsultServiceListDialog
=
new
ExpertConsultServiceListDialog
(
getActivity
());
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
res
->
{
if
(
res
.
data
!=
null
&&
res
.
data
.
size
()
>
0
)
{
if
(
getActivity
()
!=
null
&&
expertConsultServiceListDialog
==
null
)
{
expertConsultServiceListDialog
=
new
ExpertConsultServiceListDialog
(
getActivity
(),
res
.
data
);
expertConsultServiceListDialog
.
show
();
}
}
}
else
{
ToastUtil
.
toastShort
(
"咨询师暂未发布服务"
);
}
}
},
throwable
->
{
});
}
else
{
expertConsultServiceListDialog
.
show
();
expertConsultServiceListDialog
.
show
();
}
}
else
{
}
else
{
ToastUtil
.
toastShort
(
"请退出聊天重试"
);
ToastUtil
.
toastShort
(
"请退出聊天重试"
);
}
}
...
...
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceApi.kt
View file @
4779cea0
...
@@ -54,4 +54,9 @@ interface ServiceApi{
...
@@ -54,4 +54,9 @@ interface ServiceApi{
@FormUrlEncoded
@FormUrlEncoded
@POST
(
"sq-active/focus"
)
@POST
(
"sq-active/focus"
)
fun
focus
(
@FieldMap
params
:
Map
<
String
,
String
>):
Observable
<
BaseResponse
<
FocusBean
>>
fun
focus
(
@FieldMap
params
:
Map
<
String
,
String
>):
Observable
<
BaseResponse
<
FocusBean
>>
//服务列表
@GET
(
"consult/expert-page/products"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
fun
serviceList
(
@Query
(
"doctorId"
)
doctorId
:
String
):
Observable
<
BaseAPIResponse
<
List
<
ServiceItemBean
>>>
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceImpl.kt
View file @
4779cea0
...
@@ -76,4 +76,11 @@ class ServiceImpl private constructor(){
...
@@ -76,4 +76,11 @@ class ServiceImpl private constructor(){
return
RxUtils
.
mapObservable
(
param
)
return
RxUtils
.
mapObservable
(
param
)
.
flatMap
{
YDLHttpUtils
.
obtainApi
(
ServiceApi
::
class
.
java
).
focus
(
it
)
}
.
flatMap
{
YDLHttpUtils
.
obtainApi
(
ServiceApi
::
class
.
java
).
focus
(
it
)
}
}
}
/**
* 服务列表
*/
fun
serviceList
(
doctorId
:
String
):
Observable
<
BaseAPIResponse
<
List
<
ServiceItemBean
>>>
{
return
YDLHttpUtils
.
obtainApi
(
ServiceApi
::
class
.
java
).
serviceList
(
doctorId
)
}
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/custom/http/response/ServiceItemBean.java
0 → 100644
View file @
4779cea0
package
com
.
yidianling
.
uikit
.
custom
.
http
.
response
;
import
java.util.List
;
public
class
ServiceItemBean
{
/**
* cateName : 亲子教育
* cateId : 23
* products : [{"productDto":{"id":91170418024616,"desc":"咨询师基本功训练及亲子咨疗。\r\nY值1868 \r\n好评率99%\r\n本服务仅为咨询师提供督导服务,非咨询师请勿购买本服务。","shortDesc":"心理学硕士、副教授、硕士生导师、壹点灵首席心理咨询专家,从业10年。","uid":2,"name":"督导咨询","originPrice":0,"productPrice":500,"packagePrice":1500,"isPackage":1,"periodNum":0,"packageNum":1,"dayFreeTimes":0,"activityType":1,"activityStartTime":null,"activityEndTime":null,"expiryDate":0,"totalServiceTime":0,"status":3,"auditStatus":3,"checkFailedReason":"","offShelfReason":"","serviceType":1,"isDelete":2,"sortOrder":27683,"createTime":"Apr 18, 2017 10:10:22 PM","updateTime":"Nov 7, 2019 11:36:55 AM","feedbackRate":5,"saleoutAmount":32,"expireDays":0,"aimEffect":"","advantage":"","extRemark":""},"productCategoryDto":{"id":233469,"categoryId1":23,"categoryId2":65,"categoryId3":0,"categoryName1":"亲子教育","categoryName2":"厌学","categoryName3":"心理咨询服务"},"productSpecDtos":[{"id":666956,"spec1":"1","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666957,"spec1":"2","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666958,"spec1":"4","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666959,"spec1":"3","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666960,"spec1":"5","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500}],"isPushToBg":0}]
*/
private
String
cateName
;
private
int
cateId
;
private
List
<
ProductsBean
>
products
;
public
String
getCateName
()
{
return
cateName
;
}
public
void
setCateName
(
String
cateName
)
{
this
.
cateName
=
cateName
;
}
public
int
getCateId
()
{
return
cateId
;
}
public
void
setCateId
(
int
cateId
)
{
this
.
cateId
=
cateId
;
}
public
List
<
ProductsBean
>
getProducts
()
{
return
products
;
}
public
void
setProducts
(
List
<
ProductsBean
>
products
)
{
this
.
products
=
products
;
}
public
static
class
ProductsBean
{
/**
* productDto : {"id":91170418024616,"desc":"咨询师基本功训练及亲子咨疗。\r\nY值1868 \r\n好评率99%\r\n本服务仅为咨询师提供督导服务,非咨询师请勿购买本服务。","shortDesc":"心理学硕士、副教授、硕士生导师、壹点灵首席心理咨询专家,从业10年。","uid":2,"name":"督导咨询","originPrice":0,"productPrice":500,"packagePrice":1500,"isPackage":1,"periodNum":0,"packageNum":1,"dayFreeTimes":0,"activityType":1,"activityStartTime":null,"activityEndTime":null,"expiryDate":0,"totalServiceTime":0,"status":3,"auditStatus":3,"checkFailedReason":"","offShelfReason":"","serviceType":1,"isDelete":2,"sortOrder":27683,"createTime":"Apr 18, 2017 10:10:22 PM","updateTime":"Nov 7, 2019 11:36:55 AM","feedbackRate":5,"saleoutAmount":32,"expireDays":0,"aimEffect":"","advantage":"","extRemark":""}
* productCategoryDto : {"id":233469,"categoryId1":23,"categoryId2":65,"categoryId3":0,"categoryName1":"亲子教育","categoryName2":"厌学","categoryName3":"心理咨询服务"}
* productSpecDtos : [{"id":666956,"spec1":"1","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666957,"spec1":"2","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666958,"spec1":"4","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666959,"spec1":"3","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500},{"id":666960,"spec1":"5","spec1Name":"服务方式","spec2":"60","spec2Name":"服务时长","price":500}]
* isPushToBg : 0
*/
private
ProductDtoBean
productDto
;
private
ProductCategoryDtoBean
productCategoryDto
;
private
int
isPushToBg
;
private
List
<
ProductSpecDtosBean
>
productSpecDtos
;
public
ProductDtoBean
getProductDto
()
{
return
productDto
;
}
public
void
setProductDto
(
ProductDtoBean
productDto
)
{
this
.
productDto
=
productDto
;
}
public
ProductCategoryDtoBean
getProductCategoryDto
()
{
return
productCategoryDto
;
}
public
void
setProductCategoryDto
(
ProductCategoryDtoBean
productCategoryDto
)
{
this
.
productCategoryDto
=
productCategoryDto
;
}
public
int
getIsPushToBg
()
{
return
isPushToBg
;
}
public
void
setIsPushToBg
(
int
isPushToBg
)
{
this
.
isPushToBg
=
isPushToBg
;
}
public
List
<
ProductSpecDtosBean
>
getProductSpecDtos
()
{
return
productSpecDtos
;
}
public
void
setProductSpecDtos
(
List
<
ProductSpecDtosBean
>
productSpecDtos
)
{
this
.
productSpecDtos
=
productSpecDtos
;
}
public
static
class
ProductDtoBean
{
/**
* id : 91170418024616
* desc : 咨询师基本功训练及亲子咨疗。
Y值1868
好评率99%
本服务仅为咨询师提供督导服务,非咨询师请勿购买本服务。
* shortDesc : 心理学硕士、副教授、硕士生导师、壹点灵首席心理咨询专家,从业10年。
* uid : 2
* name : 督导咨询
* originPrice : 0.0
* productPrice : 500.0
* packagePrice : 1500.0
* isPackage : 1
* periodNum : 0
* packageNum : 1
* dayFreeTimes : 0
* activityType : 1
* activityStartTime : null
* activityEndTime : null
* expiryDate : 0
* totalServiceTime : 0
* status : 3
* auditStatus : 3
* checkFailedReason :
* offShelfReason :
* serviceType : 1
* isDelete : 2
* sortOrder : 27683
* createTime : Apr 18, 2017 10:10:22 PM
* updateTime : Nov 7, 2019 11:36:55 AM
* feedbackRate : 5.0
* saleoutAmount : 32
* expireDays : 0
* aimEffect :
* advantage :
* extRemark :
*/
private
long
id
;
private
String
desc
;
private
String
shortDesc
;
private
int
uid
;
private
String
name
;
private
double
originPrice
;
private
double
productPrice
;
private
double
packagePrice
;
private
int
isPackage
;
//2是套餐
private
int
periodNum
;
private
int
packageNum
;
private
int
dayFreeTimes
;
private
int
activityType
;
private
Object
activityStartTime
;
private
Object
activityEndTime
;
private
int
expiryDate
;
private
int
totalServiceTime
;
private
int
status
;
private
int
auditStatus
;
private
String
checkFailedReason
;
private
String
offShelfReason
;
private
int
serviceType
;
private
int
isDelete
;
private
int
sortOrder
;
private
String
createTime
;
private
String
updateTime
;
private
double
feedbackRate
;
private
int
saleoutAmount
;
private
int
expireDays
;
private
String
aimEffect
;
private
String
advantage
;
private
String
extRemark
;
public
long
getId
()
{
return
id
;
}
public
void
setId
(
long
id
)
{
this
.
id
=
id
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
public
String
getShortDesc
()
{
return
shortDesc
;
}
public
void
setShortDesc
(
String
shortDesc
)
{
this
.
shortDesc
=
shortDesc
;
}
public
int
getUid
()
{
return
uid
;
}
public
void
setUid
(
int
uid
)
{
this
.
uid
=
uid
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
double
getOriginPrice
()
{
return
originPrice
;
}
public
void
setOriginPrice
(
double
originPrice
)
{
this
.
originPrice
=
originPrice
;
}
public
double
getProductPrice
()
{
return
productPrice
;
}
public
void
setProductPrice
(
double
productPrice
)
{
this
.
productPrice
=
productPrice
;
}
public
double
getPackagePrice
()
{
return
packagePrice
;
}
public
void
setPackagePrice
(
double
packagePrice
)
{
this
.
packagePrice
=
packagePrice
;
}
public
int
getIsPackage
()
{
return
isPackage
;
}
public
void
setIsPackage
(
int
isPackage
)
{
this
.
isPackage
=
isPackage
;
}
public
int
getPeriodNum
()
{
return
periodNum
;
}
public
void
setPeriodNum
(
int
periodNum
)
{
this
.
periodNum
=
periodNum
;
}
public
int
getPackageNum
()
{
return
packageNum
;
}
public
void
setPackageNum
(
int
packageNum
)
{
this
.
packageNum
=
packageNum
;
}
public
int
getDayFreeTimes
()
{
return
dayFreeTimes
;
}
public
void
setDayFreeTimes
(
int
dayFreeTimes
)
{
this
.
dayFreeTimes
=
dayFreeTimes
;
}
public
int
getActivityType
()
{
return
activityType
;
}
public
void
setActivityType
(
int
activityType
)
{
this
.
activityType
=
activityType
;
}
public
Object
getActivityStartTime
()
{
return
activityStartTime
;
}
public
void
setActivityStartTime
(
Object
activityStartTime
)
{
this
.
activityStartTime
=
activityStartTime
;
}
public
Object
getActivityEndTime
()
{
return
activityEndTime
;
}
public
void
setActivityEndTime
(
Object
activityEndTime
)
{
this
.
activityEndTime
=
activityEndTime
;
}
public
int
getExpiryDate
()
{
return
expiryDate
;
}
public
void
setExpiryDate
(
int
expiryDate
)
{
this
.
expiryDate
=
expiryDate
;
}
public
int
getTotalServiceTime
()
{
return
totalServiceTime
;
}
public
void
setTotalServiceTime
(
int
totalServiceTime
)
{
this
.
totalServiceTime
=
totalServiceTime
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
int
getAuditStatus
()
{
return
auditStatus
;
}
public
void
setAuditStatus
(
int
auditStatus
)
{
this
.
auditStatus
=
auditStatus
;
}
public
String
getCheckFailedReason
()
{
return
checkFailedReason
;
}
public
void
setCheckFailedReason
(
String
checkFailedReason
)
{
this
.
checkFailedReason
=
checkFailedReason
;
}
public
String
getOffShelfReason
()
{
return
offShelfReason
;
}
public
void
setOffShelfReason
(
String
offShelfReason
)
{
this
.
offShelfReason
=
offShelfReason
;
}
public
int
getServiceType
()
{
return
serviceType
;
}
public
void
setServiceType
(
int
serviceType
)
{
this
.
serviceType
=
serviceType
;
}
public
int
getIsDelete
()
{
return
isDelete
;
}
public
void
setIsDelete
(
int
isDelete
)
{
this
.
isDelete
=
isDelete
;
}
public
int
getSortOrder
()
{
return
sortOrder
;
}
public
void
setSortOrder
(
int
sortOrder
)
{
this
.
sortOrder
=
sortOrder
;
}
public
String
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
String
createTime
)
{
this
.
createTime
=
createTime
;
}
public
String
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
String
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
double
getFeedbackRate
()
{
return
feedbackRate
;
}
public
void
setFeedbackRate
(
double
feedbackRate
)
{
this
.
feedbackRate
=
feedbackRate
;
}
public
int
getSaleoutAmount
()
{
return
saleoutAmount
;
}
public
void
setSaleoutAmount
(
int
saleoutAmount
)
{
this
.
saleoutAmount
=
saleoutAmount
;
}
public
int
getExpireDays
()
{
return
expireDays
;
}
public
void
setExpireDays
(
int
expireDays
)
{
this
.
expireDays
=
expireDays
;
}
public
String
getAimEffect
()
{
return
aimEffect
;
}
public
void
setAimEffect
(
String
aimEffect
)
{
this
.
aimEffect
=
aimEffect
;
}
public
String
getAdvantage
()
{
return
advantage
;
}
public
void
setAdvantage
(
String
advantage
)
{
this
.
advantage
=
advantage
;
}
public
String
getExtRemark
()
{
return
extRemark
;
}
public
void
setExtRemark
(
String
extRemark
)
{
this
.
extRemark
=
extRemark
;
}
}
public
static
class
ProductCategoryDtoBean
{
/**
* id : 233469
* categoryId1 : 23
* categoryId2 : 65
* categoryId3 : 0
* categoryName1 : 亲子教育
* categoryName2 : 厌学
* categoryName3 : 心理咨询服务
*/
private
int
id
;
private
int
categoryId1
;
private
int
categoryId2
;
private
int
categoryId3
;
private
String
categoryName1
;
private
String
categoryName2
;
private
String
categoryName3
;
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
int
getCategoryId1
()
{
return
categoryId1
;
}
public
void
setCategoryId1
(
int
categoryId1
)
{
this
.
categoryId1
=
categoryId1
;
}
public
int
getCategoryId2
()
{
return
categoryId2
;
}
public
void
setCategoryId2
(
int
categoryId2
)
{
this
.
categoryId2
=
categoryId2
;
}
public
int
getCategoryId3
()
{
return
categoryId3
;
}
public
void
setCategoryId3
(
int
categoryId3
)
{
this
.
categoryId3
=
categoryId3
;
}
public
String
getCategoryName1
()
{
return
categoryName1
;
}
public
void
setCategoryName1
(
String
categoryName1
)
{
this
.
categoryName1
=
categoryName1
;
}
public
String
getCategoryName2
()
{
return
categoryName2
;
}
public
void
setCategoryName2
(
String
categoryName2
)
{
this
.
categoryName2
=
categoryName2
;
}
public
String
getCategoryName3
()
{
return
categoryName3
;
}
public
void
setCategoryName3
(
String
categoryName3
)
{
this
.
categoryName3
=
categoryName3
;
}
}
public
static
class
ProductSpecDtosBean
{
/**
* id : 666956
* spec1 : 1
* spec1Name : 服务方式
* spec2 : 60
* spec2Name : 服务时长
* price : 500.0
*/
private
int
id
;
private
String
spec1
;
private
String
spec1Name
;
private
String
spec2
;
private
String
spec2Name
;
private
double
price
;
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
String
getSpec1
()
{
return
spec1
;
}
public
void
setSpec1
(
String
spec1
)
{
this
.
spec1
=
spec1
;
}
public
String
getSpec1Name
()
{
return
spec1Name
;
}
public
void
setSpec1Name
(
String
spec1Name
)
{
this
.
spec1Name
=
spec1Name
;
}
public
String
getSpec2
()
{
return
spec2
;
}
public
void
setSpec2
(
String
spec2
)
{
this
.
spec2
=
spec2
;
}
public
String
getSpec2Name
()
{
return
spec2Name
;
}
public
void
setSpec2Name
(
String
spec2Name
)
{
this
.
spec2Name
=
spec2Name
;
}
public
double
getPrice
()
{
return
price
;
}
public
void
setPrice
(
double
price
)
{
this
.
price
=
price
;
}
}
}
}
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/callback/ConsultServiceViewCallback.kt
View file @
4779cea0
package
com.yidianling.uikit.custom.widget.expertConsultService.callback
package
com.yidianling.uikit.custom.widget.expertConsultService.callback
import
com.yidianling.uikit.custom.http.response.ServiceItemBean
interface
ConsultServiceViewCallback
{
interface
ConsultServiceViewCallback
{
fun
onCloseClick
()
{}
//关闭按钮点击
fun
onCloseClick
()
{}
//关闭按钮点击
fun
onBackClick
()
{}
//返回列表点击
fun
onBackClick
()
{}
//返回列表点击
fun
onItemClick
(
serviceId
:
Int
)
{}
//服务列表点击
fun
onItemClick
(
serviceId
:
ServiceItemBean
.
ProductsBean
)
{}
//服务列表点击
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceDetailView.kt
View file @
4779cea0
...
@@ -5,8 +5,14 @@ import android.util.AttributeSet
...
@@ -5,8 +5,14 @@ import android.util.AttributeSet
import
android.view.View
import
android.view.View
import
android.widget.LinearLayout
import
android.widget.LinearLayout
import
android.widget.RelativeLayout
import
android.widget.RelativeLayout
import
com.ydl.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydlcommon.base.config.GlobalConfig
import
com.ydl.ydlcommon.base.config.HttpConfig
import
com.ydl.ydlcommon.bean.GlobalInfo
import
com.yidianling.common.tools.RxDeviceTool
import
com.yidianling.common.tools.RxDeviceTool
import
com.yidianling.im.R
import
com.yidianling.im.R
import
com.yidianling.uikit.custom.http.response.ServiceItemBean
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
kotlinx.android.synthetic.main.im_expert_consult_service_detail_view.view.*
import
kotlinx.android.synthetic.main.im_expert_consult_service_detail_view.view.*
...
@@ -45,7 +51,89 @@ class ExpertConsultServiceDetailView : RelativeLayout {
...
@@ -45,7 +51,89 @@ class ExpertConsultServiceDetailView : RelativeLayout {
/**
/**
* 设置数据
* 设置数据
*/
*/
fun
setData
(
bean
:
String
)
{
fun
updateData
(
bean
:
ServiceItemBean
.
ProductsBean
)
{
consult_service_title
.
text
=
bean
.
productDto
.
name
?:
""
consult_service_desc
.
text
=
bean
.
productDto
.
desc
?:
""
//是否是套餐
if
(
bean
.
productDto
.
isPackage
==
2
)
{
consult_service_is_package
.
text
=
"套餐"
consult_service_times
.
text
=
"${bean.productDto.packageNum}次"
consult_service_price_right
.
text
=
"/${bean.productSpecDtos.last().spec2}分钟"
//例: 套餐展示"/60分钟"
//起售次数展示
consult_service_low_buy_time
.
visibility
=
View
.
VISIBLE
consult_service_low_buy_time
.
text
=
"(${bean.productDto.packageNum}次起售)"
}
else
{
consult_service_is_package
.
text
=
"单次"
consult_service_times
.
text
=
"1次"
consult_service_price_right
.
text
=
"/次"
//例: 不是套餐展示"/次"
consult_service_low_buy_time
.
visibility
=
View
.
GONE
}
//可选时间类型
var
timeStr
=
StringBuffer
(
""
)
var
timeList
:
ArrayList
<
String
>
=
ArrayList
()
bean
.
productSpecDtos
.
forEach
{
timeList
.
add
(
it
.
spec2
)
}
//去重并按规则拼接
timeList
.
distinct
().
forEachIndexed
{
index
,
str
->
if
(
index
==
0
)
{
timeStr
.
append
(
"${str}分钟"
)
}
else
{
timeStr
.
append
(
"/${str}分钟"
)
}
}
consult_service_once_time_type
.
text
=
timeStr
.
toString
()
//可选服务类型
var
serviceTypeStr
=
StringBuffer
(
""
)
var
serviceTypeList
:
ArrayList
<
String
>
=
ArrayList
()
bean
.
productSpecDtos
.
forEach
{
serviceTypeList
.
add
(
it
.
spec1
)
}
//去重并按规则拼接
serviceTypeList
.
distinct
().
forEachIndexed
{
index
,
str
->
val
typeStr
=
getServiceType
(
str
)
if
(
typeStr
!=
"未知"
)
{
if
(
index
==
0
)
{
serviceTypeStr
.
append
(
"$typeStr"
)
}
else
{
serviceTypeStr
.
append
(
"/$typeStr"
)
}
}
}
consult_service_service_type
.
text
=
serviceTypeStr
.
toString
()
//价格,取productSpecDtos数组最后一个价格,不保留小数
consult_service_service_price
.
text
=
String
.
format
(
"%.0f"
,
(
bean
.
productSpecDtos
.
last
().
price
)
)
consult_service_btn
.
setOnClickListener
{
NewH5Activity
.
start
(
mContext
,
H5Params
(
HttpConfig
.
MH5_URL
+
"consult/#/pages/DownOrder/DownOrder?product_id="
+
bean
.
productDto
.
id
,
null
))
}
}
private
fun
getServiceType
(
index
:
String
):
String
{
return
when
(
index
)
{
"1"
->
{
"文字"
}
"2"
->
{
"电话"
}
"3"
->
{
"当面"
}
"4"
->
{
"视频"
}
else
->
{
"未知"
}
}
}
}
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceItemView.kt
View file @
4779cea0
package
com.yidianling.uikit.custom.widget.expertConsultService.view
package
com.yidianling.uikit.custom.widget.expertConsultService.view
import
android.annotation.SuppressLint
import
android.content.Context
import
android.content.Context
import
android.util.AttributeSet
import
android.util.AttributeSet
import
android.view.View
import
android.view.View
import
android.widget.LinearLayout
import
android.widget.LinearLayout
import
com.ydl.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydlcommon.base.config.HttpConfig
import
com.yidianling.im.R
import
com.yidianling.im.R
import
com.yidianling.uikit.custom.http.response.ServiceItemBean
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
kotlinx.android.synthetic.main.im_expert_consult_service_item_view.view.*
import
kotlinx.android.synthetic.main.im_expert_consult_service_item_view.view.*
...
@@ -36,24 +41,53 @@ class ExpertConsultServiceItemView : LinearLayout {
...
@@ -36,24 +41,53 @@ class ExpertConsultServiceItemView : LinearLayout {
orientation
=
HORIZONTAL
orientation
=
HORIZONTAL
View
.
inflate
(
mContext
,
R
.
layout
.
im_expert_consult_service_item_view
,
this
)
View
.
inflate
(
mContext
,
R
.
layout
.
im_expert_consult_service_item_view
,
this
)
setOnClickListener
{
//todo xj 接接口的时候修改成服务id
mListener
?.
onItemClick
(
0
)
}
}
im_expert_service_list_btn
.
setOnClickListener
{
/**
//todo 去咨询
* 设置数据
*/
@SuppressLint
(
"SetTextI18n"
)
fun
setData
(
bean
:
ServiceItemBean
.
ProductsBean
)
{
//是否是套餐
if
(
bean
.
productDto
.
isPackage
==
2
)
{
//展示左上角套餐布局
service_item_package
.
visibility
=
View
.
VISIBLE
//服务名
service_item_title
.
text
=
" ${bean.productDto.name}"
//起售次数展示
service_item_low_buy_time
.
visibility
=
View
.
VISIBLE
service_item_low_buy_time
.
text
=
"(${bean.productDto.packageNum}次起售)"
}
else
{
//隐藏套餐布局
service_item_package
.
visibility
=
View
.
GONE
//服务名
service_item_title
.
text
=
bean
.
productDto
.
name
?:
""
//隐藏起售次数限制
service_item_low_buy_time
.
visibility
=
View
.
GONE
}
}
//价格,取productSpecDtos数组最后一个价格,不保留小数
service_item_price
.
text
=
String
.
format
(
"%.0f"
,
(
bean
.
productSpecDtos
.
last
().
price
)
)
//时间,取productSpecDtos数组最后一个的时间
service_item_time
.
text
=
"/${bean.productSpecDtos.last().spec2}分钟"
//好评率,*20后 保留1位小数
service_item_feddbackrate
.
text
=
String
.
format
(
"%.1f"
,
(
bean
.
productDto
.
feedbackRate
)
*
20f
)
+
"%"
//销量
service_item_saleout_num
.
text
=
"销量${bean.productDto.saleoutAmount}"
setOnClickListener
{
mListener
?.
onItemClick
(
bean
)
}
}
/**
im_expert_service_list_btn
.
setOnClickListener
{
* 设置数据
NewH5Activity
.
start
(
mContext
,
H5Params
(
HttpConfig
.
MH5_URL
+
"consult/#/pages/DownOrder/DownOrder?product_id="
+
bean
.
productDto
.
id
,
null
))
*/
}
fun
setData
(
bean
:
String
)
{
}
}
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceListDialog.kt
View file @
4779cea0
...
@@ -16,6 +16,7 @@ import android.widget.ScrollView
...
@@ -16,6 +16,7 @@ import android.widget.ScrollView
import
com.yidianling.common.tools.RxDeviceTool
import
com.yidianling.common.tools.RxDeviceTool
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.im.R
import
com.yidianling.im.R
import
com.yidianling.uikit.custom.http.response.ServiceItemBean
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
kotlinx.android.synthetic.main.im_expert_consult_service_list_dialog_layout.*
import
kotlinx.android.synthetic.main.im_expert_consult_service_list_dialog_layout.*
...
@@ -23,11 +24,12 @@ import kotlinx.android.synthetic.main.im_expert_consult_service_list_dialog_layo
...
@@ -23,11 +24,12 @@ import kotlinx.android.synthetic.main.im_expert_consult_service_list_dialog_layo
* 专家咨询服务列表弹框
* 专家咨询服务列表弹框
* Created by xj on 2019/8/7.
* Created by xj on 2019/8/7.
*/
*/
class
ExpertConsultServiceListDialog
(
val
mContext
:
Context
):
Dialog
(
mContext
,
R
.
style
.
dialog_default_style
)
{
class
ExpertConsultServiceListDialog
(
val
mContext
:
Context
,
val
mList
:
List
<
ServiceItemBean
>
):
Dialog
(
mContext
,
R
.
style
.
dialog_default_style
)
{
private
var
mConsultServiceListView
:
View
?
=
null
private
var
mConsultServiceListView
:
ExpertConsultService
View
?
=
null
private
var
mConsultServiceDetailView
:
View
?
=
null
private
var
mConsultServiceDetailView
:
ExpertConsultServiceDetail
View
?
=
null
private
var
mViewList
:
ArrayList
<
View
>
=
ArrayList
()
private
var
mViewList
:
ArrayList
<
View
>
=
ArrayList
()
private
var
mSelectType
:
String
=
"全部"
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
...
@@ -42,39 +44,26 @@ class ExpertConsultServiceListDialog(val mContext: Context): Dialog(mContext, R.
...
@@ -42,39 +44,26 @@ class ExpertConsultServiceListDialog(val mContext: Context): Dialog(mContext, R.
window
.
attributes
=
params
window
.
attributes
=
params
var
typeList
:
ArrayList
<
String
>
=
ArrayList
()
var
typeList
:
ArrayList
<
String
>
=
ArrayList
()
typeList
.
add
(
"全部"
)
typeList
.
add
(
mSelectType
)
//默认选中
typeList
.
add
(
"婚姻家庭"
)
mList
.
forEach
{
item
->
typeList
.
add
(
"恋爱情感"
)
typeList
.
add
(
item
.
cateName
)
typeList
.
add
(
"性心理"
)
}
typeList
.
add
(
"亲子关系"
)
typeList
.
add
(
"人际社交"
)
typeList
.
add
(
"精神疾病"
)
var
serviceList
:
ArrayList
<
String
>
=
ArrayList
()
serviceList
.
add
(
"全部"
)
serviceList
.
add
(
"婚姻家庭"
)
serviceList
.
add
(
"恋爱情感"
)
serviceList
.
add
(
"性心理"
)
serviceList
.
add
(
"亲子关系"
)
serviceList
.
add
(
"人际社交"
)
serviceList
.
add
(
"精神疾病"
)
mConsultServiceListView
=
mConsultServiceListView
=
ExpertConsultServiceView
(
ExpertConsultServiceView
(
mContext
mContext
)
)
(
mConsultServiceListView
as
ExpertConsultServiceView
).
setDataAndClick
(
typeList
,
service
List
,
object
:
ConsultServiceViewCallback
{
(
mConsultServiceListView
as
ExpertConsultServiceView
).
setDataAndClick
(
typeList
,
m
List
,
object
:
ConsultServiceViewCallback
{
override
fun
onCloseClick
()
{
override
fun
onCloseClick
()
{
dismiss
()
dismiss
()
}
}
override
fun
onItemClick
(
serviceId
:
Int
)
{
override
fun
onItemClick
(
serviceBean
:
ServiceItemBean
.
ProductsBean
)
{
// todo 执行右滑动画和接口请求
if
(
mConsultServiceDetailView
!=
null
)
{
mConsultServiceDetailView
?.
updateData
(
serviceBean
)
dialog_bottom_scroll_view
.
currentItem
=
1
dialog_bottom_scroll_view
.
currentItem
=
1
}
}
}
})
})
...
@@ -85,7 +74,6 @@ class ExpertConsultServiceListDialog(val mContext: Context): Dialog(mContext, R.
...
@@ -85,7 +74,6 @@ class ExpertConsultServiceListDialog(val mContext: Context): Dialog(mContext, R.
ExpertConsultServiceDetailView
(
ExpertConsultServiceDetailView
(
mContext
,
object
:
ConsultServiceViewCallback
{
mContext
,
object
:
ConsultServiceViewCallback
{
override
fun
onBackClick
()
{
override
fun
onBackClick
()
{
// todo 执行左滑动画
dialog_bottom_scroll_view
.
currentItem
=
0
dialog_bottom_scroll_view
.
currentItem
=
0
}
}
})
})
...
...
m-im/src/main/java/com/yidianling/uikit/custom/widget/expertConsultService/view/ExpertConsultServiceView.kt
View file @
4779cea0
...
@@ -6,6 +6,7 @@ import android.view.View
...
@@ -6,6 +6,7 @@ import android.view.View
import
android.widget.LinearLayout
import
android.widget.LinearLayout
import
com.yidianling.common.tools.RxDeviceTool
import
com.yidianling.common.tools.RxDeviceTool
import
com.yidianling.im.R
import
com.yidianling.im.R
import
com.yidianling.uikit.custom.http.response.ServiceItemBean
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import
kotlinx.android.synthetic.main.im_expert_consult_service_view.view.*
import
kotlinx.android.synthetic.main.im_expert_consult_service_view.view.*
...
@@ -13,7 +14,9 @@ class ExpertConsultServiceView : LinearLayout {
...
@@ -13,7 +14,9 @@ class ExpertConsultServiceView : LinearLayout {
private
var
typeSelectedIndex
:
Int
=
0
private
var
typeSelectedIndex
:
Int
=
0
private
var
mTypeList
:
ArrayList
<
String
>
=
ArrayList
()
private
var
mTypeList
:
ArrayList
<
String
>
=
ArrayList
()
private
var
mServiceList
:
ArrayList
<
String
>
=
ArrayList
()
private
var
mServiceList
:
ArrayList
<
ServiceItemBean
>
=
ArrayList
()
private
var
mListener
:
ConsultServiceViewCallback
?
=
null
constructor
(
context
:
Context
)
:
super
(
context
)
{
constructor
(
context
:
Context
)
:
super
(
context
)
{
mContext
=
context
mContext
=
context
...
@@ -59,13 +62,13 @@ class ExpertConsultServiceView : LinearLayout {
...
@@ -59,13 +62,13 @@ class ExpertConsultServiceView : LinearLayout {
*/
*/
fun
setDataAndClick
(
fun
setDataAndClick
(
typeList
:
ArrayList
<
String
>,
typeList
:
ArrayList
<
String
>,
serviceList
:
ArrayList
<
String
>,
allServiceList
:
List
<
ServiceItemBean
>,
listener
:
ConsultServiceViewCallback
?
listener
:
ConsultServiceViewCallback
?
)
{
)
{
mListener
=
listener
consult_service_dialog_close
.
setOnClickListener
{
consult_service_dialog_close
.
setOnClickListener
{
l
istener
?.
onCloseClick
()
mL
istener
?.
onCloseClick
()
}
}
// 设置顶部滚动类型数据
// 设置顶部滚动类型数据
...
@@ -82,30 +85,45 @@ class ExpertConsultServiceView : LinearLayout {
...
@@ -82,30 +85,45 @@ class ExpertConsultServiceView : LinearLayout {
)
)
item
.
setData
(
str
,
index
==
typeSelectedIndex
)
item
.
setData
(
str
,
index
==
typeSelectedIndex
)
item
.
setOnClickListener
{
item
.
setOnClickListener
{
resetSelected
(
index
)
typeSelectedIndex
=
index
resetSelected
()
selectTypeServiceList
()
}
}
expert_consult_service_type_list
.
addView
(
item
)
expert_consult_service_type_list
.
addView
(
item
)
}
}
}
}
}
}
// 设置服务列表数据
typeSelectedIndex
=
0
// 初始化为全部选中
if
(
serviceList
!=
null
&&
serviceList
.
size
!=
0
)
{
mServiceList
.
clear
()
mServiceList
.
clear
()
mServiceList
.
addAll
(
serviceList
)
mServiceList
.
addAll
(
allServiceList
)
// 设置服务列表数据
selectTypeServiceList
()
}
mServiceList
.
forEachIndexed
{
index
,
str
->
/**
val
item
=
ExpertConsultServiceItemView
(
mContext
!!
,
listener
)
* 刷新服务列表数据
*/
private
fun
selectTypeServiceList
()
{
expert_consult_service_service_list
.
removeAllViews
()
if
(
mServiceList
.
size
!=
0
)
{
mServiceList
.
forEachIndexed
{
index
,
itemBean
->
//当选中String相同的时候,添加view,或者选中typeSelectedIndex==0的时候,展示全部
if
(
itemBean
.
cateName
==
mTypeList
[
typeSelectedIndex
]
||
typeSelectedIndex
==
0
)
{
itemBean
.
products
.
forEach
{
val
item
=
ExpertConsultServiceItemView
(
mContext
!!
,
mListener
)
item
.
setData
(
it
)
expert_consult_service_service_list
.
addView
(
item
)
expert_consult_service_service_list
.
addView
(
item
)
}
}
}
}
}
}
}
}
private
fun
resetSelected
(
index
:
Int
)
{
/**
typeSelectedIndex
=
index
* 刷新类型列表数据
*/
private
fun
resetSelected
()
{
for
(
index
in
0
until
expert_consult_service_type_list
.
childCount
)
{
for
(
index
in
0
until
expert_consult_service_type_list
.
childCount
)
{
var
view
=
expert_consult_service_type_list
.
getChildAt
(
index
)
var
view
=
expert_consult_service_type_list
.
getChildAt
(
index
)
if
(
view
is
ExpertConsultServiceTypeItemView
)
{
if
(
view
is
ExpertConsultServiceTypeItemView
)
{
...
...
m-im/src/main/res/drawable/im_service_package_bg.xml
0 → 100644
View file @
4779cea0
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:shape=
"rectangle"
>
<corners
android:radius=
"1dp"
/>
<solid
android:color=
"#FF9500"
/>
</shape>
\ No newline at end of file
m-im/src/main/res/layout/im_expert_consult_service_detail_view.xml
View file @
4779cea0
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
android:src=
"@drawable/im_expert_service_list_left_back"
/>
android:src=
"@drawable/im_expert_service_list_left_back"
/>
<TextView
<TextView
android:id=
"@+id/consult_service_title"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"调节孕期情绪烦躁,建立积极心态面对新生活"
android:text=
"调节孕期情绪烦躁,建立积极心态面对新生活"
...
@@ -73,6 +74,7 @@
...
@@ -73,6 +74,7 @@
android:layout_marginBottom=
"15dp"
android:layout_marginBottom=
"15dp"
android:text=
"相互了解,初步建立咨访关系,解答你心中关于咨询本身的一切疑惑,解答你心中关于咨询本身的一切疑惑,解答你心中关于咨询本身的一切疑惑,为你的困扰解决明确咨询目标与方案。相互了解,初步建立咨访关系,解答你心中关于咨询本身的一切疑惑,为你的困扰解决明确咨询目标与方案。相互了解,初步建立咨访关系,解答你心中关于咨询"
android:text=
"相互了解,初步建立咨访关系,解答你心中关于咨询本身的一切疑惑,解答你心中关于咨询本身的一切疑惑,解答你心中关于咨询本身的一切疑惑,为你的困扰解决明确咨询目标与方案。相互了解,初步建立咨访关系,解答你心中关于咨询本身的一切疑惑,为你的困扰解决明确咨询目标与方案。相互了解,初步建立咨访关系,解答你心中关于咨询"
android:textColor=
"#666666"
android:textColor=
"#666666"
android:fontFamily=
"sans-serif-thin"
android:textSize=
"14dp"
android:textSize=
"14dp"
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
/>
...
@@ -127,6 +129,7 @@
...
@@ -127,6 +129,7 @@
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
<TextView
<TextView
android:id=
"@+id/consult_service_is_package"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -135,6 +138,7 @@
...
@@ -135,6 +138,7 @@
android:textSize=
"14dp"
/>
android:textSize=
"14dp"
/>
<TextView
<TextView
android:id=
"@+id/consult_service_times"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -177,6 +181,7 @@
...
@@ -177,6 +181,7 @@
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
<TextView
<TextView
android:id=
"@+id/consult_service_once_time_type"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -185,6 +190,7 @@
...
@@ -185,6 +190,7 @@
android:textSize=
"14dp"
/>
android:textSize=
"14dp"
/>
<TextView
<TextView
android:id=
"@+id/consult_service_service_type"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -322,6 +328,7 @@
...
@@ -322,6 +328,7 @@
android:textSize=
"10dp"
/>
android:textSize=
"10dp"
/>
<TextView
<TextView
android:id=
"@+id/consult_service_service_price"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"320"
android:text=
"320"
...
@@ -330,15 +337,24 @@
...
@@ -330,15 +337,24 @@
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
/>
<TextView
<TextView
android:id=
"@+id/consult_service_price_right"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"/次"
android:text=
"/次"
android:textColor=
"#666666"
android:textColor=
"#666666"
android:textSize=
"10dp"
android:textSize=
"10dp"
/>
android:textStyle=
"bold"
/>
<TextView
android:id=
"@+id/consult_service_low_buy_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
tools:text=
"(几次起售)"
android:visibility=
"gone"
android:textColor=
"#666666"
android:textSize=
"10dp"
/>
</LinearLayout>
</LinearLayout>
<TextView
<TextView
android:id=
"@+id/consult_service_btn"
android:layout_width=
"125dp"
android:layout_width=
"125dp"
android:layout_height=
"38dp"
android:layout_height=
"38dp"
android:background=
"@drawable/im_expert_service_detail_btn_bg"
android:background=
"@drawable/im_expert_service_detail_btn_bg"
...
...
m-im/src/main/res/layout/im_expert_consult_service_item_view.xml
View file @
4779cea0
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
xmlns:tools=
"http://schemas.android.com/tools"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
<LinearLayout
<LinearLayout
...
@@ -13,14 +14,32 @@
...
@@ -13,14 +14,32 @@
android:paddingTop=
"10dp"
android:paddingTop=
"10dp"
android:paddingBottom=
"18dp"
>
android:paddingBottom=
"18dp"
>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
<TextView
android:id=
"@+id/service_item_title"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"
调节孕期情绪烦躁,建立积极心态面对新生活"
tools:text=
"
调节孕期情绪烦躁,建立积极心态面对新生活"
android:textColor=
"#1A1A1A"
android:textColor=
"#1A1A1A"
android:textSize=
"16dp"
android:textSize=
"16dp"
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
/>
<TextView
android:id=
"@+id/service_item_package"
android:layout_width=
"24dp"
android:layout_height=
"14dp"
android:gravity=
"center"
android:text=
"套餐"
android:visibility=
"gone"
android:layout_marginTop=
"3dp"
android:textColor=
"#ffffff"
android:textSize=
"10dp"
android:background=
"@drawable/im_service_package_bg"
/>
</RelativeLayout>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
...
@@ -42,6 +61,7 @@
...
@@ -42,6 +61,7 @@
android:textSize=
"10dp"
/>
android:textSize=
"10dp"
/>
<TextView
<TextView
android:id=
"@+id/service_item_price"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"320"
android:text=
"320"
...
@@ -51,20 +71,31 @@
...
@@ -51,20 +71,31 @@
</LinearLayout>
</LinearLayout>
<TextView
<TextView
android:id=
"@+id/service_item_time"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"/60分钟"
android:text=
"/60分钟"
android:textColor=
"#999999"
android:textColor=
"#999999"
android:textSize=
"12dp"
/>
android:textSize=
"12dp"
/>
<TextView
android:id=
"@+id/service_item_low_buy_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
tools:text=
"(几次起售)"
android:visibility=
"gone"
android:textColor=
"#999999"
android:textSize=
"12dp"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"好评率"
android:text=
"好评率"
android:layout_marginLeft=
"10dp"
android:textColor=
"#999999"
android:textColor=
"#999999"
android:textSize=
"12dp"
/>
android:textSize=
"12dp"
/>
<TextView
<TextView
android:id=
"@+id/service_item_feddbackrate"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"99.9%"
android:text=
"99.9%"
...
@@ -94,6 +125,7 @@
...
@@ -94,6 +125,7 @@
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
/>
<TextView
<TextView
android:id=
"@+id/service_item_saleout_num"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"2dp"
android:layout_marginTop=
"2dp"
...
...
m-im/src/main/res_uikit/layout/im_nim_message_activity_text_layout.xml
View file @
4779cea0
...
@@ -78,7 +78,7 @@
...
@@ -78,7 +78,7 @@
android:layout_weight=
"1"
android:layout_weight=
"1"
android:autoLink=
"all"
android:autoLink=
"all"
android:background=
"#ffffff"
android:background=
"#ffffff"
android:hint=
"
放心聊天,信息保密"
android:hint=
"
隐私保密,安心咨询"
android:maxHeight=
"72dp"
android:maxHeight=
"72dp"
android:maxLines=
"4"
android:maxLines=
"4"
android:textColorHint=
"#999999"
android:textColorHint=
"#999999"
...
...
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