goodsModel.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import ListUtil from "../Utils/ListUtil";
  2. export default {
  3. state: {
  4. selectInfos: [],
  5. },
  6. actions: ({ model, setState }) => ({
  7. //商家分类选择商品
  8. changeSelect(list) {
  9. setState({
  10. selectInfos: list,
  11. });
  12. },
  13. //下架提示
  14. takeOffInfo(callBack) {
  15. let { showDialog } = model("dialogModel");
  16. let { takeOffTips } = model("wordsModel");
  17. showDialog({
  18. bodyText: takeOffTips,
  19. status: "danger",
  20. cancelable: true,
  21. confirmCallback: () => callBack(),
  22. });
  23. },
  24. //商品上下架
  25. ChangeTakeOff(info) {
  26. let { id, takeOff } = info;
  27. let { getWordsStr, successText } = model("wordsModel");
  28. let { httpGet } = model("httpModel");
  29. let { success } = model("loadingModel");
  30. return httpGet(
  31. "/goods/take",
  32. {
  33. id,
  34. },
  35. true
  36. )
  37. .then(() => {
  38. return httpGet("/goods/get/" + id, {}, true);
  39. })
  40. .then(res => {
  41. success(
  42. getWordsStr(res.takeOff ? "takeOff" : "takeUp") +
  43. successText
  44. );
  45. return Promise.resolve(res);
  46. });
  47. },
  48. //关闭分类提示
  49. clossClassTip(callBack) {
  50. let { showDialog } = model("dialogModel");
  51. let { systemClassTips1 } = model("wordsModel");
  52. showDialog({
  53. bodyText: systemClassTips1,
  54. status: "danger",
  55. cancelable: true,
  56. confirmCallback: () => callBack(),
  57. });
  58. },
  59. saveInfo(info, noTip) {
  60. let { saveSuccess, editSuccess } = model("wordsModel");
  61. let { httpPost } = model("httpModel");
  62. let { success } = model("loadingModel");
  63. return httpPost(
  64. "/classification/save",
  65. info,
  66. { body: "json" },
  67. true
  68. ).then(res => {
  69. if (!noTip) {
  70. success(info.id ? editSuccess : saveSuccess);
  71. }
  72. return Promise.resolve(res);
  73. });
  74. },
  75. //移除分类商品
  76. removeClassGoods(classificationId, goodId, callBack) {
  77. let { showDialog } = model("dialogModel");
  78. let { removeTips, editSuccess } = model("wordsModel");
  79. let { httpGet } = model("httpModel");
  80. let { success } = model("loadingModel");
  81. showDialog({
  82. bodyText: removeTips,
  83. status: "danger",
  84. cancelable: true,
  85. confirmCallback: () => {
  86. httpGet(
  87. "/classification/delGoods",
  88. {
  89. classificationId: classificationId,
  90. goodId: goodId,
  91. },
  92. true
  93. ).then(res => {
  94. success(editSuccess);
  95. callBack(res);
  96. });
  97. },
  98. });
  99. },
  100. // 添加分类商品
  101. addClassGoods(info) {
  102. let { successText } = model("wordsModel");
  103. let { success } = model("loadingModel");
  104. let { httpPost } = model("httpModel");
  105. return httpPost(
  106. "/goodsSpecification/save",
  107. info,
  108. {
  109. body: "json",
  110. },
  111. true
  112. ).then(res => {
  113. success(successText);
  114. return Promise.resolve(res);
  115. });
  116. },
  117. //移除商品分类
  118. removeCLass(info, callBack) {
  119. let { showDialog } = model("dialogModel");
  120. let { removeTips, editSuccess } = model("wordsModel");
  121. let { httpPost } = model("httpModel");
  122. let { success } = model("loadingModel");
  123. showDialog({
  124. bodyText: removeTips,
  125. status: "danger",
  126. cancelable: true,
  127. confirmCallback: () => {
  128. let goods = new ListUtil(info.goodsIds);
  129. if (goods.length > 0) {
  130. showDialog({
  131. bodyText: "该分类下有商品,暂不可删除该商品分类",
  132. status: "danger",
  133. });
  134. } else {
  135. httpPost(
  136. "/classification/del/" + info.id,
  137. {},
  138. {},
  139. true
  140. ).then(res => {
  141. success(editSuccess);
  142. callBack(res);
  143. });
  144. }
  145. },
  146. });
  147. },
  148. }),
  149. };