bai před 3 roky
rodič
revize
8c383461e4
22 změnil soubory, kde provedl 664 přidání a 102 odebrání
  1. 11 3
      app/src/main/java/com/ys/bdtp/adm/App.kt
  2. 31 1
      app/src/main/java/com/ys/bdtp/adm/app/theme/Color.kt
  3. 9 12
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Body.kt
  4. 26 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Div.kt
  5. 127 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/ExpandList.kt
  6. 12 2
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Side.kt
  7. 23 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Table.kt
  8. 100 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadContent.kt
  9. 96 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadDrawingItem.kt
  10. 86 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadDrawingTitle.kt
  11. 103 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadHeadMiddle.kt
  12. 32 31
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadScreen.kt
  13. 6 52
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadSide.kt
  14. 2 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/offline/OfflineHeadMiddle.kt
  15. binární
      app/src/main/res/drawable-hdpi/btn_bg_blue_left_close.png
  16. binární
      app/src/main/res/drawable-hdpi/btn_bg_blue_left_open.png
  17. binární
      app/src/main/res/drawable-hdpi/btn_bg_blue_right_close.png
  18. binární
      app/src/main/res/drawable-hdpi/btn_bg_blue_right_open.png
  19. binární
      app/src/main/res/drawable-hdpi/btn_bg_gray_left_close.png
  20. binární
      app/src/main/res/drawable-hdpi/btn_bg_gray_left_open.png
  21. binární
      app/src/main/res/drawable-hdpi/btn_bg_gray_right_close.png
  22. binární
      app/src/main/res/drawable-hdpi/btn_bg_gray_right_open.png

+ 11 - 3
app/src/main/java/com/ys/bdtp/adm/App.kt

@@ -1,16 +1,21 @@
 package com.ys.bdtp.adm
 
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.height
 import androidx.compose.material.MaterialTheme
 import androidx.compose.material.Surface
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.SideEffect
+import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.unit.dp
 import com.google.accompanist.insets.ProvideWindowInsets
 import com.google.accompanist.systemuicontroller.rememberSystemUiController
 import com.ys.bdtp.adm.app.theme.AdmTheme
 import com.ys.bdtp.adm.di.di
-import com.ys.bdtp.adm.mvvm.ui.screen.cad.CadSide
+import com.ys.bdtp.adm.mvvm.ui.screen.cad.CadHeadMiddle
 import org.kodein.di.compose.onDIContext
 import org.kodein.di.compose.withDI
 
@@ -35,8 +40,11 @@ fun App() = withDI(di(LocalContext.current)) {
                             darkIcons = useDarkIcons,
                         )
                     }
-                    //ProjectTaskScreen()
-                    CadSide()
+                    Column {
+                        Spacer(Modifier.height(39.dp))
+                        CadHeadMiddle()
+                    }
+
                 }
             }
         }

+ 31 - 1
app/src/main/java/com/ys/bdtp/adm/app/theme/Color.kt

@@ -5,4 +5,34 @@ import androidx.compose.ui.graphics.Color
 val Purple200 = Color(0xFFBB86FC)
 val Purple500 = Color(0xFF6200EE)
 val Purple700 = Color(0xFF3700B3)
-val Teal200 = Color(0xFF03DAC5)
+val Teal200 = Color(0xFF03DAC5)
+
+// 白色
+val whiteColor = Color(0xFFFFFFFF)
+
+// 灰色
+val disableColor = Color(0xFFD8D8D8)
+
+// 主色调
+val admColor = Color(0xFF0091FF)
+
+// 蓝色背景
+val bgBlueColor = admColor
+
+// 分割线颜色
+val divColor = Color(0xFFEFF0F1)
+
+// 文本黑色
+val textBlackColor = Color(0xFF1F2429)
+
+// 文本蓝色
+val textBlueColor = admColor
+
+// 表头背景颜色
+val thColor = Color(0xFFF8F9FA)
+
+// 表行背景颜色
+val trBgColor = whiteColor
+
+// 表行分割线
+val trDivColor = Color(0xFFE4E6E7)

+ 9 - 12
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Body.kt

