index.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <uni-shadow-root class="vant-goods-action-button-index"><van-button square :id="id" :lang="lang" :type="type" :color="color" :loading="loading" :disabled="disabled" :open-type="openType" :custom-class="utils.bem('goods-action-button', [type, { first: isFirst, last: isLast }])" :business-id="businessId" :session-from="sessionFrom" :app-parameter="appParameter" :send-message-img="sendMessageImg" :send-message-path="sendMessagePath" :show-message-card="showMessageCard" :send-message-title="sendMessageTitle" @click="onClick" @error="bindError" @contact="bindContact" @opensetting="bindOpenSetting" @getuserinfo="bindGetUserInfo" @getphonenumber="bindGetPhoneNumber" @launchapp="bindLaunchApp">
  3. {{ text }}
  4. </van-button></uni-shadow-root>
  5. </template>
  6. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  7. <script>
  8. import VanButton from '../button/index.vue'
  9. global['__wxVueOptions'] = {components:{'van-button': VanButton}}
  10. global['__wxRoute'] = 'vant/goods-action-button/index'
  11. import { VantComponent } from '../common/component';
  12. import { link } from '../mixins/link';
  13. import { button } from '../mixins/button';
  14. import { openType } from '../mixins/open-type';
  15. VantComponent({
  16. mixins: [link, button, openType],
  17. relation: {
  18. type: 'ancestor',
  19. name: 'goods-action',
  20. linked(parent) {
  21. this.parent = parent;
  22. }
  23. },
  24. props: {
  25. text: String,
  26. color: String,
  27. loading: Boolean,
  28. disabled: Boolean,
  29. type: {
  30. type: String,
  31. value: 'danger'
  32. }
  33. },
  34. mounted() {
  35. this.updateStyle();
  36. },
  37. methods: {
  38. onClick(event) {
  39. this.$emit('click', event.detail);
  40. this.jumpLink();
  41. },
  42. updateStyle() {
  43. const { children = [] } = this.parent;
  44. const index = children.indexOf(this);
  45. this.setData({
  46. isFirst: index === 0,
  47. isLast: index === children.length - 1
  48. });
  49. }
  50. }
  51. });
  52. export default global['__wxComponents']['vant/goods-action-button/index']
  53. </script>
  54. <style platform="mp-weixin">
  55. @import '../common/index.css';.vant-goods-action-button-index{-webkit-flex:1;flex:1}.van-goods-action-button{border:none!important;height:40px!important;height:var(--goods-action-button-height,40px)!important;font-weight:500!important;font-weight:var(--font-weight-bold,500)!important;line-height:40px!important;line-height:var(--goods-action-button-height,40px)!important}.van-goods-action-button--first{display:block!important;margin-left:5px;border-top-left-radius:20px!important;border-top-left-radius:var(--goods-action-button-border-radius,20px)!important;border-bottom-left-radius:20px!important;border-bottom-left-radius:var(--goods-action-button-border-radius,20px)!important}.van-goods-action-button--last{display:block!important;margin-right:5px;border-top-right-radius:20px!important;border-top-right-radius:var(--goods-action-button-border-radius,20px)!important;border-bottom-right-radius:20px!important;border-bottom-right-radius:var(--goods-action-button-border-radius,20px)!important}.van-goods-action-button--warning{background:linear-gradient(90deg,#ffd01e,#ff8917);background:var(--goods-action-button-warning-color,linear-gradient(90deg,#ffd01e,#ff8917))}.van-goods-action-button--danger{background:linear-gradient(90deg,#ff6034,#ee0a24);background:var(--goods-action-button-danger-color,linear-gradient(90deg,#ff6034,#ee0a24))}@media (max-width:321px){.van-goods-action-button{font-size:13px}}
  56. </style>