widget-piechart.js 11 KB

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