ReceiverEdit.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <script>
  2. import AreaCascader from '@/components/AreaCascader/index.vue';
  3. export default {
  4. name: 'ReceiverEdit',
  5. components: {
  6. AreaCascader
  7. },
  8. data() {
  9. return {
  10. receiver:false,
  11. form: {
  12. name: '',
  13. phone: '',
  14. areaCode: [],
  15. address: ''
  16. },
  17. rules: {
  18. name: [
  19. { required: true, message: '请输入收货人姓名', trigger: 'blur' },
  20. { min: 2, max: 20, message: '姓名长度在 2 到 20 个字符', trigger: 'blur' }
  21. ],
  22. phone: [
  23. { required: true, message: '请输入收货人手机号', trigger: 'blur' },
  24. { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
  25. ],
  26. areaCode: [
  27. { required: true, message: '请选择所在地区', trigger: 'change' }
  28. ],
  29. address: [
  30. { required: true, message: '请输入详细地址', trigger: 'blur' },
  31. { min: 5, max: 200, message: '详细地址长度在 5 到 200 个字符', trigger: 'blur' }
  32. ]
  33. }
  34. };
  35. },
  36. methods: {
  37. getRow(receiverInfo){
  38. this.receiver = true;
  39. this.form = receiverInfo;
  40. },
  41. handleCancel() {
  42. this.receiver = false;
  43. },
  44. handleSave() {
  45. this.$refs.formRef.validate((valid) => {
  46. if (valid) {
  47. this.$emit('save', {
  48. name: this.form.name,
  49. phone: this.form.phone,
  50. address: this.form.address
  51. });
  52. this.receiver = false;
  53. }
  54. });
  55. }
  56. }
  57. };
  58. </script>
  59. <template>
  60. <el-dialog
  61. title="修改收货人信息"
  62. :visible.sync="receiver"
  63. width="600px"
  64. >
  65. <el-form :model="form" :rules="rules" ref="formRef" label-width="120px">
  66. <el-form-item label="收货人姓名" prop="name">
  67. <el-input v-model="form.name" placeholder="请输入收货人姓名"></el-input>
  68. </el-form-item>
  69. <el-form-item label="收货人手机号" prop="phone">
  70. <el-input v-model="form.phone" placeholder="请输入收货人手机号"></el-input>
  71. </el-form-item>
  72. <el-form-item label="所在地区" prop="areaCode">
  73. <area-cascader v-model="form.areaCode" placeholder="请选择省市区"></area-cascader>
  74. </el-form-item>
  75. <el-form-item label="详细地址" prop="address">
  76. <el-input
  77. v-model="form.address"
  78. type="textarea"
  79. :rows="3"
  80. placeholder="请输入详细地址"
  81. ></el-input>
  82. </el-form-item>
  83. </el-form>
  84. <span slot="footer" class="dialog-footer">
  85. <el-button @click="handleCancel">取消</el-button>
  86. <el-button type="primary" @click="handleSave">保存</el-button>
  87. </span>
  88. </el-dialog>
  89. </template>
  90. <style scoped>
  91. </style>