Sfoglia il codice sorgente

1. 配合后台拆分上锁节点

bjb 1 settimana fa
parent
commit
6d0a0cbf24

+ 1 - 0
.idea/.name

@@ -0,0 +1 @@
+Bozzys

+ 26 - 0
.idea/appInsightsSettings.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AppInsightsSettings">
+    <option name="tabSettings">
+      <map>
+        <entry key="Firebase Crashlytics">
+          <value>
+            <InsightsFilterSettings>
+              <option name="connection">
+                <ConnectionSetting>
+                  <option name="appId" value="PLACEHOLDER" />
+                  <option name="mobileSdkAppId" value="" />
+                  <option name="projectId" value="" />
+                  <option name="projectNumber" value="" />
+                </ConnectionSetting>
+              </option>
+              <option name="signal" value="SIGNAL_UNSPECIFIED" />
+              <option name="timeIntervalDays" value="THIRTY_DAYS" />
+              <option name="visibilityType" value="ALL" />
+            </InsightsFilterSettings>
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
+</project>

+ 117 - 0
.idea/codeStyles/Project.xml

@@ -0,0 +1,117 @@
+<component name="ProjectCodeStyleConfiguration">
+  <code_scheme name="Project" version="173">
+    <codeStyleSettings language="XML">
+      <option name="FORCE_REARRANGE_MODE" value="1" />
+      <indentOptions>
+        <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      </indentOptions>
+      <arrangement>
+        <rules>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:android</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:id</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>style</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>ANDROID_ATTRIBUTE_ORDER</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>.*</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+        </rules>
+      </arrangement>
+    </codeStyleSettings>
+  </code_scheme>
+</component>

+ 5 - 0
.idea/codeStyles/codeStyleConfig.xml

@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
+  </state>
+</component>

+ 0 - 7
.idea/deploymentTargetSelector.xml

@@ -4,13 +4,6 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2026-04-15T08:13:53.576384800Z">
-          <Target type="DEFAULT_BOOT">
-            <handle>
-              <DeviceId pluginId="Default" identifier="serial=192.168.43.108:5555;connection=538d4b26" />
-            </handle>
-          </Target>
-        </DropdownSelection>
         <DialogSelection />
       </SelectionState>
     </selectionStates>

+ 1 - 1
app/src/main/java/com/iscs/bozzys/api/Node.kt

