xm-iam-rectify-user.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <template>
  2. <sd-form ref="form" :init-values="initValues">
  3. <template v-slot="{ model }">
  4. <table class="sd-form-table">
  5. <tr v-for="field in initValues" :key="field.name">
  6. <sd-form-item-td :name="field.name">
  7. <!-- 修改字段 -->
  8. <sd-list-picker
  9. v-if="field.name === 'userName'"
  10. v-model="model[field.name]"
  11. single
  12. :load-list-data="loadFieldListPicker"
  13. @change="(value) => valueChange(value, field.name)"
  14. />
  15. <!-- 账号字段 -->
  16. <sd-list-picker
  17. v-if="field.name === 'userAccount'"
  18. v-model="model[field.name]"
  19. single
  20. :load-list-data="loadFieldListPicker"
  21. @change="(value) => valueChange(value, field.name)"
  22. />
  23. <!-- ID字段 -->
  24. <sd-list-picker
  25. v-if="field.name === 'userId'"
  26. v-model="model[field.name]"
  27. single
  28. :load-list-data="loadFieldListPicker"
  29. @change="(value) => valueChange(value, field.name)"
  30. />
  31. </sd-form-item-td>
  32. </tr>
  33. </table>
  34. </template>
  35. </sd-form>
  36. </template>
  37. <script>
  38. import components from './_import-components/xm-iam-rectify-user-import'
  39. export const metaInfo = {
  40. name: '设置子表用户信息',
  41. order: 100,
  42. }
  43. export default {
  44. name: 'XmIamRectifyUser',
  45. components: {
  46. ...components,
  47. },
  48. data() {
  49. return {
  50. initValues: [
  51. {
  52. name: 'userName',
  53. caption: '姓名字段',
  54. dataType: 'string',
  55. required: true,
  56. },
  57. {
  58. name: 'userAccount',
  59. caption: '账号字段',
  60. dataType: 'string',
  61. required: true,
  62. },
  63. {
  64. name: 'userId',
  65. caption: 'ID字段',
  66. dataType: 'string',
  67. required: false,
  68. },
  69. ],
  70. }
  71. },
  72. created() {
  73. // 编辑时
  74. if (Object.keys(this.dataSource).length > 0) {
  75. this.initValues.forEach((f) => {
  76. const value = this.dataSource[f.name]
  77. if (value && typeof value === 'object') {
  78. f.value = JSON.stringify(value)
  79. } else {
  80. f.value = value
  81. }
  82. })
  83. }
  84. },
  85. methods: {
  86. validate() {
  87. return this.$refs.form.validateFields()
  88. },
  89. loadFieldListPicker() {
  90. return Promise.resolve(
  91. this.SdEventsManage?.component?.attr?.dync
  92. ?.filter((f) => f.dataType !== 'attachment')
  93. ?.map((f) => ({ id: f.name, name: f.caption })) || []
  94. )
  95. },
  96. valueChange(value, field) {
  97. this.dataSource[field] = value
  98. },
  99. },
  100. }
  101. </script>
  102. <style module lang="scss">
  103. @use '@/common/design' as *;
  104. </style>