123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- <template>
- <div class="orderAll">
- <my-header>订单</my-header>
- <!-- Tab 标签栏---------------------------------------
- 1. v-model="billStatus" 绑定一个值, 指定当前激活的tab栏的下标, 下标0开始
- 2. sticky 吸顶粘性布局
- 3. animated 切换动画
- 4. swipeable 滑动切换效果
- 下拉刷新
- v-model 设置为 false,表示加载完成
- ----------------------------------------------------------->
- <div class="state-tabs">
- <van-tabs
- v-model="billStatus"
- @click.native="handleClick"
- sticky
- animated
- swipeable
- >
- <!-- 待完成 -->
- <van-tab title="待完成" name="wait">
- <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
- <div
- class="wait wait1"
- v-for="item in orders"
- :key="item.orderId"
- @click="orderDetail(item.orderType, item.orderId)"
- >
- <div class="title">
- <h4 v-if="item.orderType == 'caiOrder'">
- 采血任务
- </h4>
- <h4 v-if="item.orderType == 'huiOrder'">
- 回输任务
- </h4>
- <span class="waitState">{{ item.nodeName }}</span>
- </div>
- <!-- 详细内容 -------------------------->
- <div class="details">
- <!-- 订单号 -->
- <div class="row clearfix">
- <span class="fl">订单号</span>
- <em class="num fr">{{ item.billNo }}</em>
- </div>
- <!-- 订单日期 -->
- <div class="row clearfix">
- <span class="fl">订单日期</span>
- <em class="startTime fr">{{ item.billDate }}</em>
- </div>
- <!-- 采血提货时间 -->
- <div class="row clearfix">
- <span class="fl">提货时间</span>
- <em class="scheduledTime fr ">{{ item.pickTime }}</em>
- </div>
- <!-- 提货点 -->
- <div class="row clearfix">
- <span class="fl">提货点</span>
- <em class="place fr">{{ item.pickPoint }}</em>
- </div>
- <!-- 提货地址 -->
- <div class="row clearfix">
- <span class="fl">提货地址</span>
- <em class="place fr">{{ item.pickAddr }}</em>
- </div>
- <!-- 送达点 -->
- <div class="row clearfix">
- <span class="fl">送达点</span>
- <em class="place fr">{{ item.deliveryPoint }}</em>
- </div>
- <!-- 送达地址 -->
- <div class="row clearfix">
- <span class="fl">送达地址</span>
- <em class="place fr">{{ item.deliveryAddr }}</em>
- </div>
- <!-- 联系人 -->
- <div class="row clearfix person">
- <span>联系人</span>
- <em class="who ">{{ item.pickPsn }}</em>
- <div class="phoneNum fr">{{ item.pickTel }}</div>
- </div>
- </div>
- </div>
- </van-pull-refresh>
- </van-tab>
- <!-- 完成 -->
- <van-tab title="完成" name="completed">
- <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
- <div
- class="completed completed1"
- v-for="item in orders"
- :key="item.orderId"
- @click="orderDetail(item.orderType, item.orderId)"
- >
- <!-- 标题 -->
- <div class="title com">
- <h4 v-if="item.orderType == 'caiOrder'">
- 采血任务
- </h4>
- <h4 v-if="item.orderType == 'huiOrder'">
- 回输任务
- </h4>
- <span class="completedState">{{ item.nodeName }}</span>
- </div>
- <!-- 细节 -->
- <div class="details">
- <!-- 订单号 -->
- <div class="row clearfix">
- <span class="fl">订单号</span>
- <em class="num fr">{{ item.billNo }}</em>
- </div>
- <!-- 订单日期 -->
- <div class="row clearfix">
- <span class="fl">订单日期</span>
- <em class="startTime fr">{{ item.billDate }}</em>
- </div>
- <!-- 采血提货时间 -->
- <div class="row clearfix">
- <span class="fl">提货时间</span>
- <em class="scheduledTime fr ">{{ item.pickTime }}</em>
- </div>
- <!-- 提货点 -->
- <div class="row clearfix">
- <span class="fl">提货点</span>
- <em class="place fr">{{ item.pickPoint }}</em>
- </div>
- <!-- 提货地址 -->
- <div class="row clearfix">
- <span class="fl">提货地址</span>
- <em class="place fr">{{ item.pickAddr }}</em>
- </div>
- <!-- 送达点 -->
- <div class="row clearfix">
- <span class="fl">送达点</span>
- <em class="place fr">{{ item.deliveryPoint }}</em>
- </div>
- <!-- 送达地址 -->
- <div class="row clearfix">
- <span class="fl">送达地址</span>
- <em class="place fr">{{ item.deliveryAddr }}</em>
- </div>
- <!-- 联系人 -->
- <div class="row clearfix person">
- <span>联系人</span>
- <em class="who ">{{ item.pickPsn }}</em>
- <div class="phoneNum fr">{{ item.pickTel }}</div>
- </div>
- </div>
- </div>
- </van-pull-refresh>
- </van-tab>
- <!-- 全部任务 -->
- <van-tab title="全部" name="all">
- <div class="all">
- <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
- <div
- class="wait wait1"
- v-for="item in orders"
- :key="item.orderId"
- @click="orderDetail(item.orderType, item.orderId)"
- >
- <!-- 通过判断附加class 属性 -->
- <div
- class="title"
- :class="{ com: item.billStatus === ' 4' }"
- >
- <h4 v-if="item.orderType == 'caiOrder'">
- 采血任务
- </h4>
- <h4 v-if="item.orderType == 'huiOrder'">
- 回输任务
- </h4>
- <span
- :class="{
- waitState: item.billStatus === '2',
- completedState: item.billStatus === ' 4'
- }"
- >{{ item.nodeName }}</span
- >
- </div>
- <div class="details">
- <!-- 订单号 -->
- <div class="row clearfix">
- <span class="fl">订单号</span>
- <em class="num fr">{{ item.billNo }}</em>
- </div>
- <!-- 订单日期 -->
- <div class="row clearfix">
- <span class="fl">订单日期</span>
- <em class="startTime fr">{{ item.billDate }}</em>
- </div>
- <!-- 提货时间 -->
- <div class="row clearfix">
- <span class="fl">提货时间</span>
- <em class="scheduledTime fr ">{{ item.pickTime }}</em>
- </div>
- <!-- 提货点 -->
- <div class="row clearfix">
- <span class="fl">提货点</span>
- <em class="place fr">{{ item.pickPoint }}</em>
- </div>
- <!-- 提货地址 -->
- <div class="row clearfix">
- <span class="fl">提货地址</span>
- <em class="place fr">{{ item.pickAddr }}</em>
- </div>
- <!-- 送达点 -->
- <div class="row clearfix">
- <span class="fl">送达点</span>
- <em class="place fr">{{ item.deliveryPoint }}</em>
- </div>
- <!-- 送达地址 -->
- <div class="row clearfix">
- <span class="fl">送达地址</span>
- <em class="place fr">{{ item.deliveryAddr }}</em>
- </div>
- <!-- 联系人 -->
- <div class="row clearfix person">
- <span>联系人</span>
- <em class="who ">{{ item.pickPsn }}</em>
- <div class="phoneNum fr">{{ item.pickTel }}</div>
- </div>
- </div>
- </div>
- </van-pull-refresh>
- </div>
- </van-tab>
- </van-tabs>
- </div>
- <!-- 底部 -->
- <div class="footer">
- <ul>
- <li>
- <div @click="$router.push('/')">
- <i class="el-icon-s-home big"></i>
- <p>首页</p>
- </div>
- </li>
- <li>
- <div>
- <i class="el-icon-s-order current"></i>
- <p class="current">订单</p>
- </div>
- </li>
- <li>
- <div @click="$router.push('/my')">
- <i class="el-icon-s-custom"></i>
- <p>我的</p>
- </div>
- </li>
- </ul>
- </div>
- </div>
- </template>
- <script>
- export default {
- data () {
- return {
- orders: [], // 默认值给一个空对象
- billStatus: 'all', // 默认全部页签
- count: 0,
- isLoading: false,
- resultClass: { wait: 'waitState', completed: 'completedState' }
- }
- },
- created () {
- // 第一时间渲染列表
- const { billStatus } = this.$route.params
- this.billStatus = billStatus
- if (billStatus) {
- this.getOrders(this.billStatus)
- }
- },
- methods: {
- // tabs切换
- handleClick () {
- console.log(this.billStatus)
- this.getOrders(this.billStatus)
- },
- async getOrders (billStatus) {
- // 从本地获取用户 id 和 token
- const deptId = localStorage.getItem('dept_id')
- // 发送获取个人信息的请求时,需要携带上token令牌,需要放在请求头Authorization字段上
- const res = await this.$axios.get(`/orders/${deptId}/${billStatus}`)
- console.log(res)
- const { statusCode, data } = res.data
- if (statusCode === 200) {
- this.orders = data
- }
- },
- orderDetail (orderType, orderId) {
- this.$router.push({
- name: orderType,
- params: {
- orderId: orderId
- }
- })
- },
- // 下拉刷新
- onRefresh () {
- setTimeout(() => {
- this.$toast('刷新成功')
- this.isLoading = false
- this.getOrders(this.billStatus)
- }, 1000)
- }
- }
- }
- </script>
- <style lang="less" scoped>
- .orderAll {
- height: 100%;
- // 单个订单
- .wait1,
- .completed1,
- .completed2 {
- border-radius: 7px;
- padding: 10px;
- box-shadow: 2px 2px 10px rgba(121, 118, 116, 0.4);
- margin: 20px 20px;
- }
- }
- </style>
|