Эх сурвалжийг харах

优化文章UI;订单列表UI优化

kevin_zhangl 3 жил өмнө
parent
commit
d1e9e73aa8

BIN
src/assets/user_images/logo-collapse.jpg


BIN
src/assets/user_images/logo-expand.jpg


+ 2 - 0
src/lang/en.js

@@ -254,6 +254,7 @@ export default {
     taxRate: 'Tax Rate',
     taxRate: 'Tax Rate',
     taxAmount: 'Tax',
     taxAmount: 'Tax',
     totalPrice: 'Total Price',
     totalPrice: 'Total Price',
+    totalBV: 'Total BV',
     orderCode: 'Order Code',
     orderCode: 'Order Code',
     orderType: 'Order Type',
     orderType: 'Order Type',
     decCode: 'Dec Code',
     decCode: 'Dec Code',
@@ -275,6 +276,7 @@ export default {
     paid: 'Paid',
     paid: 'Paid',
     goBack: 'Go Back',
     goBack: 'Go Back',
     goPay: 'Pay',
     goPay: 'Pay',
+    orderDetail: 'Order Detail',
   },
   },
 
 
   user: {
   user: {

+ 4 - 2
src/lang/zh.js

@@ -217,8 +217,8 @@ export default {
     articleNotification: '系统通知'
     articleNotification: '系统通知'
   },
   },
   currency: {
   currency: {
-    unit: '',
-    sign: '',
+    unit: '奈拉',
+    sign: '',
     naira: 'NGN',
     naira: 'NGN',
   },
   },
   common: {
   common: {
@@ -252,6 +252,7 @@ export default {
     taxRate: '税率',
     taxRate: '税率',
     taxAmount: '税额',
     taxAmount: '税额',
     totalPrice: '商品总价',
     totalPrice: '商品总价',
+    totalBV: '合计BV',
     orderCode: '订单编号',
     orderCode: '订单编号',
     orderType: '订单类型',
     orderType: '订单类型',
     decCode: '报单编号',
     decCode: '报单编号',
@@ -273,6 +274,7 @@ export default {
     paid: '已支付',
     paid: '已支付',
     goBack: '返回',
     goBack: '返回',
     goPay: '支付',
     goPay: '支付',
+    orderDetail: '订单详情',
   },
   },
   user: {
   user: {
     email: '电子邮箱'
     email: '电子邮箱'

+ 3 - 3
src/layout/components/Sidebar/Logo.vue

@@ -2,11 +2,11 @@
   <div class="sidebar-logo-container" :class="{'collapse':collapse}">
   <div class="sidebar-logo-container" :class="{'collapse':collapse}">
     <transition name="sidebarLogoFade">
     <transition name="sidebarLogoFade">
       <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
       <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
-        <img v-if="logo" :src="logo" class="sidebar-logo">
+        <img v-if="logo" src="@/assets/user_images/logo-collapse.jpg" class="sidebar-logo">
         <h1 v-else class="sidebar-title">{{ title }} </h1>
         <h1 v-else class="sidebar-title">{{ title }} </h1>
       </router-link>
       </router-link>
       <router-link v-else key="expand" class="sidebar-logo-link" to="/">
       <router-link v-else key="expand" class="sidebar-logo-link" to="/">
-        <img v-if="logo" :src="logo" class="sidebar-logo">
+        <img v-if="logo" src="@/assets/user_images/logo-expand.jpg" class="sidebar-logo">
         <h1 class="sidebar-title">{{ title }} </h1>
         <h1 class="sidebar-title">{{ title }} </h1>
       </router-link>
       </router-link>
     </transition>
     </transition>
@@ -25,7 +25,7 @@ export default {
   data() {
   data() {
     return {
     return {
       title: 'Member Management System',
       title: 'Member Management System',
-      logo: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png'
+      logo: true,
     }
     }
   }
   }
 }
 }

+ 1 - 3
src/layout/index.vue

@@ -5,7 +5,6 @@
     <div :class="{hasTagsView:needTagsView}" class="main-container">
     <div :class="{hasTagsView:needTagsView}" class="main-container">
       <div :class="{'fixed-header':fixedHeader}">
       <div :class="{'fixed-header':fixedHeader}">
         <navbar />
         <navbar />
-        <tags-view v-if="needTagsView" />
       </div>
       </div>
       <app-main />
       <app-main />
       <right-panel v-if="showSettings">
       <right-panel v-if="showSettings">
@@ -17,7 +16,7 @@
 
 
 <script>
 <script>
 import RightPanel from '@/components/RightPanel'
 import RightPanel from '@/components/RightPanel'
-import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'
+import { AppMain, Navbar, Settings, Sidebar } from './components'
 import ResizeMixin from './mixin/ResizeHandler'
 import ResizeMixin from './mixin/ResizeHandler'
 import { mapState } from 'vuex'
 import { mapState } from 'vuex'
 
 
@@ -29,7 +28,6 @@ export default {
     RightPanel,
     RightPanel,
     Settings,
     Settings,
     Sidebar,
     Sidebar,
-    TagsView
   },
   },
   mixins: [ResizeMixin],
   mixins: [ResizeMixin],
   computed: {
   computed: {

+ 14 - 14
src/router/index.js

@@ -95,20 +95,20 @@ export const constantRoutes = [
         meta: { title: 'dashboard', icon: 'dashboard', affix: true }
         meta: { title: 'dashboard', icon: 'dashboard', affix: true }
       }
       }
     ]
     ]
-  }
-  // {
-  //   path: '/dashboard/index',
-  //   component: Layout,
-  //   redirect: '/dashboard',
-  //   children: [
-  //     {
-  //       path: 'dashboard',
-  //       component: () => import('@/views/dashboard/index'),
-  //       name: 'Dashboard',
-  //       meta: { title: 'dashboard', icon: 'dashboard', affix: true }
-  //     }
-  //   ]
-  // },
+  },
+  {
+    path: '/dashboard/index',
+    component: Layout,
+    redirect: '/dashboard',
+    children: [
+      {
+        path: 'dashboard',
+        component: () => import('@/views/dashboard/index'),
+        name: 'Dashboard',
+        meta: { title: 'dashboard', icon: 'dashboard', affix: true }
+      }
+    ]
+  },
   // {
   // {
   //   path: '/documentation',
   //   path: '/documentation',
   //   component: Layout,
   //   component: Layout,

