vue+vue-rx+rxjs實(shí)現(xiàn)一個(gè)簡單的查詢功能

上一篇文章中說了如何在項(xiàng)目中引用vue-rx和rxjs挖炬, 今天來講一下如何實(shí)現(xiàn)一個(gè)簡單的查詢功能,廢話不多說直接上代碼峡捡。
這里主要講一個(gè)運(yùn)用vue-rx+rxjs+element-ui實(shí)現(xiàn)的一個(gè)查詢功能:

1型诚、項(xiàng)目中集成了vue-rx的時(shí)候會(huì)在vue中新增一個(gè)鉤子函數(shù)subscriptions,和之前的data類似的使用。

2认烁、domStreams是一個(gè)數(shù)組用來存放事件。

3介汹、屬性的使用却嗡。

subscriptions: function () {
        return {
            tableData4: Observable.of([]),  //定義發(fā)送一個(gè)數(shù)組
            formInline: Observable.of({  // 定義發(fā)送一個(gè)查詢對(duì)象
                so_id: '',
                po_id: '',
                out_id: '',
                customer_id: '',
                st_time: '',
                end_time: '',
                maker_id: '',
                saler_id: ''
            })
        }
    }

4、事件的使用
a.在視圖中定義事件

<el-form-item>
        <el-button type="primary" v-stream:click="searchData$">查詢</el-button>
 </el-form-item>

b.在domStreams中定義

domStreams: ['searchData$']

c.在subscriptions定義事件賦值給哪個(gè)變量

 sd$: me.searchData$.map(function (e: any) {
         me.getInfo()
 })

全部代碼如下:

//prod.vue
<template>
    <div style="padding: 15px;">
        <el-form :inline="true" :model="formInline" class="demo-form-inline" size="mini">
            <el-form-item label="出庫單">
                <el-input v-model="formInline.so_id" placeholder="出庫單"></el-input>
            </el-form-item>
            <el-form-item label="訂單號(hào)">
                <el-input v-model="formInline.po_id" placeholder="訂單號(hào)"></el-input>
            </el-form-item>
            <el-form-item label="外部編碼">
                <el-input v-model="formInline.out_id" placeholder="外部編碼"></el-input>
            </el-form-item>
            <el-form-item label="客戶">
                <el-input v-model="formInline.customer_id" placeholder="客戶"></el-input>
            </el-form-item>

            <el-form-item label="開始時(shí)間">
                <el-date-picker v-model="formInline.st_time" type="datetime" placeholder="選擇開始時(shí)間">
                </el-date-picker>
            </el-form-item>

            <el-form-item label="結(jié)束時(shí)間">
                <el-date-picker v-model="formInline.end_time" type="datetime" placeholder="選擇結(jié)束時(shí)間">
                </el-date-picker>
            </el-form-item>

            <el-form-item label="制單人">
                <el-select v-model="formInline.maker_id" placeholder="制單人">
                    <el-option v-for="item in formInline.maker_id" label="區(qū)域一" value="shanghai"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="業(yè)務(wù)員">
                <el-select v-model="formInline.saler_id" placeholder="業(yè)務(wù)員">
                    <el-option label="區(qū)域一" value="shanghai"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" v-stream:click="searchData$">查詢</el-button>
            </el-form-item>
        </el-form>

        <el-row class='btnGroup'>
            <el-button type="primary" size='mini' @click="showModal">添加</el-button>
            <el-button type="success" size='mini'>導(dǎo)出</el-button>
        </el-row>

        <el-table :data="tableData4" style="width: 100%" max-height="500" size="mini">
            <el-table-column fixed :prop="columns[0].prop" :label="columns[0].col" width="120">
            </el-table-column>

            <el-table-column v-for="(item, index) in columns" v-if='index!=0' :prop="item.prop" :label="item.col">
            </el-table-column>

            <el-table-column fixed="right" label="操作" width="150">
                <template slot-scope="scope">
                    <el-button @click.native.prevent="updateRow(scope.$index, tableData4)" type="text" size="small">
                        編輯
                    </el-button>
                    <el-button @click.native.prevent="deleteRow(scope.$index, tableData4)" type="text" size="small">
                        刪除
                    </el-button>
                    <el-button @click.native.prevent="checkRow(scope.$index, tableData4)" type="text" size="small">
                        審核
                    </el-button>
                </template>
            </el-table-column>
        </el-table>
    </div>
</template>

<script lang="ts">
import Prod from '@/views/prod/prod.component'

export default Prod
</script>
<style  src="./prod.scss" lang="scss" scoped>
</style>
//prod.component.ts 文件

import { Component, Vue, Model, Provide } from 'vue-property-decorator';
import { Observable, interval, fromEvent, merge, Subject } from 'rxjs'
import httpServer from '../axios/http'
import ProdModal from '@/views/prod/components/prodAdd.modal.vue'
import moment from 'moment'

