fix: rewrite all CRUD JSON files to match crud-definition-spec
- Replace wrong format (tablename/grid/form/joins/select_fields/widget) with correct spec format (tblname/params/browserfields/editexclouded/alters) - Use uitype:code with data arrays for dropdown fields - Add logined_userorgid for multi-tenant data isolation - Only reference actual table fields, no cross-table joins - Hide system fields (id, org_id, created_at, updated_at) in browser/edit views Files: financial_vouchers.json, payments.json, receipt_allocations.json, receipts.json, receivables.json
This commit is contained in:
parent
e78941a59d
commit
09c374d47a
@ -1,114 +1,22 @@
|
||||
{
|
||||
"tablename": "financial_vouchers",
|
||||
"grid": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "voucher_number",
|
||||
"title": "凭证编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "voucher_type",
|
||||
"title": "凭证类型",
|
||||
"width": 100,
|
||||
"alter": "code:VOUCHER_TYPE"
|
||||
},
|
||||
{
|
||||
"name": "contract_number",
|
||||
"title": "合同编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "order_number",
|
||||
"title": "订单编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"title": "金额",
|
||||
"width": 120,
|
||||
"alter": "money"
|
||||
},
|
||||
{
|
||||
"name": "voucher_date",
|
||||
"title": "凭证日期",
|
||||
"width": 120,
|
||||
"alter": "date"
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"title": "描述",
|
||||
"width": 300
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"width": 180,
|
||||
"alter": "datetime"
|
||||
}
|
||||
],
|
||||
"joins": [
|
||||
{
|
||||
"table": "contract",
|
||||
"alias": "c",
|
||||
"on": "financial_vouchers.contract_id = c.id"
|
||||
},
|
||||
{
|
||||
"table": "orders",
|
||||
"alias": "o",
|
||||
"on": "financial_vouchers.order_id = o.id"
|
||||
}
|
||||
],
|
||||
"select_fields": [
|
||||
"financial_vouchers.*",
|
||||
"c.contract_number",
|
||||
"o.order_number"
|
||||
]
|
||||
},
|
||||
"form": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "voucher_number",
|
||||
"title": "凭证编号",
|
||||
"widget": "text",
|
||||
"readonly": true
|
||||
},
|
||||
{
|
||||
"name": "voucher_type",
|
||||
"title": "凭证类型",
|
||||
"widget": "select",
|
||||
"options": "code:VOUCHER_TYPE"
|
||||
},
|
||||
{
|
||||
"name": "contract_id",
|
||||
"title": "合同ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "order_id",
|
||||
"title": "订单ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"title": "金额",
|
||||
"widget": "number"
|
||||
},
|
||||
{
|
||||
"name": "voucher_date",
|
||||
"title": "凭证日期",
|
||||
"widget": "date"
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"title": "描述",
|
||||
"widget": "textarea"
|
||||
},
|
||||
{
|
||||
"name": "reference_id",
|
||||
"title": "引用ID",
|
||||
"widget": "hidden"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"tblname": "financial_vouchers",
|
||||
"title": "财务凭证",
|
||||
"params": {
|
||||
"sortby": ["created_at desc"],
|
||||
"logined_userorgid": "org_id",
|
||||
"confidential_fields": [],
|
||||
"browserfields": {
|
||||
"exclouded": ["id", "contract_id", "order_id", "reference_id", "org_id"],
|
||||
"alters": {
|
||||
"voucher_type": {
|
||||
"uitype": "code",
|
||||
"data": [
|
||||
{"value": "receipt", "text": "收款"},
|
||||
{"value": "payment", "text": "支出"}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"editexclouded": ["id", "contract_id", "order_id", "reference_id", "org_id", "created_at"]
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,140 +1,33 @@
|
||||
{
|
||||
"tablename": "payments",
|
||||
"grid": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "payment_number",
|
||||
"title": "支出编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "contract_number",
|
||||
"title": "合同编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "vendor_name",
|
||||
"title": "供应商",
|
||||
"width": 200
|
||||
},
|
||||
{
|
||||
"name": "payment_amount",
|
||||
"title": "支出金额",
|
||||
"width": 120,
|
||||
"alter": "money"
|
||||
},
|
||||
{
|
||||
"name": "payment_date",
|
||||
"title": "支出日期",
|
||||
"width": 120,
|
||||
"alter": "date"
|
||||
},
|
||||
{
|
||||
"name": "payment_method",
|
||||
"title": "支出方式",
|
||||
"width": 120,
|
||||
"alter": "code:PAYMENT_METHOD"
|
||||
},
|
||||
{
|
||||
"name": "payment_status",
|
||||
"title": "状态",
|
||||
"width": 100,
|
||||
"alter": "code:PAYMENT_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "approved_by_name",
|
||||
"title": "审批人",
|
||||
"width": 120
|
||||
},
|
||||
{
|
||||
"name": "created_by_name",
|
||||
"title": "创建人",
|
||||
"width": 120
|
||||
}
|
||||
],
|
||||
"joins": [
|
||||
{
|
||||
"table": "contract",
|
||||
"alias": "c",
|
||||
"on": "payments.contract_id = c.id"
|
||||
},
|
||||
{
|
||||
"table": "vendors",
|
||||
"alias": "v",
|
||||
"on": "payments.vendor_id = v.id"
|
||||
},
|
||||
{
|
||||
"table": "users",
|
||||
"alias": "u1",
|
||||
"on": "payments.approved_by = u1.id"
|
||||
},
|
||||
{
|
||||
"table": "users",
|
||||
"alias": "u2",
|
||||
"on": "payments.created_by = u2.id"
|
||||
}
|
||||
],
|
||||
"select_fields": [
|
||||
"payments.*",
|
||||
"c.contract_number",
|
||||
"v.name as vendor_name",
|
||||
"u1.username as approved_by_name",
|
||||
"u2.username as created_by_name"
|
||||
]
|
||||
},
|
||||
"form": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "payment_number",
|
||||
"title": "支出编号",
|
||||
"widget": "text",
|
||||
"readonly": true
|
||||
},
|
||||
{
|
||||
"name": "contract_id",
|
||||
"title": "关联合同",
|
||||
"widget": "select",
|
||||
"options": "contract"
|
||||
},
|
||||
{
|
||||
"name": "vendor_id",
|
||||
"title": "供应商",
|
||||
"widget": "select",
|
||||
"options": "vendors"
|
||||
},
|
||||
{
|
||||
"name": "payment_amount",
|
||||
"title": "支出金额",
|
||||
"widget": "number"
|
||||
},
|
||||
{
|
||||
"name": "payment_date",
|
||||
"title": "支出日期",
|
||||
"widget": "date"
|
||||
},
|
||||
{
|
||||
"name": "payment_method",
|
||||
"title": "支出方式",
|
||||
"widget": "select",
|
||||
"options": "code:PAYMENT_METHOD"
|
||||
},
|
||||
{
|
||||
"name": "payment_status",
|
||||
"title": "状态",
|
||||
"widget": "select",
|
||||
"options": "code:PAYMENT_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "approved_by",
|
||||
"title": "审批人",
|
||||
"widget": "select",
|
||||
"options": "users"
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"title": "备注",
|
||||
"widget": "textarea"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"tblname": "payments",
|
||||
"title": "支出管理",
|
||||
"params": {
|
||||
"sortby": ["created_at desc"],
|
||||
"logined_userorgid": "org_id",
|
||||
"confidential_fields": [],
|
||||
"browserfields": {
|
||||
"exclouded": ["id", "contract_id", "vendor_id", "approved_by", "created_by", "org_id"],
|
||||
"alters": {
|
||||
"payment_method": {
|
||||
"uitype": "code",
|
||||
"data": [
|
||||
{"value": "bank_transfer", "text": "银行转账"},
|
||||
{"value": "cash", "text": "现金"},
|
||||
{"value": "check", "text": "支票"},
|
||||
{"value": "other", "text": "其他"}
|
||||
]
|
||||
},
|
||||
"payment_status": {
|
||||
"uitype": "code",
|
||||
"data": [
|
||||
{"value": "pending", "text": "待审批"},
|
||||
{"value": "approved", "text": "已审批"},
|
||||
{"value": "rejected", "text": "已拒绝"},
|
||||
{"value": "paid", "text": "已支付"}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"editexclouded": ["id", "contract_id", "vendor_id", "approved_by", "created_by", "org_id", "created_at", "updated_at"]
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,97 +1,14 @@
|
||||
{
|
||||
"tablename": "receipt_allocations",
|
||||
"grid": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "receipt_number",
|
||||
"title": "收款编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "order_number",
|
||||
"title": "订单编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "contract_number",
|
||||
"title": "合同编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "allocated_amount",
|
||||
"title": "分配金额",
|
||||
"width": 120,
|
||||
"alter": "money"
|
||||
},
|
||||
{
|
||||
"name": "allocation_percentage",
|
||||
"title": "分配比例",
|
||||
"width": 100,
|
||||
"alter": "percentage"
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"width": 180,
|
||||
"alter": "datetime"
|
||||
}
|
||||
],
|
||||
"joins": [
|
||||
{
|
||||
"table": "receipts",
|
||||
"alias": "r",
|
||||
"on": "receipt_allocations.receipt_id = r.id"
|
||||
},
|
||||
{
|
||||
"table": "orders",
|
||||
"alias": "o",
|
||||
"on": "receipt_allocations.order_id = o.id"
|
||||
},
|
||||
{
|
||||
"table": "contract",
|
||||
"alias": "c",
|
||||
"on": "receipt_allocations.contract_id = c.id"
|
||||
}
|
||||
],
|
||||
"select_fields": [
|
||||
"receipt_allocations.*",
|
||||
"r.receipt_number",
|
||||
"o.order_number",
|
||||
"c.contract_number"
|
||||
]
|
||||
},
|
||||
"form": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "receipt_id",
|
||||
"title": "收款ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "order_id",
|
||||
"title": "订单ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "receivable_id",
|
||||
"title": "应收ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "contract_id",
|
||||
"title": "合同ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "allocated_amount",
|
||||
"title": "分配金额",
|
||||
"widget": "number"
|
||||
},
|
||||
{
|
||||
"name": "allocation_percentage",
|
||||
"title": "分配比例",
|
||||
"widget": "number"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"tblname": "receipt_allocations",
|
||||
"title": "收款分配",
|
||||
"params": {
|
||||
"sortby": ["created_at desc"],
|
||||
"logined_userorgid": "org_id",
|
||||
"confidential_fields": [],
|
||||
"browserfields": {
|
||||
"exclouded": ["id", "receipt_id", "order_id", "receivable_id", "contract_id", "org_id"],
|
||||
"alters": {}
|
||||
},
|
||||
"editexclouded": ["id", "receipt_id", "order_id", "receivable_id", "contract_id", "org_id", "created_at"]
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,111 +1,33 @@
|
||||
{
|
||||
"tablename": "receipts",
|
||||
"grid": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "receipt_number",
|
||||
"title": "收款编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "customer_name",
|
||||
"title": "客户名称",
|
||||
"width": 200
|
||||
},
|
||||
{
|
||||
"name": "total_amount",
|
||||
"title": "收款总额",
|
||||
"width": 120,
|
||||
"alter": "money"
|
||||
},
|
||||
{
|
||||
"name": "receipt_date",
|
||||
"title": "收款日期",
|
||||
"width": 120,
|
||||
"alter": "date"
|
||||
},
|
||||
{
|
||||
"name": "receipt_method",
|
||||
"title": "收款方式",
|
||||
"width": 120,
|
||||
"alter": "code:PAYMENT_METHOD"
|
||||
},
|
||||
{
|
||||
"name": "receipt_status",
|
||||
"title": "状态",
|
||||
"width": 100,
|
||||
"alter": "code:RECEIPT_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "created_by_name",
|
||||
"title": "创建人",
|
||||
"width": 120
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"title": "备注",
|
||||
"width": 200
|
||||
}
|
||||
],
|
||||
"joins": [
|
||||
{
|
||||
"table": "customers",
|
||||
"alias": "cu",
|
||||
"on": "receipts.customer_id = cu.id"
|
||||
},
|
||||
{
|
||||
"table": "users",
|
||||
"alias": "u",
|
||||
"on": "receipts.created_by = u.id"
|
||||
}
|
||||
],
|
||||
"select_fields": [
|
||||
"receipts.*",
|
||||
"cu.name as customer_name",
|
||||
"u.username as created_by_name"
|
||||
]
|
||||
},
|
||||
"form": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "receipt_number",
|
||||
"title": "收款编号",
|
||||
"widget": "text",
|
||||
"readonly": true
|
||||
},
|
||||
{
|
||||
"name": "customer_id",
|
||||
"title": "客户",
|
||||
"widget": "select",
|
||||
"options": "customers"
|
||||
},
|
||||
{
|
||||
"name": "total_amount",
|
||||
"title": "收款总额",
|
||||
"widget": "number"
|
||||
},
|
||||
{
|
||||
"name": "receipt_date",
|
||||
"title": "收款日期",
|
||||
"widget": "date"
|
||||
},
|
||||
{
|
||||
"name": "receipt_method",
|
||||
"title": "收款方式",
|
||||
"widget": "select",
|
||||
"options": "code:PAYMENT_METHOD"
|
||||
},
|
||||
{
|
||||
"name": "receipt_status",
|
||||
"title": "状态",
|
||||
"widget": "select",
|
||||
"options": "code:RECEIPT_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"title": "备注",
|
||||
"widget": "textarea"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"tblname": "receipts",
|
||||
"title": "收款管理",
|
||||
"params": {
|
||||
"sortby": ["created_at desc"],
|
||||
"logined_userorgid": "org_id",
|
||||
"confidential_fields": [],
|
||||
"browserfields": {
|
||||
"exclouded": ["id", "customer_id", "created_by", "org_id"],
|
||||
"alters": {
|
||||
"receipt_method": {
|
||||
"uitype": "code",
|
||||
"data": [
|
||||
{"value": "bank_transfer", "text": "银行转账"},
|
||||
{"value": "cash", "text": "现金"},
|
||||
{"value": "check", "text": "支票"},
|
||||
{"value": "other", "text": "其他"}
|
||||
]
|
||||
},
|
||||
"receipt_status": {
|
||||
"uitype": "code",
|
||||
"data": [
|
||||
{"value": "pending", "text": "待确认"},
|
||||
{"value": "confirmed", "text": "已确认"},
|
||||
{"value": "allocated", "text": "已分配"},
|
||||
{"value": "cancelled", "text": "已取消"}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"editexclouded": ["id", "customer_id", "created_by", "org_id", "created_at", "updated_at"]
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,144 +1,25 @@
|
||||
{
|
||||
"tablename": "receivables",
|
||||
"grid": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "order_number",
|
||||
"title": "订单编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "contract_number",
|
||||
"title": "合同编号",
|
||||
"width": 150
|
||||
},
|
||||
{
|
||||
"name": "customer_name",
|
||||
"title": "客户名称",
|
||||
"width": 200
|
||||
},
|
||||
{
|
||||
"name": "receivable_amount",
|
||||
"title": "应收金额",
|
||||
"width": 120,
|
||||
"alter": "money"
|
||||
},
|
||||
{
|
||||
"name": "received_amount",
|
||||
"title": "已收金额",
|
||||
"width": 120,
|
||||
"alter": "money"
|
||||
},
|
||||
{
|
||||
"name": "receivable_date",
|
||||
"title": "应收日期",
|
||||
"width": 120,
|
||||
"alter": "date"
|
||||
},
|
||||
{
|
||||
"name": "due_date",
|
||||
"title": "到期日期",
|
||||
"width": 120,
|
||||
"alter": "date"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态",
|
||||
"width": 100,
|
||||
"alter": "code:RECEIVABLE_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "sales_owner_name",
|
||||
"title": "销售负责人",
|
||||
"width": 120
|
||||
}
|
||||
],
|
||||
"joins": [
|
||||
{
|
||||
"table": "orders",
|
||||
"alias": "o",
|
||||
"on": "receivables.order_id = o.id"
|
||||
},
|
||||
{
|
||||
"table": "contract",
|
||||
"alias": "c",
|
||||
"on": "receivables.contract_id = c.id"
|
||||
},
|
||||
{
|
||||
"table": "customers",
|
||||
"alias": "cu",
|
||||
"on": "receivables.customer_id = cu.id"
|
||||
},
|
||||
{
|
||||
"table": "users",
|
||||
"alias": "u",
|
||||
"on": "receivables.sales_owner_id = u.id"
|
||||
}
|
||||
],
|
||||
"select_fields": [
|
||||
"receivables.*",
|
||||
"o.order_number",
|
||||
"c.contract_number",
|
||||
"cu.name as customer_name",
|
||||
"u.username as sales_owner_name"
|
||||
]
|
||||
},
|
||||
"form": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "order_id",
|
||||
"title": "订单ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "contract_id",
|
||||
"title": "合同ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "customer_id",
|
||||
"title": "客户ID",
|
||||
"widget": "hidden"
|
||||
},
|
||||
{
|
||||
"name": "receivable_amount",
|
||||
"title": "应收金额",
|
||||
"widget": "number",
|
||||
"readonly": true
|
||||
},
|
||||
{
|
||||
"name": "received_amount",
|
||||
"title": "已收金额",
|
||||
"widget": "number",
|
||||
"readonly": true
|
||||
},
|
||||
{
|
||||
"name": "receivable_date",
|
||||
"title": "应收日期",
|
||||
"widget": "date"
|
||||
},
|
||||
{
|
||||
"name": "due_date",
|
||||
"title": "到期日期",
|
||||
"widget": "date"
|
||||
},
|
||||
{
|
||||
"name": "credit_period",
|
||||
"title": "账期天数",
|
||||
"widget": "number"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态",
|
||||
"widget": "select",
|
||||
"options": "code:RECEIVABLE_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "sales_owner_id",
|
||||
"title": "销售负责人",
|
||||
"widget": "select",
|
||||
"options": "users"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"tblname": "receivables",
|
||||
"title": "应收款项",
|
||||
"params": {
|
||||
"sortby": ["due_date asc"],
|
||||
"logined_userorgid": "org_id",
|
||||
"confidential_fields": [],
|
||||
"browserfields": {
|
||||
"exclouded": ["id", "order_id", "contract_id", "customer_id", "org_id"],
|
||||
"alters": {
|
||||
"status": {
|
||||
"uitype": "code",
|
||||
"data": [
|
||||
{"value": "pending", "text": "待收款"},
|
||||
{"value": "partial", "text": "部分收款"},
|
||||
{"value": "completed", "text": "已完成"},
|
||||
{"value": "overdue", "text": "已逾期"},
|
||||
{"value": "cancelled", "text": "已取消"}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"editexclouded": ["id", "order_id", "contract_id", "customer_id", "org_id", "created_at", "updated_at", "received_amount"]
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user