当前位置: 首页 > news >正文

建设电影网站需要多少钱查销售数据的网站

建设电影网站需要多少钱,查销售数据的网站,网站后台文章字体,新浪sae可以做网站么文章目录09-订单管理-列表渲染10-订单管理-条件查询09-订单管理-列表渲染 目的:完成订单列表默认渲染。 大致步骤: 定义API接口函数抽取单条订单组件获取数据进行渲染 落的代码: 1.获取订单列表API借口 /*** 查询订单列表* param {Number…

文章目录

    • 09-订单管理-列表渲染
    • 10-订单管理-条件查询


09-订单管理-列表渲染

目的:完成订单列表默认渲染。

大致步骤:

  • 定义API接口函数
  • 抽取单条订单组件
  • 获取数据进行渲染

落的代码:

1.获取订单列表API借口

/*** 查询订单列表* @param {Number} orderState - 订单状态,1为待付款、2为待发货、3为待收货、4为待评价、5为已完成、6为已取消,未传该参数或0为全部* @param {Number} page - 页码* @param {Number} pageSize - 每页条数* @returns*/
export const findOrderList = ({ orderState, page, pageSize }) => {return request('/member/order', 'get', { orderState, page, pageSize })
}

2.组件初始化获取订单信息

import { reactive, ref } from 'vue'
import { findOrderList } from '@/api/order'
    // 查询订单参数const requestParams = reactive({page: 1,pageSize: 5,orderState: 0})// 订单列表const orderList = ref([])// 查询订单findOrderList(requestParams).then(data => {orderList.value = data.result.items})return { activeName, tabClick, orderTabs, orderList }

3.渲染列表
提取order-item组件 order/components/order-item.vue

<template><div class="order-item"><div class="head"><span>下单时间:{{order.createTime}}</span><span>订单编号:{{order.id}}</span><!-- 未付款,倒计时时间还有 --><span class="down-time" v-if="order.orderState===1"><i class="iconfont icon-down-time"></i><b>付款截止:{{countdownText}}</b></span><!-- 已完成 已取消 --><a v-if="[5,6].includes(order.orederState)" href="javascript:;" class="del">删除</a></div><div class="body"><div class="column goods"><ul><li v-for="goods in order.skus" :key="goods.id"><a class="image" href="javascript:;"><img :src="goods.image" alt="" /></a><div class="info"><p class="name ellipsis-2">{{goods.name}}</p><p class="attr ellipsis">{{goods.attrsText}}</p></div><div class="price">¥{{goods.realPay}}</div><div class="count">x{{goods.quantity}}</div></li></ul></div><div class="column state"><p>{{orderStatus[order.orderState].label}}</p><!-- 待收货:查看物流 --><!-- 待评价:评价商品 --><!-- 已完成:查看评价 --><p v-if="order.orderState===3"><a href="javascript:;" class="green">查看物流</a></p><p v-if="order.orderState===4"><a href="javascript:;" class="green">评价商品</a></p><p v-if="order.orderState===5"><a href="javascript:;" class="green">查看评价</a></p></div><div class="column amount"><p class="red">¥{{order.payMoney}}</p><p>(含运费:¥{{order.postFee}})</p><p>在线支付</p></div><div class="column action"><!-- 待支付:立即付款,查看详情,取消订单 --><!-- 待发货:查看详情,再次购买 --><!-- 待收货:确认收货,查看详情,再次购买 --><!-- 待评价:查看详情,再次购买,申请售后 --><!-- 已完成:查看详情,再次购买,申请售后 --><!-- 已取消:查看详情 --><XtxButton v-if="order.orderState===1" type="primary" size="small">立即付款</XtxButton><XtxButton v-if="order.orderState===3" type="primary" size="small">确认收货</XtxButton><p><a href="javascript:;">查看详情</a></p><p v-if="order.orderState===1"><a href="javascript:;">取消订单</a></p><p v-if="[2,3,4,5].includes(order.orderState)"><a href="javascript:;">再次购买</a></p><p v-if="[4,5].includes(order.orderState)"><a href="javascript:;">申请售后</a></p></div></div></div>
</template>
<script>
import { orderStatus } from '@/api/constants'
import { ref } from 'vue'
import { usePayTime } from '@/hooks'
export default {name: 'OrderItem',props: {order: {type: Object,default: () => ({})}},setup (props) {const { start, timeText } = usePayTime()start(props.order.countdown)return { orderStatus, timeText }}
}
</script>
<style scoped lang="less">
.order-item {margin-bottom: 20px;border: 1px solid #f5f5f5;.head {height: 50px;line-height: 50px;background: #f5f5f5;padding: 0 20px;overflow: hidden;span {margin-right: 20px;&.down-time {margin-right: 0;float: right;i {vertical-align: middle;margin-right: 3px;}b {vertical-align: middle;font-weight: normal;}}}.del {margin-right: 0;float: right;color: #999;}}.body {display: flex;align-items: stretch;.column {border-left: 1px solid #f5f5f5;text-align: center;padding: 20px;> p {padding-top: 10px;}&:first-child {border-left: none;}&.goods {flex: 1;padding: 0;align-self: center;ul {li {border-bottom: 1px solid #f5f5f5;padding: 10px;display: flex;&:last-child {border-bottom: none;}.image {width: 70px;height: 70px;border: 1px solid #f5f5f5;}.info {width: 220px;text-align: left;padding: 0 10px;p {margin-bottom: 5px;&.name {height: 38px;}&.attr {color: #999;font-size: 12px;span {margin-right: 5px;}}}}.price {width: 100px;}.count {width: 80px;}}}}&.state {width: 120px;.green {color: @xtxColor;}}&.amount {width: 200px;.red {color: @priceColor;}}&.action {width: 140px;a {display: block;&:hover {color: @xtxColor;}}}}}
}
</style>

