index.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. const currency = require("../../../../../utils/currency"),
  2. CNY = value => currency(value, {
  3. symbol: "¥",
  4. precision: 2
  5. }).format();
  6. Component({
  7. properties: {
  8. list: {
  9. type: Array
  10. },
  11. deleteItem: {
  12. type: Function
  13. },
  14. changeQueue: {
  15. type: Function
  16. }, //修改队列
  17. disabled: {
  18. type: Boolean
  19. }
  20. },
  21. options: {
  22. addGlobalClass: true
  23. },
  24. lifetimes: {
  25. attached: function () {
  26. getApp().globalData.Language.getLanguagePackage(this)
  27. this.setData({
  28. siteid: wx.getStorageSync('userMsg').siteid
  29. })
  30. }
  31. },
  32. methods: {
  33. /* 修改产品数量/单价 */
  34. onBlur(e) {
  35. let {
  36. name,
  37. index
  38. } = e.currentTarget.dataset;
  39. let item = this.data.list[index];
  40. if (e.detail.value <= 0) {
  41. wx.showToast({
  42. title: getApp().globalData.Language.getMapText('非法数值'),
  43. icon: "none",
  44. mask: true
  45. });
  46. } else {
  47. if (item[name] == e.detail.value) return;
  48. // orderminqty 起订量
  49. // orderaddqty 增量
  50. let v = e.detail.value - 0;
  51. //处理起订量和增量
  52. if (name == 'qty') {
  53. if (v < item.orderminqty) {
  54. wx.showModal({
  55. title: getApp().globalData.Language.getMapText('提示'),
  56. content: getApp().globalData.Language.getMapText('输入数量小于起订量') + item.orderminqty,
  57. showCancel: false,
  58. confirmText: getApp().globalData.Language.getMapText('确定'),
  59. })
  60. item.qty = item.orderminqty;
  61. } else if (item.orderminqty < v) {
  62. var currencyRounding = value => currency(value, {
  63. increment: item.orderaddqty
  64. });
  65. item.qty = currency(currencyRounding(currency(v).subtract(item.orderminqty)).format()).add(item.orderminqty).value;
  66. if (item.qty != v) wx.showModal({
  67. title: getApp().globalData.Language.getMapText('提示'),
  68. content: getApp().globalData.Language.getMapText('输入数量不符合增减量规则,已为您取最接近的值'),
  69. showCancel: false,
  70. confirmText: getApp().globalData.Language.getMapText('确定'),
  71. })
  72. } else {
  73. item.qty = v;
  74. }
  75. } else {
  76. item[name] = v;
  77. }
  78. if (name == "price") item[name] = (item[name] - 0).toFixed(2) - 0;
  79. item.amount = CNY(currency(item.price).multiply(item.qty));
  80. let obj = {};
  81. ["sa_project_itemsid", "itemid", "qty", "remarks", "marketprice", "price"].forEach(v => obj[v] = item[v]);
  82. this.triggerEvent("changeQueue", obj)
  83. }
  84. this.setData({
  85. list: this.data.list
  86. })
  87. },
  88. deleteProduct(e) {
  89. const {
  90. sa_project_itemsid,
  91. itemname
  92. } = e.currentTarget.dataset.item,
  93. that = this;
  94. wx.showModal({
  95. title: getApp().globalData.Language.getMapText('提示'),
  96. content: getApp().globalData.Language.getMapText('是否确认删除') + `“${itemname}”?`,
  97. cancelText: getApp().globalData.Language.getMapText('取消'),
  98. confirmText: getApp().globalData.Language.getMapText('确定'),
  99. complete: ({
  100. confirm
  101. }) => {
  102. if (confirm) that.triggerEvent("deleteItem", [sa_project_itemsid]);
  103. }
  104. })
  105. },
  106. }
  107. })