RegionEdit.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <template>
  2. <el-dialog :title="title" :visible.sync="dialogFormVisible" width="500px" @close="close">
  3. <el-form ref="form" label-width="80px" :model="form" :rules="regionEdit">
  4. <el-form-item label="区域ID" style="display: none">
  5. <el-input v-model="form.regionId" type="input" />
  6. </el-form-item>
  7. <el-form-item label="省份选择" prop="provinceCode">
  8. <el-select ref="optionRef" v-model="form.provinceCode" placeholder="请选择" @change="selectDistrict">
  9. <el-option v-for="item in district" :key="item.id" :label="item.distName" :value="item.id" />
  10. </el-select>
  11. </el-form-item>
  12. <el-form-item label="备注">
  13. <el-input v-model="form.remark" type="textarea" />
  14. </el-form-item>
  15. </el-form>
  16. <template #footer>
  17. <el-button @click="close">取 消</el-button>
  18. <el-button type="primary" @click="save">确 定</el-button>
  19. </template>
  20. </el-dialog>
  21. </template>
  22. <script>
  23. import distrApi from '@/api/distr'
  24. import regionApi from '@/api/base/region/region'
  25. export default {
  26. name: 'Edit',
  27. data() {
  28. return {
  29. form: {
  30. regionEdit: [],
  31. },
  32. regionEdit: {
  33. provinceCode: [{ required: true, trigger: 'blur', message: '请选择省份' }],
  34. },
  35. title: '',
  36. dialogFormVisible: false,
  37. //省份
  38. district: [],
  39. //区域
  40. options: [],
  41. provinceCode: '',
  42. // 区域
  43. regionId: '',
  44. vaule: '',
  45. }
  46. },
  47. created() {
  48. //区域
  49. this.getRegion()
  50. //省份
  51. this.getProvinceInfo()
  52. this.setRegion()
  53. },
  54. methods: {
  55. setRegion(id) {
  56. console.log('setRegionnid', id)
  57. this.form.regionId = id
  58. },
  59. async getRegion() {
  60. const { data: data } = await regionApi.getRegion({})
  61. this.options = data.list
  62. },
  63. selectClass(id) {
  64. let obj = {}
  65. obj = this.options.find((item) => {
  66. return item.id === id //筛选出匹配数据
  67. })
  68. this.regionId = obj.id
  69. },
  70. async getProvinceInfo() {
  71. const { data: data } = await distrApi.getProvinceInfo({})
  72. console.log('区域', data.list)
  73. this.district = data.list
  74. },
  75. selectDistrict(id) {
  76. let obj = {}
  77. obj = this.district.find((item) => {
  78. return item.id === id //筛选出匹配数据
  79. })
  80. this.provinceCode = obj.id
  81. },
  82. showEdit(row) {
  83. if (!row) {
  84. this.title = '添加'
  85. } else {
  86. this.title = '编辑'
  87. this.form = Object.assign({}, row)
  88. }
  89. this.dialogFormVisible = true
  90. },
  91. close() {
  92. // this.$refs['form'].resetFields()
  93. // this.form = this.$options.data().form
  94. this.dialogFormVisible = false
  95. },
  96. save() {
  97. this.$refs['form'].validate(async (valid) => {
  98. if (valid) {
  99. if (this.form.id) {
  100. console.log(this.form)
  101. const { msg } = await regionApi.doEdit(this.form)
  102. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  103. } else {
  104. console.log('from', this.form)
  105. const { msg } = await regionApi.doAdd(this.form)
  106. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  107. }
  108. this.$emit('fetch-data')
  109. this.close()
  110. }
  111. })
  112. },
  113. },
  114. }
  115. </script>