feat: backend MVP (auth/rbac, catalog, orders, fulfillment, invoices) + specs + scaffolds

This commit is contained in:
Chengdong Zhang
2026-09-17 12:43:22 +08:00
commit dc9fd31c5e
96 changed files with 17550 additions and 0 deletions
+168
View File
@@ -0,0 +1,168 @@
export default {
common: {
appName: "VMall",
login: "Sign in",
logout: "Sign out",
register: "Create account",
email: "Email",
password: "Password",
displayName: "Display name",
submit: "Submit",
cancel: "Cancel",
save: "Save",
delete: "Delete",
edit: "Edit",
create: "Create",
search: "Search",
loading: "Loading…",
empty: "Nothing here yet",
back: "Back",
actions: "Actions",
status: "Status",
total: "Total",
qty: "Qty",
price: "Price",
yes: "Yes",
no: "No",
all: "All",
language: "Language",
currency: "Currency",
page: "Page",
prev: "Prev",
next: "Next",
error: "Something went wrong",
required: "Required",
},
nav: {
home: "Home",
products: "Products",
categories: "Categories",
cart: "Cart",
orders: "Orders",
invoices: "Invoices",
shipments: "Shipments",
account: "Account",
dashboard: "Dashboard",
users: "Users",
shops: "Shops",
currencies: "Currencies",
settings: "Settings",
},
auth: {
welcome: "Welcome back",
createAccount: "Create your account",
haveAccount: "Already have an account?",
noAccount: "No account yet?",
badCredentials: "Invalid email or password",
},
product: {
addToCart: "Add to cart",
buyNow: "Buy now",
stock: "Stock",
publish: "Publish",
unpublish: "Unpublish",
draft: "Draft",
published: "Published",
unpublished: "Unpublished",
newProduct: "New product",
editProduct: "Edit product",
nameEn: "Name (English)",
nameZh: "Name (中文)",
descEn: "Description (English)",
descZh: "Description (中文)",
slug: "Slug",
category: "Category",
images: "Image URLs (one per line)",
skus: "SKUs",
addSku: "Add SKU",
skuCode: "SKU code",
detail: "Product detail",
shop: "Shop",
},
cart: {
title: "Shopping cart",
checkout: "Checkout",
emptyCart: "Your cart is empty",
remove: "Remove",
subtotal: "Subtotal",
},
order: {
title: "Orders",
orderNo: "Order no.",
placeOrder: "Place order",
shippingAddress: "Shipping address",
recipient: "Recipient",
phone: "Phone",
country: "Country",
region: "State / Province",
city: "City",
line1: "Street address",
postalCode: "Postal code",
pay: "Pay",
cancelOrder: "Cancel order",
confirmDelivery: "Confirm delivery",
requestInvoice: "Request invoice",
status: {
pending_payment: "Pending payment",
paid: "Paid",
fulfilling: "Fulfilling",
shipped: "Shipped",
completed: "Completed",
cancelled: "Cancelled",
},
},
shipment: {
title: "Shipments",
shipmentNo: "Shipment no.",
carrier: "Carrier",
trackingNo: "Tracking no.",
create: "Create shipment",
markShipped: "Mark shipped",
status: {
pending: "Pending",
shipped: "Shipped",
delivered: "Delivered",
},
},
invoice: {
title: "Invoices",
invoiceNo: "Invoice no.",
invoiceTitle: "Invoice title",
taxNo: "Tax number",
kind: "Type",
personal: "Personal",
company: "Company",
issue: "Issue invoice",
amount: "Amount",
status: {
requested: "Requested",
issued: "Issued",
cancelled: "Cancelled",
},
},
admin: {
role: "Role",
roles: {
platform_admin: "Platform admin",
shop_owner: "Shop owner",
shop_staff: "Shop staff",
customer: "Customer",
},
assignShop: "Assigned shop",
createShop: "Create shop",
shopSlug: "Shop slug",
shopNameEn: "Shop name (English)",
shopNameZh: "Shop name (中文)",
suspend: "Suspend",
activate: "Activate",
active: "Active",
suspended: "Suspended",
rate: "Rate to base",
symbol: "Symbol",
exponent: "Minor units",
baseCurrency: "Base",
enabled: "Enabled",
saveCurrency: "Save currency",
updateRate: "Update rate",
},
} as const;
+2
View File
@@ -0,0 +1,2 @@
export { default as en } from "./en";
export { default as zh } from "./zh";
+168
View File
@@ -0,0 +1,168 @@
export default {
common: {
appName: "VMall 云商城",
login: "登录",
logout: "退出登录",
register: "注册",
email: "邮箱",
password: "密码",
displayName: "昵称",
submit: "提交",
cancel: "取消",
save: "保存",
delete: "删除",
edit: "编辑",
create: "新建",
search: "搜索",
loading: "加载中…",
empty: "暂无数据",
back: "返回",
actions: "操作",
status: "状态",
total: "合计",
qty: "数量",
price: "价格",
yes: "是",
no: "否",
all: "全部",
language: "语言",
currency: "币种",
page: "页",
prev: "上一页",
next: "下一页",
error: "出错了",
required: "必填",
},
nav: {
home: "首页",
products: "商品",
categories: "分类",
cart: "购物车",
orders: "订单",
invoices: "发票",
shipments: "发货单",
account: "我的",
dashboard: "仪表盘",
users: "用户",
shops: "店铺",
currencies: "币种",
settings: "设置",
},
auth: {
welcome: "欢迎回来",
createAccount: "创建账号",
haveAccount: "已有账号?",
noAccount: "还没有账号?",
badCredentials: "邮箱或密码错误",
},
product: {
addToCart: "加入购物车",
buyNow: "立即购买",
stock: "库存",
publish: "上架",
unpublish: "下架",
draft: "草稿",
published: "已上架",
unpublished: "已下架",
newProduct: "新建商品",
editProduct: "编辑商品",
nameEn: "名称(英文)",
nameZh: "名称(中文)",
descEn: "描述(英文)",
descZh: "描述(中文)",
slug: "别名",
category: "分类",
images: "图片链接(每行一个)",
skus: "SKU",
addSku: "添加 SKU",
skuCode: "SKU 编码",
detail: "商品详情",
shop: "店铺",
},
cart: {
title: "购物车",
checkout: "去结算",
emptyCart: "购物车是空的",
remove: "移除",
subtotal: "小计",
},
order: {
title: "订单",
orderNo: "订单号",
placeOrder: "提交订单",
shippingAddress: "收货地址",
recipient: "收货人",
phone: "电话",
country: "国家",
region: "省/州",
city: "城市",
line1: "详细地址",
postalCode: "邮编",
pay: "支付",
cancelOrder: "取消订单",
confirmDelivery: "确认收货",
requestInvoice: "申请发票",
status: {
pending_payment: "待支付",
paid: "已支付",
fulfilling: "履约中",
shipped: "已发货",
completed: "已完成",
cancelled: "已取消",
},
},
shipment: {
title: "发货单",
shipmentNo: "发货单号",
carrier: "承运商",
trackingNo: "物流单号",
create: "创建发货单",
markShipped: "标记发货",
status: {
pending: "待发货",
shipped: "已发货",
delivered: "已送达",
},
},
invoice: {
title: "发票",
invoiceNo: "发票号",
invoiceTitle: "抬头",
taxNo: "税号",
kind: "类型",
personal: "个人",
company: "企业",
issue: "开具发票",
amount: "金额",
status: {
requested: "已申请",
issued: "已开具",
cancelled: "已作废",
},
},
admin: {
role: "角色",
roles: {
platform_admin: "平台管理员",
shop_owner: "店主",
shop_staff: "店员",
customer: "顾客",
},
assignShop: "所属店铺",
createShop: "创建店铺",
shopSlug: "店铺别名",
shopNameEn: "店铺名(英文)",
shopNameZh: "店铺名(中文)",
suspend: "停用",
activate: "启用",
active: "启用中",
suspended: "已停用",
rate: "对基准汇率",
symbol: "符号",
exponent: "小数位",
baseCurrency: "基准",
enabled: "启用",
saveCurrency: "保存币种",
updateRate: "更新汇率",
},
} as const;