feat: port QA/money fixes from tehran_taj (atomic document confirm, validated inputs, expert customer edit/toggle/weights, made-to-order, grid sort/customer column)

Order-revision workflow kept as is: the direct admin line-edit routes were not ported.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
saeed
2026-10-29 18:43:22 +03:30
co-authored by Claude Sonnet 5.5
parent 756ecef6db
commit 3eaecde876
65 changed files with 3810 additions and 216 deletions
+14
View File
@@ -0,0 +1,14 @@
/**
* The text of a slot-style `<a-select-option>`, for a custom `filter-option`.
*
* ant-design-vue 4 hands `filterOption` the option's default slot as a
* function, not as an array of vnodes (the shape the legacy filters indexed
* into), so `option.children[0].children` is always undefined and a typed
* search matched nothing. This calls the slot first.
*/
export function optionText(option: any): string {
const children = typeof option?.children === 'function' ? option.children() : option?.children;
const first = Array.isArray(children) ? children[0] : children;
if (typeof first === 'string') return first;
return String(first?.children ?? '');
}