HTableForm.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import {createApp} from "vue/dist/vue.esm-bundler.js";
  2. import {getTokenHeader} from '~src/api/request/header';
  3. import {toParse} from "vue-utils-plus";
  4. import {
  5. ElButton,ElTooltip,ElInput,ElDatePicker,ElUpload,
  6. ElInputNumber,ElTimePicker,ElSelect,ElOption,ElRadioGroup,
  7. ElRadio,ElCheckbox,ElCheckboxGroup
  8. } from 'element-plus'
  9. const components = {
  10. ElButton,ElTooltip,ElInput, ElDatePicker, ElUpload,
  11. ElInputNumber, ElTimePicker, ElSelect, ElOption, ElRadioGroup,
  12. ElRadio, ElCheckbox, ElCheckboxGroup
  13. }
  14. //表单渲染
  15. export default class HTableForm {
  16. static createForm({template, tableForm, appId, onRight}) {
  17. const app = createApp({
  18. data() {
  19. return {
  20. getTokenHeader: getTokenHeader(),
  21. formData: tableForm,
  22. formUploadLoading: false,
  23. }
  24. },
  25. template,
  26. components,
  27. watch: {
  28. tableForm: {
  29. handler(obj) {
  30. this.formData = obj
  31. },
  32. deep: true
  33. },
  34. formData: {
  35. handler(obj) {
  36. tableForm = obj
  37. },
  38. deep: true
  39. },
  40. },
  41. methods: {
  42. //鼠标右键事件
  43. RightClick(a,b,c,d,e,f,event) {
  44. event.preventDefault();
  45. const KeyName = event?.target?.getAttribute('keyname') || ''
  46. if (onRight) {
  47. onRight(event, KeyName)
  48. }
  49. },
  50. getInformation() {}, //焦点事件
  51. datePickerChange(val,key) {
  52. this.formData[key] = val
  53. },
  54. //上传进度
  55. uploadprogress() {
  56. this.formUploadLoading = true
  57. },
  58. //上传完成
  59. formUploadSuccess(res,key) {
  60. this.formUploadLoading = false
  61. if (res.code === 200) {
  62. this.formData[key] = res.data?.link || ''
  63. }
  64. },
  65. //上传失败
  66. formUploadError() {
  67. this.formUploadLoading = false
  68. },
  69. //格式错误
  70. formUploadExceed() {
  71. this.formUploadLoading = false
  72. },
  73. //删除上传的文件
  74. delTableFormFile(key) {
  75. this.formData[key] = ''
  76. },
  77. //失去焦点事件
  78. getRegularExpression(event, reg, msg) {
  79. //const KeyName = event?.target?.getAttribute('keyname') || ''
  80. //console.log(KeyName,reg,msg)
  81. }
  82. }
  83. })
  84. app.mount(appId)
  85. return app
  86. }
  87. //处理日期范围数据
  88. static setPickerKey(data) {
  89. const pickerKey = data['pickerKey'] || ''
  90. if (pickerKey) {
  91. const pickerKeys = pickerKey.split(',')
  92. for (let i = 0; i < pickerKeys.length; i++) {
  93. const val = data[pickerKeys[i]] || ''
  94. if (val) {
  95. const dataVal = val.replace(/'/g,'"');
  96. data[pickerKeys[i]] = toParse(dataVal) || []
  97. } else {
  98. data[pickerKeys[i]] = []
  99. }
  100. }
  101. }
  102. return data
  103. }
  104. }