xiangpei
2 天以前 d30ff90ce9ed4eb1d60384a1ee62ad3735635bd1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<template>
  <Modal
    :title="title"
    :styles="{ top: '120px' }"
    width="750"
    @on-cancel="clickClose"
    @on-ok="clickOK"
    v-model="flag"
    :mask-closable="false"
    scrollable
  >
    <goodsDialog
      @selected="(val) => {goodsData = val;}"
      :selectedWay='goodsData'
      ref="goodsDialog"
      v-if="goodsFlag"
    />
    <linkDialog
      @selectedLink="(val) => {linkData = val;}"
      v-else
      class="linkDialog"
    />
  </Modal>
</template>
<script>
import goodsDialog from "./goods-dialog";
import linkDialog from "./link-dialog";
export default {
  components: {
    goodsDialog,
    linkDialog,
  },
  data() {
    return {
      title: "选择", // 模态框标题
      goodsFlag: false, // 是否商品选择器
      goodsData: [], //选择的商品
      linkData: "", //选择的链接
      flag: false, // 控制模态框显隐
    };
  },
  methods: {
    // 关闭弹窗
    clickClose() {
      this.$emit("closeFlag", false);
      this.goodsFlag = false;
    },
 
    // 单选商品
    singleGoods(){
      var timer = setInterval(() => {
        if (this.$refs.goodsDialog) {
 
          this.$refs.goodsDialog.type = "single";
         clearInterval(timer);
        }
      }, 100);
    },
    clickOK() { // 确定按钮回调,
      if (this.goodsFlag) {
        this.$emit("selectedGoodsData", this.goodsData);
      } else {
        this.$emit("selectedLink", this.linkData);
      }
      this.clickClose();
    },
    open (type) { // 父组件通过ref调用,打开商品选择器
      this.flag = true;
      if(type == 'goods'){
        this.goodsFlag = true;
      } else {
        this.goodsFlag = false
      }
 
    },
    close(){ // 关闭组件
      this.flag = false;
    }
  },
};
</script>
<style scoped lang="scss">
/deep/ .ivu-modal {
  overflow: hidden;
  height: 650px !important;
}
/deep/ .ivu-modal-body {
  width: 100%;
  height: 500px;
  overflow: hidden;
}
</style>