chore: release client-v1.0.75
Deploy Client / build-client-web (push) Successful in 41s
Deploy Client / build-macos (push) Successful in 5m37s
Deploy Client / build-android (push) Successful in 1m15s
Deploy Client / build-ios (push) Successful in 4m3s
Deploy Client / build-windows (push) Has been cancelled
Deploy Client / release-deploy-client (push) Has been cancelled
Deploy Client / build-client-web (push) Successful in 41s
Deploy Client / build-macos (push) Successful in 5m37s
Deploy Client / build-android (push) Successful in 1m15s
Deploy Client / build-ios (push) Successful in 4m3s
Deploy Client / build-windows (push) Has been cancelled
Deploy Client / release-deploy-client (push) Has been cancelled
出库列表加商品编码精确搜索框 + 移除数据导入入口 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
This commit is contained in:
@@ -42,6 +42,7 @@ class _StockOutListScreenState extends ConsumerState<StockOutListScreen> {
|
||||
Set<String> _filterCustomer = {};
|
||||
Set<String>? _hiddenCols; // null = 尚未载入本地存档(回退到 minWidth 首次默认)
|
||||
final _searchCtrl = TextEditingController();
|
||||
final _codeSearchCtrl = TextEditingController();
|
||||
|
||||
static const _screenId = 'stock_out_list';
|
||||
|
||||
@@ -77,6 +78,7 @@ class _StockOutListScreenState extends ConsumerState<StockOutListScreen> {
|
||||
@override
|
||||
void dispose() {
|
||||
_searchCtrl.dispose();
|
||||
_codeSearchCtrl.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@@ -84,6 +86,10 @@ class _StockOutListScreenState extends ConsumerState<StockOutListScreen> {
|
||||
.read(stockOutListProvider.notifier)
|
||||
.setKeyword(_searchCtrl.text.trim());
|
||||
|
||||
void _triggerCodeSearch() => ref
|
||||
.read(stockOutListProvider.notifier)
|
||||
.setProductCode(_codeSearchCtrl.text.trim());
|
||||
|
||||
String? get _startDate => _dateRange != null
|
||||
? '${_dateRange!.start.year}-${_dateRange!.start.month.toString().padLeft(2, '0')}-${_dateRange!.start.day.toString().padLeft(2, '0')}'
|
||||
: null;
|
||||
@@ -384,6 +390,22 @@ class _StockOutListScreenState extends ConsumerState<StockOutListScreen> {
|
||||
onSubmitted: (_) => _triggerSearch(),
|
||||
);
|
||||
|
||||
// 商品编码精确反查(独立搜索框)
|
||||
final codeSearchField = TextField(
|
||||
controller: _codeSearchCtrl,
|
||||
decoration: InputDecoration(
|
||||
hintText: '商品编码,回车精确查',
|
||||
prefixIcon: const Icon(Icons.qr_code, size: 16),
|
||||
hintStyle: const TextStyle(fontSize: 12),
|
||||
suffixIcon: IconButton(
|
||||
icon: const Icon(Icons.search, size: 16),
|
||||
tooltip: '按商品编码查',
|
||||
onPressed: _triggerCodeSearch,
|
||||
),
|
||||
),
|
||||
onSubmitted: (_) => _triggerCodeSearch(),
|
||||
);
|
||||
|
||||
final refreshBtn = IconButton(
|
||||
tooltip: '刷新',
|
||||
icon: const Icon(Icons.refresh, size: 20),
|
||||
@@ -417,6 +439,8 @@ class _StockOutListScreenState extends ConsumerState<StockOutListScreen> {
|
||||
children: [
|
||||
searchField,
|
||||
const SizedBox(height: 8),
|
||||
codeSearchField,
|
||||
const SizedBox(height: 8),
|
||||
Wrap(
|
||||
spacing: 8,
|
||||
runSpacing: 4,
|
||||
@@ -450,6 +474,8 @@ class _StockOutListScreenState extends ConsumerState<StockOutListScreen> {
|
||||
return Row(
|
||||
children: [
|
||||
SizedBox(width: 220, child: searchField),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 180, child: codeSearchField),
|
||||
const SizedBox(width: 12),
|
||||
if (newBtn != null) newBtn,
|
||||
const Spacer(),
|
||||
|
||||
Reference in New Issue
Block a user