edit.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. "use strict";
  2. const common_vendor = require("../../../common/vendor.js");
  3. const sheep_index = require("../../../sheep/index.js");
  4. const sheep_validate_form = require("../../../sheep/validate/form.js");
  5. const sheep_api_system_area = require("../../../sheep/api/system/area.js");
  6. const sheep_api_member_address = require("../../../sheep/api/member/address.js");
  7. require("../../../sheep/url/index.js");
  8. require("../../../sheep/store/index.js");
  9. require("../../../sheep/store/app.js");
  10. require("../../../sheep/api/promotion/diy.js");
  11. require("../../../sheep/request/index.js");
  12. require("../../../sheep/config/index.js");
  13. require("../../../sheep/platform/index.js");
  14. require("../../../sheep/platform/provider/wechat/index.js");
  15. require("../../../sheep/platform/provider/wechat/miniProgram.js");
  16. require("../../../sheep/api/member/auth.js");
  17. require("../../../sheep/api/member/social.js");
  18. require("../../../sheep/api/member/user.js");
  19. require("../../../sheep/platform/provider/apple/index.js");
  20. require("../../../sheep/platform/share.js");
  21. require("../../../sheep/router/index.js");
  22. require("../../../sheep/hooks/useModal.js");
  23. require("../../../sheep/helper/index.js");
  24. require("../../../sheep/helper/test.js");
  25. require("../../../sheep/helper/digit.js");
  26. require("../../../sheep/helper/throttle.js");
  27. require("../../../sheep/platform/pay.js");
  28. require("../../../sheep/api/pay/order.js");
  29. require("../../../sheep/store/user.js");
  30. require("../../../sheep/store/cart.js");
  31. require("../../../sheep/api/trade/cart.js");
  32. require("../../../sheep/api/pay/wallet.js");
  33. require("../../../sheep/api/trade/order.js");
  34. require("../../../sheep/api/promotion/coupon.js");
  35. require("../../../sheep/store/sys.js");
  36. require("../../../sheep/store/modal.js");
  37. require("../../../sheep/config/zIndex.js");
  38. if (!Array) {
  39. const _easycom_uni_easyinput2 = common_vendor.resolveComponent("uni-easyinput");
  40. const _easycom_uni_forms_item2 = common_vendor.resolveComponent("uni-forms-item");
  41. const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
  42. const _easycom_su_switch2 = common_vendor.resolveComponent("su-switch");
  43. const _easycom_uni_forms2 = common_vendor.resolveComponent("uni-forms");
  44. const _easycom_su_fixed2 = common_vendor.resolveComponent("su-fixed");
  45. const _easycom_su_region_picker2 = common_vendor.resolveComponent("su-region-picker");
  46. const _easycom_s_layout2 = common_vendor.resolveComponent("s-layout");
  47. (_easycom_uni_easyinput2 + _easycom_uni_forms_item2 + _easycom_uni_icons2 + _easycom_su_switch2 + _easycom_uni_forms2 + _easycom_su_fixed2 + _easycom_su_region_picker2 + _easycom_s_layout2)();
  48. }
  49. const _easycom_uni_easyinput = () => "../../../uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js";
  50. const _easycom_uni_forms_item = () => "../../../uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js";
  51. const _easycom_uni_icons = () => "../../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
  52. const _easycom_su_switch = () => "../../../sheep/ui/su-switch/su-switch.js";
  53. const _easycom_uni_forms = () => "../../../uni_modules/uni-forms/components/uni-forms/uni-forms.js";
  54. const _easycom_su_fixed = () => "../../../sheep/ui/su-fixed/su-fixed.js";
  55. const _easycom_su_region_picker = () => "../../../sheep/ui/su-region-picker/su-region-picker.js";
  56. const _easycom_s_layout = () => "../../../sheep/components/s-layout/s-layout.js";
  57. if (!Math) {
  58. (_easycom_uni_easyinput + _easycom_uni_forms_item + _easycom_uni_icons + _easycom_su_switch + _easycom_uni_forms + _easycom_su_fixed + _easycom_su_region_picker + _easycom_s_layout)();
  59. }
  60. const _sfc_main = {
  61. __name: "edit",
  62. setup(__props) {
  63. const addressFormRef = common_vendor.ref(null);
  64. const state = common_vendor.reactive({
  65. showRegion: false,
  66. model: {
  67. name: "",
  68. mobile: "",
  69. detailAddress: "",
  70. defaultStatus: false,
  71. areaName: ""
  72. },
  73. rules: {}
  74. });
  75. const rules = {
  76. name: {
  77. rules: [
  78. {
  79. required: true,
  80. errorMessage: "请输入收货人姓名"
  81. }
  82. ]
  83. },
  84. mobile: sheep_validate_form.mobile,
  85. detailAddress: {
  86. rules: [{
  87. required: true,
  88. errorMessage: "请输入详细地址"
  89. }]
  90. },
  91. areaName: {
  92. rules: [{
  93. required: true,
  94. errorMessage: "请选择您的位置"
  95. }]
  96. }
  97. };
  98. const onRegionConfirm = (e) => {
  99. state.model.areaName = `${e.province_name} ${e.city_name} ${e.district_name}`;
  100. state.model.areaId = e.district_id;
  101. state.showRegion = false;
  102. };
  103. const getAreaData = () => {
  104. if (common_vendor._.isEmpty(common_vendor.index.getStorageSync("areaData"))) {
  105. sheep_api_system_area.AreaApi.getAreaTree().then((res) => {
  106. if (res.code === 0) {
  107. common_vendor.index.setStorageSync("areaData", res.data);
  108. }
  109. });
  110. }
  111. };
  112. const onSave = async () => {
  113. const validate = await common_vendor.unref(addressFormRef).validate().catch((error) => {
  114. console.log("error: ", error);
  115. });
  116. if (!validate) {
  117. return;
  118. }
  119. const formData = {
  120. ...state.model
  121. };
  122. const { code } = state.model.id > 0 ? await sheep_api_member_address.AddressApi.updateAddress(formData) : await sheep_api_member_address.AddressApi.createAddress(formData);
  123. if (code === 0) {
  124. sheep_index.sheep.$router.back();
  125. }
  126. };
  127. const onDelete = () => {
  128. common_vendor.index.showModal({
  129. title: "提示",
  130. content: "确认删除此收货地址吗?",
  131. success: async function(res) {
  132. if (!res.confirm) {
  133. return;
  134. }
  135. const { code } = await sheep_api_member_address.AddressApi.deleteAddress(state.model.id);
  136. if (code === 0) {
  137. sheep_index.sheep.$router.back();
  138. }
  139. }
  140. });
  141. };
  142. common_vendor.onLoad(async (options) => {
  143. getAreaData();
  144. if (options.id) {
  145. let { code, data } = await sheep_api_member_address.AddressApi.getAddress(options.id);
  146. if (code !== 0) {
  147. return;
  148. }
  149. state.model = data;
  150. }
  151. if (options.data) {
  152. let data = JSON.parse(options.data);
  153. const areaData = common_vendor.index.getStorageSync("areaData");
  154. let provinceArr = areaData.filter((item) => item.name == data.province_name);
  155. data.province_id = provinceArr[0].id;
  156. let provinceArr2 = provinceArr[0].children.filter((item) => item.name == data.city_name);
  157. data.city_id = provinceArr2[0].id;
  158. let provinceArr3 = provinceArr2[0].children.filter((item) => item.name == data.district_name);
  159. data.district_id = provinceArr3[0].id;
  160. state.model = {
  161. ...state.model,
  162. ...data
  163. };
  164. }
  165. });
  166. return (_ctx, _cache) => {
  167. return common_vendor.e({
  168. a: common_vendor.o(($event) => state.model.name = $event),
  169. b: common_vendor.p({
  170. placeholder: "请填写收货人姓名",
  171. inputBorder: false,
  172. placeholderStyle: "color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal",
  173. modelValue: state.model.name
  174. }),
  175. c: common_vendor.p({
  176. name: "name",
  177. label: "收货人"
  178. }),
  179. d: common_vendor.o(($event) => state.model.mobile = $event),
  180. e: common_vendor.p({
  181. type: "number",
  182. placeholder: "请输入手机号",
  183. inputBorder: false,
  184. placeholderStyle: "color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal",
  185. modelValue: state.model.mobile
  186. }),
  187. f: common_vendor.p({
  188. name: "mobile",
  189. label: "手机号"
  190. }),
  191. g: common_vendor.p({
  192. type: "right"
  193. }),
  194. h: common_vendor.o(($event) => state.model.areaName = $event),
  195. i: common_vendor.p({
  196. disabled: true,
  197. inputBorder: false,
  198. styles: {
  199. disableColor: "#fff",
  200. color: "#333"
  201. },
  202. placeholderStyle: "color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal",
  203. placeholder: "请选择省市区",
  204. modelValue: state.model.areaName
  205. }),
  206. j: common_vendor.o(($event) => state.showRegion = true),
  207. k: common_vendor.p({
  208. name: "areaName",
  209. label: "省市区"
  210. }),
  211. l: common_vendor.o(($event) => state.model.detailAddress = $event),
  212. m: common_vendor.p({
  213. inputBorder: false,
  214. type: "textarea",
  215. placeholderStyle: "color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal",
  216. placeholder: "请输入详细地址",
  217. clearable: true,
  218. modelValue: state.model.detailAddress
  219. }),
  220. n: common_vendor.p({
  221. name: "detailAddress",
  222. label: "详细地址",
  223. formItemStyle: {
  224. alignItems: "flex-start"
  225. },
  226. labelStyle: {
  227. lineHeight: "5em"
  228. }
  229. }),
  230. o: common_vendor.o(($event) => state.model.defaultStatus = $event),
  231. p: common_vendor.p({
  232. modelValue: state.model.defaultStatus
  233. }),
  234. q: common_vendor.sr(addressFormRef, "e04c42e1-1,e04c42e1-0", {
  235. "k": "addressFormRef"
  236. }),
  237. r: common_vendor.o(($event) => state.model = $event),
  238. s: common_vendor.p({
  239. rules,
  240. validateTrigger: "bind",
  241. labelWidth: "160",
  242. labelAlign: "left",
  243. border: true,
  244. labelStyle: {
  245. fontWeight: "bold"
  246. },
  247. modelValue: state.model
  248. }),
  249. t: common_vendor.o(onSave),
  250. v: state.model.id
  251. }, state.model.id ? {
  252. w: common_vendor.o(onDelete)
  253. } : {}, {
  254. x: common_vendor.p({
  255. bottom: true,
  256. opacity: false,
  257. bg: "",
  258. placeholder: true,
  259. noFixed: false,
  260. index: 10
  261. }),
  262. y: common_vendor.o(($event) => state.showRegion = false),
  263. z: common_vendor.o(onRegionConfirm),
  264. A: common_vendor.p({
  265. show: state.showRegion
  266. }),
  267. B: common_vendor.p({
  268. title: state.model.id ? "编辑地址" : "新增地址"
  269. })
  270. });
  271. };
  272. }
  273. };
  274. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e04c42e1"], ["__file", "/Users/RuHu.Xu/Desktop/mall-newfeifan-zx-app/pages/user/address/edit.vue"]]);
  275. wx.createPage(MiniProgramPage);