diff --git a/dashboard/src2/pages/NewJsiteDomain.vue b/dashboard/src2/pages/NewJsiteDomain.vue index 15d72ef..f6d05c0 100644 --- a/dashboard/src2/pages/NewJsiteDomain.vue +++ b/dashboard/src2/pages/NewJsiteDomain.vue @@ -36,7 +36,7 @@ /> @@ -369,46 +367,286 @@ export default { { key: 'ntd', label: '新顶级域名' }, { key: 'country', label: '国家/地区域名' }, { key: 'cn', label: 'CN域名' }, - { key: 'chinese', label: '中文域名' } + { key: 'chinese', label: '中文域名' }, + { key: 'business', label: '商业域名' }, + { key: 'tech', label: '科技域名' }, + { key: 'creative', label: '创意域名' }, + { key: 'lifestyle', label: '生活域名' } ], allSuffixes: [ - { value: '.com', label: '.com', hot: true, price: 50, category: 'com' }, - { value: '.cn', label: '.cn', hot: true, price: 50, category: 'cn' }, - { value: '.net', label: '.net', hot: true, price: 50, category: 'net' }, - { value: '.org', label: '.org', hot: true, price: 50, category: 'org' }, - { value: '.top', label: '.top', hot: true, price: 50, category: 'top' }, - { value: '.xyz', label: '.xyz', hot: true, price: 50, category: 'xyz' }, - { value: '.vip', label: '.vip', hot: true, price: 50, category: 'vip' }, - { value: '.site', label: '.site', hot: true, price: 50, category: 'site' }, - { value: '.shop', label: '.shop', hot: true, price: 50, category: 'shop' }, - { value: '.io', label: '.io', hot: true, price: 50, category: 'io' }, - { value: '.ai', label: '.ai', hot: true, price: 50, category: 'ai' }, - { value: '.me', label: '.me', hot: true, price: 50, category: 'me' }, - { value: '.co', label: '.co', hot: true, price: 50, category: 'co' }, - { value: '.dev', label: '.dev', hot: true, price: 50, category: 'dev' }, - { value: '.app', label: '.app', hot: true, price: 50, category: 'app' }, - { value: '.fun', label: '.fun', hot: false, price: 45, category: 'fun' }, - { value: '.tech', label: '.tech', hot: false, price: 45, category: 'tech' }, - { value: '.art', label: '.art', hot: true, price: 45, category: 'art' }, - { value: '.group', label: '.group', hot: false, price: 45, category: 'group' }, - { value: '.net.cn', label: '.net.cn', hot: false, price: 45, category: 'cn' }, - { value: '.work', label: '.work', hot: false, price: 45, category: 'work' }, - { value: '.asia', label: '.asia', hot: false, price: 45, category: 'asia' }, - { value: '.hk', label: '.hk', hot: true, price: 45, category: 'hk' }, - { value: '.cc', label: '.cc', hot: false, price: 45, category: 'cc' }, - { value: '.icu', label: '.icu', hot: true, price: 45, category: 'icu' }, - { value: '.online', label: '.online', hot: false, price: 45, category: 'online' }, - { value: '.xin', label: '.xin', hot: false, price: 45, category: 'xin' }, - { value: '.club', label: '.club', hot: true, price: 45, category: 'club' }, - { value: '.info', label: '.info', hot: false, price: 45, category: 'info' }, - { value: '.ink', label: '.ink', hot: false, price: 45, category: 'ink' }, - { value: '.love', label: '.love', hot: false, price: 45, category: 'love' }, - { value: '.store', label: '.store', hot: false, price: 45, category: 'store' }, - { value: '.中国', label: '.中国', hot: true, price: 45, category: 'chinese' }, - { value: '.网络', label: '.网络', hot: false, price: 45, category: 'chinese' }, - { value: '.公司', label: '.公司', hot: false, price: 45, category: 'chinese' }, - { value: '.org.cn', label: '.org.cn', hot: false, price: 45, category: 'cn' }, - { value: '.gov.cn', label: '.gov.cn', hot: false, price: 45, category: 'cn' } + // 通用顶级域名 (gtd) + { value: '.com', label: '.com', hot: true, category: 'gtd' }, + { value: '.net', label: '.net', hot: true, category: 'gtd' }, + { value: '.org', label: '.org', hot: true, category: 'gtd' }, + { value: '.info', label: '.info', hot: false, category: 'gtd' }, + { value: '.biz', label: '.biz', hot: false, category: 'gtd' }, + + // 新顶级域名 (ntd) + { value: '.top', label: '.top', hot: true, category: 'ntd' }, + { value: '.xyz', label: '.xyz', hot: true, category: 'ntd' }, + { value: '.vip', label: '.vip', hot: true, category: 'ntd' }, + { value: '.site', label: '.site', hot: true, category: 'ntd' }, + { value: '.shop', label: '.shop', hot: true, category: 'ntd' }, + { value: '.club', label: '.club', hot: true, category: 'ntd' }, + { value: '.icu', label: '.icu', hot: true, category: 'ntd' }, + { value: '.online', label: '.online', hot: false, category: 'ntd' }, + { value: '.love', label: '.love', hot: false, category: 'ntd' }, + { value: '.store', label: '.store', hot: false, category: 'ntd' }, + { value: '.xin', label: '.xin', hot: false, category: 'ntd' }, + { value: '.ink', label: '.ink', hot: false, category: 'ntd' }, + { value: '.work', label: '.work', hot: false, category: 'ntd' }, + { value: '.fun', label: '.fun', hot: false, category: 'ntd' }, + { value: '.tech', label: '.tech', hot: false, category: 'ntd' }, + { value: '.art', label: '.art', hot: true, category: 'ntd' }, + { value: '.group', label: '.group', hot: false, category: 'ntd' }, + { value: '.app', label: '.app', hot: true, category: 'ntd' }, + { value: '.dev', label: '.dev', hot: true, category: 'ntd' }, + { value: '.io', label: '.io', hot: true, category: 'ntd' }, + { value: '.ai', label: '.ai', hot: true, category: 'ntd' }, + { value: '.me', label: '.me', hot: true, category: 'ntd' }, + { value: '.co', label: '.co', hot: true, category: 'ntd' }, + { value: '.town', label: '.town', hot: false, category: 'ntd' }, + { value: '.toys', label: '.toys', hot: false, category: 'ntd' }, + { value: '.trade', label: '.trade', hot: false, category: 'ntd' }, + { value: '.tips', label: '.tips', hot: false, category: 'ntd' }, + { value: '.tm', label: '.tm', hot: false, category: 'ntd' }, + { value: '.today', label: '.today', hot: false, category: 'ntd' }, + { value: '.tools', label: '.tools', hot: false, category: 'ntd' }, + { value: '.tv', label: '.tv', hot: false, category: 'ntd' }, + { value: '.tw', label: '.tw', hot: false, category: 'ntd' }, + { value: '.uno', label: '.uno', hot: false, category: 'ntd' }, + { value: '.vc', label: '.vc', hot: false, category: 'ntd' }, + { value: '.ventures', label: '.ventures', hot: false, category: 'ntd' }, + { value: '.vet', label: '.vet', hot: false, category: 'ntd' }, + { value: '.video', label: '.video', hot: false, category: 'ntd' }, + { value: '.vin', label: '.vin', hot: false, category: 'ntd' }, + { value: '.wang', label: '.wang', hot: false, category: 'ntd' }, + { value: '.watch', label: '.watch', hot: false, category: 'ntd' }, + { value: '.webcam', label: '.webcam', hot: false, category: 'ntd' }, + { value: '.website', label: '.website', hot: false, category: 'ntd' }, + { value: '.wiki', label: '.wiki', hot: false, category: 'ntd' }, + { value: '.win', label: '.win', hot: false, category: 'ntd' }, + { value: '.wine', label: '.wine', hot: false, category: 'ntd' }, + { value: '.works', label: '.works', hot: false, category: 'ntd' }, + { value: '.world', label: '.world', hot: false, category: 'ntd' }, + { value: '.wtf', label: '.wtf', hot: false, category: 'ntd' }, + { value: '.rent', label: '.rent', hot: false, category: 'ntd' }, + { value: '.review', label: '.review', hot: false, category: 'ntd' }, + { value: '.rip', label: '.rip', hot: false, category: 'ntd' }, + { value: '.run', label: '.run', hot: false, category: 'ntd' }, + { value: '.sale', label: '.sale', hot: false, category: 'ntd' }, + { value: '.school', label: '.school', hot: false, category: 'ntd' }, + { value: '.science', label: '.science', hot: false, category: 'ntd' }, + { value: '.services', label: '.services', hot: false, category: 'ntd' }, + { value: '.sex', label: '.sex', hot: false, category: 'ntd' }, + { value: '.sexy', label: '.sexy', hot: false, category: 'ntd' }, + { value: '.shopping', label: '.shopping', hot: false, category: 'ntd' }, + { value: '.show', label: '.show', hot: false, category: 'ntd' }, + { value: '.skin', label: '.skin', hot: false, category: 'ntd' }, + { value: '.social', label: '.social', hot: false, category: 'ntd' }, + { value: '.software', label: '.software', hot: false, category: 'ntd' }, + { value: '.solutions', label: '.solutions', hot: false, category: 'ntd' }, + { value: '.space', label: '.space', hot: false, category: 'ntd' }, + { value: '.studio', label: '.studio', hot: false, category: 'ntd' }, + { value: '.style', label: '.style', hot: false, category: 'ntd' }, + { value: '.support', label: '.support', hot: false, category: 'ntd' }, + { value: '.tax', label: '.tax', hot: false, category: 'ntd' }, + { value: '.team', label: '.team', hot: false, category: 'ntd' }, + { value: '.technology', label: '.technology', hot: false, category: 'ntd' }, + { value: '.organic', label: '.organic', hot: false, category: 'ntd' }, + { value: '.party', label: '.party', hot: false, category: 'ntd' }, + { value: '.pet', label: '.pet', hot: false, category: 'ntd' }, + { value: '.news', label: '.news', hot: false, category: 'ntd' }, + { value: '.ooo', label: '.ooo', hot: false, category: 'ntd' }, + { value: '.network', label: '.network', hot: false, category: 'ntd' }, + { value: '.mobi', label: '.mobi', hot: false, category: 'ntd' }, + { value: '.mom', label: '.mom', hot: false, category: 'ntd' }, + { value: '.money', label: '.money', hot: false, category: 'ntd' }, + { value: '.monster', label: '.monster', hot: false, category: 'ntd' }, + { value: '.motorcycles', label: '.motorcycles', hot: false, category: 'ntd' }, + { value: '.photo', label: '.photo', hot: false, category: 'ntd' }, + { value: '.photography', label: '.photography', hot: false, category: 'ntd' }, + { value: '.photos', label: '.photos', hot: false, category: 'ntd' }, + { value: '.pics', label: '.pics', hot: false, category: 'ntd' }, + { value: '.pink', label: '.pink', hot: false, category: 'ntd' }, + { value: '.plus', label: '.plus', hot: false, category: 'ntd' }, + { value: '.press', label: '.press', hot: false, category: 'ntd' }, + { value: '.pro', label: '.pro', hot: false, category: 'ntd' }, + { value: '.property', label: '.property', hot: false, category: 'ntd' }, + { value: '.pub', label: '.pub', hot: false, category: 'ntd' }, + { value: '.pw', label: '.pw', hot: false, category: 'ntd' }, + { value: '.qpon', label: '.qpon', hot: false, category: 'ntd' }, + { value: '.quest', label: '.quest', hot: false, category: 'ntd' }, + { value: '.racing', label: '.racing', hot: false, category: 'ntd' }, + { value: '.red', label: '.red', hot: false, category: 'ntd' }, + { value: '.ren', label: '.ren', hot: false, category: 'ntd' }, + { value: '.ing', label: '.ing', hot: false, category: 'ntd' }, + { value: '.kim', label: '.kim', hot: false, category: 'ntd' }, + { value: '.la', label: '.la', hot: false, category: 'ntd' }, + { value: '.land', label: '.land', hot: false, category: 'ntd' }, + { value: '.law', label: '.law', hot: false, category: 'ntd' }, + { value: '.lawyer', label: '.lawyer', hot: false, category: 'ntd' }, + { value: '.lc', label: '.lc', hot: false, category: 'ntd' }, + { value: '.life', label: '.life', hot: false, category: 'ntd' }, + { value: '.link', label: '.link', hot: false, category: 'ntd' }, + { value: '.live', label: '.live', hot: false, category: 'ntd' }, + { value: '.loan', label: '.loan', hot: false, category: 'ntd' }, + { value: '.lol', label: '.lol', hot: false, category: 'ntd' }, + { value: '.ltd', label: '.ltd', hot: false, category: 'ntd' }, + { value: '.luxe', label: '.luxe', hot: false, category: 'ntd' }, + { value: '.makeup', label: '.makeup', hot: false, category: 'ntd' }, + { value: '.market', label: '.market', hot: false, category: 'ntd' }, + { value: '.marketing', label: '.marketing', hot: false, category: 'ntd' }, + { value: '.mba', label: '.mba', hot: false, category: 'ntd' }, + { value: '.media', label: '.media', hot: false, category: 'ntd' }, + { value: '.men', label: '.men', hot: false, category: 'ntd' }, + { value: '.city', label: '.city', hot: false, category: 'ntd' }, + { value: '.click', label: '.click', hot: false, category: 'ntd' }, + { value: '.clothing', label: '.clothing', hot: false, category: 'ntd' }, + { value: '.cloud', label: '.cloud', hot: false, category: 'ntd' }, + { value: '.ceo', label: '.ceo', hot: false, category: 'ntd' }, + { value: '.cfd', label: '.cfd', hot: false, category: 'ntd' }, + { value: '.chat', label: '.chat', hot: false, category: 'ntd' }, + { value: '.center', label: '.center', hot: false, category: 'ntd' }, + { value: '.cards', label: '.cards', hot: false, category: 'ntd' }, + { value: '.cash', label: '.cash', hot: false, category: 'ntd' }, + { value: '.cab', label: '.cab', hot: false, category: 'ntd' }, + { value: '.cafe', label: '.cafe', hot: false, category: 'ntd' }, + { value: '.camera', label: '.camera', hot: false, category: 'ntd' }, + { value: '.car', label: '.car', hot: false, category: 'ntd' }, + { value: '.coffee', label: '.coffee', hot: false, category: 'ntd' }, + { value: '.college', label: '.college', hot: false, category: 'ntd' }, + { value: '.accountant', label: '.accountant', hot: false, category: 'ntd' }, + { value: '.auction', label: '.auction', hot: false, category: 'ntd' }, + { value: '.audio', label: '.audio', hot: false, category: 'ntd' }, + { value: '.autos', label: '.autos', hot: false, category: 'ntd' }, + { value: '.baby', label: '.baby', hot: false, category: 'ntd' }, + { value: '.band', label: '.band', hot: false, category: 'ntd' }, + { value: '.bar', label: '.bar', hot: false, category: 'ntd' }, + { value: '.beauty', label: '.beauty', hot: false, category: 'ntd' }, + { value: '.beer', label: '.beer', hot: false, category: 'ntd' }, + { value: '.best', label: '.best', hot: false, category: 'ntd' }, + { value: '.bet', label: '.bet', hot: false, category: 'ntd' }, + { value: '.bid', label: '.bid', hot: false, category: 'ntd' }, + { value: '.bike', label: '.bike', hot: false, category: 'ntd' }, + { value: '.bio', label: '.bio', hot: false, category: 'ntd' }, + { value: '.black', label: '.black', hot: false, category: 'ntd' }, + { value: '.blog', label: '.blog', hot: false, category: 'ntd' }, + { value: '.blue', label: '.blue', hot: false, category: 'ntd' }, + { value: '.boats', label: '.boats', hot: false, category: 'ntd' }, + { value: '.bond', label: '.bond', hot: false, category: 'ntd' }, + { value: '.business', label: '.business', hot: false, category: 'ntd' }, + { value: '.buzz', label: '.buzz', hot: false, category: 'ntd' }, + { value: '.bz', label: '.bz', hot: false, category: 'ntd' }, + { value: '.construction', label: '.construction', hot: false, category: 'ntd' }, + { value: '.cool', label: '.cool', hot: false, category: 'ntd' }, + { value: '.credit', label: '.credit', hot: false, category: 'ntd' }, + { value: '.cricket', label: '.cricket', hot: false, category: 'ntd' }, + { value: '.cx', label: '.cx', hot: false, category: 'ntd' }, + { value: '.cyou', label: '.cyou', hot: false, category: 'ntd' }, + { value: '.date', label: '.date', hot: false, category: 'ntd' }, + { value: '.design', label: '.design', hot: false, category: 'ntd' }, + { value: '.diet', label: '.diet', hot: false, category: 'ntd' }, + { value: '.dog', label: '.dog', hot: false, category: 'ntd' }, + { value: '.domains', label: '.domains', hot: false, category: 'ntd' }, + { value: '.download', label: '.download', hot: false, category: 'ntd' }, + { value: '.email', label: '.email', hot: false, category: 'ntd' }, + { value: '.engineer', label: '.engineer', hot: false, category: 'ntd' }, + { value: '.gs', label: '.gs', hot: false, category: 'ntd' }, + { value: '.equipment', label: '.equipment', hot: false, category: 'ntd' }, + { value: '.estate', label: '.estate', hot: false, category: 'ntd' }, + { value: '.expert', label: '.expert', hot: false, category: 'ntd' }, + { value: '.faith', label: '.faith', hot: false, category: 'ntd' }, + { value: '.family', label: '.family', hot: false, category: 'ntd' }, + { value: '.fan', label: '.fan', hot: false, category: 'ntd' }, + { value: '.fans', label: '.fans', hot: false, category: 'ntd' }, + { value: '.fashion', label: '.fashion', hot: false, category: 'ntd' }, + { value: '.feedback', label: '.feedback', hot: false, category: 'ntd' }, + { value: '.fish', label: '.fish', hot: false, category: 'ntd' }, + { value: '.fit', label: '.fit', hot: false, category: 'ntd' }, + { value: '.flowers', label: '.flowers', hot: false, category: 'ntd' }, + { value: '.fund', label: '.fund', hot: false, category: 'ntd' }, + { value: '.fyi', label: '.fyi', hot: false, category: 'ntd' }, + { value: '.game', label: '.game', hot: false, category: 'ntd' }, + { value: '.games', label: '.games', hot: false, category: 'ntd' }, + { value: '.gg', label: '.gg', hot: false, category: 'ntd' }, + { value: '.gift', label: '.gift', hot: false, category: 'ntd' }, + { value: '.gives', label: '.gives', hot: false, category: 'ntd' }, + { value: '.global', label: '.global', hot: false, category: 'ntd' }, + { value: '.gold', label: '.gold', hot: false, category: 'ntd' }, + { value: '.green', label: '.green', hot: false, category: 'ntd' }, + { value: '.guru', label: '.guru', hot: false, category: 'ntd' }, + { value: '.hair', label: '.hair', hot: false, category: 'ntd' }, + { value: '.haus', label: '.haus', hot: false, category: 'ntd' }, + { value: '.help', label: '.help', hot: false, category: 'ntd' }, + { value: '.holiday', label: '.holiday', hot: false, category: 'ntd' }, + { value: '.homes', label: '.homes', hot: false, category: 'ntd' }, + { value: '.host', label: '.host', hot: false, category: 'ntd' }, + { value: '.hosting', label: '.hosting', hot: false, category: 'ntd' }, + { value: '.house', label: '.house', hot: false, category: 'ntd' }, + { value: '.xxx', label: '.xxx', hot: false, category: 'ntd' }, + { value: '.yachts', label: '.yachts', hot: false, category: 'ntd' }, + { value: '.yoga', label: '.yoga', hot: false, category: 'ntd' }, + { value: '.zone', label: '.zone', hot: false, category: 'ntd' }, + + // 国家/地区域名 (country) + { value: '.cn', label: '.cn', hot: true, category: 'country' }, + { value: '.hk', label: '.hk', hot: true, category: 'country' }, + { value: '.asia', label: '.asia', hot: false, category: 'country' }, + { value: '.cc', label: '.cc', hot: false, category: 'country' }, + { value: '.sc', label: '.sc', hot: false, category: 'country' }, + { value: '.tw', label: '.tw', hot: false, category: 'country' }, + { value: '.tv', label: '.tv', hot: false, category: 'country' }, + + // CN域名 (cn) + { value: '.net.cn', label: '.net.cn', hot: false, category: 'cn' }, + { value: '.org.cn', label: '.org.cn', hot: false, category: 'cn' }, + { value: '.gov.cn', label: '.gov.cn', hot: false, category: 'cn' }, + { value: '.cn.com', label: '.cn.com', hot: false, category: 'cn' }, + { value: '.com.hk', label: '.com.hk', hot: false, category: 'cn' }, + { value: '.com.tw', label: '.com.tw', hot: false, category: 'cn' }, + { value: '.net.co', label: '.net.co', hot: false, category: 'cn' }, + { value: '.com.co', label: '.com.co', hot: false, category: 'cn' }, + + // 中文域名 (chinese) + { value: '.中国', label: '.中国', hot: true, category: 'chinese' }, + { value: '.网络', label: '.网络', hot: false, category: 'chinese' }, + { value: '.网址', label: '.网址', hot: false, category: 'chinese' }, + { value: '.商标', label: '.商标', hot: false, category: 'chinese' }, + { value: '.世界', label: '.世界', hot: false, category: 'chinese' }, + { value: '.集团', label: '.集团', hot: false, category: 'chinese' }, + { value: '.我爱你', label: '.我爱你', hot: false, category: 'chinese' }, + { value: '.餐厅', label: '.餐厅', hot: false, category: 'chinese' }, + { value: '.购物', label: '.购物', hot: false, category: 'chinese' }, + { value: '.健康', label: '.健康', hot: false, category: 'chinese' }, + { value: '.企业', label: '.企业', hot: false, category: 'chinese' }, + { value: '.商店', label: '.商店', hot: false, category: 'chinese' }, + { value: '.网店', label: '.网店', hot: false, category: 'chinese' }, + { value: '.娱乐', label: '.娱乐', hot: false, category: 'chinese' }, + { value: '.游戏', label: '.游戏', hot: false, category: 'chinese' }, + { value: '.招聘', label: '.招聘', hot: false, category: 'chinese' }, + { value: '.佛山', label: '.佛山', hot: false, category: 'chinese' }, + { value: '.广东', label: '.广东', hot: false, category: 'chinese' }, + { value: '.公司', label: '.公司', hot: false, category: 'chinese' }, + { value: '.信息', label: '.信息', hot: false, category: 'chinese' }, + { value: '.中文网', label: '.中文网', hot: false, category: 'chinese' }, + { value: '.在线', label: '.在线', hot: false, category: 'chinese' }, + { value: '.网址', label: '.网址', hot: false, category: 'chinese' }, + { value: '.商标', label: '.商标', hot: false, category: 'chinese' }, + { value: '.世界', label: '.世界', hot: false, category: 'chinese' }, + { value: '.集团', label: '.集团', hot: false, category: 'chinese' }, + { value: '.我爱你', label: '.我爱你', hot: false, category: 'chinese' }, + { value: '.餐厅', label: '.餐厅', hot: false, category: 'chinese' }, + { value: '.购物', label: '.购物', hot: false, category: 'chinese' }, + { value: '.健康', label: '.健康', hot: false, category: 'chinese' }, + { value: '.企业', label: '.企业', hot: false, category: 'chinese' }, + { value: '.商店', label: '.商店', hot: false, category: 'chinese' }, + { value: '.网店', label: '.网店', hot: false, category: 'chinese' }, + { value: '.娱乐', label: '.娱乐', hot: false, category: 'chinese' }, + { value: '.游戏', label: '.游戏', hot: false, category: 'chinese' }, + { value: '.招聘', label: '.招聘', hot: false, category: 'chinese' }, + { value: '.佛山', label: '.佛山', hot: false, category: 'chinese' }, + { value: '.广东', label: '.广东', hot: false, category: 'chinese' } ] }; }, @@ -424,15 +662,23 @@ export default { if (this.selectedCategory === 'popular') { suffixes = suffixes.filter(s => s.hot); } else if (this.selectedCategory === 'gtd') { - suffixes = suffixes.filter(s => ['.com', '.net', '.org', '.info'].includes(s.value)); + suffixes = suffixes.filter(s => s.category === 'gtd'); } else if (this.selectedCategory === 'ntd') { - suffixes = suffixes.filter(s => ['.xyz', '.top', '.vip', '.site', '.shop', '.club', '.icu', '.online', '.love', '.store'].includes(s.value)); + suffixes = suffixes.filter(s => s.category === 'ntd'); } else if (this.selectedCategory === 'country') { - suffixes = suffixes.filter(s => ['.cn', '.hk', '.asia', '.cc'].includes(s.value)); + suffixes = suffixes.filter(s => s.category === 'country'); } else if (this.selectedCategory === 'cn') { - suffixes = suffixes.filter(s => s.value.includes('.cn')); + suffixes = suffixes.filter(s => s.category === 'cn'); } else if (this.selectedCategory === 'chinese') { suffixes = suffixes.filter(s => s.category === 'chinese'); + } else if (this.selectedCategory === 'business') { + suffixes = suffixes.filter(s => ['.com', '.biz', '.business', '.shop', '.store', '.market', '.trade', '.sale', '.commerce', '.company', '.enterprise', '.corp', '.inc', '.ltd'].includes(s.value)); + } else if (this.selectedCategory === 'tech') { + suffixes = suffixes.filter(s => ['.tech', '.technology', '.ai', '.io', '.dev', '.app', '.software', '.digital', '.cloud', '.data', '.api', '.code', '.hack', '.lab', '.studio'].includes(s.value)); + } else if (this.selectedCategory === 'creative') { + suffixes = suffixes.filter(s => ['.art', '.design', '.creative', '.studio', '.gallery', '.photo', '.photography', '.video', '.media', '.film', '.music', '.band', '.show', '.stage'].includes(s.value)); + } else if (this.selectedCategory === 'lifestyle') { + suffixes = suffixes.filter(s => ['.life', '.lifestyle', '.health', '.fitness', '.beauty', '.fashion', '.style', '.luxury', '.premium', '.elite', '.vip', '.exclusive', '.boutique', '.spa', '.wellness'].includes(s.value)); } // 根据搜索关键词过滤 diff --git a/jcloud/api/domain_west.py b/jcloud/api/domain_west.py index e0956e9..46e8642 100644 --- a/jcloud/api/domain_west.py +++ b/jcloud/api/domain_west.py @@ -6,8 +6,11 @@ import requests import time import hashlib import json +import random +from datetime import datetime from urllib.parse import urlencode from typing import Dict, Any, Optional, List +from jcloud.utils import get_current_team class WestDomain: @@ -691,16 +694,20 @@ def create_domain_order(domain, period=1, payment_method='balance'): if not client: return {"success": False, "message": "API客户端初始化失败"} - price_result = client.get_domain_price(domain, 1) + # 获取域名价格 - 使用统一的 get_west_domain_price 函数 + price_result = get_west_domain_price(domain, 1) if price_result.get("status") == "error": return {"success": False, "message": "获取域名价格失败"} - # 计算总价格 - yearly_price = price_result.get("data", {}).get("price", 50) # 默认50元/年 + # 添加调试日志 + jingrow.log_error("域名价格调试", f"域名 {domain} 的价格结果: {price_result}") + + # 计算总价格 - 使用与前端一致的价格字段 + yearly_price = price_result.get("data", {}).get("price", 0) # 使用前端一致的价格字段 total_amount = yearly_price * period # 生成订单号 - order_id = f"DOMAIN_{jingrow.utils.random_string(6)}" + order_id = f"{datetime.now().strftime('%Y%m%d%H%M%S%f')[:-3] + ''.join(random.choices('0123456789', k=6))}" # 创建订单记录 order = jingrow.get_pg({ @@ -772,7 +779,7 @@ def create_domain_renew_order(**kwargs): total_amount = yearly_price * renewal_years # 生成唯一订单号 - order_id = f"DOMAIN_RENEW_{jingrow.utils.random_string(6)}" + order_id = f"{datetime.now().strftime('%Y%m%d%H%M%S%f')[:-3] + ''.join(random.choices('0123456789', k=6))}" # 创建订单记录 order = jingrow.get_pg({ @@ -818,13 +825,24 @@ def register_domain_from_order(order_name): period = domain.period or 1 # 调用西部数码API注册域名 - result = call_west_domain_api("register", domain=domain_name, regyear=period) + client = get_west_client() + if not client: + raise Exception("API客户端初始化失败") + + result = client.register_domain( + domain=domain_name, + regyear=period, + dns_host1="ns1.myhostadmin.net", + dns_host2="ns2.myhostadmin.net", + c_sysid="1681988" + ) # 打印result到后台日志 jingrow.log_error("西部数码域名注册结果", f"订单 {order_name} 的注册结果: {result}") - if not result or not result.get('success'): - raise Exception(f"域名注册失败: {result.get('message', '未知错误')}") + if not result or result.get('result') != 200: + error_msg = result.get('msg', result.get('message', '未知错误')) + raise Exception(f"域名注册失败: {error_msg}") # 更新域名记录状态 domain.status = "Active" @@ -862,13 +880,18 @@ def renew_domain_from_order(order_name): raise Exception("找不到对应的域名记录") # 调用西部数码API续费域名 - result = call_west_domain_api("renew", domain=domain_name, regyear=renewal_years) + client = get_west_client() + if not client: + raise Exception("API客户端初始化失败") + + result = client.renew_domain(domain_name, renewal_years) # 打印result到后台日志 jingrow.log_error("西部数码域名续费结果", f"订单 {order_name} 的续费结果: {result}") - if not result or not result.get('success'): - raise Exception(f"域名续费失败: {result.get('message', '未知错误')}") + if not result or result.get('result') != 200: + error_msg = result.get('msg', result.get('message', '未知错误')) + raise Exception(f"域名续费失败: {error_msg}") # 更新域名到期时间 domain.end_date = jingrow.utils.add_months(domain.end_date or jingrow.utils.nowdate(), renewal_years * 12) diff --git a/jcloud/jcloud/pagetype/jsite_domain/jsite_domain.json b/jcloud/jcloud/pagetype/jsite_domain/jsite_domain.json index c404a26..924bcdb 100644 --- a/jcloud/jcloud/pagetype/jsite_domain/jsite_domain.json +++ b/jcloud/jcloud/pagetype/jsite_domain/jsite_domain.json @@ -90,15 +90,13 @@ "in_list_view": 1, "in_standard_filter": 1, "label": "域名", - "reqd": 1, - "unique": 1 + "reqd": 1 }, { "fieldname": "domain_owner", "fieldtype": "Data", "in_list_view": 1, - "label": "域名所有者", - "unique": 1 + "label": "域名所有者" }, { "fieldname": "registration_date", @@ -122,8 +120,7 @@ "fieldname": "domain_registrar", "fieldtype": "Data", "in_list_view": 1, - "label": "域名注册商", - "unique": 1 + "label": "域名注册商" }, { "fieldname": "section_break_yomj", @@ -199,8 +196,8 @@ "grid_page_length": 50, "index_web_pages_for_search": 1, "links": [], - "modified": "2025-07-31 20:38:06.284459", - "modified_by": "support@jingrow.com", + "modified": "2025-08-01 04:11:35.696328", + "modified_by": "Administrator", "module": "Jcloud", "name": "Jsite Domain", "owner": "Administrator",