widget-funnel.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. /*
  2. * @Descripttion: 漏斗图 json
  3. * @version:
  4. * @Author: qianlishi
  5. * @Date: 2021-08-29 07:29:23
  6. * @LastEditors: qianlishi
  7. * @LastEditTime: 2021-09-28 14:12:37
  8. */
  9. export const widgetFunnel = {
  10. code: 'widget-funnel',
  11. type: 'chart',
  12. label: '漏斗图',
  13. icon: 'iconloudoutu',
  14. options: {
  15. // 配置
  16. setup: [
  17. {
  18. type: 'el-input-text',
  19. label: '图层名称',
  20. name: 'layerName',
  21. required: false,
  22. placeholder: '',
  23. value: '漏斗图',
  24. },
  25. {
  26. type: 'vue-color',
  27. label: '背景颜色',
  28. name: 'background',
  29. required: false,
  30. placeholder: '',
  31. value: ''
  32. },
  33. {
  34. type: 'el-switch',
  35. label: '翻转',
  36. name: 'ending',
  37. require: false,
  38. placeholder: '',
  39. value: false,
  40. },
  41. [
  42. {
  43. name: '标题设置',
  44. list: [
  45. {
  46. type: 'el-switch',
  47. label: '标题',
  48. name: 'isNoTitle',
  49. required: false,
  50. placeholder: '',
  51. value: false,
  52. },
  53. {
  54. type: 'el-input-text',
  55. label: '标题',
  56. name: 'titleText',
  57. required: false,
  58. placeholder: '',
  59. value: '',
  60. },
  61. {
  62. type: 'vue-color',
  63. label: '字体颜色',
  64. name: 'textColor',
  65. required: false,
  66. placeholder: '',
  67. value: '#FFD700'
  68. },
  69. {
  70. type: 'el-select',
  71. label: '字体粗细',
  72. name: 'textFontWeight',
  73. required: false,
  74. placeholder: '',
  75. selectOptions: [
  76. {code: 'normal', name: '正常'},
  77. {code: 'bold', name: '粗体'},
  78. {code: 'bolder', name: '特粗体'},
  79. {code: 'lighter', name: '细体'}
  80. ],
  81. value: 'normal'
  82. },
  83. {
  84. type: 'el-input-number',
  85. label: '字体字号',
  86. name: 'textFontSize',
  87. required: false,
  88. placeholder: '',
  89. value: 20
  90. },
  91. {
  92. type: 'el-select',
  93. label: '字体位置',
  94. name: 'textAlign',
  95. required: false,
  96. placeholder: '',
  97. selectOptions: [
  98. {code: 'center', name: '居中'},
  99. {code: 'left', name: '左对齐'},
  100. {code: 'right', name: '右对齐'},
  101. ],
  102. value: 'center'
  103. },
  104. {
  105. type: 'el-input-text',
  106. label: '副标题',
  107. name: 'subText',
  108. required: false,
  109. placeholder: '',
  110. value: ''
  111. },
  112. {
  113. type: 'vue-color',
  114. label: '字体颜色',
  115. name: 'subTextColor',
  116. required: false,
  117. placeholder: '',
  118. value: 'rgba(30, 144, 255, 1)'
  119. },
  120. {
  121. type: 'el-select',
  122. label: '字体粗细',
  123. name: 'subTextFontWeight',
  124. required: false,
  125. placeholder: '',
  126. selectOptions: [
  127. {code: 'normal', name: '正常'},
  128. {code: 'bold', name: '粗体'},
  129. {code: 'bolder', name: '特粗体'},
  130. {code: 'lighter', name: '细体'}
  131. ],
  132. value: 'normal'
  133. },
  134. {
  135. type: 'el-input-number',
  136. label: '字体字号',
  137. name: 'subTextFontSize',
  138. required: false,
  139. placeholder: '',
  140. value: 16
  141. },
  142. ],
  143. },
  144. {
  145. name: '数值设置',
  146. list: [
  147. {
  148. type: 'el-switch',
  149. label: '显示',
  150. name: 'isShow',
  151. require: false,
  152. placeholder: '',
  153. value: true,
  154. },
  155. {
  156. type: 'el-input-number',
  157. label: '字体字号',
  158. name: 'fontSize',
  159. require: false,
  160. placeholder: '',
  161. value: 14,
  162. },
  163. {
  164. type: 'vue-color',
  165. label: '字体颜色',
  166. name: 'color',
  167. require: false,
  168. placeholder: '',
  169. value: '#fff',
  170. },
  171. {
  172. type: 'el-select',
  173. label: '字体粗细',
  174. name: 'fontWeight',
  175. require: false,
  176. placeholder: '',
  177. selectOptions: [
  178. {code: 'normal', name: '正常'},
  179. {code: 'bold', name: '粗体'},
  180. {code: 'bolder', name: '特粗体'},
  181. {code: 'lighter', name: '细体'}
  182. ],
  183. value: 'normal'
  184. },
  185. ],
  186. },
  187. {
  188. name: '图例操作',
  189. list: [
  190. {
  191. type: 'el-switch',
  192. label: '显示',
  193. name: 'isShowLegend',
  194. required: false,
  195. placeholder: '',
  196. value: true,
  197. },
  198. {
  199. type: 'vue-color',
  200. label: '字体颜色',
  201. name: 'legendColor',
  202. required: false,
  203. placeholder: '',
  204. value: '#fff',
  205. },
  206. {
  207. type: 'el-input-number',
  208. label: '字体字号',
  209. name: 'legendFontSize',
  210. required: false,
  211. placeholder: '',
  212. value: 16,
  213. },
  214. {
  215. type: 'el-input-number',
  216. label: '图例宽度',
  217. name: 'legendWidth',
  218. required: false,
  219. placeholder: '',
  220. value: 15,
  221. },
  222. {
  223. type: 'el-select',
  224. label: '横向位置',
  225. name: 'lateralPosition',
  226. required: false,
  227. placeholder: '',
  228. selectOptions: [
  229. {code: 'center', name: '居中'},
  230. {code: 'left', name: '左对齐'},
  231. {code: 'right', name: '右对齐'},
  232. ],
  233. value: 'center'
  234. },
  235. {
  236. type: 'el-select',
  237. label: '纵向位置',
  238. name: 'longitudinalPosition',
  239. required: false,
  240. placeholder: '',
  241. selectOptions: [
  242. {code: 'top', name: '顶部'},
  243. {code: 'bottom', name: '底部'},
  244. ],
  245. value: 'top'
  246. },
  247. {
  248. type: 'el-select',
  249. label: '布局前置',
  250. name: 'layoutFront',
  251. required: false,
  252. placeholder: '',
  253. selectOptions: [
  254. {code: 'vertical', name: '竖排'},
  255. {code: 'horizontal', name: '横排'},
  256. ],
  257. value: 'horizontal'
  258. },
  259. ],
  260. },
  261. {
  262. name: '提示语设置',
  263. list: [
  264. {
  265. type: 'el-input-number',
  266. label: '字体字号',
  267. name: 'tipFontSize',
  268. required: false,
  269. placeholder: '',
  270. value: 14
  271. },
  272. {
  273. type: 'vue-color',
  274. label: '字体颜色',
  275. name: 'lineColor',
  276. required: false,
  277. placeholder: '',
  278. value: ''
  279. },
  280. ],
  281. },
  282. {
  283. name: '自定义配色',
  284. list: [
  285. {
  286. type: 'customColor',
  287. label: '',
  288. name: 'customColor',
  289. required: false,
  290. value: [{color: '#0CD2E6'}, {color: '#00BFA5'}, {color: '#FFC722'}, {color: '#886EFF'}, {color: '#008DEC'}],
  291. },
  292. ],
  293. },
  294. ],
  295. ],
  296. // 数据
  297. data: [
  298. {
  299. type: 'el-radio-group',
  300. label: '数据类型',
  301. name: 'dataType',
  302. require: false,
  303. placeholder: '',
  304. selectValue: true,
  305. selectOptions: [
  306. {
  307. code: 'staticData',
  308. name: '静态数据',
  309. },
  310. {
  311. code: 'dynamicData',
  312. name: '动态数据',
  313. },
  314. ],
  315. value: 'staticData',
  316. },
  317. {
  318. type: 'el-input-number',
  319. label: '刷新时间(毫秒)',
  320. name: 'refreshTime',
  321. relactiveDom: 'dataType',
  322. relactiveDomValue: 'dynamicData',
  323. value: 5000
  324. },
  325. {
  326. type: 'el-button',
  327. label: '静态数据',
  328. name: 'staticData',
  329. required: false,
  330. placeholder: '',
  331. relactiveDom: 'dataType',
  332. relactiveDomValue: 'staticData',
  333. value: [
  334. {"value": 2, "name": "访问"},
  335. {"value": 5, "name": "咨询"},
  336. {"value": 20, "name": "订单"},
  337. {"value": 40, "name": "点击"},
  338. {"value": 125, "name": "展现"}
  339. ],
  340. },
  341. {
  342. type: 'dycustComponents',
  343. label: '',
  344. name: 'dynamicData',
  345. required: false,
  346. placeholder: '',
  347. relactiveDom: 'dataType',
  348. chartType: 'widget-funnel',
  349. relactiveDomValue: 'dynamicData',
  350. dictKey: 'PIE_PROPERTIES',
  351. value: '',
  352. },
  353. ],
  354. // 坐标
  355. position: [
  356. {
  357. type: 'el-input-number',
  358. label: '左边距',
  359. name: 'left',
  360. required: false,
  361. placeholder: '',
  362. value: 0,
  363. },
  364. {
  365. type: 'el-input-number',
  366. label: '上边距',
  367. name: 'top',
  368. required: false,
  369. placeholder: '',
  370. value: 0,
  371. },
  372. {
  373. type: 'el-input-number',
  374. label: '宽度',
  375. name: 'width',
  376. required: false,
  377. placeholder: '该容器在1920px大屏中的宽度',
  378. value: 400,
  379. },
  380. {
  381. type: 'el-input-number',
  382. label: '高度',
  383. name: 'height',
  384. required: false,
  385. placeholder: '该容器在1080px大屏中的高度',
  386. value: 500,
  387. },
  388. ],
  389. }
  390. }