ai-form-item-group.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <uv-text v-if="groupName" :text="groupName" v-bind="formGroupBinding"/>
  3. <ai-form-item-template v-for="r in rules" :key="r.fieldName" :render-rule="r">
  4. <template #text>
  5. <ai-form-field-text :rule="r"/>
  6. </template>
  7. <template #number>
  8. <ai-form-field-number :rule="r"/>
  9. </template>
  10. <template #score>
  11. <ai-form-field-score :rule="r"/>
  12. </template>
  13. <template #picker>
  14. <ai-form-field-picker :rule="r"/>
  15. </template>
  16. <template #eyesight>
  17. <ai-form-field-eyesight :rule="r"/>
  18. </template>
  19. <template #radio>
  20. <ai-form-field-radio :rule="r"/>
  21. </template>
  22. <template #checkbox>
  23. <ai-form-field-checkbox :rule="r"/>
  24. </template>
  25. </ai-form-item-template>
  26. </template>
  27. <script>
  28. import AIFormCommonStyle from "@/pages/ie/components/AIFormCommonStyle";
  29. import AiFormItemTemplate from "@/pages/ie/components/ai-form/items/ai-form-item-template.vue";
  30. import AiFormFieldText from "@/pages/ie/components/ai-form/items/templates/ai-form-field-text.vue";
  31. import AiFormFieldNumber from "@/pages/ie/components/ai-form/items/templates/ai-form-field-number.vue";
  32. import AiFormFieldScore from "@/pages/ie/components/ai-form/items/templates/ai-form-field-score.vue";
  33. import AiFormFieldPicker from "@/pages/ie/components/ai-form/items/templates/ai-form-field-picker.vue";
  34. import AiFormFieldEyesight from "@/pages/ie/components/ai-form/items/templates/ai-form-field-eyesight.vue";
  35. import AiFormFieldRadio from "@/pages/ie/components/ai-form/items/templates/ai-form-field-radio.vue";
  36. import AiFormFieldCheckbox from "@/pages/ie/components/ai-form/items/templates/ai-form-field-checkbox.vue";
  37. import mxConst from "@/common/mxConst";
  38. export default {
  39. name: "ai-form-item-group",
  40. components: {
  41. AiFormFieldCheckbox,
  42. AiFormFieldRadio,
  43. AiFormFieldEyesight,
  44. AiFormFieldPicker, AiFormFieldScore, AiFormFieldNumber, AiFormFieldText, AiFormItemTemplate
  45. },
  46. mixins: [AIFormCommonStyle],
  47. props: {
  48. category: {
  49. type: [String, Number],
  50. default: () => ({})
  51. },
  52. rules: {
  53. type: Array,
  54. default: () => []
  55. }
  56. },
  57. computed: {
  58. groupName() {
  59. const config = Object.values(mxConst.enum.ai.ruleCategory)
  60. const match = config.find(r => r.value == this.category)
  61. return match?.formText || ''
  62. }
  63. }
  64. }
  65. </script>
  66. <style scoped>
  67. </style>