xm-law-sub-case.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <sd-form ref="form" :init-values="fields">
  3. <template v-slot="{ model }">
  4. <sd-form-item
  5. v-for="field in fields"
  6. :key="field.name"
  7. :name="field.name"
  8. :label="field.dataType === 'collection' ? null : undefined"
  9. :hidden="!!field.sdHidden"
  10. @change="(value) => valueChange(value, field.name)"
  11. >
  12. </sd-form-item>
  13. </template>
  14. </sd-form>
  15. </template>
  16. <script>
  17. import components from './_import-components/xm-law-sub-case-import'
  18. export const metaInfo = {
  19. name: '案件分案',
  20. order: 100,
  21. }
  22. export default {
  23. name: 'XmLawSubCase',
  24. components,
  25. props: {
  26. dataSource: {
  27. type: Object,
  28. default: () => {},
  29. },
  30. },
  31. data() {
  32. return {
  33. visible: false,
  34. confirmLoading: false,
  35. fields: [
  36. {
  37. name: 'divisionType',
  38. caption: '分案类型',
  39. dataType: 'selectlist',
  40. attr: {
  41. defaultValue: 'PROGRESS',
  42. selectListItem: [
  43. { label: '案件进展', value: 'PROGRESS' },
  44. { label: '案件执行', value: 'EXECUTE' },
  45. ],
  46. },
  47. },
  48. ],
  49. }
  50. },
  51. created() {
  52. // 编辑时
  53. if (Object.keys(this.dataSource).length > 0) {
  54. this.fields.forEach((f) => {
  55. const value = this.dataSource[f.name]
  56. if (value && typeof value === 'object') {
  57. f.value = JSON.stringify(value)
  58. } else {
  59. f.value = value
  60. }
  61. })
  62. }
  63. },
  64. methods: {
  65. validate() {
  66. return this.$refs.form.validateFields()
  67. },
  68. valueChange(value, field) {
  69. this.dataSource[field] = value.target ? value.target.value : value
  70. },
  71. handleOk() {
  72. return true
  73. },
  74. },
  75. }
  76. </script>
  77. <style module lang="scss">
  78. @use '@/common/design' as *;
  79. </style>