# WebMthod WebForm VB.NET + Vue JS ## 需Import ```vb= Imports System.Web.Services ``` ## 返回JSON格式資料 ```vb= Public Class ListData Public Property MODEL_NO() As String Public Property V() As String Public Property N() As String Public Property TOTAL() As String Public Property GRADE() As String Public Property STATUS() As String End Class <WebMethod()> _ Public Shared Function Data() As List(Of ListData) Dim conn_PC05 As SqlConnection = New SqlConnection("Database=XXXXX;Server=XXXXX;UID=XXXXX;PWD=XXXXX") Dim sql As String = "" sql = sql & " select a.*,(case when b.grade is null then '無' else b.grade end) grade,(case when b.status is null then '可入庫' else b.status end) status from" sql = sql & " (" sql = sql & " select * from openquery(ORACLELINK,'" sql = sql & " select substr(model_no,1,9) model_no,count(case when grade = ''V'' then 1 else null end) V" sql = sql & " ,count(case when grade = ''N'' then 1 else null end) N" sql = sql & " ,count(*) total " sql = sql & " from celods.r_chip_wip_ods" sql = sql & " where grade in (''N'',''V'')" sql = sql & " group by substr(model_no,1,9) order by count(*) desc" sql = sql & " ') " sql = sql & " ) a" sql = sql & " Left Join " sql = sql & " [BEOL2].[dbo].[NV_禁入庫] b" sql = sql & " on a.model_no = b.model_no and b.status <> 'RLS'" Dim view As New SqlDataAdapter(sql, conn_PC05) Dim dt As New DataTable view.Fill(dt) Dim mydata As New List(Of ListData)() For i As Integer = 0 To dt.Rows.Count - 1 mydata.Add(New ListData() With { _ .MODEL_NO = dt.Rows(i).Item(0), _ .V = dt.Rows(i).Item(1), _ .N = dt.Rows(i).Item(2), _ .TOTAL = dt.Rows(i).Item(3), _ .GRADE = dt.Rows(i).Item(4), _ .STATUS = dt.Rows(i).Item(5) }) Next Return mydata End Function ``` ## Vue axios 接 API ```javascript= var vm = new Vue({ el: "#vm", data: { wip_data:"", }, methods: { getdata: function () { axios.post('NV_DISABLE.aspx/Data', { }) .then(function (response) { vm.wip_data = response.data }) .catch(function (error) { this.response_data = 'API Error. ' + error }) }, }, mounted: function () { this.getdata() } }) ```