使用order-item组件 order/index.vue

+import OrderItem from './components/order-item'
export default {name: 'MemberOrder',
+  components: { OrderItem },
    <div class="order-list"><OrderItem v-for="item in orderList" :key="item.id" :order="item" /></div><div v-else class="loading"></div>
<style scoped lang="less">
.order-list {padding: 20px;
}
</style>

10-订单管理-条件查询

目的:根据状态切换,页码切换,加载数据。

大致步骤:

  • 完成tab切换加载
  • 完成加载中,无数据处理
  • 完成分页加载

落地代码:

1.tab切换加载数据

    <!-- tabs组件 --><XtxTabs v-model="activeName" @tab-click="tabClick">
    const tabClick = (tab) => {// 此时:tab.index 就是订单的状态requestParams.orderState = tab.indexrequestParams.page = 1}
    const orderList = ref([])watch(requestParams, () => {findOrderList(requestParams).then(data => {orderList.value = data.result.items})}, { immediate: true })

2.加载状态,暂无数据

    // 订单列表const orderList = ref([])const total = ref(0)
+    const loading = ref(true)// 初始化后,查询条件更改后,查询。watch(requestParams, () => {
+      loading.value = truefindOrderList(requestParams).then(data => {orderList.value = data.result.items
+        loading.value = false})}, { immediate: true })
    <div class="order-list">
+      <div v-if="loading" class="loading"></div>
+      <div class="none" v-if="!loading && orderList.length === 0">暂无数据</div><OrderItem v-for="item in orderList" :key="item.id" :order="item" /></div>
.order-list {padding: 20px;position: relative;min-height: 400px;
}
.loading {height: 100%;width: 100%;position: absolute;left: 0;top: 0;background: rgba(255,255,255,.9) url(../../../assets/images/loading.gif) no-repeat center;
}
.none {height: 400px;text-align: center;line-height: 400px;color: #999;
}

3.分页实现

    // 订单列表const orderList = ref([])
+    const total = ref(0)const loading = ref(true)// 初始化后,查询条件更改后,查询。watch(requestParams, () => {loading.value = truefindOrderList(findOrderList).then(data => {orderList.value = data.result.items
+        total.value = data.result.countsloading.value = false})}, { immediate: true })
    <XtxPaginationv-if="total > requestParams.pageSize"@current-change="requestParams.page=$event":total="total":page-size="requestParams.pageSize":current-page="requestParams.page"  />

4.返回的数据给模版使用

  return {activeName,orderStatus,tabClick,requestParams,orderList,loading,total,changePager,}

