首先画面描画上,JAFRSHO07020Popup和JAFRSHO07030Popup布局等很像
将下面的JAFRSHO07030Popup完全按照JAFRSHO07020Popup的布局写法,逻辑实现等不变
JAFRSHO07020Popup有受付完了日時,出勤場所,氏名,車名,依頼内容
在JAFRSHO07030Popup中保留有受付完了日時,改写出勤場所为取消理由并去掉参照ボタン,改写氏名为メモ保留参照ボタン
其他的可以去掉
改写:
package jp.or.jaf.syg.feature.jafrsho07.jafrsho07030
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
import androidx.hilt.navigation.compose.hiltViewModel
import jp.or.jaf.syg.core.designsystem.theme.*
import jp.or.jaf.syg.core.ui.components.JafText
import jp.or.jaf.syg.core.ui.components.JafThemelessBottomButton
import jp.or.jaf.syg.feature.R
import jp.or.jaf.syg.feature.jafrsho99.components.JafUiStateHost
import org.json.JSONObject
/**
* JAFRSHO07030 指令確認画面_指令取消受信ポップアップ
*
* 設計書: JAFRSHO07030_画面設計書.xlsx
*
*/
@RequiresApi(Build.VERSION_CODES.O)
@Composable
fun JAFRSHO07030Popup(
params: JSONObject,
modifier: Modifier = Modifier,
viewModel: JAFRSHO07030ViewModel = hiltViewModel()
) {
// パラメータから初期値を抽出
val ifShikibetsuCd by remember { mutableStateOf(params.optString("ifShikibetsuCd", "")) }
val userCd by remember { mutableStateOf(params.optString("userCd", "")) }
val shireiMngCd by remember { mutableStateOf(params.optString("shireiMngCd", "")) }
val hanyoReasonCd by remember { mutableStateOf(params.optString("hanyoReasonCd", "")) }
// 初期化処理
LaunchedEffect(Unit) {
viewModel.handleAction(
JAFRSHO07030Action.Initialize(
ifShikibetsuCd = ifShikibetsuCd,
userCd = userCd,
shireiMngCd = shireiMngCd,
hanyoReasonCd = hanyoReasonCd
)
)
}
// UiState の監視
val uiState by viewModel.uiState.collectAsState()
if (uiState.isVisible) {
Dialog(
onDismissRequest = {
viewModel.handleAction(JAFRSHO07030Action.OnClosePopup)
},
properties = DialogProperties(
dismissOnBackPress = false,
dismissOnClickOutside = false
)
) {
JAFRSHO07030PopupContent(
uiState = uiState,
onOkClick = {
viewModel.handleAction(JAFRSHO07030Action.OnBtnRefer(shireiMngCd))
},
onCancelClick = {
viewModel.handleAction(JAFRSHO07030Action.OnBtnRoger(shireiMngCd))
}
)
}
}
}
@Composable
private fun JAFRSHO07030PopupContent(
uiState: JAFRSHO07030UiStateData,
onOkClick: () -> Unit,
onCancelClick: () -> Unit
) {
// ラベル幅統一
val labelWidth: Dp = 200.dp
Column(
modifier = Modifier
.fillMaxWidth(0.95f)
.clip(MaterialTheme.shapes.searchFormOpenButtonShape)
.background(
brush = MaterialTheme.gradientColorScheme.knowMiddleLayer,
shape = MaterialTheme.shapes.searchFormOpenButtonShape
)
) {
// トップバー
Box(
modifier = Modifier
.fillMaxWidth()
.height(50.dp)
.background(color = MaterialTheme.colorScheme.knowTopBar)
) {
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
JafText(
text = "指令取消受信",
textcolor = MaterialTheme.colorScheme.knowTopBarText,
fontSize = 22.sp,
style = JafTypography.topbarText
)
}
Box(
modifier = Modifier.fillMaxSize().padding(end = 16.dp),
contentAlignment = Alignment.CenterEnd
) {
JafText(
text = uiState.receptionTime ?: "",
textcolor = MaterialTheme.colorScheme.knowTopBarText,
fontSize = 22.sp,
style = JafTypography.topbarText
)
}
}
Spacer(modifier = Modifier.height(16.dp))
Column(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 20.dp)
.verticalScroll(rememberScrollState())
) {
// 指令No表示
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp),
verticalAlignment = Alignment.CenterVertically
) {
Row(modifier = Modifier.padding(end = 40.dp)) {
JafText(
text = "指令No",
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
textAlign = TextAlign.Left,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
Column(modifier = Modifier.weight(1f).clip(MaterialTheme.shapes.medium)) {
JafText(
text = uiState.shireiNo ?: "",
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
style = JafTypography.middleLayerText
)
}
}
Spacer(modifier = Modifier.height(20.dp))
// コンテンツボックス領域
Column(
modifier = Modifier
.fillMaxWidth()
.background(
shape = MaterialTheme.shapes.searchFormOpenButtonShape,
color = MaterialTheme.colorScheme.KnowContentLayer
)
) {
Spacer(modifier = Modifier.height(20.dp))
// 取消理由
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp),
verticalAlignment = Alignment.CenterVertically
) {
Row(modifier = Modifier.padding(end = 40.dp)) {
JafText(
text = "取消理由",
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
Column(modifier = Modifier.weight(1f)) {
JafText(
text = uiState.torookeshiRiyuName ?: "",
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
style = JafTypography.middleLayerText
)
}
}
// 追加メッセージ(存在時のみ)
if (!uiState.tuikaMassage.isNullOrBlank()) {
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp)
.padding(top = 16.dp),
verticalAlignment = Alignment.CenterVertically
) {
Row(modifier = Modifier.padding(end = 40.dp)) {
JafText(
text = "追加情報",
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
Column(modifier = Modifier.weight(1f)) {
JafText(
text = uiState.tuikaMassage,
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
style = JafTypography.middleLayerText
)
}
}
}
Spacer(modifier = Modifier.height(20.dp))
}
// エラーメッセージ
uiState.errorMessage?.let { message ->
Row(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 8.dp),
horizontalArrangement = Arrangement.Center
) {
Text(
text = message,
color = MaterialTheme.colorScheme.error,
fontSize = 16.sp,
textAlign = TextAlign.Center
)
}
}
// ローディング中
if (uiState.isLoading) {
Row(
modifier = Modifier
.fillMaxWidth()
.height(60.dp),
horizontalArrangement = Arrangement.Center,
verticalAlignment = Alignment.CenterVertically
) {
CircularProgressIndicator(strokeWidth = 2.dp, modifier = Modifier.size(30.dp))
}
}
// 確認メッセージ
Row(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 16.dp),
horizontalArrangement = Arrangement.Center
) {
JafText(
text = "この指令を取消しますか?",
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
fontWeight = FontWeight.Medium,
textAlign = TextAlign.Center,
style = JafTypography.message
)
}
// ボタンエリア
Row(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 15.dp),
horizontalArrangement = Arrangement.Center
) {
// キャンセルボタン
JafThemelessBottomButton(
onClick = onCancelClick,
modifier = Modifier.size(220.dp, 75.dp),
enabled = uiState.isCancelButtonEnabled && !uiState.isLoading,
text = stringResource(R.string.cancel),
style = JafTypography.bottomLayerText
)
Spacer(modifier = Modifier.width(20.dp))
// OKボタン
JafThemelessBottomButton(
onClick = onOkClick,
modifier = Modifier.size(220.dp, 75.dp),
enabled = uiState.isOkButtonEnabled && !uiState.isLoading,
text = "OK",
style = JafTypography.bottomLayerText
)
}
}
}
}
参照:
/***********************************************************
* Copyright NEC Corporation 2025. All rights reserved
* No permission to use, copy, modify and distribute this
* software and its documentation for any purpose is granted.
* This software is provided under applicable license
* agreement only.
*
* システム名 : JAF RSシステム
* サブシステム名 : 車業アプリ
* クラス名 : JAFRSHO07020Popup
*
* @author NEC
*
***********************************************************/
package jp.or.jaf.syg.feature.jafrsho07.jafrsho07020
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.viewmodel.compose.viewModel
import jp.or.jaf.syg.core.designsystem.theme.JafTextFieldLabelWidthPopup
import jp.or.jaf.syg.core.designsystem.theme.JafTypography
import jp.or.jaf.syg.core.designsystem.theme.KnowContentLayer
import jp.or.jaf.syg.core.designsystem.theme.bottomLayerText
import jp.or.jaf.syg.core.designsystem.theme.gradientColorScheme
import jp.or.jaf.syg.core.designsystem.theme.knowContentLayerText
import jp.or.jaf.syg.core.designsystem.theme.knowTopBar
import jp.or.jaf.syg.core.designsystem.theme.knowTopBarText
import jp.or.jaf.syg.core.designsystem.theme.middleLayerText
import jp.or.jaf.syg.core.designsystem.theme.message
import jp.or.jaf.syg.core.designsystem.theme.popupTitleLabel
import jp.or.jaf.syg.core.designsystem.theme.searchFormOpenButtonShape
import jp.or.jaf.syg.core.designsystem.theme.textFieldLabel
import jp.or.jaf.syg.core.designsystem.theme.topbarText
import jp.or.jaf.syg.core.ui.components.JafRefrenceButton
import jp.or.jaf.syg.core.ui.components.JafText
import jp.or.jaf.syg.core.ui.components.JafThemelessBottomButton
import jp.or.jaf.syg.feature.R
import jp.or.jaf.syg.feature.jafrsho99.components.JafUiStateHost
import jp.or.jaf.syg.core.designsystem.theme.jafFFA722
import jp.or.jaf.syg.core.designsystem.theme.jaf4DD1BE
import jp.or.jaf.syg.core.designsystem.theme.JafKnowContentLayerTextDark
import jp.or.jaf.syg.core.designsystem.theme.requiredMark
import org.json.JSONObject
/**
* JAFRSHO07020Popup
*
* 指令確認画面_指令変更受信ポップアップ画面
* モーダルダイアログとして表示されるポップアップ
*/
@RequiresApi(Build.VERSION_CODES.O)
@Composable
fun JAFRSHO07020Popup(
params: JSONObject,
modifier: Modifier = Modifier,
viewModel: JAFRSHO07020ViewModel = hiltViewModel()
) {
// 画面の状態データ
JafUiStateHost(
modifier = modifier.fillMaxSize(),
viewModel = viewModel,
params = params
) {
stateData -> JAFRSHO07020ContentView(modifier, viewModel, stateData)
}
}
@Composable
fun JAFRSHO07020ContentView(
modifier: Modifier,
viewModel: JAFRSHO07020ViewModel,
stateData: JAFRSHO07020UiStateData
){
// ラベルの幅を統一
val labelWidth: Dp = 200.dp
// コンテンツ
Column(
modifier = Modifier
.fillMaxSize()
.background(
brush= MaterialTheme.gradientColorScheme.knowMiddleLayer,
shape = MaterialTheme.shapes.searchFormOpenButtonShape
)
) {
// トップバー
Box(
modifier = Modifier
.fillMaxWidth()
.height(50.dp)
.background(color = MaterialTheme.colorScheme.knowTopBar)
) {
// タイトル中央揃え
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
// タイトル
JafText(
text = "指令変更受信",
textcolor = MaterialTheme.colorScheme.knowTopBarText,
fontSize = 22.sp,
style = JafTypography.topbarText
)
}
// 右側時間+受信
Box(
modifier = Modifier
.fillMaxSize()
.padding(end = 16.dp),
contentAlignment = Alignment.CenterEnd
) {
// 指示受信時刻
JafText(
text = stateData.lblReceptionTime,
textcolor = MaterialTheme.colorScheme.knowTopBarText,
fontSize = 22.sp,
style = JafTypography.topbarText
)
}
}
// スペース
Spacer(modifier = Modifier.height(16.dp))
// コンテンツ領域
Column(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 20.dp)
) {
// 指令Noを示す
Column(
modifier = Modifier.fillMaxWidth()
) {
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp),
verticalAlignment = Alignment.CenterVertically
) {
// ラベルセクション
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
) {
JafText(
text = "指令No",
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
textAlign = TextAlign.Left,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
// コンテンツセクション
Column(
modifier = Modifier
.weight(1f)
.fillMaxWidth()
.clip(MaterialTheme.shapes.medium)
) {
JafText(
text = stateData.lblInstructionNo,
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
style = JafTypography.middleLayerText
)
}
}
}
// スペース
Spacer(modifier = Modifier.height(20.dp))
// コンテンツボックス領域
Column(
modifier = Modifier
.fillMaxWidth()
.weight(1f)
.background(
shape = MaterialTheme.shapes.searchFormOpenButtonShape,
color = MaterialTheme.colorScheme.KnowContentLayer
)
) {
// スペース
Spacer(modifier = Modifier.height(20.dp))
// コンテンツ行の指令(TODO)
//受付完了日時
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp),
verticalAlignment = Alignment.CenterVertically
) {
// ラベルセクション
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
) {
JafText(
text = stringResource(id = R.string.column_completion_time),
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
textAlign = TextAlign.Left,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
// コンテンツセクション
Column(
modifier = Modifier
.weight(1f)
.fillMaxWidth()
.clip(MaterialTheme.shapes.medium)
) {
JafText(
text = stateData.lblUketsukeCompDatetime,
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
style = JafTypography.middleLayerText
)
}
}
//出動場所
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp)
.padding(top = 16.dp)
.background(if(stateData.locationChangeFlg) jafFFA722 else MaterialTheme.colorScheme.KnowContentLayer),
verticalAlignment = Alignment.CenterVertically
){
// ラベルセクション
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
) {
JafText(
text = stringResource(id = R.string.dispatch_place),
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
textAlign = TextAlign.Left,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
// コンテンツセクション
Column(
modifier = Modifier
.weight(1f)
.fillMaxWidth()
.clip(MaterialTheme.shapes.medium)
) {
Row{
JafText(
text = (stateData.lblLocation).take(if(stateData.lblLocation.length > 54) 53 else stateData.lblLocation.length),
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
textAlign = TextAlign.Left,
style = JafTypography.middleLayerText
)
// 参照ボタン
if (stateData.lblLocation.length > 54) {
JafRefrenceButton(
modifier = Modifier.size(28.dp),
enabled = true,
onClick = {
viewModel.onAction(JAFRSHO07020Action.ReferenceButton("出動場所"))
}
)
}
}
}
}
//氏名
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp)
.padding(top = 16.dp)
.background(if(stateData.kaiinNameChangeFlg) jafFFA722 else MaterialTheme.colorScheme.KnowContentLayer),
verticalAlignment = Alignment.CenterVertically
) {
// ラベルセクション
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
) {
JafText(
text = stringResource(id = R.string.customer_name),
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
textAlign = TextAlign.Left,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
// コンテンツセクション
Column(
modifier = Modifier
.weight(1f)
.fillMaxWidth()
.clip(MaterialTheme.shapes.medium)
){
Row{
JafText(
text = (stateData.lblKaiinName).take(if (stateData.lblKaiinName.length > 40) 39 else stateData.lblKaiinName.length),
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
textAlign = TextAlign.Left,
style = JafTypography.middleLayerText
)
// 参照ボタン
if (stateData.lblKaiinName.length > 40) {
JafRefrenceButton(
modifier = Modifier.size(28.dp),
enabled = true,
onClick = {
viewModel.onAction(JAFRSHO07020Action.ReferenceButton("氏名"))
}
)
}
}
}
}
//車名
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp)
.padding(top = 16.dp)
.background(if(stateData.carTsushoNameChangeFlg) jafFFA722 else MaterialTheme.colorScheme.KnowContentLayer),
verticalAlignment = Alignment.CenterVertically,
) {
// ラベルセクション
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
) {
JafText(
text = stringResource(id = R.string.car_name),
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
textAlign = TextAlign.Left,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
// コンテンツセクション
Column(
modifier = Modifier
.weight(1f)
.fillMaxWidth()
.clip(MaterialTheme.shapes.medium)
){
Row{
JafText(
text = (stateData.lblCarTsushoName).take(if (stateData.lblCarTsushoName.length > 30) 29 else stateData.lblCarTsushoName.length),
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
textAlign = TextAlign.Left,
style = JafTypography.middleLayerText
)
// 参照ボタン
if (stateData.lblCarTsushoName.length > 30) {
JafRefrenceButton(
modifier = Modifier.size(28.dp),
enabled = true,
onClick = {
viewModel.onAction(JAFRSHO07020Action.ReferenceButton("車名"))
}
)
}
}
}
}
//依頼内容
Row(
modifier = Modifier
.clip(MaterialTheme.shapes.medium)
.padding(horizontal = 14.dp)
.padding(top = 16.dp)
.background(if(stateData.iraiContChangeFlg) jafFFA722 else MaterialTheme.colorScheme.KnowContentLayer),
verticalAlignment = Alignment.CenterVertically,
) {
// ラベルセクション
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
) {
JafText(
text = stringResource(id = R.string.request_content),
textcolor = MaterialTheme.colorScheme.popupTitleLabel,
fontSize = 26.sp,
textAlign = TextAlign.Left,
style = JafTypography.topbarText,
modifier = Modifier.width(labelWidth)
)
}
// コンテンツセクション
Column(
modifier = Modifier
.weight(1f)
.fillMaxWidth()
.clip(MaterialTheme.shapes.medium)
){
Row{
JafText(
text = stateData.lblIraiCont,
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
textAlign = TextAlign.Left,
style = JafTypography.middleLayerText
)
//緊急
if(stateData.lblKinkyu.isNotEmpty()){
Row(
modifier = modifier.background(MaterialTheme.colorScheme.requiredMark)
){
JafText(
text = stateData.lblKinkyu,
textcolor = JafKnowContentLayerTextDark,
fontSize = 22.sp,
style = JafTypography.middleLayerText,
)
}
}
}
}
}
}
//指令変更ありと対話履歴変更あり(TODO)
if(stateData.lblShireiChange.isNotEmpty() || stateData.lblTaiwaHistoryChange.isNotEmpty()){
// スペース
Spacer(modifier = Modifier.height(20.dp))
Row(
modifier = Modifier.fillMaxWidth()
.fillMaxWidth()
.height(60.dp),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.Center
){
if(stateData.lblShireiChange.isNotEmpty()){
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
.background(jafFFA722)
){
// タイトル
JafText(
text = "指令変更あり",
textcolor = MaterialTheme.colorScheme.knowTopBarText,
fontSize = 22.sp,
style = JafTypography.topbarText
)
}
}
if(stateData.lblTaiwaHistoryChange.isNotEmpty()){
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(end = 40.dp)
.background(jaf4DD1BE)
){
// タイトル
JafText(
text = "対話履歴変更あり",
textcolor = MaterialTheme.colorScheme.knowTopBarText,
fontSize = 22.sp,
style = JafTypography.topbarText
)
}
}
}
}
// スペース
Spacer(modifier = Modifier.height(20.dp))
//通知メッセージ
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.Center,
verticalAlignment = Alignment.CenterVertically
){
JafText(
text = stateData.lblMessage,
textcolor = MaterialTheme.colorScheme.knowContentLayerText,
fontSize = 22.sp,
style = JafTypography.message
)
}
// スペース
Spacer(modifier = Modifier.height(20.dp))
// ボタンについて
Box(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 15.dp),
contentAlignment = Alignment.Center,
) {
// 了解ボタン
JafThemelessBottomButton(
onClick = {
(viewModel::onAction)(JAFRSHO07020Action.Ryoukai(
stateData.shireiMngCd,
stateData.ifCd,
""
))
},
modifier = Modifier.size(220.dp, 75.dp),
text = stringResource(R.string.i_recv_i_ack_ryokai),
style = JafTypography.bottomLayerText
)
}
}
}
}