app-add-subtract.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template>
  2. <view class="app-add-subtract dir-left-nowrap main-right cross-center">
  3. <view class="app-icon app-subtract" v-if="total_num > 0 " @click="subtract"></view>
  4. <input class="app-input" v-if="total_num >= 0 " :value="total_num === 0 ? '' : total_num" @input="changeNum" type="number">
  5. <view class="app-icon app-add" @click="add"></view>
  6. </view>
  7. </template>
  8. <script>
  9. export default {
  10. name: 'app-add-subtract',
  11. props: {
  12. total_num: {
  13. type: Number,
  14. default: function() {
  15. return 0;
  16. }
  17. },
  18. item: {
  19. type: Object,
  20. default: function() {
  21. return {}
  22. }
  23. }
  24. },
  25. methods: {
  26. add() {
  27. this.$emit('add', this.item);
  28. },
  29. subtract() {
  30. this.$emit('subtract', this.item);
  31. },
  32. changeNum(e) {
  33. this.$emit('changeNum', this.item, Number(e.detail.value));
  34. }
  35. }
  36. }
  37. </script>
  38. <style scoped lang="scss">
  39. .app-add-subtract {
  40. width: #{152rpx};
  41. height: #{44rpx};
  42. .app-icon {
  43. width: #{44rpx};
  44. height: #{44rpx};
  45. background-size: 100% 100%;
  46. background-repeat: no-repeat;
  47. }
  48. .app-subtract {
  49. background-image: url("./image/subtract.png");
  50. }
  51. .app-add {
  52. background-image: url("./image/add.png");
  53. }
  54. .app-input {
  55. width: #{64rpx};
  56. height: #{44rpx};
  57. font-size: #{28rpx};
  58. color: #353535;
  59. text-align: center;
  60. background-color: #ffffff;
  61. }
  62. }
  63. </style>