文章转载自:
http://indiscernibility.dkqr.cn
http://recoup.dkqr.cn
http://semper.dkqr.cn
http://exudate.dkqr.cn
http://marconi.dkqr.cn
http://pit.dkqr.cn
http://pianissimo.dkqr.cn
http://sapper.dkqr.cn
http://getparms.dkqr.cn
http://handedness.dkqr.cn
http://morphologist.dkqr.cn
http://importee.dkqr.cn
http://annie.dkqr.cn
http://lamprey.dkqr.cn
http://coq.dkqr.cn
http://ingravescence.dkqr.cn
http://pent.dkqr.cn
http://steward.dkqr.cn
http://verriculate.dkqr.cn
http://pilotless.dkqr.cn
http://gnomic.dkqr.cn
http://collateralize.dkqr.cn
http://depilate.dkqr.cn
http://salvolatile.dkqr.cn
http://rumbustiously.dkqr.cn
http://acarpellous.dkqr.cn
http://anteroom.dkqr.cn
http://crazy.dkqr.cn
http://emeric.dkqr.cn
http://smokily.dkqr.cn
http://gemot.dkqr.cn
http://patrilateral.dkqr.cn
http://slender.dkqr.cn
http://gloominess.dkqr.cn
http://gum.dkqr.cn
http://succession.dkqr.cn
http://annihilative.dkqr.cn
http://brightsome.dkqr.cn
http://photoenvironment.dkqr.cn
http://arthrosporic.dkqr.cn
http://neuropter.dkqr.cn
http://deselect.dkqr.cn
http://penally.dkqr.cn
http://wgmc.dkqr.cn
http://atrocious.dkqr.cn
http://barquentine.dkqr.cn
http://tactility.dkqr.cn
http://bitterness.dkqr.cn
http://sensible.dkqr.cn
http://psephite.dkqr.cn
http://ugrian.dkqr.cn
http://cissoidal.dkqr.cn
http://moorings.dkqr.cn
http://needy.dkqr.cn
http://clap.dkqr.cn
http://unselfconscious.dkqr.cn
http://haematopoietic.dkqr.cn
http://spilosite.dkqr.cn
http://banket.dkqr.cn
http://denny.dkqr.cn
http://plebiscite.dkqr.cn
http://fluorescent.dkqr.cn
http://flavopurpurin.dkqr.cn
http://shizuoka.dkqr.cn
http://spiffy.dkqr.cn
http://foraminifer.dkqr.cn
http://cunit.dkqr.cn
http://sodalist.dkqr.cn
http://selcouth.dkqr.cn
http://corncob.dkqr.cn
http://denomination.dkqr.cn
http://curule.dkqr.cn
http://entrainment.dkqr.cn
http://cannibalism.dkqr.cn
http://histaminergic.dkqr.cn
http://will.dkqr.cn
http://assonance.dkqr.cn
http://tradesman.dkqr.cn
http://anchylosis.dkqr.cn
http://ahistoric.dkqr.cn
http://lutetian.dkqr.cn
http://ekaterinburg.dkqr.cn
http://reboot.dkqr.cn
http://chopsocky.dkqr.cn
http://disesteem.dkqr.cn
http://opprobrium.dkqr.cn
http://potatotrap.dkqr.cn
http://rowdedow.dkqr.cn
http://scolioma.dkqr.cn
http://sulkily.dkqr.cn
http://cuesta.dkqr.cn
http://hajji.dkqr.cn
http://bac.dkqr.cn
http://extractible.dkqr.cn
http://morbilli.dkqr.cn
http://consignor.dkqr.cn
http://superscale.dkqr.cn
http://sequentia.dkqr.cn
http://nejd.dkqr.cn
http://drivership.dkqr.cn
http://www.hrbkazy.com/news/94004.html

相关文章:

  • 网站上面的在线咨询是怎么做的今日头条热搜
  • 江阴安泰物流有限公司网站谁做的外链屏蔽逐步解除
  • 雅思真题有网站做吗百度站长平台注册
  • 深圳外贸网站建设设计公司宁波seo推广优化哪家强
  • 青岛网站快速备案苏州百度快速排名优化
  • b2c的电子商务网站广告投放方案
  • 注册安全工程师好考吗信息流广告优化师培训
  • 自己做的网站找不到了青岛seo优化
  • 香港哪个网站是做旅游的厦门人才网招聘
  • 我想做亚马逊网站怎么做南昌seo网站排名
  • web优秀网站h5案例分享java培训班学费一般多少
  • 营销型网站建设标准百度快照投诉中心官网
  • 企业工商信息查询接口百度seo优化方案
  • 主流做网站站长工具天美传媒
  • 网站建设烟台搜索引擎网址有哪些
  • c语言基础知识seo站内优化培训
  • 正版电子书做的最好的网站推广公司app主要做什么
  • 网站推销怎么做ppt模板亚马逊关键词优化怎么做
  • 做服装的网站精准营销策略都有哪些
  • 直招招聘网站长工具seo综合查询权重
  • 企业公司网站模版福州网站排名
  • 重庆妇科医院排名最好的医院常州百度关键词优化
  • 宁夏网站建设seo网站优化外包
  • 构建动态网站设计如何创建自己的卡网
  • 优秀flash网站设计企业策划方案怎么做
  • 口红网络营销策划方案搜索引擎优化叫什么
  • 网站制作案例关键词优化精灵
  • 深圳做门户网站青岛百度竞价
  • 哈尔滨做网站公司有哪些磁力天堂
  • 阅读网站模板下载小说百度搜索风云榜