wangxy 1 день назад
Родитель
Сommit
f13eb2a3a0

+ 9 - 0
src/api/hisStore/guCoinOrder.js

@@ -9,6 +9,15 @@ export function listGuCoinOrder(query) {
   })
 }
 
+// 导出谷币订单列表
+export function exportGuCoinOrder(query) {
+  return request({
+    url: '/his/guCoinOrder/export',
+    method: 'get',
+    params: query
+  })
+}
+
 // 查询谷币订单详细
 export function getGuCoinOrder(orderId) {
   return request({

+ 26 - 1
src/views/hisStore/guCoinOrder/index.vue

@@ -42,6 +42,16 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['his:guCoinOrder:export']"
+        >导出</el-button>
+      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -268,7 +278,7 @@
 </template>
 
 <script>
-import { listGuCoinOrder, getGuCoinOrder, updateGuCoinOrder, getGuCoinOrderExpress, syncGuCoinOrderExpress } from "@/api/hisStore/guCoinOrder";
+import { listGuCoinOrder, exportGuCoinOrder, getGuCoinOrder, updateGuCoinOrder, getGuCoinOrderExpress, syncGuCoinOrderExpress } from "@/api/hisStore/guCoinOrder";
 
 export default {
   name: "GuCoinOrder",
@@ -276,6 +286,7 @@ export default {
     return {
       loading: true,
       showSearch: true,
+      exportLoading: false,
       total: 0,
       guCoinOrderList: [],
       detailOpen: false,
@@ -481,6 +492,20 @@ export default {
       }).catch(() => {
         this.editConfirmOpen = false;
       });
+    },
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有谷币订单数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        this.exportLoading = true;
+        return exportGuCoinOrder(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+        this.exportLoading = false;
+      }).catch(() => {});
     }
   }
 };

+ 42 - 13
src/views/store/user/myList.vue

@@ -199,36 +199,36 @@
 
     <el-dialog title="选择订单类型" :visible.sync="orderTypeDialogVisible" width="760px" append-to-body>
       <el-radio-group v-model="selectedOrderType" style="width: 100%;">
-        <el-row :gutter="20">
+        <el-row :gutter="20" type="flex">
           <el-col :span="6">
-            <el-card shadow="hover" :class="{'selected-card': selectedOrderType === 'package'}" @click.native="selectedOrderType = 'package'">
-              <div style="text-align: center; padding: 20px;">
+            <el-card shadow="hover" class="order-type-card" :class="{'selected-card': selectedOrderType === 'package'}" @click.native="selectedOrderType = 'package'">
+              <div class="order-type-content">
                 <i class="el-icon-box" style="font-size: 32px; color: #409EFF;"></i>
-                <div style="margin-top: 10px; font-size: 14px; color: #303133;">套餐包订单</div>
+                <div class="order-type-label">套餐包订单</div>
               </div>
             </el-card>
           </el-col>
           <el-col :span="6">
-            <el-card shadow="hover" :class="{'selected-card': selectedOrderType === 'consultation'}" @click.native="selectedOrderType = 'consultation'">
-              <div style="text-align: center; padding: 20px;">
+            <el-card shadow="hover" class="order-type-card" :class="{'selected-card': selectedOrderType === 'consultation'}" @click.native="selectedOrderType = 'consultation'">
+              <div class="order-type-content">
                 <i class="el-icon-chat-dot-round" style="font-size: 32px; color: #67C23A;"></i>
-                <div style="margin-top: 10px; font-size: 14px; color: #303133;">问诊订单</div>
+                <div class="order-type-label">问诊订单</div>
               </div>
             </el-card>
           </el-col>
           <el-col :span="6">
-            <el-card shadow="hover" :class="{'selected-card': selectedOrderType === 'integral'}" @click.native="selectedOrderType = 'integral'">
-              <div style="text-align: center; padding: 20px;">
+            <el-card shadow="hover" class="order-type-card" :class="{'selected-card': selectedOrderType === 'integral'}" @click.native="selectedOrderType = 'integral'">
+              <div class="order-type-content">
                 <i class="el-icon-coin" style="font-size: 32px; color: #E6A23C;"></i>
-                <div style="margin-top: 10px; font-size: 14px; color: #303133;">积分订单</div>
+                <div class="order-type-label">积分订单</div>
               </div>
             </el-card>
           </el-col>
           <el-col :span="6">
-            <el-card shadow="hover" :class="{'selected-card': selectedOrderType === 'guCoin'}" @click.native="selectedOrderType = 'guCoin'">
-              <div style="text-align: center; padding: 20px;">
+            <el-card shadow="hover" class="order-type-card" :class="{'selected-card': selectedOrderType === 'guCoin'}" @click.native="selectedOrderType = 'guCoin'">
+              <div class="order-type-content">
                 <i class="el-icon-medal" style="font-size: 32px; color: #F56C6C;"></i>
-                <div style="margin-top: 10px; font-size: 14px; color: #303133;">谷养正道积分订单</div>
+                <div class="order-type-label">谷养正道积分订单</div>
               </div>
             </el-card>
           </el-col>
@@ -630,6 +630,35 @@ export default {
 </script>
 
 <style scoped>
+.order-type-card {
+  height: 100%;
+  cursor: pointer;
+}
+.order-type-card >>> .el-card__body {
+  padding: 0;
+  height: 100%;
+}
+.order-type-content {
+  text-align: center;
+  padding: 20px 8px;
+  min-height: 120px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  box-sizing: border-box;
+}
+.order-type-label {
+  margin-top: 10px;
+  font-size: 14px;
+  color: #303133;
+  line-height: 1.4;
+  min-height: 40px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  word-break: break-all;
+}
 .selected-card {
   border-color: #409EFF;
   background-color: #ecf5ff;