Files
Inbound20260114/app/build.gradle.kts
T
lvmengandClaude Sonnet 4.6 fabc4d780a feat(inbound): 新增入库秤毛菜/净材入库功能
- 新增入库专用网络层(InboundApiService、InboundRepository、InboundNetworkModule、InboundInterceptor)
- 新增入库相关数据模型(IngredientByTrace、SupplierOption、ZoneOption、GoodsSearchModel、CleanInboundParam、RawInboundParam、InboundApiResponse)
- 新增 FormField 动态表单模型(FieldType 枚举、apiKey 字段映射、submitValueId 控制提交值)
- 新增 FormFieldAdapter,基于 FlexboxLayoutManager 实现两列自动换行表单,支持五种字段类型
- 新增 InboundGoodsSearchDialog(溯源码检索食材)和 InboundGoodsStoreDialog(入库录入,表单转 Map 提交)
- 新增 StoreViewModel,提交接口入参改为 Map<String, Any>
- 重构 StoreActivity:注入 StoreViewModel,onResume 预加载供应商/区域列表到 GlobalData
- 修改 GoodsListActivity:抽取 onGoodsSearchRequested() 供子类重写
- 修改 GoodsRecognizeDialog:StoreActivity 场景下打开 InboundGoodsStoreDialog
- GlobalData 新增 inboundSupplierList / inboundZoneList 全局缓存
- build.gradle.kts 新增 flexbox:3.0.0 依赖

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 21:18:09 +08:00

165 lines
4.9 KiB
Kotlin

import com.android.tools.r8.internal.fA
plugins {
// alias(libs.plugins.android.application)
// alias(libs.plugins.kotlin.android)
// alias(libs.plugins.kotlin.compose)
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.dagger.hilt.android")
id("com.google.devtools.ksp")
id("kotlin-parcelize")
// id("compose.compiler")
kotlin("kapt")
// alias(libs.plugins.kotlin.compose)
}
android {
signingConfigs {
getByName("debug") {
storeFile = file("./swkey.jks")
storePassword = "123456"
keyAlias = "android"
keyPassword = "123456"
}
}
namespace = "com.sw.inbound"
compileSdk = 35
defaultConfig {
applicationId = "com.sw.inbound"
minSdk = 24
targetSdk = 35
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters.addAll(listOf("armeabi-v7a"/*, "arm64-v8a"*/))
}
// 设置输出APK文件名格式
setProperty("archivesBaseName", "入库客户端_${versionName}")
}
buildTypes {
//debug {
// buildConfigField( "boolean", "DEBUG", "true")
//}
release {
//buildConfigField( "boolean", "DEBUG", "false")
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
// compose = true
viewBinding = true
buildConfig = true
}
// composeOptions {
// kotlinCompilerExtensionVersion = "1.5.4"
// }
sourceSets {
named("main") {
jniLibs.srcDirs("libs")
}
}
}
val isDebug = gradle.startParameter.taskNames.any {
it.contains("debug", ignoreCase = true)
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation("androidx.activity:activity-ktx:1.8.0")
// implementation(platform(libs.androidx.compose.bom))
// implementation(libs.androidx.ui)
// implementation(libs.androidx.ui.graphics)
// implementation(libs.androidx.ui.tooling.preview)
// implementation(libs.androidx.material3)
implementation(
fileTree(
mapOf(
"dir" to "libs",
"include" to listOf("*.aar", "*.jar")
)
)
)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
// androidTestImplementation(platform(libs.androidx.compose.bom))
// androidTestImplementation(libs.androidx.ui.test.junit4)
// debugImplementation(libs.androidx.ui.tooling)
// debugImplementation(libs.androidx.ui.test.manifest)
// implementation(libs.androidx.navigation.compose)
// camerax
implementation(libs.androidx.camera.core)
implementation(libs.androidx.camera.camera2)
implementation(libs.androidx.camera.lifecycle)
implementation(libs.androidx.camera.view)
implementation(libs.androidx.camera.extensions)
// 权限申请
// implementation(libs.accompanist.permissions)
// hilt注入
implementation(libs.hilt.android)
ksp(libs.hilt.android.compiler)
// implementation(libs.androidx.hilt.navigation.compose)
// retrofit网络请求
implementation(libs.retrofit)
implementation(libs.converter.gson)
// okhttp
implementation(libs.okhttp)
implementation(libs.logging.interceptor)
// gson
implementation(libs.gson)
// 日志打印
implementation(libs.timber)
// 图片显示(非Compose标准版)
implementation("io.coil-kt:coil:2.4.0")
implementation(libs.core)
implementation(libs.android.core)
implementation(libs.material)
implementation("androidx.recyclerview:recyclerview:1.4.0")
// implementation("androidx.compose.foundation:foundation:1.7.0")
// implementation("androidx.compose.foundation:foundation-layout:1.7.0")
implementation (libs.pytorch.android)
implementation (libs.pytorch.android.torchvision)
implementation("io.github.scwang90:refresh-layout-kernel:3.0.0-alpha")
implementation("io.github.scwang90:refresh-header-classics:3.0.0-alpha")
val objectboxVersion:String by rootProject.extra
if (isDebug) {
debugImplementation("io.objectbox:objectbox-android-objectbrowser:$objectboxVersion")
} else {
releaseImplementation("io.objectbox:objectbox-android:$objectboxVersion")
}
implementation("org.greenrobot:eventbus:3.3.1")
// flexbox 布局,用于动态表单两列排列
implementation("com.google.android.flexbox:flexbox:3.0.0")
}
apply(plugin = "io.objectbox")