create-form.blade.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. @extends('layouts.base')
  2. @section('content')
  3. <div class="w1200 m0a">
  4. <!-- 新增加右侧顶部三级菜单 -->
  5. <div class="right-titpos">
  6. <ul class="add-snav">
  7. <li class="active"><a href="#">添加地址</a></li>
  8. </ul>
  9. </div>
  10. <div id="app">
  11. <div class="panel panel-default">
  12. <div class="panel panel-body">
  13. <el-form :model="form_data" :rules="rules" ref="form_data" label-width="20%">
  14. <el-form-item label="地址级别" prop="level">
  15. {{--<el-radio-group v-model="form_data.level">--}}
  16. {{--<el-radio label="3">区级</el-radio>--}}
  17. {{--<el-radio label="4">街道级</el-radio>--}}
  18. {{--</el-radio-group>--}}
  19. <div>
  20. <el-radio-group v-model="form_data.level" prop="level">
  21. <el-radio-button label="3">区级</el-radio-button>
  22. <el-radio-button label="4">街道级</el-radio-button>
  23. </el-radio-group>
  24. </div>
  25. </el-form-item>
  26. <el-form-item label="地址归属区域" v-loading="all_loading">
  27. <el-select v-model="address.province" filterable placeholder="请选择省" clearable style="width:20%" @change="changeProvince()" value-key="id">
  28. <el-option v-for="item in province_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  29. </el-select>
  30. <el-select v-model="address.city" filterable placeholder="请选择市" clearable style="width:20%" value-key="id" @change="changeCity()">
  31. <el-option v-for="item in city_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  32. </el-select>
  33. <el-select v-if="form_data.level == 4" filterable v-model="address.district" placeholder="请选择区" clearable style="width:20%" value-key="id">
  34. <el-option v-for="item in district_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-form-item label="地址名称" prop="name">
  38. <el-input style="width: 50%" v-model="form_data.name"></el-input>
  39. </el-form-item>
  40. <el-form-item label="行政编码" prop="new_id">
  41. <div>
  42. <el-input type="number" style="width: 50%"
  43. :placeholder="form_data.level == 3 ? '请输入6位数的区级行政编码' : '请输入9位数街道级行政编码'"
  44. v-model="form_data.new_id">
  45. {{--<template slot="prepend"></template>--}}
  46. </el-input>
  47. </div>
  48. {{--<el-input type="number" style="width: 50%" v-model="form_data.new_id" placeholder="请输入国家行政区划编码"></el-input>--}}
  49. <div style="color: red" class="tip">添加区级个数必须是6位,街道级个数必须是9位</div>
  50. <div class="tip">位数代表含义: 第一、二位表示省级,第三、四位表示地市级,第五、六位表示县区级;<br/>第七至九位表示乡、镇(街道办事处)</div>
  51. <div class="tip">不清楚的可前往以下页面查看百度地图行政区划adcode映射表</div>
  52. <el-link type="primary" target="_blank" href="https://lbsyun.baidu.com/index.php?title=open/dev-res">
  53. 查询区划号
  54. </el-link>
  55. </el-form-item>
  56. <el-form-item>
  57. <el-button type="success" round @click="submitForm('form_data')">提交</el-button>
  58. <el-button round @click="backtrack()">返回</el-button>
  59. </el-form-item>
  60. </el-form>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. <script>
  66. var app = new Vue({
  67. el:"#app",
  68. delimiters: ['[[', ']]'],
  69. data() {
  70. return{
  71. all_loading:false,
  72. province_list:[],//省
  73. city_list:[],//市
  74. district_list:[],//区域
  75. street_list:[],//街道
  76. address : {
  77. city: "",
  78. city_id: 0,
  79. district: "",
  80. district_id: 0,
  81. province: "",
  82. province_id: 0,
  83. street: "",
  84. street_id: 0,
  85. },
  86. form_data:{
  87. name:'',
  88. level: 3,
  89. parent_address:{},
  90. new_id:'',
  91. },
  92. rules:{
  93. name:[
  94. { required: true, message: '请输入地址名称', trigger: 'blur' },
  95. { min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur' }
  96. ],
  97. level:[
  98. { required: true, message: '请选择添加地址类型', trigger: 'blur' },
  99. ],
  100. new_id:[
  101. { required: true, message: '请填写行政区划编码', trigger: 'blur' },
  102. ],
  103. },
  104. }
  105. },
  106. created() {
  107. this.getProvince();
  108. },
  109. methods: {
  110. submitForm(formName) {
  111. this.$refs[formName].validate((valid) => {
  112. if (valid) {
  113. if (this.validateAddress()) {
  114. this.confirm();
  115. }
  116. } else {
  117. return false;
  118. }
  119. });
  120. },
  121. confirm() {
  122. this.$confirm('后续如删除添加的地址可能对部分功能造成影响,确认添加吗?', '提示', {
  123. cancelButtonText: '取消',
  124. confirmButtonText: '确定',
  125. type: 'warning'}).then(() => {
  126. this.$message({type: 'success', message: '添加中,成功则跳转...'});
  127. this.createAddress();
  128. }).catch(() => {
  129. this.$message({type: 'info', message: '取消提交'});
  130. });
  131. },
  132. validateAddress() {
  133. if(this.address.province.id) {
  134. this.form_data.parent_address.province = this.address.province;
  135. } else {
  136. this.$message.warning('请选择添加地址的省级');
  137. return false;
  138. }
  139. if(this.address.city.id) {
  140. this.form_data.parent_address.city = this.address.city;
  141. } else {
  142. this.$message.warning('请选择添加地址的市级');
  143. return false;
  144. }
  145. if(this.address.district.id) {
  146. this.form_data.parent_address.district = this.address.district;
  147. } else {
  148. if (this.form_data.level == 4) {
  149. this.$message.warning('请选择添加地址的区级');
  150. return false;
  151. }
  152. }
  153. return true;
  154. },
  155. createAddress() {
  156. var that = this;
  157. console.log(that.form_data);
  158. that.$http.post("{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.create') !!}", {address:that.form_data}).then(response => {
  159. console.log(response);
  160. if(response.data.result==1){
  161. that.backtrack();
  162. } else{
  163. that.$message.error(response.data.msg);
  164. }
  165. }),function(res){
  166. console.log(res);
  167. that.$message.error(response.data.msg);
  168. };
  169. },
  170. backtrack() {
  171. window.location.href='{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.index') !!}';
  172. },
  173. // 获取省份信息
  174. getProvince() {
  175. var that = this;
  176. that.all_loading = true;
  177. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'province']) !!}",).then(response => {
  178. console.log(response);
  179. if(response.data.result==1){
  180. this.province_list = response.data.data;
  181. } else{
  182. that.$message.error(response.data);
  183. that.all_loading = false;
  184. }
  185. that.all_loading = false;
  186. }),function(res){
  187. console.log(res);
  188. that.all_loading = false;
  189. };
  190. },
  191. // 省份改变
  192. changeProvince(parentid) {
  193. var that = this;
  194. if(!parentid) {
  195. parentid = that.address.province.id;
  196. that.address.city_id = 0;
  197. that.address.city = '';
  198. that.address.district_id = 0;
  199. that.address.district = '';
  200. that.address.street_id = 0;
  201. that.address.street = '';
  202. }
  203. that.all_loading = true;
  204. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'city','parentid' => '']) !!}"+parentid).then(response => {
  205. console.log(response);
  206. if(response.data.result==1){
  207. this.city_list = response.data.data;
  208. } else{
  209. // that.$message.error(response.data);
  210. }
  211. that.all_loading = false;
  212. }),function (res) {
  213. console.log(res);
  214. that.all_loading = false;
  215. };
  216. },
  217. // 城市改变
  218. changeCity(parentid) {
  219. var that = this;
  220. if(this.form_data.level == 4) {
  221. if(!parentid) {
  222. parentid = that.address.city.id;
  223. that.address.district_id = 0;
  224. that.address.district = '';
  225. that.address.street_id = 0;
  226. that.address.street = '';
  227. }
  228. that.all_loading = true;
  229. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'district','parentid' => '']) !!}"+parentid).then(response => {
  230. if(response.data.result==1) {
  231. that.district_list = response.data.data;
  232. } else {
  233. //that.$message.error(response.data);
  234. }
  235. that.all_loading = false;
  236. }), function(res){
  237. console.log(res);
  238. that.all_loading = false;};
  239. }
  240. },
  241. // 区域改变
  242. changeDistrict(parentid) {
  243. var that = this;
  244. if(this.form_data.level == 4) {
  245. if(!parentid) {
  246. parentid = that.address.district.id;
  247. that.address.street_id = 0;
  248. that.address.street = '';
  249. }
  250. that.all_loading = true;
  251. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'street','parentid' => '']) !!}"+parentid).then(response => {
  252. if(response.data.result==1){
  253. that.street_list = response.data.data;
  254. } else{
  255. // that.$message.error(response.data);
  256. }
  257. that.all_loading = false;
  258. }),function(res){
  259. console.log(res);
  260. that.all_loading = false;
  261. };
  262. }
  263. },
  264. },
  265. })
  266. </script>
  267. @endsection('content')