Przeglądaj źródła

Merge branch 'dev' into 'test'

Dev

See merge request quanshu/mp-ui-pc!230
hunagwb 3 lat temu
rodzic
commit
ba01ecae1b

+ 21 - 0
src/api/business/exchange.js

@@ -0,0 +1,21 @@
+import request from '@/utils/request'
+
+// 用户兑换订单
+export function exchangeOrderList(urlParams,data) {
+  return request({
+    url: '/api/v1/mp/admin/exchange/order/list',
+    method: 'post',
+    urlParams,
+    data
+  })
+}
+
+// 用户兑换订单导出
+export function exchangeOrderExport(data) {
+  return request({
+    url: '/api/v1/mp/admin/exchange/order/export',
+    method: 'post',
+    timeout: 15 * 60 * 1000,
+    data
+  })
+}

+ 205 - 5
src/views/order/exchange/index.vue

@@ -1,13 +1,213 @@
 <template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px" >
+      <el-form-item label="商品名称" prop="goodsName">
+        <el-input v-model="queryParams.goodsName"  placeholder="请输入商品名称" clearable size="small" style="width: 240px" @clear="queryParams.pageNum = 1;handleQuery()" @keyup.enter.native="handleQuery" />
+      </el-form-item>
 
-</template>
+      <el-form-item label="用户手机号" prop="phone">
+        <el-input v-model="queryParams.phone" placeholder="请输入用户手机号" clearable size="small" style="width: 240px" @clear="queryParams.pageNum = 1;handleQuery()" @keyup.enter.native="handleQuery" />
+      </el-form-item>
+
+      <el-form-item label="支付盲豆" prop="minExchangePrice">
+        <el-input v-model="queryParams.minExchangePrice" placeholder="最低数量" @clear="queryParams.pageNum = 1;handleQuery()" clearable @keyup.enter.native="queryParams.pageNum = 1;getList()" />
+      </el-form-item>
+      <el-form-item label="-" prop="maxExchangePrice" label-width="10px">
+        <el-input v-model="queryParams.maxExchangePrice" placeholder="最高数量" @clear="queryParams.pageNum = 1;handleQuery()" clearable @keyup.enter.native="queryParams.pageNum = 1;getList()" />
+      </el-form-item>
+
+      <el-form-item label="下单时间">
+        <el-date-picker @clear="queryParams.pageNum = 1;handleQuery()" v-model="tradeTimeArr" type="datetimerange" size="small" value-format="timestamp" range-separator="至" start-placeholder="时间选择" end-placeholder="时间选择" @change="tardeTime">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <!-- 导出、刷新 -->
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="infor"
+          plain
+          icon="el-icon-download"
+          size="small"
+          @click="handleExportDraw"
+          v-hasPermi="['order:exchange:export']"
+        >导出订单</el-button
+        >
+      </el-col>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
+    </el-row>
 
+    <!-- 列表 -->
+    <el-table ref="table" v-loading="loading" :data="list">
+      <el-table-column label="兑换时间" min-width="100" align="center">
+        <template slot-scope="{ row }">
+          <div>{{ parseTime(row.createdTime) }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品主图" prop="picUrl" min-width="95" align="center">
+        <template slot-scope="{row}">
+          <div v-if="row.picUrl">
+            <el-image
+              style="width: 100px; height: 100px"
+              :src="IMG_URL + row.picUrl.split(',')[0]"
+              :preview-src-list="row.picUrl.split(',').map(item => { return IMG_URL + item })"
+            />
+          </div>
+          <span v-else>-</span>
+        </template>
+      </el-table-column>>
+      <el-table-column label="商品名称" prop="goodsName" min-width="95" align="center" />
+      <el-table-column label="商品规格" prop="sku" min-width="95" align="center" >
+        <template slot-scope="{row}">
+          <div v-if="row.sku">{{row.sku}}</div>
+          <div v-else>--</div>
+        </template>
+
+      </el-table-column>
+      <el-table-column label="单价(盲豆)" prop="exchangePrice" min-width="95" align="center"/>
+      <el-table-column label="兑换数量" prop="num" min-width="60" align="center" />
+      <el-table-column label="支付盲豆数" prop="payPrice" min-width="95" align="center"/>
+      <el-table-column label="用户昵称/手机号" min-width="120" align="center">
+        <template slot-scope="{ row }">
+          <div>{{ row.nickName }}/{{ row.phone }}</div>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="pageParams.pageNum"
+      :limit.sync="pageParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
 <script>
+import { publicFileGetUrl } from "@/api/common"
+import { exchangeOrderList, exchangeOrderExport } from "@/api/business/exchange";
 export default {
-  name: "index"
-}
-</script>
+  name: "exchange",
+  data() {
+    return {
+      IMG_URL: publicFileGetUrl,
+      loading: false,
+      showSearch: true,
+      // 筛选
+      queryParams: {
+        goodsName: "",
+        startTime: "",
+        endTime: "",
+        phone: "",
+        minExchangePrice: "",
+        maxExchangePrice: "",
+      },
+      // 分页
+      pageParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 总条数
+      total: 0,
+      list: [],
+      // 下单时间
+      tradeTimeArr: [],
+      // 订单列表状态
+      state: "null",
+    };
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    // 订单列表
+    getList() {
+      this.loading = true;
+      exchangeOrderList( "pageNum=" + this.pageParams.pageNum + "&pageSize=" + this.pageParams.pageSize + "&",this.queryParams)
+        .then((res) => {
+          this.loading = false;
+          if (res.code == 0) {
+            this.total = res.total;
+            this.list = res.rows;
+          }
+        })
+        .catch(() => {
+          this.loading = false;
+        });
+    },
+
+    //搜索
+    handleQuery() {
+      this.pageParams.pageNum = 1;
+      this.getList();
+    },
+
+    // 重置
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.tradeTimeArr = [];
+      this.pageParams.pageNum = 1;
+      this.queryParams.startTime = "";
+      this.queryParams.endTime = "";
+
+      this.getList();
+    },
 
-<style scoped>
+    // 选择下单时间
+    tardeTime(e) {
+      if (e) {
+        this.queryParams.startTime = e[0];
+        this.queryParams.endTime = e[1];
+        this.handleQuery();
+      } else {
+        this.queryParams.startTime = "";
+        this.queryParams.endTime = "";
+        this.handleQuery();
+      }
+    },
 
+    // 关闭发货弹框
+    close() {
+      this.getList();
+    },
+
+    // 导出订单
+    handleExportDraw() {
+      this.$confirm("是否确认导出订单?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.vloading = this.$loading({
+            lock: true,
+            text: "正在导出订单.....",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+          return exchangeOrderExport(this.queryParams);
+        })
+        .then((response) => {
+          this.vloading.close();
+          this.download(response.msg);
+        })
+        .catch(() => {
+          this.vloading.close();
+        });
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-tabs--border-card > .el-tabs__content {
+  padding: 0;
+}
 </style>

+ 2 - 2
src/views/order/userTicket/detail.vue

@@ -48,7 +48,7 @@
             <div class="txt">{{ info.phone }}</div>
           </div>
           <div class="info-item-content-one">
-            <div class="title">上级渠道商:</div>
+            <div class="title">上级经销商:</div>
             <div class="txt">{{ info.channelName }}</div>
           </div>
         </div>
@@ -178,4 +178,4 @@ export default {
     text-align: center;
   }
 }
-</style>
+</style>