const.ts 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  1. export interface IComponent {
  2. label: string;
  3. value: string;
  4. restriction: {
  5. width: number;
  6. height: number;
  7. fileSize: number;
  8. maxNumber: number;
  9. minNumber: number;
  10. name: string;
  11. };
  12. }
  13. /** 二级视频组件类型 */
  14. export const DEFAULT_COMPONENT_SUB_VIDEO_TYPE = [
  15. {
  16. label: '16:9 视频',
  17. value: 'VIDEO_16X9',
  18. restriction: {
  19. width: 1280,
  20. height: 720,
  21. fileSize: 512000,
  22. maxNumber: 1,
  23. minNumber: 1,
  24. maxDuration: 300000,
  25. name: 'video'
  26. }
  27. },
  28. {
  29. label: '9:16 视频',
  30. value: 'VIDEO_9X16',
  31. restriction: {
  32. width: 720,
  33. height: 1280,
  34. fileSize: 512000,
  35. maxNumber: 1,
  36. minNumber: 1,
  37. maxDuration: 300000,
  38. name: 'video'
  39. }
  40. },
  41. {
  42. label: '4:3 视频',
  43. value: 'VIDEO_4X3',
  44. restriction: {
  45. width: 1280,
  46. height: 960,
  47. fileSize: 512000,
  48. maxNumber: 1,
  49. minNumber: 1,
  50. maxDuration: 300000,
  51. name: 'video'
  52. }
  53. },
  54. // {
  55. // label: '橱窗视频',
  56. // value: 'VIDEO_SHOWCASE'
  57. // },
  58. // {
  59. // label: '橱窗视频',
  60. // value: 'SHORT_VIDEO_4X3'
  61. // }
  62. ]
  63. /** 二级图片组件类型 */
  64. export const DEFAULT_COMPONENT_SUB_IMAGE_TYPE = [
  65. {
  66. label: '16:9单图',
  67. value: 'IMAGE_16X9',
  68. restriction: {
  69. width: 1280,
  70. height: 720,
  71. fileSize: 400,
  72. maxNumber: 1,
  73. minNumber: 1,
  74. name: 'image'
  75. }
  76. },
  77. {
  78. label: '9:16单图',
  79. value: 'IMAGE_9X16',
  80. restriction: {
  81. width: 1080,
  82. height: 1920,
  83. fileSize: 400,
  84. maxNumber: 1,
  85. minNumber: 1,
  86. name: 'image'
  87. }
  88. },
  89. {
  90. label: '1:1单图',
  91. value: 'IMAGE_1X1',
  92. restriction: {
  93. width: 800,
  94. height: 800,
  95. fileSize: 400,
  96. maxNumber: 1,
  97. minNumber: 1,
  98. name: 'image'
  99. }
  100. },
  101. {
  102. label: '20:7banner图',
  103. value: 'IMAGE_20X7',
  104. restriction: {
  105. width: 960,
  106. height: 334,
  107. fileSize: 400,
  108. maxNumber: 1,
  109. minNumber: 1,
  110. name: 'image'
  111. }
  112. },
  113. {
  114. label: '3:4单图',
  115. value: 'IMAGE_3X4',
  116. restriction: {
  117. width: 960,
  118. height: 1280,
  119. fileSize: 400,
  120. maxNumber: 1,
  121. minNumber: 1,
  122. name: 'image'
  123. }
  124. },
  125. {
  126. label: '4:3单图',
  127. value: 'IMAGE_4X3',
  128. restriction: {
  129. width: 1280,
  130. height: 960,
  131. fileSize: 400,
  132. maxNumber: 1,
  133. minNumber: 1,
  134. name: 'image'
  135. }
  136. },
  137. {
  138. label: '3:2单图',
  139. value: 'IMAGE_3X2',
  140. restriction: {
  141. width: 480,
  142. height: 320,
  143. fileSize: 400,
  144. maxNumber: 1,
  145. minNumber: 1,
  146. name: 'image'
  147. }
  148. },
  149. {
  150. label: '7:2通栏大图',
  151. value: 'IMAGE_7X2',
  152. restriction: {
  153. width: 960,
  154. height: 274,
  155. fileSize: 400,
  156. maxNumber: 1,
  157. minNumber: 1,
  158. name: 'image'
  159. }
  160. },
  161. {
  162. label: '5:4单图',
  163. value: 'IMAGE_5X4',
  164. restriction: {
  165. width: 1280,
  166. height: 1024,
  167. fileSize: 400,
  168. maxNumber: 1,
  169. minNumber: 1,
  170. name: 'image'
  171. }
  172. },
  173. {
  174. label: '4:5单图',
  175. value: 'IMAGE_4X5',
  176. restriction: {
  177. width: 1024,
  178. height: 1280,
  179. fileSize: 400,
  180. maxNumber: 1,
  181. minNumber: 1,
  182. name: 'image'
  183. }
  184. },
  185. {
  186. label: '1:1一图',
  187. value: 'IMAGE_LIST_1X1_1',
  188. restriction: {
  189. width: 800,
  190. height: 800,
  191. fileSize: 400,
  192. maxNumber: 1,
  193. minNumber: 1,
  194. name: 'image_list'
  195. }
  196. },
  197. {
  198. label: '1:1三图',
  199. value: 'IMAGE_LIST_1X1_3',
  200. restriction: {
  201. width: 800,
  202. height: 800,
  203. fileSize: 400,
  204. maxNumber: 3,
  205. minNumber: 3,
  206. name: 'image_list'
  207. }
  208. },
  209. {
  210. label: '1:1四图',
  211. value: 'IMAGE_LIST_1X1_4',
  212. restriction: {
  213. width: 800,
  214. height: 800,
  215. fileSize: 400,
  216. maxNumber: 4,
  217. minNumber: 4,
  218. name: 'image_list'
  219. }
  220. },
  221. {
  222. label: '1:1六图',
  223. value: 'IMAGE_LIST_1X1_6',
  224. restriction: {
  225. width: 800,
  226. height: 800,
  227. fileSize: 400,
  228. maxNumber: 6,
  229. minNumber: 6,
  230. name: 'image_list'
  231. }
  232. },
  233. {
  234. label: '1:1九图',
  235. value: 'IMAGE_LIST_1X1_9',
  236. restriction: {
  237. width: 800,
  238. height: 800,
  239. fileSize: 400,
  240. maxNumber: 9,
  241. minNumber: 9,
  242. name: 'image_list'
  243. }
  244. },
  245. {
  246. label: '3:2三图',
  247. value: 'IMAGE_LIST_3X2_3',
  248. restriction: {
  249. width: 480,
  250. height: 320,
  251. fileSize: 400,
  252. maxNumber: 3,
  253. minNumber: 3,
  254. name: 'image_list'
  255. }
  256. }
  257. ]
  258. /** 默认展示图片组件类型 */
  259. export const DEFAULT_COMPONENT_SUB_SHOW_IMAGE = [
  260. "SEARCH_IMAGE_1X1",
  261. "SEARCH_IMAGE_BIG_20X7",
  262. "SEARCH_IMAGE_16X9",
  263. "SEARCH_IMAGE_LIST_1X1",
  264. "SEARCH_IMAGE_LIST_9X16",
  265. "IMAGE_16X9",
  266. "IMAGE_9X16",
  267. "IMAGE_1X1",
  268. "IMAGE_LIST_1X1_1",
  269. "IMAGE_20X7",
  270. "IMAGE_100X9",
  271. "IMAGE_3X4",
  272. "IMAGE_4X3",
  273. "IMAGE_3X2",
  274. "IMAGE_7X2",
  275. "IMAGE_5X4",
  276. "IMAGE_4X5",
  277. "IMAGE_LIST_1X1_3",
  278. "IMAGE_LIST_1X1_4",
  279. "IMAGE_LIST_1X1_6",
  280. "IMAGE_LIST_1X1_9",
  281. "IMAGE_LIST_3X2_3",
  282. "ELEMENT_STORY",
  283. "IMAGE_LIST_16X9_1",
  284. "IMAGE_SHOWCASE"
  285. ]
  286. /** 默认展示视频组件类型 */
  287. export const DEFAULT_COMPONENT_SUB_SHOW_VIDEO = [
  288. "SEARCH_VIDEO_16X9_IMAGE_16X9",
  289. "SEARCH_VIDEO_9X16_IMAGE_9X16",
  290. "VIDEO_16X9",
  291. "VIDEO_9X16",
  292. "VIDEO_4X3",
  293. "SHORT_VIDEO_4X3",
  294. "APP_PROMOTION_VIDEO_16X9",
  295. "VIDEO_SHOWCASE"
  296. ]
  297. /** 潜力状态 */
  298. export enum COMMON_POTENTIAL_STATUS_ENUM {
  299. COMMON_POTENTIAL_STATUS_DEFAULT = '潜力暂无判断',
  300. COMMON_POTENTIAL_STATUS_LOW = '潜力低',
  301. COMMON_POTENTIAL_STATUS_HIGH = '潜力高'
  302. }
  303. /** 来源 */
  304. export enum COMPONENT_GENERATION_TYPE_ENUM {
  305. COMPONENT_GENERATION_TYPE_USER_CREATE = '客户素材',
  306. COMPONENT_GENERATION_TYPE_SYSTEM_DERIVE = 'AIGC推荐'
  307. }
  308. /** 所有二级组件类型 */
  309. export const COMPONENT_SUB_TYPE = [
  310. {
  311. "label": "16:9 视频",
  312. "value": "VIDEO_16X9"
  313. },
  314. {
  315. "label": "9:16 视频",
  316. "value": "VIDEO_9X16"
  317. },
  318. {
  319. "label": "4:3 视频",
  320. "value": "VIDEO_4X3"
  321. },
  322. {
  323. "label": "橱窗视频",
  324. "value": "VIDEO_SHOWCASE"
  325. },
  326. {
  327. "label": "4:3 视频",
  328. "value": "SHORT_VIDEO_4X3"
  329. },
  330. {
  331. "label": "16:9 单图",
  332. "value": "IMAGE_16X9"
  333. },
  334. {
  335. "label": "9:16 单图",
  336. "value": "IMAGE_9X16"
  337. },
  338. {
  339. "label": "1:1 单图",
  340. "value": "IMAGE_1X1"
  341. },
  342. {
  343. "label": "3:2 单图",
  344. "value": "IMAGE_3X2"
  345. },
  346. {
  347. "label": "3:4 单图",
  348. "value": "IMAGE_3X4"
  349. },
  350. {
  351. "label": "4:3 单图",
  352. "value": "IMAGE_4X3"
  353. },
  354. {
  355. "label": "5:4 单图",
  356. "value": "IMAGE_5X4"
  357. },
  358. {
  359. "label": "4:5 单图",
  360. "value": "IMAGE_4X5"
  361. },
  362. {
  363. "label": "20:7banner 图",
  364. "value": "IMAGE_20X7"
  365. },
  366. {
  367. "label": "7:2 通栏大图",
  368. "value": "IMAGE_7X2"
  369. },
  370. {
  371. "label": "橱窗图片",
  372. "value": "IMAGE_SHOWCASE"
  373. },
  374. {
  375. "label": "100:9 PC 横版通栏",
  376. "value": "IMAGE_100X9"
  377. },
  378. {
  379. "label": "9:16 四图",
  380. "value": "IMAGE_LIST_9X16_4"
  381. },
  382. {
  383. "label": "1:1 三图",
  384. "value": "IMAGE_LIST_1X1_3"
  385. },
  386. {
  387. "label": "1:1 四图",
  388. "value": "IMAGE_LIST_1X1_4"
  389. },
  390. {
  391. "label": "1:1 六图",
  392. "value": "IMAGE_LIST_1X1_6"
  393. },
  394. {
  395. "label": "3:2 三图",
  396. "value": "IMAGE_LIST_3X2_3"
  397. },
  398. {
  399. "label": "1:1 一图",
  400. "value": "IMAGE_LIST_1X1_1"
  401. },
  402. {
  403. "label": "16:9 一图",
  404. "value": "IMAGE_LIST_16X9_1"
  405. },
  406. {
  407. "label": "1:1 九图",
  408. "value": "IMAGE_LIST_1X1_9"
  409. },
  410. {
  411. "label": "集装箱创意组合组件",
  412. "value": "ELEMENT_STORY"
  413. },
  414. {
  415. "label": "文案",
  416. "value": "DESCRIPTION"
  417. },
  418. {
  419. "label": "标题",
  420. "value": "TITLE"
  421. },
  422. {
  423. "label": "行动按钮",
  424. "value": "ACTION_BUTTON"
  425. },
  426. {
  427. "label": "标签",
  428. "value": "LABEL"
  429. },
  430. {
  431. "label": "数据展示",
  432. "value": "SHOW_DATA"
  433. },
  434. {
  435. "label": "浮层卡片-图文复合",
  436. "value": "FLOATING_ZONE_IMAGE_TEXT"
  437. },
  438. {
  439. "label": "浮层卡片-单图",
  440. "value": "FLOATING_ZONE_IMAGE"
  441. },
  442. {
  443. "label": "弹幕",
  444. "value": "BARRAGE"
  445. },
  446. {
  447. "label": "礼包组件",
  448. "value": "APP_GIFT_PACK_CODE"
  449. },
  450. {
  451. "label": "卖点图",
  452. "value": "SHOP_IMAGE"
  453. },
  454. {
  455. "label": "挂件",
  456. "value": "MARKETING_PENDANT"
  457. },
  458. {
  459. "label": "选择按钮",
  460. "value": "CHOSEN_BUTTON"
  461. },
  462. {
  463. "label": "倒计时",
  464. "value": "COUNT_DOWN"
  465. },
  466. {
  467. "label": "轮播文案",
  468. "value": "LIVING_DESC"
  469. },
  470. {
  471. "label": "朋友圈文字链",
  472. "value": "TEXT_LINK"
  473. },
  474. {
  475. "label": "视频结束页",
  476. "value": "END_PAGE"
  477. },
  478. {
  479. "label": "试玩页",
  480. "value": "WXGAME_PLAYABLE_PAGE"
  481. },
  482. {
  483. "label": "首评回复组件",
  484. "value": "SOCIAL_SKILL"
  485. },
  486. {
  487. "label": "图文链接组件",
  488. "value": "MINI_CARD_LINK"
  489. },
  490. {
  491. "label": "浮层卡片-图文轮播",
  492. "value": "FLOATING_ZONE_IMAGE_TEXT_LIST"
  493. },
  494. {
  495. "label": "客服问答组件",
  496. "value": "CONSULT_LINK"
  497. },
  498. {
  499. "label": "商品卡片组件",
  500. "value": "SHOP_PRODUCT_CARD"
  501. },
  502. {
  503. "label": "自定义",
  504. "value": "BRAND"
  505. },
  506. {
  507. "label": "品牌简介页",
  508. "value": "BRAND_PAGE"
  509. },
  510. {
  511. "label": "搜一搜超级品专",
  512. "value": "BRAND_SEARCH"
  513. },
  514. {
  515. "label": "视频号",
  516. "value": "BRAND_WECHAT_CHANNEL"
  517. },
  518. {
  519. "label": "公众号",
  520. "value": "BRAND_WECHAT"
  521. },
  522. {
  523. "label": "企业微信",
  524. "value": "BRAND_WECOM"
  525. },
  526. {
  527. "label": "官方落地页",
  528. "value": "JUMP_INFO_OFFICIAL"
  529. },
  530. {
  531. "label": "自定义",
  532. "value": "JUMP_INFO_H5"
  533. },
  534. {
  535. "label": "微信小程序",
  536. "value": "JUMP_INFO_WECHAT_MINI_PROGRAM"
  537. },
  538. {
  539. "label": "微信客服",
  540. "value": "JUMP_INFO_WECHAT_CONSULT"
  541. },
  542. {
  543. "label": "企业微信",
  544. "value": "JUMP_INFO_WECOM_CONSULT"
  545. },
  546. {
  547. "label": "视频号观看直播",
  548. "value": "JUMP_INFO_WECHAT_CHANNELS_WATCH_LIVE"
  549. },
  550. {
  551. "label": "视频号视频详情页",
  552. "value": "JUMP_INFO_WECHAT_CHANNELS_FEED"
  553. },
  554. {
  555. "label": "微信公众号详情页",
  556. "value": "JUMP_INFO_WECHAT_OFFICIAL_ACCOUNT_DETAIL"
  557. },
  558. {
  559. "label": "微信小游戏",
  560. "value": "JUMP_INFO_WECHAT_MINI_GAME"
  561. },
  562. {
  563. "label": "安卓默认下载落地页",
  564. "value": "JUMP_INFO_ANDROID_APP"
  565. },
  566. {
  567. "label": "IOS 默认下载落地页",
  568. "value": "JUMP_INFO_IOS_APP"
  569. },
  570. {
  571. "label": "一键下载",
  572. "value": "JUMP_INFO_ANDROID_DIRECT_DOWNLOAD"
  573. },
  574. {
  575. "label": "厂商直达",
  576. "value": "JUMP_INFO_APP_MARKET"
  577. },
  578. {
  579. "label": "应用直达",
  580. "value": "JUMP_INFO_APP_DEEP_LINK"
  581. },
  582. {
  583. "label": "视频号小店商品详情页",
  584. "value": "JUMP_INFO_WECHAT_CHANNELS_SHOP_PRODUCT"
  585. },
  586. {
  587. "label": "QQ 小游戏",
  588. "value": "JUMP_INFO_QQ_MINI_GAME"
  589. }
  590. ]
  591. /**
  592. * 判断组件类型
  593. * @param componentSubType
  594. * @returns
  595. */
  596. export const getComponentType = (componentSubType: string) => {
  597. if (['IMAGE_16X9', 'IMAGE_1X1', 'IMAGE_9X16', 'IMAGE_20X7', 'IMAGE_3X4', 'IMAGE_4X3', 'IMAGE_3X2', 'IMAGE_7X2', 'IMAGE_5X4', 'IMAGE_4X5'].includes(componentSubType)) {
  598. return 'IMAGE'
  599. } else if (componentSubType.includes('VIDEO')) {
  600. return 'VIDEO'
  601. } else if (['IMAGE_LIST_1X1_9', 'IMAGE_LIST_1X1_3', 'IMAGE_LIST_1X1_4', 'IMAGE_LIST_1X1_6', 'IMAGE_LIST_3X2_3', 'IMAGE_LIST_1X1_1'].includes(componentSubType)) {
  602. return 'IMAGE_LIST'
  603. } else {
  604. return 'OTHER'
  605. }
  606. }