@Component({
    name: 'prod',
    components: {
    },
    domStreams: ['searchData$'],
    subscriptions: function () {
        const me = this;
        return {
            tableData4: Observable.of([]),
            formInline: Observable.of({
                so_id: '',
                po_id: '',
                out_id: '',
                customer_id: '',
                st_time: '',
                end_time: '',
                maker_id: '',
                saler_id: ''
            }),
            sd$: me.searchData$.map(function (e: any) {
                me.getInfo()
            }),
        }
    }
})

export default class Prod extends Vue {
    columns: any = [{
        col: '電芯出庫單',
        prop: 'BILL_ASM_CELL'
    },
    {
        col: '出庫日期',
        prop: 'BILL_DATE'
    },
    {
        col: '客戶',
        prop: 'NAME'
    },
    {
        col: '客戶ID',
        prop: 'BIZ_ID'
    },
    {
        col: '業(yè)務(wù)員',
        prop: 'ORDER_NAME'
    }, {
        col: '業(yè)務(wù)員ID',
        prop: 'BILL_ORDER_USER'
    }, {
        col: '訂單號(hào)',
        prop: 'BILL_PROD_REQ'
    }, {
        col: '備注',
        prop: 'EVT_CMT'
    }, {
        col: '制單人',
        prop: 'BIZ_NAME'
    }, {
        col: '制單人ID',
        prop: 'BILL_ORDER_USER'
    }, {
        col: '是否審核',
        prop: 'BILL_AUDIT_FLAG'
    }]

    created(): void {
        this.getInfo();
    }

    getInfo() {
        let me = this;
        let st = this.formInline.st_time == '' ? '' : moment(this.formInline.st_time).format('YYYY-MM-DD hh:mm:ss')
        let ed = this.formInline.end_time == '' ? '' : moment(this.formInline.end_time).format('YYYY-MM-DD hh:mm:ss')
        httpServer({
            method: 'get',
            url: `/api/query/page/getBillListByCond/1.01/param;pageSize=30;pageNo=1;state=N;so_id=${me.formInline.so_id};po_id=${me.formInline.po_id};rets_name=${me.formInline.out_id};biz_id=${me.formInline.customer_id};start_date=${st};end_date=${ed};bill_user=${me.formInline.saler_id};order_user=${me.formInline.maker_id};`,
            timeout: 100000,
            params: '',
            data: '',
        }).then((data: any) => {
            me.tableData4 = data['result'];
        });
    }

    mounted(): void {

    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嘹承,一起剝皮案震驚了整個(gè)濱河市窗价,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叹卷,老刑警劉巖撼港,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異骤竹,居然都是意外死亡帝牡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門蒙揣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來靶溜,“玉大人,你說我怎么就攤上這事懒震≌窒ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵个扰,是天一觀的道長瓷炮。 經(jīng)常有香客問我,道長递宅,這世上最難降的妖魔是什么娘香? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮办龄,結(jié)果婚禮上烘绽,老公的妹妹穿的比我還像新娘。我一直安慰自己土榴,他們只是感情好诀姚,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著玷禽,像睡著了一般赫段。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矢赁,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天糯笙,我揣著相機(jī)與錄音,去河邊找鬼撩银。 笑死给涕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播够庙,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼恭应,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了耘眨?” 一聲冷哼從身側(cè)響起昼榛,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剔难,沒想到半個(gè)月后胆屿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偶宫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年非迹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纯趋。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡憎兽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出结闸,到底是詐尸還是另有隱情唇兑,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布桦锄,位于F島的核電站扎附,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏结耀。R本人自食惡果不足惜留夜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望图甜。 院中可真熱鬧碍粥,春花似錦、人聲如沸黑毅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矿瘦。三九已至枕面,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缚去,已是汗流浹背潮秘。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留易结,地道東北人枕荞。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓柜候,卻偏偏與公主長得像,于是被迫代替她去往敵國和親躏精。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渣刷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 目前我正在寫這篇文章飞主,有很多方法來解決一個(gè)具體的問題。">目前我正在寫這篇文章高诺,有很多方法來解決一個(gè)具體的問題。 ...
    880d91446f17閱讀 2,666評(píng)論 0 1
  • 交朋友就要交那種即使變成老頭了也能互叫綽號(hào)的! 《初識(shí)RxJS》 背景 RP(Reactive Programmi...
    知行社閱讀 669評(píng)論 0 2
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容碾篡,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容虱而。關(guān)于...
    云之外閱讀 5,045評(píng)論 0 29
  • 臨界知識(shí): 能指導(dǎo)行動(dòng)的重要而基本的規(guī)律或定律,稱為臨界知識(shí)开泽。 (其實(shí)它不是一種知識(shí)牡拇,而是一種規(guī)律,也就是我們所通...
    佟掌柜敲黑板閱讀 198評(píng)論 0 0
  • 踏上回家的路途穆律,內(nèi)心欣喜若狂惠呼。國道省道大小公路水泄不通,節(jié)假日的塞車在所難免峦耘,更何況是中秋與國慶相遇更是...
    微笑一百點(diǎn)閱讀 47評(píng)論 0 0