edit-form.blade.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  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. <div>
  16. <el-radio-group v-model="form_data.level" prop="level">
  17. <el-radio-button label="3">区级</el-radio-button>
  18. <el-radio-button label="4">街道级</el-radio-button>
  19. </el-radio-group>
  20. </div>
  21. </el-form-item>
  22. <el-form-item label="选择修改地址" v-loading="all_loading">
  23. <el-select v-model="address.province" filterable placeholder="请选择省" clearable style="width:20%"
  24. @change="changeProvince()" value-key="id">
  25. <el-option v-for="item in province_list" :key="item.id" :label="item.areaname"
  26. :value="item"></el-option>
  27. </el-select>
  28. <el-select v-model="address.city" filterable placeholder="请选择市" clearable style="width:20%"
  29. value-key="id" @change="changeCity()">
  30. <el-option v-for="item in city_list" :key="item.id" :label="item.areaname"
  31. :value="item"></el-option>
  32. </el-select>
  33. <el-select v-model="address.district" filterable placeholder="请选择区" clearable style="width:20%"
  34. value-key="id" @change="changeDistrict()">
  35. <el-option v-for="item in district_list" :key="item.id" :label="item.areaname"
  36. :value="item"></el-option>
  37. </el-select>
  38. <el-select v-if="form_data.level == 4" v-model="address.street" placeholder="请选择街道"
  39. clearable style="width:20%" value-key="id">
  40. <el-option v-for="item in street_list" :key="item.id" :label="item.areaname"
  41. :value="item"></el-option>
  42. </el-select>
  43. </el-form-item>
  44. <el-form-item label="修改名称" prop="name">
  45. <el-input style="width: 50%" v-model="form_data.name"></el-input>
  46. </el-form-item>
  47. <el-form-item>
  48. <el-button type="success" round @click="submitForm('form_data')">提交</el-button>
  49. <el-button round @click="backtrack()">返回</el-button>
  50. <el-button type="danger" round @click="submitDeleteForm('form_data')">删除</el-button>
  51. </el-form-item>
  52. </el-form>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. <script>
  58. var app = new Vue({
  59. el: "#app",
  60. delimiters: ['[[', ']]'],
  61. data() {
  62. return {
  63. all_loading: false,
  64. province_list: [],//省
  65. city_list: [],//市
  66. district_list: [],//区域
  67. street_list: [],//街道
  68. address: {
  69. city: "",
  70. city_id: 0,
  71. district: "",
  72. district_id: 0,
  73. province: "",
  74. province_id: 0,
  75. street: "",
  76. street_id: 0,
  77. },
  78. form_data: {
  79. name: '',
  80. level: 3,
  81. parent_address: {},
  82. },
  83. rules: {
  84. name: [
  85. {required: true, message: '请输入地址名称', trigger: 'blur'},
  86. {min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
  87. ],
  88. level: [
  89. {required: true, message: '请选择地址修改级别', trigger: 'blur'},
  90. ],
  91. },
  92. }
  93. },
  94. created() {
  95. this.getProvince();
  96. },
  97. methods: {
  98. submitForm(formName) {
  99. this.$refs[formName].validate((valid) => {
  100. if (valid) {
  101. if (this.validateAddress()) {
  102. this.confirm();
  103. }
  104. } else {
  105. return false;
  106. }
  107. });
  108. },
  109. submitDeleteForm(formName) {
  110. if (this.form_data.level !== 3 && this.form_data.level !== 4 && this.form_data.level !== '3' && this.form_data.level !== '4') {
  111. console.log(this.form_data.level);
  112. this.$message.warning('请选择地址修改级别123');
  113. return false;
  114. } else {
  115. if (this.validateAddress()) {
  116. this.deleteConfirm();
  117. }
  118. }
  119. },
  120. deleteConfirm() {
  121. this.$confirm('删除地址会对收银台、区域分红、订单地址、供应商、自提点、商品配送模板、租赁等功能造成影响,删除区级地址会连带删除下属街道,请确认已经对相应数据做好处理,是否删除?', '提示', {
  122. cancelButtonText: '取消',
  123. confirmButtonText: '删除',
  124. type: 'warning'
  125. }).then(() => {
  126. this.$message({type: 'success', message: '删除中,成功则跳转...'});
  127. this.deleteAddress();
  128. }).catch(() => {
  129. this.$message({type: 'info', message: '取消提交'});
  130. });
  131. },
  132. confirm() {
  133. this.$confirm('地址是无法删除的确认修改吗?', '提示', {
  134. cancelButtonText: '取消',
  135. confirmButtonText: '确定',
  136. type: 'warning'
  137. }).then(() => {
  138. this.$message({type: 'success', message: '修改中,成功则跳转...'});
  139. this.createAddress();
  140. }).catch(() => {
  141. this.$message({type: 'info', message: '取消提交'});
  142. });
  143. },
  144. validateAddress() {
  145. if (this.address.province.id) {
  146. this.form_data.parent_address.province = this.address.province;
  147. } else {
  148. this.$message.warning('请选择地址的省级');
  149. return false;
  150. }
  151. if (this.address.city.id) {
  152. this.form_data.parent_address.city = this.address.city;
  153. } else {
  154. this.$message.warning('请选择地址的市级');
  155. return false;
  156. }
  157. if (this.address.district.id) {
  158. this.form_data.parent_address.district = this.address.district;
  159. } else {
  160. this.$message.warning('请选择地址的区级');
  161. return false;
  162. }
  163. if (this.address.street.id) {
  164. this.form_data.parent_address.street = this.address.street;
  165. } else {
  166. if (this.form_data.level == 4) {
  167. this.$message.warning('请选择地址的街道级');
  168. return false;
  169. }
  170. }
  171. return true;
  172. },
  173. deleteAddress() {
  174. var that = this;
  175. console.log(that.form_data);
  176. that.$http.post("{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.delete') !!}", {address: that.form_data}).then(response => {
  177. console.log(response);
  178. if (response.data.result == 1) {
  179. that.backtrack();
  180. } else {
  181. that.$message.error(response.data.msg);
  182. }
  183. }), function (res) {
  184. console.log(res);
  185. that.$message.error(response.data.msg);
  186. };
  187. },
  188. createAddress() {
  189. var that = this;
  190. console.log(that.form_data);
  191. that.$http.post("{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.edit') !!}", {address: that.form_data}).then(response => {
  192. console.log(response);
  193. if (response.data.result == 1) {
  194. that.backtrack();
  195. } else {
  196. that.$message.error(response.data.msg);
  197. }
  198. }), function (res) {
  199. console.log(res);
  200. that.$message.error(response.data.msg);
  201. };
  202. },
  203. backtrack() {
  204. window.location.href = '{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.index') !!}';
  205. },
  206. // 获取省份信息
  207. getProvince() {
  208. var that = this;
  209. that.all_loading = true;
  210. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'province']) !!}",).then(response => {
  211. console.log(response);
  212. if (response.data.result == 1) {
  213. this.province_list = response.data.data;
  214. } else {
  215. that.$message.error(response.data);
  216. that.all_loading = false;
  217. }
  218. that.all_loading = false;
  219. }), function (res) {
  220. console.log(res);
  221. that.all_loading = false;
  222. };
  223. },
  224. // 省份改变
  225. changeProvince(parentid) {
  226. var that = this;
  227. if (!parentid) {
  228. parentid = that.address.province.id;
  229. that.address.city_id = 0;
  230. that.address.city = '';
  231. that.address.district_id = 0;
  232. that.address.district = '';
  233. that.address.street_id = 0;
  234. that.address.street = '';
  235. }
  236. that.all_loading = true;
  237. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'city','parentid' => '']) !!}" + parentid).then(response => {
  238. console.log(response);
  239. if (response.data.result == 1) {
  240. this.city_list = response.data.data;
  241. } else {
  242. // that.$message.error(response.data);
  243. }
  244. that.all_loading = false;
  245. }), function (res) {
  246. console.log(res);
  247. that.all_loading = false;
  248. };
  249. },
  250. // 城市改变
  251. changeCity(parentid) {
  252. var that = this;
  253. if (!parentid) {
  254. parentid = that.address.city.id;
  255. that.address.district_id = 0;
  256. that.address.district = '';
  257. that.address.street_id = 0;
  258. that.address.street = '';
  259. }
  260. that.all_loading = true;
  261. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'district','parentid' => '']) !!}" + parentid).then(response => {
  262. if (response.data.result == 1) {
  263. that.district_list = response.data.data;
  264. } else {
  265. //that.$message.error(response.data);
  266. }
  267. that.all_loading = false;
  268. }),
  269. function (res) {
  270. console.log(res);
  271. that.all_loading = false;
  272. };
  273. },
  274. // 区域改变
  275. changeDistrict(parentid) {
  276. var that = this;
  277. if (this.form_data.level == 4) {
  278. if (!parentid) {
  279. parentid = that.address.district.id;
  280. that.address.street_id = 0;
  281. that.address.street = '';
  282. }
  283. that.all_loading = true;
  284. that.$http.get("{!! yzWebFullUrl('plugin.address-mgmt.admin.select.get-address',['type' => 'street','parentid' => '']) !!}" + parentid).then(response => {
  285. if (response.data.result == 1) {
  286. that.street_list = response.data.data;
  287. } else {
  288. // that.$message.error(response.data);
  289. }
  290. that.all_loading = false;
  291. }), function (res) {
  292. console.log(res);
  293. that.all_loading = false;
  294. };
  295. }
  296. },
  297. },
  298. })
  299. </script>
  300. @endsection('content')