IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> crmeb提水订单增加导出xls功能 -> 正文阅读

[开发测试]crmeb提水订单增加导出xls功能

在这里插入图片描述

1、\app\adminapi\controller\v1\export\ExportExcel.php

use app\services\water\OrderServices;
   /**
     * 提水订单导出
     * @param StoreProductServices $services
     * @return mixed
     */
    public function waterOrder(OrderServices $services)
    {
        $where = $this->request->getMore([
            ['status', ''],
            ['real_name', ''],
            ['data', '', '', 'time'],
            ['field_key', ''],
        ]);
        $data = $services->searchList($where, true, false);
        return app('json')->success($this->service->waterOrder($data['list'] ?? []));
    }

2、\app\adminapi\route\export.php

//导出提水订单
Route::get('waterOrder', 'v1.export.ExportExcel/waterOrder')->option(['real_name' => '提水订单导出']);

3、\app\dao\water\WaterOrderDao.php

   /**
     * 条件获取商品列表
     * @param array $where
     * @param int $page
     * @param int $limit
     * @param array|string[] $field
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public function getSearchList(array $where, int $page = 0, int $limit = 0, array $field = ['*'], $with=[])
    {
        // return [];
        $realName = $where['real_name'] ?? '';
        $fieldKey = $where['field_key'] ?? '';
        $fieldKey = $fieldKey == 'all' ? '' : $fieldKey;
    //   var_dump($where);die("444444444444444444");
        return $this->search($where)->field($field)->with(array_merge(['user'], $with))->when($page != 0 && $limit != 0, function ($query) use ($page, $limit) {
            $query->page($page, $limit);
        })
        ->when($realName && $fieldKey && in_array($fieldKey, $this->withField), function ($query) use ($where, $realName, $fieldKey) {
            $query->whereLike(trim($fieldKey), '%' . trim($realName) . '%');
        })->when($realName && !$fieldKey, function ($query) use ($where) {
            $query->whereLike('order_id|real_name', '%' . $where['real_name'] . '%')->whereOr('uid', 'in', function ($q) use ($where) {
                $q->name('user')->whereLike('nickname|uid|phone', '%' . $where['real_name'] . '%')->field(['uid'])->select();
            });
        })
        ->when(!$page && $limit, function ($query) use ($limit) {
            $query->page($limit);
        })->order('add_time DESC,id DESC')->select()->toArray();
    }

    /**
     * 条件获取数量
     * @param array $where
     * @return int
     */
    public function getCount(array $where)
    {
        $realName = $where['real_name'] ?? '';
        $fieldKey = $where['field_key'] ?? '';
        $fieldKey = $fieldKey == 'all' ? '' : $fieldKey;
        return $this->search($where)->with(['user'])
        ->when($realName && $fieldKey && in_array($fieldKey, $this->withField), function ($query) use ($where, $realName, $fieldKey) {
            $query->whereLike(trim($fieldKey), '%' . trim($realName) . '%');
        })->when($realName && !$fieldKey, function ($query) use ($where) {
            $query->whereLike('order_id|real_name', '%' . $where['real_name'] . '%')->whereOr('uid', 'in', function ($q) use ($where) {
                $q->name('user')->whereLike('nickname|uid|phone', '%' . $where['real_name'] . '%')->field(['uid'])->select();
            });
        })->count();
    }

4、\app\services\export\ExportServices.php

 /**
     * 提水订单导出
     * @param $data 导出数据
     */
    public function waterOrder($data = [])
    {
        $export = [];
        if (!empty($data)) {
            foreach ($data as $index => $item) {
                $export[] = [
                    $item['id'],
                    // $item['nickname'].' | '.$item['use_uid'],
                    $item['nickname'],
                    $item['total_num'],
                    $item['real_name'],
                    $item['user_phone'],
                    $item['user_address'],
                    $item['status']==1?'已完成':'待发货',
                    $item['delivery_name'],
                    $item['delivery_id'],
                    $item['add_time'],
                ];
            }
        }
        $header = ['', 'id', '用户昵称', '提水数量', '收货人姓名', '收货人电话', '收货地址', '状态', '快递公司', '快递单号', '创建时间'];
        $title = ['提水订单导出', '订单信息' . time(), ' 生成时间:' . date('Y-m-d H:i:s', time())];
        $filename = '提水订单导出_' . date('YmdHis', time());
        $suffix = 'xlsx';
        $is_save = true;
        return $this->export($header, $title, $export, $filename, $suffix, $is_save);
    }

5、\app\services\water\OrderServices.php

use think\facade\Config;
  /**
     * 获取选择的商品列表
     * @param array $where
     * @return array
     */
    public function searchList(array $where, bool $isStock = false, $is_page = true)
    {   
        
        // $store_stock = sys_config('store_stock');
        // $where['store_stock'] = $store_stock > 0 ? $store_stock : 2;
        $data = $this->getProductList($where, $isStock, $is_page);

        foreach ($data['list'] as &$item) {
            // $item['cate_name'] = implode(',', array_column($cateName, 'cate_name'));
            // $item['give_integral'] = floatval($item['give_integral']);
            // $item['price'] = floatval($item['price']);
            // $item['vip_price'] = floatval($item['vip_price']);
            // $item['ot_price'] = floatval($item['ot_price']);
            // $item['postage'] = floatval($item['postage']);
            // $item['cost'] = floatval($item['cost']);
            // $item['is_product_type'] = 1;
        }
        // var_dump($data);die("3333333333333333333333");
        return $data;
    }
    /**
     * 后台获取商品列表展示
     * @param array $where
     * @return array
     */
    public function getProductList(array $where, bool $isStock = true, $is_page = true)
    {
        $prefix = Config::get('database.connections.' . Config::get('database.default') . '.prefix');
        if ($isStock) {
            $field = [
                '*',
            ];
        } else {
            $field = ['*'];
        }
        [$page, $limit] = $this->getPageValue($is_page);
        $list = $this->dao->getSearchList($where, $page, $limit, $field);
        $count = $this->dao->getCount($where);
        // var_dump($list);die("444444444444444444");
        return compact('count', 'list');
    }

\src\api\water.js

/**
 * @description 商铺产品 -- 导出
 */
export function orderExportApi (data) {
    return request({
        url: `export/waterOrder`,
        method: 'get',
        params: data
    })
}

\src\pages\water\order\index.vue

<Row type="flex">
            <Col v-bind="grid">
				<Button
				  v-auth="['export-storeProduct']"
				  class="export"
				  icon="ios-share-outline"
				  @click="exports"
				  >导出</Button
				>
            </Col>
        </Row>
  import { orderListApi, setShowApi, treeListApi, deliveryApi, orderExportApi } from '@/api/water'
// 导出
	exports() {
		let formValidate = this.artFrom;
		let data = {
			status: formValidate.status,
			real_name: formValidate.real_name,
			data: formValidate.data,
			field_key: formValidate.field_key,
		};
		orderExportApi(data).then((res) => {
			this.$Message.success(res.msg);
			location.href = res.data[0];
	    }).catch((res) => {
			this.$Message.error(res.msg);
	    });
	},
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:20:21  更:2022-04-06 16:20:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 1:23:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码