@@ -1,22 +1,19 @@
 package com.ys.bdtp.adm.mvvm.ui.compose
 
-import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Row
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
 
 @Composable
 fun Body(
-    side: @Composable () -> Unit,
-    content: @Composable () -> Unit
+    modifier: Modifier = Modifier,
+    side: (@Composable () -> Unit)? = null,
+    content: (@Composable () -> Unit)? = null,
+    div: (@Composable () -> Unit)? = null
 ) {
-    Row {
-        Column() {
-            side()
-        }
-
-        Column {
-            content()
-        }
+    Row(modifier = modifier) {
+        side?.invoke()
+        div?.invoke()
+        content?.invoke()
     }
-
 }

+ 26 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Div.kt

@@ -0,0 +1,26 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.width
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import com.ys.bdtp.adm.app.theme.divColor
+
+sealed interface Div {
+    object Row : Div
+    object Col : Div
+}
+
+@Composable
+fun Div(div: Div = Div.Row, size: Dp = 1.dp) {
+    when (div) {
+        Div.Row -> Spacer(modifier = Modifier.fillMaxWidth().height(size).background(divColor))
+        Div.Col -> Spacer(modifier = Modifier.fillMaxHeight().width(size).background(divColor))
+    }
+}

+ 127 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/ExpandList.kt

@@ -0,0 +1,127 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
+import androidx.compose.material.Icon
+import androidx.compose.material.Text
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.ArrowDropDown
+import androidx.compose.material.icons.filled.ArrowRight
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+
+data class Building(val id: String, val name: String, val floors: List<String>)
+
+val buildings = listOf(
+    Building("1", "建筑 A", listOf("A1", "B1", "C1", "D1", "E1", "F1", "G1")),
+    Building("2", "建筑 B", listOf("A2", "B2", "C2", "D2", "E2", "F2", "G2")),
+    Building("3", "建筑 C", listOf("A3", "B3", "C3", "D3", "E3", "F3", "G3")),
+    Building("4", "建筑 D", listOf("A4", "B4", "C4", "D4", "E4", "F4", "G4")),
+    Building("5", "建筑 E", listOf("A5", "B5", "C5", "D5", "E5", "F5", "G5"))
+)
+
+
+@Composable
+fun ExpandList(items: List<Building>) {
+    var selectId by remember { mutableStateOf("1") }
+    var isExpand by remember { mutableStateOf(true) }
+
+    LazyColumn(
+        modifier = Modifier
+            .fillMaxSize()
+            .background(Color.White)
+    ) {
+        items(
+            items = items,
+            key = { item -> item.id }
+        ) { building ->
+            Row(
+                modifier = Modifier
+                    .height(44.dp)
+                    .fillMaxWidth()
+                    .background(Color.White)
+                    .clickable {
+                        if (selectId == building.id) {
+                            isExpand = !isExpand
+                        } else {
+                            isExpand = true
+                            selectId = building.id
+                        }
+                    }
+            ) {
+                Box(modifier = Modifier.fillMaxHeight()) {
+                    Row(
+                        modifier = Modifier
+                            .align(Alignment.CenterStart),
+                        verticalAlignment = Alignment.CenterVertically
+                    ) {
+                        Icon(
+                            imageVector = if (building.id == selectId && isExpand)
+                                Icons.Default.ArrowDropDown
+                            else
+                                Icons.Default.ArrowRight,
+                            contentDescription = ""
+                        )
+                        Text(text = building.name, color = Color(0xFF1F2429))
+                    }
+                    Spacer(
+                        modifier = Modifier
+                            .align(Alignment.BottomCenter)
+                            .fillMaxWidth()
+                            .height(1.dp)
+                            .background(Color(0xFFEFF0F1))
+                    )
+                }
+            }
+
+            if (building.id == selectId && isExpand) {
+                building.floors.forEach { floor ->
+                    Row(
+                        modifier = Modifier.height(40.dp)
+                    ) {
+                        Spacer(modifier = Modifier.width(30.dp))
+                        Box(modifier = Modifier.fillMaxHeight()) {
+                            Text(
+                                text = floor,
+                                color = Color.DarkGray,
+                                modifier = Modifier
+                                    .align(Alignment.CenterStart)
+                            )
+                            Spacer(
+                                modifier = Modifier
+                                    .align(Alignment.BottomCenter)
+                                    .fillMaxWidth()
+                                    .height(1.dp)
+                                    .background(Color(0xFFEFF0F1))
+                            )
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+@Preview
+@Composable
+fun PreviewExpandList() {
+    ExpandList(buildings)
+}

+ 12 - 2
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Side.kt

@@ -1,8 +1,18 @@
 package com.ys.bdtp.adm.mvvm.ui.compose
 
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
 
 @Composable
-fun Side() {
-
+fun Side(
+    modifier: Modifier = Modifier,
+    side: @Composable BoxScope.() -> Unit
+) {
+    Box(
+        modifier
+    ) {
+        side()
+    }
 }

+ 23 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Table.kt

@@ -0,0 +1,23 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.height
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.dp
+
+@Composable
+fun Table(
+    modifier: Modifier = Modifier,
+    name: (@Composable () -> Unit),
+    th: (@Composable () -> Unit),
+    tr: (@Composable () -> Unit)
+) {
+    Column(modifier = modifier) {
+        name()
+        Spacer(modifier = Modifier.height(20.dp))
+        th()
+        tr()
+    }
+}

+ 100 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadContent.kt

@@ -0,0 +1,100 @@
+package com.ys.bdtp.adm.mvvm.ui.screen.cad
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+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.width
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.Text
+import androidx.compose.material.TextButton
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.google.accompanist.flowlayout.FlowRow
+import com.ys.bdtp.adm.app.theme.textBlackColor
+import com.ys.bdtp.adm.app.theme.trDivColor
+import com.ys.bdtp.adm.mvvm.ui.compose.Table
+
+data class Major(val major: String, val number: Int)
+
+val majors = listOf(
+    Major(major = "强电专业", number = 6),
+    Major(major = "弱点专业", number = 6),
+    Major(major = "空调专业", number = 6),
+    Major(major = "给排水专业", number = 6),
+    Major(major = "消防专业", number = 6),
+    Major(major = "安防专业", number = 6),
+    Major(major = "土建精装专业", number = 6),
+    Major(major = "电梯专业", number = 6)
+)
+
+@Composable
+fun CadContent(modifier: Modifier = Modifier) {
+    Column(modifier = modifier.background(Color.White)) {
+        FlowRow {
+            majors.forEach { major ->
+                Box(
+                    modifier = Modifier
+                        .width(150.dp)
+                        .height(58.dp)
+                        .padding(start = 10.dp, top = 10.dp),
+                ) {
+                    TextButton(
+                        onClick = {},
+                        modifier = modifier.width(120.dp).height(28.dp),
+                        colors = ButtonDefaults.textButtonColors(
+                            backgroundColor = Color(0xFFE1F2FF),
+                            contentColor = Color(0xFF0091FF)
+                        ),
+                        contentPadding = PaddingValues(),
+                        shape = RoundedCornerShape(4.dp)
+                    ) {
+                        Text(text = "${major.major}(${major.number})", fontSize = 14.sp)
+                    }
+                }
+            }
+        }
+        Spacer(modifier = Modifier.fillMaxWidth().height(40.dp))
+        Table(
+            name = {
+                Text(text = "CAD图纸核查", color = textBlackColor, fontSize = 16.sp)
+            },
+            th = {
+                CadDrawingTitle()
+            },
+            tr = {
+                LazyColumn(modifier = Modifier.fillMaxSize()) {
+                    items(20) {
+                        Box {
+                            CadDrawingItem()
+                            Spacer(
+                                modifier = Modifier
+                                    .align(Alignment.BottomCenter)
+                                    .fillMaxWidth().height(1.dp)
+                                    .background(trDivColor)
+                            )
+                        }
+                    }
+                }
+            }
+        )
+    }
+}
+
+@Preview(widthDp = 910, heightDp = 711)
+@Composable
+fun PreviewCadContent() {
+    CadContent()
+}

+ 96 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadDrawingItem.kt

@@ -0,0 +1,96 @@
+package com.ys.bdtp.adm.mvvm.ui.screen.cad
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.material.Switch
+import androidx.compose.material.SwitchDefaults
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.ys.bdtp.adm.app.theme.admColor
+import com.ys.bdtp.adm.app.theme.textBlackColor
+import com.ys.bdtp.adm.app.theme.textBlueColor
+import com.ys.bdtp.adm.app.theme.trBgColor
+
+@Composable
+fun CadDrawingItem() {
+    Row(
+        modifier = Modifier
+            .fillMaxWidth()
+            .height(48.dp)
+            .background(trBgColor),
+        verticalAlignment = Alignment.CenterVertically,
+        horizontalArrangement = Arrangement.SpaceAround
+
+    ) {
+        Text(
+            text = "xxxxxxxxx.dwg",
+            fontSize = 16.sp,
+            color = textBlackColor,
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(4f)
+        )
+        Text(
+            text = "10条",
+            fontSize = 16.sp,
+            color = textBlackColor,
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(2f)
+        )
+        Text(
+            text = "1处",
+            fontSize = 16.sp,
+            color = textBlackColor,
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(2f)
+        )
+        Text(
+            text = "打开图纸核查",
+            fontSize = 16.sp,
+            color = textBlueColor,
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(3f)
+        )
+
+        Switch(
+            checked = true,
+            onCheckedChange = {},
+            modifier = Modifier.weight(2f),
+            colors = SwitchDefaults.colors(
+                checkedThumbColor = admColor,
+                checkedTrackColor = admColor,
+                uncheckedThumbColor = Color(0xFFE5E5E5),
+                uncheckedTrackColor = Color(0xFFE5E5E5)
+            )
+        )
+
+        Text(
+            text = "完成",
+            fontSize = 16.sp,
+            color = textBlueColor,
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(2f)
+        )
+    }
+
+}
+
+@Preview(widthDp = 900)
+@Composable
+fun PreviewCadDrawingItem() {
+    CadDrawingItem()
+}

+ 86 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadDrawingTitle.kt

@@ -0,0 +1,86 @@
+package com.ys.bdtp.adm.mvvm.ui.screen.cad
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.ys.bdtp.adm.app.theme.thColor
+
+@Composable
+fun CadDrawingTitle() {
+    Row(
+        modifier = Modifier
+            .fillMaxWidth()
+            .height(40.dp)
+            .background(thColor),
+        verticalAlignment = Alignment.CenterVertically,
+        horizontalArrangement = Arrangement.SpaceAround
+
+    ) {
+        Text(
+            text = "CAD文件名",
+            fontSize = 16.sp,
+            color = Color(0xFF646C73),
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(4f)
+        )
+        Text(
+            text = "土建精装问题",
+            fontSize = 16.sp,
+            color = Color(0xFF646C73),
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(2f)
+        )
+        Text(
+            text = "物业空间问题",
+            fontSize = 16.sp,
+            color = Color(0xFF646C73),
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(2f)
+        )
+        Text(
+            text = "图纸",
+            fontSize = 16.sp,
+            color = Color(0xFF646C73),
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(3f)
+        )
+        Text(
+            text = "操作",
+            fontSize = 16.sp,
+            color = Color(0xFF646C73),
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(2f)
+        )
+        Text(
+            text = "",
+            fontSize = 16.sp,
+            color = Color(0xFF646C73),
+            textAlign = TextAlign.Center,
+            maxLines = 1,
+            modifier = Modifier.weight(2f)
+        )
+    }
+
+}
+
+@Preview(widthDp = 900)
+@Composable
+fun PreviewCadDrawingTitle() {
+    CadDrawingTitle()
+}

+ 103 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadHeadMiddle.kt

@@ -0,0 +1,103 @@
+package com.ys.bdtp.adm.mvvm.ui.screen.cad
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.Text
+import androidx.compose.material.TextButton
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.ys.bdtp.adm.R
+import com.ys.bdtp.adm.app.theme.textBlackColor
+import com.ys.bdtp.adm.app.theme.whiteColor
+
+@Composable
+fun CadHeadMiddle() {
+    Row(
+        modifier = Modifier
+            .width(360.dp)
+            .height(32.dp)
+            .background(Color.White, shape = RoundedCornerShape(4.dp))
+    ) {
+
+        TextButton(
+            modifier = Modifier.weight(1f),
+            onClick = {},
+            contentPadding = PaddingValues(),
+            shape = RoundedCornerShape(
+                topStart = 4.dp,
+                bottomStart = 4.dp,
+                topEnd = 0.dp,
+                bottomEnd = 0.dp
+            ),
+            colors = ButtonDefaults.textButtonColors(
+                backgroundColor = whiteColor,
+                contentColor = textBlackColor
+            )
+        ) {
+            Box {
+                Image(
+                    modifier = Modifier.fillMaxSize().align(Alignment.Center),
+                    painter = painterResource(R.drawable.btn_bg_blue_left_close),
+                    contentDescription = ""
+                )
+                Text(
+                    modifier = Modifier.align(Alignment.Center),
+                    text = "土建精装图纸核查",
+                    color = textBlackColor,
+                    fontSize = 14.sp
+                )
+            }
+        }
+
+        TextButton(
+            modifier = Modifier.weight(1f),
+            onClick = {},
+            contentPadding = PaddingValues(),
+            shape = RoundedCornerShape(
+                topStart = 0.dp,
+                bottomStart = 0.dp,
+                topEnd = 4.dp,
+                bottomEnd = 4.dp
+            ),
+            colors = ButtonDefaults.textButtonColors(
+                backgroundColor = whiteColor,
+                contentColor = textBlackColor
+            )
+        ) {
+            Box {
+                Image(
+                    modifier = Modifier.fillMaxSize().align(Alignment.Center),
+                    painter = painterResource(R.drawable.btn_bg_gray_right_open),
+                    contentDescription = ""
+                )
+                Text(
+                    modifier = Modifier.align(Alignment.Center),
+                    text = "机电管道图纸核查",
+                    color = textBlackColor,
+                    fontSize = 14.sp
+                )
+            }
+        }
+
+    }
+}
+
+@Preview
+@Composable
+fun PreviewCadHeadMiddle() {
+    CadHeadMiddle()
+}

+ 32 - 31
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadScreen.kt

@@ -2,11 +2,8 @@ package com.ys.bdtp.adm.mvvm.ui.screen.cad
 
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.Spacer
 import androidx.compose.foundation.layout.fillMaxHeight
 import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.width
 import androidx.compose.runtime.Composable
@@ -14,15 +11,19 @@ import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.dp
+import com.ys.bdtp.adm.mvvm.ui.compose.Blank
+import com.ys.bdtp.adm.mvvm.ui.compose.Body
+import com.ys.bdtp.adm.mvvm.ui.compose.Div
 import com.ys.bdtp.adm.mvvm.ui.compose.Head
 import com.ys.bdtp.adm.mvvm.ui.compose.HeadLeft
 import com.ys.bdtp.adm.mvvm.ui.compose.HeadRight
+import com.ys.bdtp.adm.mvvm.ui.compose.Side
+import com.ys.bdtp.adm.mvvm.ui.compose.buildings
 import com.ys.bdtp.adm.mvvm.ui.screen.offline.OfflineContent
-import com.ys.bdtp.adm.mvvm.ui.screen.offline.OfflineSide
 
 @Composable
 fun CadScreen() {
-    Column {
+    Column(modifier = Modifier.background(Color.White)) {
         Head(
             left = { HeadLeft() },
             right = {
@@ -32,36 +33,36 @@ fun CadScreen() {
                 )
             }
         )
-        Spacer(modifier = Modifier.fillMaxSize().height(1.dp).background(Color(0xFFEFF0F1)))
-        Row {
-            Column(
-                modifier = Modifier
-                    .width(288.dp)
-                    .fillMaxHeight()
-                    .padding(horizontal = 32.dp, vertical = 12.dp)
-            ) {
-                OfflineSide()
-                CadSide()
-            }
-            Spacer(
-                modifier = Modifier
-                    .width(1.dp)
-                    .fillMaxHeight()
-                    .background(Color(0xFFEFF0F1))
-            )
-            Column(
-                modifier = Modifier
-                    .fillMaxSize()
-                    .padding(horizontal = 32.dp, vertical = 12.dp)
-            ) {
-                OfflineContent()
-            }
-        }
+        Div(Div.Row)
+        Body(
+            modifier = Modifier.fillMaxSize(),
+            side = {
+                Side(
+                    modifier = Modifier
+                        .width(288.dp)
+                        .fillMaxHeight()
+                        .padding(start = 32.dp, top = 12.dp, bottom = 12.dp)
+                ) {
+                    CadSide(buildings)
+                }
+            },
+            content = {
+                Column(
+                    modifier = Modifier
+                        .fillMaxSize()
+                        .padding(horizontal = 50.dp, vertical = 50.dp)
+                ) {
+                    //Blank()
+                    CadContent()
+                }
+            },
+            div = { Div(Div.Col) }
+        )
     }
 }
 
 @Preview(widthDp = 1137, heightDp = 711)
 @Composable
 fun PreviewCadScreen() {
-
+    CadScreen()
 }

+ 6 - 52
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/cad/CadSide.kt

@@ -1,64 +1,18 @@
 package com.ys.bdtp.adm.mvvm.ui.screen.cad
 
-import androidx.compose.foundation.background
-import androidx.compose.foundation.clickable
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.lazy.LazyColumn
-import androidx.compose.material.Text
 import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.tooling.preview.Preview
-import androidx.compose.ui.unit.dp
-import androidx.compose.ui.unit.sp
+import com.ys.bdtp.adm.mvvm.ui.compose.Building
+import com.ys.bdtp.adm.mvvm.ui.compose.ExpandList
+import com.ys.bdtp.adm.mvvm.ui.compose.buildings
 
 @Composable
-fun CadSide() {
-    Column(
-        modifier = Modifier
-            .width(270.dp)
-            .height(800.dp)
-            .background(Color.White)
-    ) {
-        LazyColumn {
-            items(5) {
-                Column {
-                    Row(
-                        modifier = Modifier
-                            .fillMaxWidth()
-                            .height(44.dp)
-                            .clickable {
-
-                            },
-                        verticalAlignment = Alignment.CenterVertically
-                    ) {
-                        Spacer(
-                            modifier = Modifier
-                                .width(30.dp)
-                        )
-                        Text(text = "F1", color = Color(0xFF1F2429), fontSize = 14.sp)
-                    }
-                    Spacer(
-                        modifier = Modifier
-                            .fillMaxWidth()
-                            .height(1.dp)
-                            .background(Color(0xFFEFF0F1))
-                    )
-                }
-            }
-        }
-
-    }
+fun CadSide(buildings: List<Building>) {
+    ExpandList(buildings)
 }
 
 @Preview
 @Composable
 fun PreviewCadSide() {
-    CadSide()
+    CadSide(buildings)
 }

+ 2 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/offline/OfflineHeadMiddle.kt

@@ -24,6 +24,7 @@ import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
 import com.ys.bdtp.adm.R
+import com.ys.bdtp.adm.app.theme.bgBlueColor
 
 @Composable
 fun OfflineHeadSyncMiddle() {
@@ -39,7 +40,7 @@ fun OfflineHeadSyncMiddle() {
                     .width(139.dp)
                     .height(32.dp),
                 colors = ButtonDefaults.textButtonColors(
-                    backgroundColor = Color(0xFF0091FF),
+                    backgroundColor = bgBlueColor,
                     contentColor = Color.White
                 ),
                 shape = RoundedCornerShape(

binární
app/src/main/res/drawable-hdpi/btn_bg_blue_left_close.png


binární
app/src/main/res/drawable-hdpi/btn_bg_blue_left_open.png


binární
app/src/main/res/drawable-hdpi/btn_bg_blue_right_close.png


binární
app/src/main/res/drawable-hdpi/btn_bg_blue_right_open.png


binární
app/src/main/res/drawable-hdpi/btn_bg_gray_left_close.png


binární
app/src/main/res/drawable-hdpi/btn_bg_gray_left_open.png


binární
app/src/main/res/drawable-hdpi/btn_bg_gray_right_close.png


binární
app/src/main/res/drawable-hdpi/btn_bg_gray_right_open.png