AddressAdd.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <div class="address-add">
  3. <el-form :model="addressForm" :rules="rules" ref="addressForm" label-width="100px">
  4. <el-form-item label="地址ID" v-if="$route.query.addressid">
  5. <el-input disabled v-model="addressForm.addressid"></el-input>
  6. </el-form-item>
  7. <el-form-item label="地址名称" prop="addressname">
  8. <el-input v-model="addressForm.addressname"></el-input>
  9. </el-form-item>
  10. <el-form-item label="地址经度" prop="longitude">
  11. <el-input type="number" v-model="addressForm.longitude"></el-input>
  12. </el-form-item>
  13. <el-form-item label="地址纬度" prop="latitude">
  14. <el-input type="number" v-model="addressForm.latitude"></el-input>
  15. </el-form-item>
  16. <el-form-item>
  17. <!-- 提交按钮 -->
  18. <el-button type="primary" @click="submitForm('addressForm')">
  19. {{$route.query.addressid?"更新":"添加"}}地址
  20. </el-button>
  21. <!-- 重置按钮 -->
  22. <el-button @click="resetForm('addressForm')">重置</el-button>
  23. </el-form-item>
  24. </el-form>
  25. </div>
  26. </template>
  27. <script>
  28. import { addOrUpdateAddress } from "@/api/address";
  29. export default{
  30. name:"AddressAdd",
  31. data(){
  32. return{
  33. addressForm:{
  34. addressid:"",
  35. addressname:"",
  36. longitude:"",
  37. latitude:""
  38. },
  39. // 表单验证规则
  40. rules:{
  41. addressname:[
  42. {required:true,message:"请输入地址名称",trigger:"blur"}
  43. ],
  44. longitude:[
  45. {required:true,message:"请输入地址经度",trigger:"blur"}
  46. ],
  47. latitude:[
  48. {required:true,message:"请输入地址纬度",trigger:"blur"}
  49. ]
  50. }
  51. }
  52. },
  53. mounted(){
  54. // 从路由参数中获取地址信息
  55. if(this.$route.query.addressid){
  56. // 赋值给表单数据
  57. this.addressForm = {...this.$route.query}
  58. }
  59. },
  60. methods:{
  61. // 添加地址按钮
  62. submitForm(formName){
  63. // 验证表单
  64. this.$refs[formName].validate((valid) => {
  65. if(valid){
  66. // 发送请求添加地址
  67. addOrUpdateAddress(this.addressForm).then(()=>{
  68. // 弹框提示成功
  69. this.$message({
  70. message: '地址添加成功!',
  71. type: 'success'
  72. });
  73. // 重置表单
  74. this.resetForm("addressForm");
  75. // 跳转地址列表页面
  76. this.$router.push("/address/list")
  77. }).catch(()=>{
  78. // 弹框提示失败
  79. this.$message({
  80. message: '地址添加失败!',
  81. type: 'error'
  82. });
  83. })
  84. }else{
  85. // 验证失败
  86. this.$message({
  87. message: '请填写完整地址信息',
  88. type: 'warning'
  89. });
  90. }
  91. })
  92. },
  93. // 重置表单
  94. resetForm(formName){
  95. // 重置表单数据
  96. this.$refs[formName].resetFields();
  97. }
  98. }
  99. }
  100. </script>
  101. <style scoped>
  102. .address-add{
  103. width: 600px;
  104. margin: 100px auto;
  105. }
  106. </style>