+ 22 - 1
src/utils/index.js

@@ -401,5 +401,26 @@ export function getScreenWidth() {
  * @returns {number}
  * @returns {number}
  */
  */
 export function getScreenHeight() {
 export function getScreenHeight() {
-  return window.screen.height * window.devicePixelRatio
+  // return window.screen.height * window.devicePixelRatio
+  return window.screen.height
 }
 }
+
+/**
+ * 金额千分符
+ * @param amount
+ * @returns {string}
+ */
+export function formatAmount(amount) {
+  amount = parseFloat(amount)
+  if (amount === 0.00) {
+    return '0';
+  }
+
+  amount = String(amount);
+  let left = amount.split('.')[0]
+  let right = amount.split('.')[1]
+  right = right ? '.' + right : ''
+  let temp = left.split('').reverse().join('').match(/(\d{1,3})/g)
+  return (Number(amount) < 0 ? '-' : '') + temp.join(',').split('').reverse().join('') + right
+}
+

+ 2 - 2
src/views/article/article-list.vue

@@ -28,8 +28,8 @@
 
 
     <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
     <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
 
 
-		<el-dialog :title="article.TITLE" :visible.sync="dialog" :width="screenWidth" v-loading="loading" center style="margin-top: -70px;">
-			<div class="white-box" style="text-align: center;">
+		<el-dialog title="" :visible.sync="dialog" :width="screenWidth" v-loading="loading" center style="margin-top: -80px;">
+			<div class="white-box" style="text-align: center; margin-top: -20px;">
 				<div class="white-box-title">
 				<div class="white-box-title">
 					<h1>{{ article.TITLE }}</h1>
 					<h1>{{ article.TITLE }}</h1>
 					<span>{{ article.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
 					<span>{{ article.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>

+ 7 - 9
src/views/dashboard/admin/index.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <div class="dashboard-editor-container">
+  <div class="dashboard-editor-container" v-loading="loading">
     <!-- <github-corner class="github-corner" /> -->
     <!-- <github-corner class="github-corner" /> -->
     <el-row  class="system-carousel">
     <el-row  class="system-carousel">
       <el-carousel trigger="click" indicator-position="none" :height="bannerHeight+'px'" style="max-height:350px;">
       <el-carousel trigger="click" indicator-position="none" :height="bannerHeight+'px'" style="max-height:350px;">
@@ -10,15 +10,15 @@
           </router-link>
           </router-link>
           </template>
           </template>
           <template v-else>
           <template v-else>
-            <router-link :to="`/article/detail/${item.CONTENT}`" target="_blank" class="islide">
-            <img ref="bannerHeight"  @load="imgLoad"  :src="imageArticle(item.IMAGE)" alt="" >
-          </router-link>
+						<router-link to="#" target="_self" class="islide">
+							<img ref="bannerHeight" @load="imgLoad" :src="imageArticle(item.IMAGE)" alt="" @click="handleArticle(item.CONTENT)" >
+						</router-link>
           </template>
           </template>
         </el-carousel-item>
         </el-carousel-item>
       </el-carousel>
       </el-carousel>
     </el-row>
     </el-row>
     <panel-group @handleSetLineChartData="handleSetLineChartData" :rmBv="rmBv" :endTime="endTime" :heightEmpLv='heightEmpLv' :heightCrownLv='heightCrownLv' :decLv="decLv" :key="num" :cycle="cycle" />
     <panel-group @handleSetLineChartData="handleSetLineChartData" :rmBv="rmBv" :endTime="endTime" :heightEmpLv='heightEmpLv' :heightCrownLv='heightCrownLv' :decLv="decLv" :key="num" :cycle="cycle" />
-    <el-row :gutter="40">
+    <el-row :gutter="40" v-loading="loading">
       <el-col :xs="24" :sm="24" :lg="12" v-for="(item,key) in news" :key="key">
       <el-col :xs="24" :sm="24" :lg="12" v-for="(item,key) in news" :key="key">
         <el-card class="box-card">
         <el-card class="box-card">
 					<el-table :data="item.LISTS" lazy stripe fit highlight-current-row>
 					<el-table :data="item.LISTS" lazy stripe fit highlight-current-row>
@@ -55,8 +55,8 @@
       </el-col>
       </el-col>
     </el-row> -->
     </el-row> -->
 
 
-		<el-dialog :title="article.TITLE" :visible.sync="dialog" :width="screenWidth" v-loading="loading" center style="margin-top: -70px;">
-			<div class="white-box" style="text-align: center;">
+		<el-dialog title="" :visible.sync="dialog" :width="screenWidth" center style="margin-top: -80px;">
+			<div class="white-box" style="text-align: center; margin-top: -20px;">
 				<div class="white-box-title">
 				<div class="white-box-title">
 					<h1>{{ article.TITLE }}</h1>
 					<h1>{{ article.TITLE }}</h1>
 					<span>{{ article.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
 					<span>{{ article.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
@@ -173,11 +173,9 @@ export default {
     },
     },
 		handleArticle(id) {
 		handleArticle(id) {
 			this.loading = true
 			this.loading = true
-			this.listLoading = true
 			fetchArticleOne(id).then(response => {
 			fetchArticleOne(id).then(response => {
 				this.article = response.data
 				this.article = response.data
 				this.dialog = true
 				this.dialog = true
-				this.listLoading = false
 				setTimeout(() => {
 				setTimeout(() => {
 					this.loading = false
 					this.loading = false
 				}, 0.5 * 1000)
 				}, 0.5 * 1000)

+ 3 - 3
src/views/shop/car-fund-products.vue

@@ -4,7 +4,6 @@
 			:key="tableKey"
 			:key="tableKey"
 			v-loading="listLoading"
 			v-loading="listLoading"
 			:data="tableData"
 			:data="tableData"
-			border
 			fit
 			fit
 			highlight-current-row
 			highlight-current-row
 			style="width: 100%;"
 			style="width: 100%;"
@@ -12,6 +11,7 @@
 			@selection-change="handleSelectionChange"
 			@selection-change="handleSelectionChange"
 		>
 		>
 			<el-table-column type="selection" width="70" align="center"></el-table-column>
 			<el-table-column type="selection" width="70" align="center"></el-table-column>
+			<el-table-column align="center" type="index" width="50"></el-table-column>
 			<el-table-column :label="$t('shop.productName')" align="center" prop="GOODS_NAME">
 			<el-table-column :label="$t('shop.productName')" align="center" prop="GOODS_NAME">
 				<template slot-scope="{row}">
 				<template slot-scope="{row}">
 					<span>{{ row.GOODS_NAME }}</span>
 					<span>{{ row.GOODS_NAME }}</span>
@@ -49,7 +49,7 @@
 			</el-table-column>
 			</el-table-column>
 			<el-table-column :label="$t('shop.inventory')" min-width="90" align="center">
 			<el-table-column :label="$t('shop.inventory')" min-width="90" align="center">
 				<template slot-scope="scope">
 				<template slot-scope="scope">
-					<el-input-number size="mini" v-model="storeNums[scope.$index]" :min="0" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
+					<el-input-number size="mini" v-model="storeNums[scope.$index]" :min="1" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
 				</template>
 				</template>
 			</el-table-column>
 			</el-table-column>
 		</el-table>
 		</el-table>
@@ -104,7 +104,7 @@ export default {
 			listQuery: {
 			listQuery: {
 				categoryType: 5,
 				categoryType: 5,
 				page: 1,
 				page: 1,
-				limit: 20,
+				limit: 50,
 			},
 			},
 			tool: tool,
 			tool: tool,
 			multipleSelection: [],
 			multipleSelection: [],

+ 92 - 154
src/views/shop/order-list.vue

@@ -1,123 +1,91 @@
 <template>
 <template>
   <div class="app-container">
   <div class="app-container">
     <el-table
     <el-table
-      :key="tableKey"
       v-loading="listLoading"
       v-loading="listLoading"
-      :data="list"
-      border
-      fit
-      highlight-current-row
-      style="width: 100%;"
-      :span-method="objectSpanMethod"
+			fit
+			lazy
+			highlight-current-row
+			:data="tableData"
     >
     >
-      <el-table-column width="130px" align="center" :label="$t('shop.productCode')" prop="SKU_CODE">
-        <template slot-scope="{row}">
-          <span>{{ row.SKU_CODE }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="250px" align="center" :label="$t('shop.productName')" prop="GOODS_TITLE">
-        <template slot-scope="{row}">
-          <span style="height: auto; display:-webkit-box; overflow: hidden; text-overflow: ellipsis; -webkit-box-orient:vertical; -webkit-line-clamp:1;">
-						{{ row.GOODS_TITLE }}
-					</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="130px" align="center" :label="$t('shop.orderType')" prop="ORDER_TYPE">
-        <template slot-scope="{row}">
-          <span>{{ row.ORDER_TYPE }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="120px" align="center" :label="$t('shop.productBV')" prop="REAL_PV">
-        <template slot-scope="{row}">
-          <span>{{ row | bvFilter }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="120px" align="center" :label="$t('shop.productPrice')" prop="REAL_PRICE">
-        <template slot-scope="{row}">
-          <span>{{ row.REAL_PRICE }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="80px" align="center" :label="$t('shop.qty')" prop="BUY_NUMS">
-        <template slot-scope="{row}">
-          <span>{{ row.BUY_NUMS }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="120px" align="center" :label="$t('shop.totalPrice')" prop="TOTAL_AMOUNT">
-        <template slot-scope="{row}">
-          <span>{{ row.TOTAL_AMOUNT }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="80px" align="center" :label="$t('shop.taxRate')" prop="TAX_RATE">
-        <template slot-scope="{row}">
-          <span>{{ row.TAX_RATE / 100 }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="120px" align="center" :label="$t('shop.taxAmount')" prop="TAX_AMOUNT">
-        <template slot-scope="{row}">
-          <span>{{ row.TAX_AMOUNT }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="200px" align="center" :label="$t('shop.orderCode')" prop="SN">
-        <template slot-scope="{row}">
-          <span>{{ row.SN }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="230px" align="center" :label="$t('shop.memberCode')" prop="USER_NAME">
-        <template slot-scope="{row}">
-          <span>{{ row.USER_NAME }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="230px" align="center" :label="$t('shop.memberName')" prop="REAL_NAME">
-        <template slot-scope="{row}">
-          <span>{{ row.REAL_NAME }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="130px" align="center" :label="$t('shop.recipientName')" prop="CONSIGNEE">
-        <template slot-scope="{row}">
-          <span>{{ row.CONSIGNEE }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="130px" align="center" :label="$t('shop.phoneNumber')" prop="MOBILE">
-        <template slot-scope="{row}">
-          <span>{{ row.MOBILE }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="150px" align="center" :label="$t('shop.shippingAddress')" prop="FULL_ADDRESS">
-        <template slot-scope="{row}">
-          <span>{{ row.FULL_ADDRESS }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="130px" align="center" :label="$t('shop.payment')" prop="PAY_TYPE">
-        <template slot-scope="{row}">
-          <span>{{ row.PAY_TYPE }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="150px" align="center" :label="$t('shop.createdTime')" prop="CREATED_AT">
+			<el-table-column type="expand">
+				<template slot-scope="props">
+					<el-col :xs="24" :sm="24" :lg="24">
+						<el-card class="box-card" shadow="hover">
+							<el-table v-loading="listLoading" fit lazy highlight-current-row :data="props.row.hasChildren">
+								<el-table-column align="center" :label="$t('shop.productCode')" prop="SKU_CODE"></el-table-column >
+								<el-table-column align="center" :label="$t('shop.productName')" prop="GOODS_TITLE"></el-table-column >
+								<el-table-column align="center" :label="$t('shop.qty')" prop="BUY_NUMS"></el-table-column >
+								<el-table-column align="center" :label="$t('shop.productPrice')">
+									<template slot-scope="{row}">
+										{{ $t('currency.sign') }} {{ row.REAL_PRICE | amountFilter }}
+									</template>
+								</el-table-column >
+								<el-table-column align="center" :label="$t('shop.totalPrice')">
+									<template slot-scope="{row}">
+										{{ $t('currency.sign') }} {{ row | priceAmountFilter | amountFilter }}
+									</template>
+								</el-table-column >
+								<el-table-column align="center" :label="$t('shop.totalBV')">
+									<template slot-scope="{row}">
+										{{ row | bvFilter | amountFilter }}
+									</template>
+								</el-table-column >
+								<el-table-column align="center" :label="$t('shop.taxRate')">
+									<template slot-scope="{row}">
+										{{ row.TAX_RATE / 100 }}
+									</template>
+								</el-table-column >
+								<el-table-column align="center" :label="$t('shop.taxAmount')">
+									<template slot-scope="{row}">
+										{{ $t('currency.sign') }} {{ row | taxAmountFilter | amountFilter }}
+									</template>
+								</el-table-column >
+							</el-table>
+						</el-card>
+					</el-col>
+				</template>
+			</el-table-column>
+      <el-table-column align="center" :label="$t('shop.orderCode')" prop="SN" min-width="120px" style="white-space: pre-wrap;">
+				<template slot-scope="{row}">
+					<span style="white-space: pre-wrap; display: inline-block; min-width: 120px; word-break: break-all;">{{ row.SN }}</span>
+				</template>
+			</el-table-column>
+      <el-table-column align="center" :label="$t('shop.memberCode')" prop="USER_NAME" min-width="150px"></el-table-column>
+      <el-table-column align="center" :label="$t('shop.memberName')" prop="REAL_NAME" min-width="150px"></el-table-column>
+      <el-table-column align="center" :label="$t('shop.recipientName')" prop="CONSIGNEE" min-width="140px"></el-table-column>
+      <el-table-column align="center" :label="$t('shop.phoneNumber')" prop="MOBILE" min-width="130px"></el-table-column>
+      <el-table-column align="center" :label="$t('shop.shippingAddress')" prop="FULL_ADDRESS" min-width="140px">
+				<template slot-scope="{row}">
+					<span>{{ row.FULL_ADDRESS }}</span>
+				</template>
+			</el-table-column>
+      <el-table-column align="center" :label="$t('shop.payment')" prop="PAY_TYPE" min-width="100px"></el-table-column>
+      <el-table-column align="center" :label="$t('shop.createdTime')" prop="CREATED_AT" min-width="110px">
         <template slot-scope="{row}">
         <template slot-scope="{row}">
           <span>{{ row.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
           <span>{{ row.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column width="150px" align="center" :label="$t('shop.payTime')" prop="PAY_AT">
+      <el-table-column align="center" :label="$t('shop.payTime')" prop="PAY_AT" min-width="110px">
         <template slot-scope="{row}">
         <template slot-scope="{row}">
           <span>{{ row.PAY_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
           <span>{{ row.PAY_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column class-name="status-col" align="center" width="100" :label="$t('shop.payStatus')" prop="STATUS">
+      <el-table-column align="center" :label="$t('shop.payStatus')" prop="STATUS" min-width="110px">
         <template slot-scope="{row}">
         <template slot-scope="{row}">
           <el-tag :type="row.STATUS | statusFilter">
           <el-tag :type="row.STATUS | statusFilter">
             {{ row.STATUS }}
             {{ row.STATUS }}
           </el-tag>
           </el-tag>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-
-      <el-table-column width="100px" align="center" :label="$t('shop.action')" class-name="small-padding fixed-width">
+			<el-table-column align="center" :label="$t('shop.orderType')" prop="ORDER_TYPE" min-width="110px"></el-table-column>
+      <el-table-column align="center" :label="$t('shop.action')" class-name="small-padding fixed-width">
         <template slot-scope="{row}">
         <template slot-scope="{row}">
-          <el-button type="primary" size="mini" @click="handleDownload(row.SN)">{{ $t('shop.download') }}</el-button>
+          <el-button type="text" size="mini" @click="handleDownload(row.SN)">{{ $t('shop.download') }}</el-button>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
 
 
-    <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
+    <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
   </div>
   </div>
 </template>
 </template>
 
 
@@ -126,6 +94,7 @@ import {downloadOrder, fetchOrderList} from '@/api/shop'
 import waves from '@/directive/waves'
 import waves from '@/directive/waves'
 import tool from '@/utils/tool'
 import tool from '@/utils/tool'
 import Pagination from '@/components/Pagination'
 import Pagination from '@/components/Pagination'
+import {formatAmount, getScreenWidth} from "@/utils"
 
 
 export default {
 export default {
   name: 'orderList',
   name: 'orderList',
@@ -136,8 +105,14 @@ export default {
       return tool.calculateBV(row.REAL_PV, row.BUY_NUMS)
       return tool.calculateBV(row.REAL_PV, row.BUY_NUMS)
     },
     },
     taxAmountFilter(row) {
     taxAmountFilter(row) {
-      return tool.calculateTax(row.REAL_PV, row.BUY_NUMS)
+      return tool.calculateTax(row.REAL_PRICE, row.BUY_NUMS)
     },
     },
+		priceAmountFilter(row) {
+			return tool.formatPrice(row.REAL_PRICE, row.BUY_NUMS)
+		},
+		amountFilter(amount) {
+			return formatAmount(amount)
+		},
     statusFilter(status) {
     statusFilter(status) {
       const statusMap = {
       const statusMap = {
         Unpaid: 'info',
         Unpaid: 'info',
@@ -149,38 +124,32 @@ export default {
   data() {
   data() {
     return {
     return {
       tableKey: 0,
       tableKey: 0,
-      list: null,
-      tableData: null,
-      total: 0,
+			total: 0,
+      tableData: [],
       listLoading: true,
       listLoading: true,
       downloadLoading: false,
       downloadLoading: false,
       listQuery: {
       listQuery: {
         page: 1,
         page: 1,
         pageSize: 20
         pageSize: 20
       },
       },
-      spanArr: [],
-      pos: 0
+			childrenNode: [],
+			screenWidth: getScreenWidth() > 600 ? '500px' : getScreenWidth() + 'px',
+			labelPosition: getScreenWidth() > 600 ? 'right' : 'top',
     }
     }
   },
   },
   created() {
   created() {
-    // 列表查询
     this.getList()
     this.getList()
   },
   },
   methods: {
   methods: {
     getList() {
     getList() {
       this.listLoading = true
       this.listLoading = true
       fetchOrderList(this.listQuery).then(response => {
       fetchOrderList(this.listQuery).then(response => {
-        this.list = response.data.list
-        this.total = response.data.totalCount
-        const settingObj = this.list
-				this.tableData = Object.keys(this.list).map(key => {
-					return settingObj[key]
-				})
-        this.getSpanArr(this.tableData)
+        this.tableData = response.data.list
+        this.total = +response.data.totalCount
 
 
         setTimeout(() => {
         setTimeout(() => {
           this.listLoading = false
           this.listLoading = false
-        }, 1.5 * 1000)
+        }, 0.5 * 1000)
       })
       })
     },
     },
     handleDownload(orderSn) {
     handleDownload(orderSn) {
@@ -196,49 +165,18 @@ export default {
 
 
       this.downloadLoading = false
       this.downloadLoading = false
     },
     },
-    objectSpanMethod(obj) {
-      if (obj.columnIndex > 8) {
-        const _row = this.spanArr[obj.rowIndex]
-        const _col = _row > 0 ? 1 : 0
-        return {
-          rowspan: _row,
-          colspan: _col
-        }
-      } else {
-        return false
-      }
-    },
-    getSpanArr(orderList) {
-      this.pos = 0
-      orderList.forEach((item, index) => {
-        // 判断是否是第⼀项
-        if (index === 0) {
-          this.spanArr.push(1)
-          this.pos = 0
-        } else {
-          // 不是第⼀项时,就根据标识去存储
-          if (
-            orderList[index].ORDER_SN === orderList[index - 1].ORDER_SN &&
-							orderList[index].USER_NAME === orderList[index - 1].USER_NAME &&
-							orderList[index].REAL_NAME === orderList[index - 1].REAL_NAME &&
-							orderList[index].CONSIGNEE === orderList[index - 1].CONSIGNEE &&
-							orderList[index].MOBILE === orderList[index - 1].MOBILE &&
-							orderList[index].PAY_AT === orderList[index - 1].PAY_AT &&
-							orderList[index].STATUS === orderList[index - 1].STATUS &&
-							orderList[index].PAY_TYPE === orderList[index - 1].PAY_TYPE &&
-							orderList[index].CREATED_AT === orderList[index - 1].CREATED_AT
-          ) {
-            // 查找到符合条件的数据时每次要把之前存储的数据+1
-            this.spanArr[this.pos] += 1
-            this.spanArr.push(0)
-          } else {
-            // 没有符合的数据时,要记住当前的index
-            this.spanArr.push(1)
-            this.pos = index
-          }
-        }
-      })
-    }
   }
   }
 }
 }
 </script>
 </script>
+
+<style>
+.el-table th.el-table__cell > .cell {
+	/*word-break: keep-all;*/
+	white-space: nowrap;
+}
+
+.el-table td.el-table__cell > .cell {
+	word-break: keep-all;
+	white-space: pre-wrap;
+}
+</style>

+ 42 - 48
src/views/shop/shopping-cart.vue

@@ -29,23 +29,12 @@
 							<span>{{ row.tax_amount_plus }}</span>
 							<span>{{ row.tax_amount_plus }}</span>
 					</template>
 					</template>
 				</el-table-column>
 				</el-table-column>
-				<el-table-column :label="$t('shop.qty')" min-width="90" align="center" prop="chose_num">
-					<template slot-scope="{row, $index}">
-						<el-input-number size="mini" v-model="storeNums[$index]" :min="0" :max="Number(row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, row)}"></el-input-number>
-					</template>
-				</el-table-column>
 				<el-table-column :label="$t('shop.totalPrice')" prop="member_price_plus" align="center">
 				<el-table-column :label="$t('shop.totalPrice')" prop="member_price_plus" align="center">
 					<template slot-scope="{row}">
 					<template slot-scope="{row}">
 						<span>{{ row.member_price_plus }}</span>
 						<span>{{ row.member_price_plus }}</span>
 					</template>
 					</template>
 				</el-table-column>
 				</el-table-column>
-				<el-table-column :label="$t('table.actions')" align="center" width="230" class-name="small-padding fixed-width">
-					<template slot-scope="{row, $index}">
-						<el-button type="danger" size="small" plain @click="handleDelete(row, $index)">{{ $t('common.delete') }}</el-button>
-					</template>
-				</el-table-column>
 			</el-table>
 			</el-table>
-
 				<div style="margin-top: 25px; margin-left: 15px;">
 				<div style="margin-top: 25px; margin-left: 15px;">
 					<el-button type="warning"  size="small" @click="cancelOrder()">{{ $t('shop.goBack') }}</el-button>
 					<el-button type="warning"  size="small" @click="cancelOrder()">{{ $t('shop.goBack') }}</el-button>
 					<el-button type="primary" size="small" @click="goToAccounts()">{{ $t('shop.goPay') }}</el-button>
 					<el-button type="primary" size="small" @click="goToAccounts()">{{ $t('shop.goPay') }}</el-button>
@@ -99,15 +88,15 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { fetchProductList, fetchProduct } from '@/api/shop'
-import waves from '@/directive/waves'
-import { parseTime } from '@/utils'
 import tool from '@/utils/tool'
 import tool from '@/utils/tool'
 import usersInfo from "@/utils/usersInfo"
 import usersInfo from "@/utils/usersInfo"
 import paystack from 'vue-paystack'
 import paystack from 'vue-paystack'
 
 
 export default{
 export default{
 	name: 'shoppingCart',
 	name: 'shoppingCart',
+	components: {
+		paystack
+	},
 	data: function () {
 	data: function () {
 		return {
 		return {
 			tool: tool,
 			tool: tool,
@@ -167,9 +156,6 @@ export default{
 			all_address: [],
 			all_address: [],
 		}
 		}
 	},
 	},
-	components: {
-		paystack
-	},
 	created() {
 	created() {
 		// 加载sessionStorage中推送的商品
 		// 加载sessionStorage中推送的商品
 		let orderGoodsQueue = sessionStorage.getItem('orderGoodsQueue')
 		let orderGoodsQueue = sessionStorage.getItem('orderGoodsQueue')
@@ -214,38 +200,46 @@ export default{
 		}
 		}
 	},
 	},
 	methods: {
 	methods: {
-			// 取消订单
-			cancelOrder() {
-					history.go(-1)
-			},
-			// 设置运费
-			setFreight() {
-					// 如果地址为自提,则运费为0
-					this.pointFreight = (this.addressId === '100000000000000000') ? Number(0) : Number(this.freight);
-			},
-			// 表格合并
-			getSummaries(param) {
-					const { columns, data } = param;
-					const sums = [];
-					columns.forEach((column, index) => {
-							if (index === 0) {
-									sums[index] = 'Total'; // 合计
-									return;
-							}
-							const values = data.map(item => Number(item[column.property]));
-							if ((!values.every(value => isNaN(value))) && [4, 5, 6].includes(index)) {
-									sums[index] = values.reduce((prev, curr) => {
-											const value = Number(curr);
-											if (!isNaN(value)) {
-													return Math.round((prev + curr) * 100) / 100;
-											} else {
-													return Math.round(prev * 100) / 100;
-											}
-									}, 0);
-							}
-					});
+		// 取消订单
+		cancelOrder() {
+			let orderGoodsQueue = sessionStorage.getItem('orderGoodsQueue')
+			// 加载sessionStorage中推送的商品类型
+			let categoryType = sessionStorage.getItem('categoryType')
+			// 判断是否展示BV(车奖、房奖不展示BV)
+			this.$data.displayBV = ['5', '6'].includes(categoryType)
+			// 清空已选择商品
+			sessionStorage.removeItem('orderGoodsQueue')
+			// 退回到商品列表
+			history.go(-1)
+		},
+		// 设置运费
+		setFreight() {
+			// 如果地址为自提,则运费为0
+			this.pointFreight = (this.addressId === '100000000000000000') ? Number(0) : Number(this.freight);
+		},
+		// 表格合并
+		getSummaries(param) {
+			const {columns, data} = param
+			const sums = [];
+			columns.forEach((column, index) => {
+				if (index === 0) {
+					sums[index] = 'Total'; // 合计
+					return;
+				}
+				const values = data.map(item => Number(item[column.property]));
+				if ((!values.every(value => isNaN(value))) && [4, 5, 6].includes(index)) {
+					sums[index] = values.reduce((prev, curr) => {
+						const value = Number(curr);
+						if (!isNaN(value)) {
+								return Math.round((prev + curr) * 100) / 100;
+						} else {
+								return Math.round(prev * 100) / 100;
+						}
+					}, 0);
+				}
+			});
 
 
-					return sums;
+			return sums;
 			},
 			},
 			// 支付
 			// 支付
 			goToAccounts() {
 			goToAccounts() {

+ 20 - 16
src/views/shop/standard-products.vue

@@ -4,7 +4,6 @@
     :key="tableKey"
     :key="tableKey"
     v-loading="listLoading"
     v-loading="listLoading"
     :data="tableData"
     :data="tableData"
-    border
     fit
     fit
     highlight-current-row
     highlight-current-row
     style="width: 100%;"
     style="width: 100%;"
@@ -12,6 +11,7 @@
 		@selection-change="handleSelectionChange"
 		@selection-change="handleSelectionChange"
   >
   >
 		<el-table-column type="selection" width="70" align="center"></el-table-column>
 		<el-table-column type="selection" width="70" align="center"></el-table-column>
+		<el-table-column align="center" type="index" width="50"></el-table-column>
     <el-table-column :label="$t('shop.productName')" align="center" prop="GOODS_NAME">
     <el-table-column :label="$t('shop.productName')" align="center" prop="GOODS_NAME">
       <template slot-scope="{row}">
       <template slot-scope="{row}">
         <span>{{ row.GOODS_NAME }}</span>
         <span>{{ row.GOODS_NAME }}</span>
@@ -54,14 +54,14 @@
     </el-table-column>
     </el-table-column>
 		<el-table-column :label="$t('shop.qty')" min-width="90" align="center">
 		<el-table-column :label="$t('shop.qty')" min-width="90" align="center">
 			<template slot-scope="scope">
 			<template slot-scope="scope">
-				<el-input-number size="mini" v-model="storeNums[scope.$index]" :min="0" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
+				<el-input-number size="mini" v-model="storeNums[scope.$index]" :min="1" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
 			</template>
 			</template>
 		</el-table-column>
 		</el-table-column>
   </el-table>
   </el-table>
 
 
 	<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
 	<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
 
 
-	<div class="white-box-footer" v-show="display" style="margin-top: 15px;">
+	<div class="white-box-footer" style="margin-top: 15px;">
 		<div class="flex data" style="float: left; display: inline-block; margin-top: 20px;">
 		<div class="flex data" style="float: left; display: inline-block; margin-top: 20px;">
 			<el-button type="primary" size="small" @click="settlement()" style="float: left;">{{ $t('shop.checkOut') }}</el-button>
 			<el-button type="primary" size="small" @click="settlement()" style="float: left;">{{ $t('shop.checkOut') }}</el-button>
 		</div>
 		</div>
@@ -110,7 +110,7 @@
         listQuery: {
         listQuery: {
 					categoryType: 1,
 					categoryType: 1,
           page: 1,
           page: 1,
-          limit: 20,
+          limit: 50,
         },
         },
 				tool: tool,
 				tool: tool,
 				multipleSelection: [],
 				multipleSelection: [],
@@ -162,6 +162,7 @@
       },
       },
 			// 选择商品计数
 			// 选择商品计数
 			handleInputNumber(val, row){
 			handleInputNumber(val, row){
+				console.log(val, row)
 				let pageList = this.multipleSelection[this.currentPage]
 				let pageList = this.multipleSelection[this.currentPage]
 				let selectStatus = false
 				let selectStatus = false
 				for (let i in pageList) {
 				for (let i in pageList) {
@@ -171,7 +172,7 @@
 						break
 						break
 					}
 					}
 				}
 				}
-
+				console.log('selectStatus', selectStatus)
 				if (selectStatus) {
 				if (selectStatus) {
 					this.multipleSelection[this.currentPage] = pageList
 					this.multipleSelection[this.currentPage] = pageList
 					this.handleSureChange()
 					this.handleSureChange()
@@ -197,19 +198,22 @@
 					this.display = true
 					this.display = true
 				}
 				}
 			},
 			},
-			handleSelectionChange(val) {
-				let idx = -1, num
-				for (let i in this.tableData) {
-					for (let v in val) {
-						if (val[v].ID === this.tableData[i].ID) {
-							idx = i
-							num = this.storeNums[idx]
-							val[v]["chose_num"] = num
-							break
+			handleSelectionChange(ele) {
+				this.multipleSelection.length = 0
+				if (ele.length > 0) {
+					let idx = -1, num
+					for (let i in this.tableData) {
+						for (let v in ele) {
+							if (ele[v].ID === this.tableData[i].ID) {
+								idx = i
+								num = this.storeNums[idx]
+								ele[v]["chose_num"] = num
+								break
+							}
 						}
 						}
 					}
 					}
+					this.multipleSelection.push(ele)
 				}
 				}
-				this.multipleSelection.push(val)
 
 
 				// 计算统计
 				// 计算统计
 				this.handleSureChange()
 				this.handleSureChange()
@@ -228,7 +232,7 @@
 		watch: {
 		watch: {
 			// 监听多选按钮,判断结算按钮是否可用
 			// 监听多选按钮,判断结算按钮是否可用
 			multipleSelection: function (modern) {
 			multipleSelection: function (modern) {
-				this.$data.display = modern.length > 0
+
 			},
 			},
 		},
 		},
   }
   }

+ 3 - 3
src/views/shop/villa-fund-products.vue

@@ -4,7 +4,6 @@
 			:key="tableKey"
 			:key="tableKey"
 			v-loading="listLoading"
 			v-loading="listLoading"
 			:data="tableData"
 			:data="tableData"
-			border
 			fit
 			fit
 			highlight-current-row
 			highlight-current-row
 			style="width: 100%;"
 			style="width: 100%;"
@@ -12,6 +11,7 @@
 			@selection-change="handleSelectionChange"
 			@selection-change="handleSelectionChange"
 		>
 		>
 			<el-table-column type="selection" width="70" align="center"></el-table-column>
 			<el-table-column type="selection" width="70" align="center"></el-table-column>
+			<el-table-column align="center" type="index" width="50"></el-table-column>
 			<el-table-column :label="$t('shop.productName')" align="center" prop="GOODS_NAME">
 			<el-table-column :label="$t('shop.productName')" align="center" prop="GOODS_NAME">
 				<template slot-scope="{row}">
 				<template slot-scope="{row}">
 					<span>{{ row.GOODS_NAME }}</span>
 					<span>{{ row.GOODS_NAME }}</span>
@@ -49,7 +49,7 @@
 			</el-table-column>
 			</el-table-column>
 			<el-table-column :label="$t('shop.inventory')" min-width="90" align="center">
 			<el-table-column :label="$t('shop.inventory')" min-width="90" align="center">
 				<template slot-scope="scope">
 				<template slot-scope="scope">
-					<el-input-number size="mini" v-model="storeNums[scope.$index]" :min="0" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
+					<el-input-number size="mini" v-model="storeNums[scope.$index]" :min="1" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
 				</template>
 				</template>
 			</el-table-column>
 			</el-table-column>
 		</el-table>
 		</el-table>
@@ -104,7 +104,7 @@ export default {
 			listQuery: {
 			listQuery: {
 				categoryType: 6,
 				categoryType: 6,
 				page: 1,
 				page: 1,
-				limit: 20,
+				limit: 50,
 			},
 			},
 			tool: tool,
 			tool: tool,
 			multipleSelection: [],
 			multipleSelection: [],