@@ -50,7 +50,7 @@ data class Node(
      * 校验是否可以通过手机进行操作
      */
     fun checkCanOptionByPhone(): Boolean {
-        return !(listOf("isolation", "releaseIsolation", "returnLock").contains(type) && !listOf("0", "2").contains(isolationType))
+        return !(listOf("lock", "unlock", "coLock","unlockCoLock").contains(type) && !listOf("0", "2").contains(isolationType))
     }
 
     /**

+ 171 - 171
app/src/main/java/com/iscs/bozzys/ui/pages/detail/task/PageDetailTask.kt

@@ -354,184 +354,184 @@ class PageDetailTask : PageBase() {
     @Composable
     fun TaskDevice(vm: VMDetailTask) {
         val state by vm.state.collectAsState()
-//        CardBox(
-//            Modifier
-//                .padding(top = 10.dp)
-//                .fillMaxWidth()
-//        ) {
-//            Column(
-//                Modifier
-//                    .fillMaxWidth()
-//                    .height(120.dp),
-//                horizontalAlignment = Alignment.CenterHorizontally,
-//                verticalArrangement = Arrangement.Center
-//            ) {
-//                Icon(
-//                    painter = painterResource(R.drawable.job_warning),
-//                    contentDescription = null,
-//                    modifier = Modifier.size(60.dp),
-//                    tint = MaterialTheme.colorScheme.primary
-//                )
-//                Text("请前往锁控柜进行取锁,取钥匙操作", fontSize = 14.sp, color = Text)
-//            }
-//        }
-        // 点位信息
-        CardBox(Modifier.padding(top = 10.dp)) {
-            Column(
-                Modifier
-                    .fillMaxWidth()
-                    .padding(10.dp)
-            ) {
-                Row(verticalAlignment = Alignment.CenterVertically) {
-                    Icon(
-                        painterResource(R.drawable.location),
-                        contentDescription = null,
-                        modifier = Modifier
-                            .padding(end = 5.dp)
-                            .size(16.dp),
-                        tint = MaterialTheme.colorScheme.primary
-                    )
-                    Text("隔离点位", fontSize = 16.sp, fontWeight = FontWeight.Bold, color = Text)
-                }
-                Row(
-                    modifier = Modifier
-                        .padding(top = 8.dp)
-                        .height(80.dp)
-                        .fillMaxWidth()
-                        .horizontalScroll(rememberScrollState())
-                ) {
-                    state.node.points?.forEach {
-                        Column(
-                            modifier = Modifier
-                                .padding(end = 10.dp)
-                                .fillMaxHeight()
-                                .aspectRatio(1f)
-                                .clip(RoundedCornerShape(6.dp))
-                                .background(Color(0xFFFFF8E6)),
-                            verticalArrangement = Arrangement.Center,
-                            horizontalAlignment = Alignment.CenterHorizontally
-                        ) {
-                            Spacer(
-                                modifier = Modifier
-                                    .padding(end = 5.dp)
-                                    .size(8.dp)
-                                    .align(Alignment.End)
-                                    .background(color = if (it.status == "1") Color.Red else Color.Green, shape = RoundedCornerShape(50))
-                            )
-                            AsyncImage(
-                                it.pointIcon,
-                                contentDescription = null,
-                                modifier = Modifier
-                                    .size(40.dp)
-                                    .offset(y = (-5).dp),
-                                contentScale = ContentScale.Fit
-                            )
-                            Text(
-                                it.pointName ?: "",
-                                fontSize = 12.sp,
-                                lineHeight = 12.sp,
-                                modifier = Modifier
-                                    .offset(y = (-5).dp)
-                                    .padding(top = 10.dp),
-                                color = Text
-                            )
-                        }
-                    }
-                }
-            }
-        }
-        // 所需设备
-        CardBox(Modifier.padding(top = 10.dp)) {
+        CardBox(
+            Modifier
+                .padding(top = 10.dp)
+                .fillMaxWidth()
+        ) {
             Column(
                 Modifier
                     .fillMaxWidth()
-                    .padding(10.dp)
+                    .height(120.dp),
+                horizontalAlignment = Alignment.CenterHorizontally,
+                verticalArrangement = Arrangement.Center
             ) {
-                Row(verticalAlignment = Alignment.CenterVertically) {
-                    Icon(
-                        painterResource(R.drawable.return_device),
-                        contentDescription = null,
-                        modifier = Modifier
-                            .padding(end = 5.dp)
-                            .size(16.dp),
-                        tint = MaterialTheme.colorScheme.primary
-                    )
-                    Text(state.deviceInfo.first, fontSize = 16.sp, fontWeight = FontWeight.Bold, color = Text)
-                }
-                if (state.deviceInfo.second.isNotEmpty()) Text(
-                    state.deviceInfo.second,
-                    fontSize = 14.sp,
-                    color = Text.copy(alpha = 0.5f),
-                    modifier = Modifier.padding(start = 21.dp)
+                Icon(
+                    painter = painterResource(R.drawable.job_warning),
+                    contentDescription = null,
+                    modifier = Modifier.size(60.dp),
+                    tint = MaterialTheme.colorScheme.primary
                 )
-                Row(
-                    modifier = Modifier
-                        .padding(top = 8.dp)
-                        .height(80.dp)
-                        .fillMaxWidth()
-                        .horizontalScroll(rememberScrollState())
-                ) {
-                    state.keys.forEach {
-                        Column(
-                            modifier = Modifier
-                                .padding(end = 10.dp)
-                                .fillMaxHeight()
-                                .aspectRatio(1f)
-                                .clip(RoundedCornerShape(6.dp))
-                                .background(Color(0xFFFFF8E6)),
-                            verticalArrangement = Arrangement.Center,
-                            horizontalAlignment = Alignment.CenterHorizontally
-                        ) {
-                            Icon(
-                                painter = painterResource(R.drawable.key),
-                                contentDescription = null,
-                                modifier = Modifier
-                                    .size(40.dp)
-                                    .alpha(if (it.keyNfc.isEmpty()) 0.5f else 1f),
-                            )
-                            Text(
-                                it.keyNfc.ifEmpty { "--" },
-                                fontSize = 12.sp,
-                                lineHeight = 12.sp,
-                                modifier = Modifier
-                                    .padding(top = 10.dp)
-                                    .alpha(if (it.keyNfc.isEmpty()) 0.5f else 1f),
-                                color = Text
-                            )
-                        }
-                    }
-                    state.locks.forEach {
-                        Column(
-                            modifier = Modifier
-                                .padding(end = 10.dp)
-                                .fillMaxHeight()
-                                .aspectRatio(1f)
-                                .clip(RoundedCornerShape(6.dp))
-                                .background(Color(0xFFFFF8E6)),
-                            verticalArrangement = Arrangement.Center,
-                            horizontalAlignment = Alignment.CenterHorizontally
-                        ) {
-                            Icon(
-                                painter = painterResource(R.drawable.lock),
-                                contentDescription = null,
-                                modifier = Modifier
-                                    .size(40.dp)
-                                    .alpha(if (it.lockNfc.isEmpty()) 0.5f else 1f),
-                            )
-                            Text(
-                                it.lockNfc.ifEmpty { "--" },
-                                fontSize = 12.sp,
-                                lineHeight = 12.sp,
-                                modifier = Modifier
-                                    .padding(top = 10.dp)
-                                    .alpha(if (it.lockNfc.isEmpty()) 0.5f else 1f),
-                                color = Text
-                            )
-                        }
-                    }
-                }
+                Text("请前往锁控柜进行取锁,取钥匙操作", fontSize = 14.sp, color = Text)
             }
         }
+//        // 点位信息
+//        CardBox(Modifier.padding(top = 10.dp)) {
+//            Column(
+//                Modifier
+//                    .fillMaxWidth()
+//                    .padding(10.dp)
+//            ) {
+//                Row(verticalAlignment = Alignment.CenterVertically) {
+//                    Icon(
+//                        painterResource(R.drawable.location),
+//                        contentDescription = null,
+//                        modifier = Modifier
+//                            .padding(end = 5.dp)
+//                            .size(16.dp),
+//                        tint = MaterialTheme.colorScheme.primary
+//                    )
+//                    Text("隔离点位", fontSize = 16.sp, fontWeight = FontWeight.Bold, color = Text)
+//                }
+//                Row(
+//                    modifier = Modifier
+//                        .padding(top = 8.dp)
+//                        .height(80.dp)
+//                        .fillMaxWidth()
+//                        .horizontalScroll(rememberScrollState())
+//                ) {
+//                    state.node.points?.forEach {
+//                        Column(
+//                            modifier = Modifier
+//                                .padding(end = 10.dp)
+//                                .fillMaxHeight()
+//                                .aspectRatio(1f)
+//                                .clip(RoundedCornerShape(6.dp))
+//                                .background(Color(0xFFFFF8E6)),
+//                            verticalArrangement = Arrangement.Center,
+//                            horizontalAlignment = Alignment.CenterHorizontally
+//                        ) {
+//                            Spacer(
+//                                modifier = Modifier
+//                                    .padding(end = 5.dp)
+//                                    .size(8.dp)
+//                                    .align(Alignment.End)
+//                                    .background(color = if (it.status == "1") Color.Red else Color.Green, shape = RoundedCornerShape(50))
+//                            )
+//                            AsyncImage(
+//                                it.pointIcon,
+//                                contentDescription = null,
+//                                modifier = Modifier
+//                                    .size(40.dp)
+//                                    .offset(y = (-5).dp),
+//                                contentScale = ContentScale.Fit
+//                            )
+//                            Text(
+//                                it.pointName ?: "",
+//                                fontSize = 12.sp,
+//                                lineHeight = 12.sp,
+//                                modifier = Modifier
+//                                    .offset(y = (-5).dp)
+//                                    .padding(top = 10.dp),
+//                                color = Text
+//                            )
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//        // 所需设备
+//        CardBox(Modifier.padding(top = 10.dp)) {
+//            Column(
+//                Modifier
+//                    .fillMaxWidth()
+//                    .padding(10.dp)
+//            ) {
+//                Row(verticalAlignment = Alignment.CenterVertically) {
+//                    Icon(
+//                        painterResource(R.drawable.return_device),
+//                        contentDescription = null,
+//                        modifier = Modifier
+//                            .padding(end = 5.dp)
+//                            .size(16.dp),
+//                        tint = MaterialTheme.colorScheme.primary
+//                    )
+//                    Text(state.deviceInfo.first, fontSize = 16.sp, fontWeight = FontWeight.Bold, color = Text)
+//                }
+//                if (state.deviceInfo.second.isNotEmpty()) Text(
+//                    state.deviceInfo.second,
+//                    fontSize = 14.sp,
+//                    color = Text.copy(alpha = 0.5f),
+//                    modifier = Modifier.padding(start = 21.dp)
+//                )
+//                Row(
+//                    modifier = Modifier
+//                        .padding(top = 8.dp)
+//                        .height(80.dp)
+//                        .fillMaxWidth()
+//                        .horizontalScroll(rememberScrollState())
+//                ) {
+//                    state.keys.forEach {
+//                        Column(
+//                            modifier = Modifier
+//                                .padding(end = 10.dp)
+//                                .fillMaxHeight()
+//                                .aspectRatio(1f)
+//                                .clip(RoundedCornerShape(6.dp))
+//                                .background(Color(0xFFFFF8E6)),
+//                            verticalArrangement = Arrangement.Center,
+//                            horizontalAlignment = Alignment.CenterHorizontally
+//                        ) {
+//                            Icon(
+//                                painter = painterResource(R.drawable.key),
+//                                contentDescription = null,
+//                                modifier = Modifier
+//                                    .size(40.dp)
+//                                    .alpha(if (it.keyNfc.isEmpty()) 0.5f else 1f),
+//                            )
+//                            Text(
+//                                it.keyNfc.ifEmpty { "--" },
+//                                fontSize = 12.sp,
+//                                lineHeight = 12.sp,
+//                                modifier = Modifier
+//                                    .padding(top = 10.dp)
+//                                    .alpha(if (it.keyNfc.isEmpty()) 0.5f else 1f),
+//                                color = Text
+//                            )
+//                        }
+//                    }
+//                    state.locks.forEach {
+//                        Column(
+//                            modifier = Modifier
+//                                .padding(end = 10.dp)
+//                                .fillMaxHeight()
+//                                .aspectRatio(1f)
+//                                .clip(RoundedCornerShape(6.dp))
+//                                .background(Color(0xFFFFF8E6)),
+//                            verticalArrangement = Arrangement.Center,
+//                            horizontalAlignment = Alignment.CenterHorizontally
+//                        ) {
+//                            Icon(
+//                                painter = painterResource(R.drawable.lock),
+//                                contentDescription = null,
+//                                modifier = Modifier
+//                                    .size(40.dp)
+//                                    .alpha(if (it.lockNfc.isEmpty()) 0.5f else 1f),
+//                            )
+//                            Text(
+//                                it.lockNfc.ifEmpty { "--" },
+//                                fontSize = 12.sp,
+//                                lineHeight = 12.sp,
+//                                modifier = Modifier
+//                                    .padding(top = 10.dp)
+//                                    .alpha(if (it.lockNfc.isEmpty()) 0.5f else 1f),
+//                                color = Text
+//                            )
+//                        }
+//                    }
+//                }
+//            }
+//        }
     }
 
     /**