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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
  | <template> 
 |    <div id="importChannel" v-loading="isLoging"> 
 |      <el-dialog 
 |        title="导入通道数据" 
 |        width="30rem" 
 |        top="2rem" 
 |        :append-to-body="true" 
 |        :close-on-click-modal="false" 
 |        :visible.sync="showDialog" 
 |        :destroy-on-close="true" 
 |        @close="close()" 
 |      > 
 |        <div> 
 |          <el-upload 
 |            class="upload-box" 
 |            drag 
 |            :action="uploadUrl" 
 |            name="file" 
 |            :on-success="successHook" 
 |            :on-error="errorHook" 
 |            > 
 |            <i class="el-icon-upload"></i> 
 |            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> 
 |            <div class="el-upload__tip" slot="tip">只能上传 csv / xls / xlsx 文件</div> 
 |          </el-upload> 
 |        </div> 
 |      </el-dialog> 
 |      <ShowErrorData ref="showErrorData" :gbIds="errorGBIds" :streams="errorStreams" ></ShowErrorData> 
 |    </div> 
 |  </template> 
 |    
 |  <script> 
 |    
 |  import ShowErrorData from './importChannelShowErrorData.vue' 
 |    
 |  export default { 
 |    name: "importChannel", 
 |    components: { 
 |      ShowErrorData, 
 |    }, 
 |    created() {}, 
 |    data() { 
 |      return { 
 |        submitCallback: null, 
 |        showDialog: false, 
 |        isLoging: false, 
 |        isEdit: false, 
 |        errorStreams: [], 
 |        errorGBIds: [], 
 |        uploadUrl: process.env.NODE_ENV === 'development'?`debug/api/push/upload`:`api/push/upload`, 
 |      }; 
 |    }, 
 |    methods: { 
 |      openDialog: function (callback) { 
 |        this.showDialog = true; 
 |        this.submitCallback = callback; 
 |      }, 
 |      onSubmit: function () { 
 |        console.log("onSubmit"); 
 |        console.log(this.form); 
 |        this.$axios({ 
 |          method:"post", 
 |          url:`/api/platform/catalog/${!this.isEdit? "add":"edit"}`, 
 |          data: this.form 
 |        }) 
 |          .then((res)=> { 
 |            if (res.data.code === 0) { 
 |              console.log("添加/修改成功") 
 |              if (this.submitCallback)this.submitCallback() 
 |            }else { 
 |              this.$message({ 
 |                showClose: true, 
 |                message: res.data.msg, 
 |                type: "error", 
 |              }); 
 |            } 
 |            this.close(); 
 |          }) 
 |          .catch((error)=> { 
 |            console.log(error); 
 |          }); 
 |      }, 
 |      close: function () { 
 |        this.showDialog = false; 
 |      }, 
 |      successHook: function(response, file, fileList){ 
 |        if (response.code === 0) { 
 |          this.$message({ 
 |            showClose: true, 
 |            message: response.msg, 
 |            type: "success", 
 |          }); 
 |        }else if (response.code === 1) { 
 |          this.errorGBIds = response.data.gbId 
 |          this.errorStreams = response.data.stream 
 |          console.log(this.$refs) 
 |          console.log(this.$refs.showErrorData) 
 |          this.$refs.showErrorData.openDialog() 
 |        }else { 
 |          this.$message({ 
 |            showClose: true, 
 |            message: response.msg, 
 |            type: "error", 
 |          }); 
 |        } 
 |      }, 
 |      errorHook: function (err, file, fileList) { 
 |        this.$message({ 
 |          showClose: true, 
 |          message: err, 
 |          type: "error", 
 |        }); 
 |      } 
 |    }, 
 |  }; 
 |  </script> 
 |  <style> 
 |  .upload-box{ 
 |    text-align: center; 
 |  } 
 |  .errDataBox{ 
 |    max-height: 15rem; 
 |    overflow: auto; 
 |  } 
 |  </style> 
 |  
  |