editMemberAddress.blade.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. <template id="edit_member_address">
  2. <!-- 修改收货地址 -->
  3. <el-dialog :visible.sync="modal_edit_member_address" width="900px" :title="d_title" center>
  4. <div style="overflow:auto">
  5. <div style="">
  6. <el-form label-position="right" :model="member_address" label-width="15%">
  7. <el-form-item label="收件人">
  8. <el-input v-model="member_address.username" style="width:70%"></el-input>
  9. </el-form-item>
  10. <el-form-item label="联系电话">
  11. <el-input v-model="member_address.mobile" style="width:70%"></el-input>
  12. </el-form-item>
  13. <el-form-item label="所在区域" v-loading="all_loading">
  14. <el-select v-model="member_address.province" placeholder="请选择省" clearable style="width:20%" @change="changeProvince()" value-key="id">
  15. <el-option v-for="item in province_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  16. </el-select>
  17. <el-select v-model="member_address.city" placeholder="请选择市" clearable style="width:20%" value-key="id" @change="changeCity()">
  18. <el-option v-for="item in city_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  19. </el-select>
  20. <el-select v-model="member_address.district" placeholder="请选择区" clearable style="width:20%" value-key="id" @change="changeDistrict()">
  21. <el-option v-for="item in district_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  22. </el-select>
  23. <el-select v-if="is_street" v-model="member_address.street" placeholder="请选择街道" clearable style="width:20%" value-key="id">
  24. <el-option v-for="item in street_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  25. </el-select>
  26. </el-form-item>
  27. <el-form-item label="详细地址">
  28. <el-input v-model="member_address.address" style="width:70%"></el-input>
  29. </el-form-item>
  30. <el-form-item label="是否默认">
  31. <el-radio-group v-model="member_address.isdefault">
  32. <el-radio :label="1">是</el-radio>
  33. <el-radio :label="0">否</el-radio>
  34. </el-radio-group>
  35. </el-form-item>
  36. </el-form>
  37. </div>
  38. </div>
  39. <span slot="footer" class="dialog-footer">
  40. <el-button type="primary" @click="confirmSubmit()">确 认</el-button>
  41. <el-button @click="modal_edit_member_address = false">取 消</el-button>
  42. </span>
  43. </el-dialog>
  44. </template>
  45. <script>
  46. Vue.component('editMemberAddress', {
  47. style:``,
  48. name:"editMemberAddress",
  49. template: `#edit_member_address`,
  50. props: {
  51. operationType:{
  52. type:Number|String,
  53. default:'',
  54. },
  55. member_address:{
  56. type:Object|String,
  57. default:{},
  58. },
  59. is_street:{
  60. type:Number,
  61. default:0,
  62. },
  63. edit_address_dialog_show:{
  64. type:Number,
  65. default:0,
  66. },
  67. },
  68. delimiters: ['[[', ']]'],
  69. data() {
  70. return {
  71. all_loading:false,
  72. d_title: '编辑收货地址',
  73. //编辑收货地址
  74. modal_edit_member_address:false,
  75. province_list:[],//省
  76. city_list:[],//市
  77. district_list:[],//区域
  78. street_list:[],//街道
  79. edit_member_address: {
  80. address: "",
  81. city: "",
  82. city_id: 0,
  83. district: "",
  84. district_id: 0,
  85. mobile: "",
  86. province: "",
  87. province_id: 0,
  88. street: "",
  89. street_id: 0,
  90. username: "",
  91. isdefault:0,
  92. }
  93. }
  94. },
  95. watch:{
  96. edit_address_dialog_show(val) {
  97. if (this.operationType == 'create') {
  98. this.showCreateDialog();
  99. } else if (this.operationType == 'edit') {
  100. this.showEditDialog()
  101. }
  102. }
  103. },
  104. created() {},
  105. mounted: function () {
  106. // this.__childInitial();
  107. },
  108. methods: {
  109. //初始化页面数据,请求链接
  110. __childInitial() {
  111. if (this.member_address.length==0) {
  112. this.member_address = {
  113. address: "",
  114. city: "",
  115. city_id: 0,
  116. district: "",
  117. district_id: 0,
  118. mobile: "",
  119. province: "",
  120. province_id: 0,
  121. street: "",
  122. street_id: 0,
  123. username: "",
  124. isdefault:0,
  125. }
  126. }
  127. if (this.operationType == 'create') {
  128. this.d_title = '新增收货地址';
  129. }
  130. },
  131. showEditDialog() {
  132. console.log(this.member_address);
  133. this.modal_edit_member_address = true;
  134. this.getProvince();
  135. this.changeProvince(this.member_address.province_id);
  136. this.changeCity(this.member_address.city_id);
  137. if(this.is_street) {
  138. this.changeDistrict(this.member_address.district_id);
  139. }
  140. },
  141. showCreateDialog() {
  142. console.log(this.member_address);
  143. this.modal_edit_member_address = true;
  144. this.getProvince();
  145. },
  146. confirmSubmit() {
  147. if (this.operationType == 'create') {
  148. this.confirmCreate();
  149. } else if (this.operationType == 'edit') {
  150. this.confirmEdit()
  151. }
  152. },
  153. confirmCreate() {
  154. console.log(this.member_address);
  155. let address = {
  156. uid:this.member_address.uid,
  157. isdefault:this.member_address.isdefault,
  158. username:this.member_address.username,
  159. mobile:this.member_address.mobile,
  160. address:this.member_address.address,
  161. latitude:this.member_address.latitude,
  162. longitude:this.member_address.longitude,
  163. };
  164. if(this.member_address.province.id) {
  165. address.province = this.member_address.province.areaname;
  166. } else {
  167. address.province = this.member_address.province;
  168. }
  169. if(this.member_address.city.id) {
  170. address.city = this.member_address.city.areaname;
  171. } else {
  172. address.city = this.member_address.city;
  173. }
  174. if(this.member_address.district.id) {
  175. address.district = this.member_address.district.areaname;
  176. } else {
  177. address.district = this.member_address.district;
  178. }
  179. if(this.is_street){
  180. if(this.member_address.street.id) {
  181. address.street = this.member_address.street.areaname;
  182. } else {
  183. address.street = this.member_address.street;
  184. }
  185. }
  186. console.log({address:address});
  187. this.$http.post("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.create-member-address') !!}",{address:address}).then(response => {
  188. if(response.data.result==1){
  189. this.$message.success(response.data.msg);
  190. this.syncInitAddress();
  191. } else{
  192. this.$message.error(response.data.msg);
  193. }
  194. this.modal_edit_member_address = false;
  195. }),function(res){
  196. console.log(res);
  197. };
  198. },
  199. confirmEdit() {
  200. console.log(this.member_address);
  201. let address = {
  202. isdefault:this.member_address.isdefault,
  203. username:this.member_address.username,
  204. mobile:this.member_address.mobile,
  205. address:this.member_address.address,
  206. latitude:this.member_address.latitude,
  207. longitude:this.member_address.longitude,
  208. };
  209. if(this.member_address.province.id) {
  210. address.province = this.member_address.province.areaname;
  211. } else {
  212. address.province = this.member_address.province;
  213. }
  214. if(this.member_address.city.id) {
  215. address.city = this.member_address.city.areaname;
  216. } else {
  217. address.city = this.member_address.city;
  218. }
  219. if(this.member_address.district.id) {
  220. address.district = this.member_address.district.areaname;
  221. } else {
  222. address.district = this.member_address.district;
  223. }
  224. if(this.is_street){
  225. if(this.member_address.street.id) {
  226. address.street = this.member_address.street.areaname;
  227. } else {
  228. address.street = this.member_address.street;
  229. }
  230. }
  231. console.log({id:this.member_address.id,address:address});
  232. this.$http.post("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.edit-member-address') !!}",{id:this.member_address.id,address:address}).then(response => {
  233. if(response.data.result==1){
  234. this.syncInitAddress();
  235. } else{
  236. this.$message.error(response.data.msg);
  237. }
  238. this.modal_edit_member_address = false;
  239. }),function(res){
  240. console.log(res);
  241. };
  242. },
  243. //子组件搜索传参到父级
  244. syncInitAddress() {
  245. this.$emit('init-address',this.operationType);
  246. },
  247. // 获取省份信息
  248. getProvince() {
  249. var that = this;
  250. that.all_loading = true;
  251. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'province']) !!}",).then(response => {
  252. console.log(response);
  253. if(response.data.result==1){
  254. this.province_list = response.data.data;
  255. } else{
  256. that.$message.error(response.data);
  257. that.all_loading = false;
  258. }
  259. that.all_loading = false;
  260. }),function(res){
  261. console.log(res);
  262. that.all_loading = false;
  263. };
  264. },
  265. // 省份改变
  266. changeProvince(parentid) {
  267. var that = this;
  268. if(!parentid) {
  269. parentid = that.member_address.province.id;
  270. that.member_address.city_id = 0;
  271. that.member_address.city = '';
  272. that.member_address.district_id = 0;
  273. that.member_address.district = '';
  274. that.member_address.street_id = 0;
  275. that.member_address.street = '';
  276. }
  277. that.all_loading = true;
  278. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'city','parentid' => '']) !!}"+parentid).then(response => {
  279. console.log(response);
  280. if(response.data.result==1){
  281. this.city_list = response.data.data;
  282. }
  283. that.all_loading = false;
  284. }),function(res){
  285. console.log(res);
  286. that.all_loading = false;
  287. };
  288. },
  289. // 城市改变
  290. changeCity(parentid) {
  291. var that = this;
  292. if(!parentid) {
  293. parentid = that.member_address.city.id;
  294. that.member_address.district_id = 0;
  295. that.member_address.district = '';
  296. that.member_address.street_id = 0;
  297. that.member_address.street = '';
  298. }
  299. that.all_loading = true;
  300. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'district','parentid' => '']) !!}"+parentid).then(response => {
  301. if(response.data.result==1){
  302. that.district_list = response.data.data;
  303. }
  304. that.all_loading = false;
  305. }),function(res){
  306. console.log(res);
  307. that.all_loading = false;
  308. };
  309. },
  310. // 区域改变
  311. changeDistrict(parentid) {
  312. var that = this;
  313. if(this.is_street) {
  314. if(!parentid) {
  315. parentid = that.member_address.district.id;
  316. that.member_address.street_id = 0;
  317. that.member_address.street = '';
  318. }
  319. that.all_loading = true;
  320. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'street','parentid' => '']) !!}"+parentid).then(response => {
  321. if(response.data.result==1){
  322. that.street_list = response.data.data;
  323. }
  324. that.all_loading = false;
  325. }),function(res){
  326. console.log(res);
  327. that.all_loading = false;
  328. };
  329. }
  330. },
  331. },
  332. });
  333. </script>