ダークホース】製品機能一覧141~152

目次

1. 新しいブランチを作成し、コード クラウドにプッシュします。

二。リストコンポーネントを作成してルートに登録する

3. バックグラウンド商品リストデータの取得

  1. 行動エリアでトリプルチェーンを構築する

3. 取得したデータをページにレンダリングします

1. ページ内のレイアウトとテーブルの作成

2.時間の表現を設定する

3. ポケベル

4. 検索ボックスの検索とクリアを実現します。

5. 削除操作を実装します。

四。新規、製品を追加

1、新規、ステップバーの設定


1. 新しいブランチを作成し、コード クラウドにプッシュします。

gitブランチ

git checkout -b Goods_list

gitブランチ

git Push -u オリジン商品リスト

二。リストコンポーネントを作成してルートに登録する

ページレイアウト構築

ブレッドクラム ナビゲーション領域とカード ビュー領域を貼り付けます。

検索ボックスとボタンの上に立って項目を追加します

3. バックグラウンド商品リストデータの取得

対応するインターフェース API を表示する

  1. 行動エリアでトリプルチェーンを構築する

    data(){
               return {
            //查询参数对象
            queryInfo: {
                query: '',
                //当前页数
                pagenum: 1,
                //当前每页显示多少条数据
                pagesize: 10
            },
        }
    },
    created() {
        this.getGoodsList()
    },
    methods: {
        //根据分页获取对应的商品列表
        async getGoodsList() {
            const { data: res } = await this.$http.get('goods', { params: this.queryInfo })
            if (res.meta.status !== 200) {
                return this.$message.error('获取商品列表失败!')
            }
            this.$message.success('获取商品列表成功!')
            console.log(res.data)
        }
    }

 無事にデータを取得できました

 前回と同様に、商品を取り出して合計し、個人データに入力します

            //商品列表
            goodslist:[],
            //总数据条数
            total:0
        
    methods: {
        //根据分页获取对应的商品列表
        async getGoodsList() {
           ····
            console.log(res.data)
            this.goodslist = res.data.goods
            this.total = res.data.total

3. 取得したデータをページにレンダリングします

1. ページ内のレイアウトとテーブルの作成

ここのラベルとプロップはすべてインターフェースドキュメントから取得されます。

   <!--表格区域 ,通过data指定数据源,stripe隔行变色-->
                 <el-table :data="goodslist" border stripe>
                <!-- 索引列 -->
                <el-table-column type="index"></el-table-column>
                <el-table-column label="商品名称" prop="goods_name"></el-table-column>
                <el-table-column label="商品价格" prop="goods_price" width="95px"></el-table-column>
                <el-table-column label="商品重量 " prop="goods_weight" width="95px"></el-table-column>
                <el-table-column label="添加时间" prop="add_time" width="140px" ></el-table-column>

                <el-table-column label="操作" width="130px">
                    <template slot-scope="scope">
                        <!-- 修改按钮 -->
                        <el-button type="primary" icon="el-icon-edit" size="mini"></el-button>
                        <!-- 删除按钮 -->
                        <el-button type="danger" icon="el-icon-delete" size="mini"></el-button>
                        </template>
                     </el-table-column>
                    </el-table>
        </el-card>

 上記はレンダリングされたページレイアウトですが、時間が追加される場所が間違っていることがわかります

2.時間の表現を設定する

maiファイルに書き込む

Vue.filter('dateFormat',function(originValue){
      const dt = new Date(originValue)
      const y =  dt.getFullYear()
      const m =  (dt.getMonth() + 1 + '').padStart(2,'0')
      const d =  (dt.getDay() + '').padStart(2,'0')

      const hh = (dt.getHours()+ '').padStart(2,'0')
      const mm = (dt.getMinutes()+ '').padStart(2,'0')
      const ss = (dt.getSeconds()+ '').padStart(2,'0')
      return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})

編集する時間を追加する

   <el-table-column label="添加时间" prop="add_time" width="140px" >
                    <template slot-scope="scope"> 
                        {
   
   {scope.row.add_time | dateFormat}}
                    </template>
                </el-table-column>

ページ表示

3. ポケベル

  <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                :current-page="queryInfo.pagenum" :page-sizes="[1, 2, 5, 10]" :page-size="queryInfo.pagesize"
                layout="total, sizes, prev, pager, next, jumper" :total="total" >
            </el-pagination>

2つの機能を備えた

     //监听pagesize改变的事件
          handleSizeChange(newSize) {
            // console.log(newSize)
            //把新监听到的数据重新赋值给data中
            this.queryInfo.pagesize = newSize
            //赋值之后,重新发生骑牛
            this.getGoodsList()
        },
        //监听页码值改变的事件
        handleCurrentChange(newPage) {
            // console.log(newPage)
            this.queryInfo.pagenum = newPage
            this.getGoodsList()
        },

4. 検索ボックスの検索とクリアを実現します。

クエリ属性にバインドされた双方向バインディング イベントを追加します。

検索ボタンをクリックすると、データリストを取得する関数が呼び出されます。

検索ボタンのクリックイベントハンドラーを設計し、クリア関数も追加します

    <el-input placeholder="请输入内容" v-model="queryInfo.query" clearable @clear="getGoodsList">
                        <el-button slot="append" icon="el-icon-search" @click="getGoodsList"></el-button>

5. 削除操作を実装します。

ボタンにクリックイベントを追加する

                        <el-button type="danger" icon="el-icon-delete" size="mini" @click="removeById(scope.row.goods_id)"></el-button>

クリックイベント処理機能で削除を確認するポップアップダイアログボックスを設計する

 //删除事件处理函数
        async removeById(id) {
            //弹窗询问用户是否删除数据
            const confirmResult = await this.$confirm('此操作将永久删除, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }
            ).catch(err => err)
            //此时用户点确定返回的是一个confirm字符串,如果点取消是返回一个错误,如果解决,加一个catch
            //修改好错误之后,用户点击取消删除之后返回的是一个字符串cancel
            // console.log(confirmResult)
            if (confirmResult !== 'confirm') {
                return this.$message.info('已取消删除')
            }
            // console.log('确认了删除')
            const { data: res } = await this.$http.delete('goods/' + id)
            if (res.meta.status !== 200) {
                return this.$message.error('删除失败')
            }
            this.$message.success('删除成功')
            this.getGoodsList()

        },

四。新規、製品を追加

ページにジャンプします

項目追加ボタンにクリックイベントを追加する

次に、イベント ハンドラー関数にルーティング ジャンプを記述します。

 goAddpage(){
            this.$router.push('/goods/add')
        }

新しいコンポーネントを作成し、ルーティングコンポーネントを追加します

「../components/goods/add.vue」からインポート追加

        {パス:'/グッズ',コンポーネント:グッズリスト},

ページヘッダーのレイアウトは以前と同じですが、警告が 1 つだけグレー表示されています。

 <!-- 警告区域 ,去element里面粘贴 -->
            <el-alert :closable="false" show-icon title="添加商品信息" type="info" center>
            </el-alert>

1、新規、ステップバーの設定

要素から貼り付け

   <!-- 步骤条 -->
            <el-steps :space="200" :active="1" finish-status="success">
                <el-step title="基本信息"></el-step>
                <el-step title="商品参数"></el-step>
                <el-step title="商品属性"></el-step>
                <el-step title="商品图片"></el-step>
                <el-step title="商品内容"></el-step>
                <el-step title="完成"></el-step>
            </el-steps>

プログレスバーのスタイルをグローバルスタイルで記述する

.el-steps{
    margin: 15px;
}

プログレスバーを改善する

 <el-steps :space="200" :active="activeIndex" align-center  finish-status="success">
                <el-step title="基本信息"></el-step>
                <el-step title="商品参数"></el-step>
                <el-step title="商品属性"></el-step>
                <el-step title="商品图片"></el-step>
                <el-step title="商品内容"></el-step>
                <el-step title="完成"></el-step>
            </el-steps>
  return{
        activeIndex:0
    }

おすすめ

転載: blog.csdn.net/princess66/article/details/128329247