Преглед на файлове

Merge remote-tracking branch 'origin/developerA' into developer

zhengjinyi преди 1 година
родител
ревизия
cb03b4fee8

+ 3 - 2
.env.development

@@ -3,9 +3,10 @@ ENV = 'development'
 
 # base api
 # VUE_APP_BASE_API = '/dev-api'
-VUE_APP_BASE_API = 'http://192.168.2.102:9104'
+# VUE_APP_BASE_API = 'http://192.168.2.102:9104'
 # VUE_APP_BASE_API = 'http://192.168.2.67:9104'
-# VUE_APP_BASE_API = 'https://mai-b.caimei365.com'
+VUE_APP_BASE_API = 'https://mai-b.caimei365.com'
+# VUE_APP_BASE_API = 'http://192.168.2.103:9104'
 # VUE_APP_BASE_API = 'http://192.168.78.1:9104/'
 
 # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,

+ 3 - 3
src/api/finance.js

@@ -35,7 +35,7 @@ export function getPayTypeList(query) {
  */
 export function getReceiptDetail(id) {
   return request({
-    url: '/order/organize/receipt/detail/' + id,
+    url: `/order/organize/receipt/detail/${id.orderId}/${id.shopOrderId}`,
     method: 'get'
   })
 }
@@ -131,7 +131,7 @@ export function organizePayInfos(params) {
  */
 export function organizeReceiptRecord(id) {
   return request({
-    url: '/order/organize/receipt/record/' + id,
+    url: `/order/organize/receipt/record/${id.orderId}/${id.shopOrderId}`,
     method: 'get'
   })
 }
@@ -140,7 +140,7 @@ export function organizeReceiptRecord(id) {
  */
 export function organizeToRecturnRecordByOrderId(id) {
   return request({
-    url: '/order/organize/toRecturnRecordByOrderId?orderId=' + id,
+    url: `/order/organize/toRecturnRecordByOrderId?orderId=${id.orderId}&shopOrderId=${id.shopOrderId}`,
     method: 'get'
   })
 }

+ 13 - 2
src/api/order.js

@@ -119,7 +119,7 @@ export function deliverShipCompany() {
  */
 export function deliverDetails(id) {
   return request({
-    url: '/order/deliver/deliver/details/' + id,
+    url: `/order/deliver/deliver/details/${id.orderId}/${id.shopOrderId}`,
     method: 'get'
   })
 }
@@ -129,7 +129,7 @@ export function deliverDetails(id) {
  */
 export function orderNotes(orderId) {
   return request({
-    url: `/order/cmOrderRemark/remarksView/${orderId}`,
+    url: `/order/cmOrderRemark/remarksView/${orderId.orderId}/${orderId.shopOrderId}`,
     method: 'get'
   })
 }
@@ -154,3 +154,14 @@ export function orderAddNote(data) {
     data
   })
 }
+
+/**
+ * 撤销退款
+ */
+export function revokeApply(params) {
+  return request({
+    url: '/order/cmReturnedPurchase/revokeApply',
+    method: 'get',
+    params
+  })
+}

+ 5 - 1
src/filters/index.js

@@ -1,5 +1,6 @@
 // import parseTime, formatTime and set to filter
-export { parseTime, formatTime } from '@/utils'
+export { parseTime, formatTime }
+  from '@/utils'
 
 /**
  * Show plural label if time is plural number
@@ -102,10 +103,13 @@ export function amountfilters(value) {
 export function orderStatusFilter(status) {
   const map = {
     '0': '待确认',
+    '1': '待支付',
+    '2': '交易中',
     '4': '交易完成',
     '5': '订单完成',
     '6': '已关闭',
     '7': '交易全退',
+    '8': '退货退款',
     '11': '待收款、待发货',
     '12': '待收款、部分发货',
     '13': '待收款、全部发货',

+ 112 - 100
src/router/modules/finance.js

@@ -8,106 +8,118 @@ const financeRouter = {
   name: 'Finance',
   meta: { title: '财务管理', icon: 'el-icon-printer' },
   alwaysShow: true,
-  children: [
-    {
-      path: 'list',
-      name: 'List',
-      component: () => import('@/views/finance/list'),
-      meta: { title: '收款列表', noCache: true, icon: 'el-icon-coin' }
-    },
-    {
-      path: 'details',
-      name: 'Details',
-      component: () => import('@/views/finance/details'),
-      meta: { title: '收款详情', noCache: true, icon: 'el-icon-coin' },
-      hidden: true
-    },
-    {
-      path: 'payment-list',
-      name: 'PaymentList',
-      component: () => import('@/views/finance/payment-list'),
-      meta: { title: '付款列表', noCache: true, icon: 'el-icon-bank-card' }
-    },
-    {
-      path: 'payment-details',
-      name: 'PaymentDetails',
-      component: () => import('@/views/finance/payment-details'),
-      meta: { title: '付款详情', noCache: true, icon: 'el-icon-bank-card' },
-      hidden: true
-    },
-    {
-      path: 'payment-record',
-      name: 'PaymentRecord',
-      component: () => import('@/views/finance/payment-record'),
-      meta: { title: '退/付款记录', noCache: true, icon: 'el-icon-bank-card' },
-      hidden: true
-    },
-    // {
-    //   path: 'payapply-list',
-    //   name: 'PayapplyList',
-    //   component: () => import('@/views/finance/payapply-list'),
-    //   meta: { title: '申请付款', noCache: true, icon: 'el-icon-wallet' }
-    // },
-    {
-      path: 'payapply-edit',
-      name: 'PayapplyEdit',
-      component: () => import('@/views/finance/payapply-edit'),
-      meta: { title: '提交付款单', noCache: true, icon: 'el-icon-wallet' },
-      hidden: true
-    },
-    {
-      path: 'paycents-list',
-      name: 'PaycentsList',
-      component: () => import('@/views/finance/paycents-list'),
-      meta: { title: '子订单手动分账', noCache: true, icon: 'el-icon-set-up' }
-    },
-    {
-      path: 'paysettle-list',
-      name: 'PaysettleList',
-      component: () => import('@/views/finance/paysettle-list'),
-      meta: { title: '子订单手动结算', noCache: true, icon: 'el-icon-set-up' }
-    },
-    {
-      path: 'paysettle-edit',
-      name: 'PaysettleEdit',
-      component: () => import('@/views/finance/paysettle-edit'),
-      meta: { title: '申请结算', noCache: true, icon: 'el-icon-odometer' },
-      hidden: true
-    },
-    {
-      path: 'paysettle-record',
-      name: 'PaysettleRecord',
-      component: () => import('@/views/finance/paysettle-record'),
-      meta: { title: '结算记录', noCache: true, icon: 'el-icon-odometer' },
-      hidden: true
-    },
-    {
-      path: 'payfinance-list',
-      name: 'PayfinanceList',
-      component: () => import('@/views/finance/payfinance-list'),
-      meta: { title: '订单财务信息', noCache: true, icon: 'el-icon-takeaway-box' }
-    },
-    {
-      path: 'shop-record',
-      name: 'ShopRecord',
-      component: () => import('@/views/finance/payfinance-shop-record'),
-      meta: { title: '供应商退/付款记录', noCache: true, icon: 'el-icon-takeaway-box' },
-      hidden: true
-    },
-    {
-      path: 'remit-record',
-      name: 'RemitRecord',
-      component: () => import('@/views/finance/payfinance-remit-record'),
-      meta: { title: '收付款记录', noCache: true, icon: 'el-icon-takeaway-box' },
-      hidden: true
-    },
-    {
-      path: 'refund-record',
-      name: 'RefundRecord',
-      component: () => import('@/views/finance/payfinance-refund-record'),
-      meta: { title: '退货/退款记录', noCache: true, icon: 'el-icon-takeaway-box' },
-      hidden: true
-    }
+  children: [{
+    path: 'list',
+    name: 'List',
+    component: () =>
+      import ('@/views/finance/list'),
+    meta: { title: '收款列表', noCache: true, icon: 'el-icon-coin' }
+  },
+  {
+    path: 'details',
+    name: 'Details',
+    component: () =>
+      import ('@/views/finance/details'),
+    meta: { title: '收款详情', noCache: true, icon: 'el-icon-coin' },
+    hidden: true
+  },
+  // {
+  //   path: 'payment-list',
+  //   name: 'PaymentList',
+  //   component: () => import('@/views/finance/payment-list'),
+  //   meta: { title: '付款列表', noCache: true, icon: 'el-icon-bank-card' }
+  // },
+  {
+    path: 'payment-details',
+    name: 'PaymentDetails',
+    component: () =>
+      import ('@/views/finance/payment-details'),
+    meta: { title: '付款详情', noCache: true, icon: 'el-icon-bank-card' },
+    hidden: true
+  },
+  {
+    path: 'payment-record',
+    name: 'PaymentRecord',
+    component: () =>
+      import ('@/views/finance/payment-record'),
+    meta: { title: '退/付款记录', noCache: true, icon: 'el-icon-bank-card' },
+    hidden: true
+  },
+  // {
+  //   path: 'payapply-list',
+  //   name: 'PayapplyList',
+  //   component: () => import('@/views/finance/payapply-list'),
+  //   meta: { title: '申请付款', noCache: true, icon: 'el-icon-wallet' }
+  // },
+  {
+    path: 'payapply-edit',
+    name: 'PayapplyEdit',
+    component: () =>
+      import ('@/views/finance/payapply-edit'),
+    meta: { title: '提交付款单', noCache: true, icon: 'el-icon-wallet' },
+    hidden: true
+  },
+  {
+    path: 'paycents-list',
+    name: 'PaycentsList',
+    component: () =>
+      import ('@/views/finance/paycents-list'),
+    meta: { title: '子订单手动分账', noCache: true, icon: 'el-icon-set-up' }
+  },
+  {
+    path: 'paysettle-list',
+    name: 'PaysettleList',
+    component: () =>
+      import ('@/views/finance/paysettle-list'),
+    meta: { title: '子订单手动结算', noCache: true, icon: 'el-icon-set-up' }
+  },
+  {
+    path: 'paysettle-edit',
+    name: 'PaysettleEdit',
+    component: () =>
+      import ('@/views/finance/paysettle-edit'),
+    meta: { title: '申请结算', noCache: true, icon: 'el-icon-odometer' },
+    hidden: true
+  },
+  {
+    path: 'paysettle-record',
+    name: 'PaysettleRecord',
+    component: () =>
+      import ('@/views/finance/paysettle-record'),
+    meta: { title: '结算记录', noCache: true, icon: 'el-icon-odometer' },
+    hidden: true
+  },
+  // {
+  //   path: 'payfinance-list',
+  //   name: 'PayfinanceList',
+  //   component: () =>
+  //     import ('@/views/finance/payfinance-list'),
+  //   meta: { title: '订单财务信息', noCache: true, icon: 'el-icon-takeaway-box' }
+  // },
+  {
+    path: 'shop-record',
+    name: 'ShopRecord',
+    component: () =>
+      import ('@/views/finance/payfinance-shop-record'),
+    meta: { title: '供应商退/付款记录', noCache: true, icon: 'el-icon-takeaway-box' },
+    hidden: true
+  },
+  {
+    path: 'remit-record',
+    name: 'RemitRecord',
+    component: () =>
+      import ('@/views/finance/payfinance-remit-record'),
+    meta: { title: '收付款记录', noCache: true, icon: 'el-icon-takeaway-box' },
+    hidden: true
+  },
+  {
+    path: 'refund-record',
+    name: 'RefundRecord',
+    component: () =>
+      import ('@/views/finance/payfinance-refund-record'),
+    meta: { title: '退货/退款记录', noCache: true, icon: 'el-icon-takeaway-box' },
+    hidden: true
+  }
   ]
 }
 

+ 5 - 12
src/views/campaign/activity-edit.vue

@@ -41,7 +41,7 @@
             <el-table-column property="productName" label="商品名称" align="center" />
             <el-table-column prop="validFlag" label="商品状态" align="center" width="150">
               <template slot-scope="{row}">
-                <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+                <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 2 ? '已上架' : '已下架' }}</el-tag>
               </template>
             </el-table-column>
             <el-table-column prop="sort" label="排序" align="center" width="100">
@@ -97,7 +97,7 @@
               <el-table-column property="productName" label="商品名称" align="center" />
               <el-table-column prop="validFlag" label="商品状态" align="center" width="150">
                 <template slot-scope="{row}">
-                  <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+                  <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 2 ? '已上架' : '已下架' }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column label="排序" align="center" width="100">
@@ -157,7 +157,7 @@
               <el-table-column property="productName" label="商品名称" align="center" />
               <el-table-column prop="validFlag" label="商品状态" align="center" width="150">
                 <template slot-scope="{row}">
-                  <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+                  <el-tag :type="row.validFlag + '' | statusFilter">{{ storeStatus(row.validFlag) }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column label="排序" align="center" width="100">
@@ -188,6 +188,7 @@
 <script>
 import { saveActive, formActive } from '@/api/campaign'
 import goodDialog from './components/good-multi-dialog'
+import storeStatus from '@/views/mixins/storeStatus'
 const defaultImages = () => {
   return {
     image: '',
@@ -197,15 +198,7 @@ const defaultImages = () => {
 export default {
   name: 'ActivityEdit',
   components: { goodDialog },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        1: 'success',
-        0: 'warning'
-      }
-      return statusMap[status]
-    }
-  },
+  mixins: [storeStatus],
   data() {
     const defaultForm = () => {
       return {

+ 4 - 10
src/views/campaign/banner-edit.vue

@@ -61,7 +61,7 @@
               <el-table-column prop="productName" label="商品名称" align="center" width="300" />
               <el-table-column prop="validFlag" label="商品状态" align="center" width="150">
                 <template slot-scope="{row}">
-                  <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+                  <el-tag :type="row.validFlag+'' | statusFilter">{{ storeStatus(row.validFlag) }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column label="操作" align="center">
@@ -96,18 +96,12 @@
 <script>
 import { savePageBanner, formPageBanner, getActiveList } from '@/api/campaign'
 import goodDialog from './components/good-dialog'
+import storeStatus from '@/views/mixins/storeStatus'
+
 export default {
   name: 'BannerEdit',
   components: { goodDialog },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        1: 'success',
-        0: 'warning'
-      }
-      return statusMap[status]
-    }
-  },
+  mixins: [storeStatus],
   data() {
     const defaultForm = () => {
       return {

+ 4 - 10
src/views/campaign/category-edit.vue

@@ -61,7 +61,7 @@
               <el-table-column prop="productName" label="商品名称" align="center" width="300" />
               <el-table-column prop="validFlag" label="商品状态" align="center" width="150">
                 <template slot-scope="{row}">
-                  <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+                  <el-tag :type="row.validFlag + '' | statusFilter">{{ storeStatus(row.validFlag) }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column label="操作" align="center">
@@ -96,18 +96,12 @@
 <script>
 import { saveMenu, formMenu, getActiveList } from '@/api/campaign'
 import goodDialog from './components/good-dialog'
+import storeStatus from '@/views/mixins/storeStatus'
+
 export default {
   name: 'BannerEdit',
   components: { goodDialog },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        1: 'success',
-        0: 'warning'
-      }
-      return statusMap[status]
-    }
-  },
+  mixins: [storeStatus],
   data() {
     const defaultForm = () => {
       return {

+ 3 - 9
src/views/campaign/components/activity/index.vue

@@ -87,18 +87,12 @@
 <script>
 import { getCategory, switchClassify, saveCategorySort } from '@/api/goods-classify'
 import Pagination from '@/components/Pagination'
+import storeStatus from '@/views/mixins/storeStatus'
 
 export default {
   components: { Pagination },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        1: 'success',
-        0: 'danger'
-      }
-      return statusMap[status]
-    }
-  },
+  mixins: [storeStatus],
+
   data() {
     return {
       list: null,

+ 1 - 1
src/views/campaign/components/good-dialog.vue

@@ -81,7 +81,7 @@ export default {
       listQuery: {
         productName: '', // 商品名称
         shopName: '', // 供应商名称
-        validFlag: 1,
+        validFlag: 2,
         index: 1,
         organizeId: this.$store.getters.organizeId,
         pageSize: 10

+ 1 - 1
src/views/campaign/components/good-multi-dialog.vue

@@ -81,7 +81,7 @@ export default {
       listQuery: {
         productName: '', // 商品名称
         shopName: '', // 供应商名称
-        validFlag: 1,
+        validFlag: 2,
         index: 1,
         organizeId: this.$store.getters.organizeId,
         pageSize: 10

+ 3 - 10
src/views/campaign/special-edit.vue

@@ -58,7 +58,7 @@
               <el-table-column prop="productName" label="商品名称" align="center" width="300" />
               <el-table-column prop="validFlag" label="商品状态" align="center" width="150">
                 <template slot-scope="{row}">
-                  <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+                  <el-tag :type="row.validFlag+'' | statusFilter">{{ storeStatus(row.validFlag) }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column label="操作" align="center">
@@ -93,18 +93,11 @@
 <script>
 import { saveTheme, formTheme, getActiveList } from '@/api/campaign'
 import goodDialog from './components/good-dialog'
+import storeStatus from '@/views/mixins/storeStatus'
 export default {
   name: 'BannerEdit',
   components: { goodDialog },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        1: 'success',
-        0: 'warning'
-      }
-      return statusMap[status]
-    }
-  },
+  mixins: [storeStatus],
   data() {
     const defaultForm = () => {
       return {

+ 5 - 5
src/views/finance/details.vue

@@ -18,10 +18,10 @@
         <h1 style="font-size: 16px;color: #409EFF;">关联订单</h1>
         <div v-for="order in repacts.orderInfos" :key="order.orderId">
           <el-row :gutter="22" class="box-row">
-            <el-col :span="5"><b>订单编号:</b> {{ order.orderNo + '(' + order.orderId + ')' }}</el-col>
-            <el-col :span="5"><b>订单金额:</b> ¥{{ order.orderAmount | amountfilters }}</el-col>
-            <el-col :span="4"><b>应收金额:</b> ¥{{ order.payableAmount | amountfilters }}</el-col>
-            <el-col :span="4"><b>已收金额:</b> ¥{{ order.receiptAmount | amountfilters }}</el-col>
+            <el-col :span="5"><b>订单编号:</b> {{ order.shopOrders[0].shopOrderNo + '(' + order.shopOrders[0].shopOrderId + ')' }}</el-col>
+            <el-col :span="5"><b>订单金额:</b> ¥{{ order.shopOrders[0].needPayAmount | amountfilters }}</el-col>
+            <el-col :span="4"><b>应收金额:</b> ¥{{ order.shopOrders[0].needPayAmount | amountfilters }}</el-col>
+            <el-col :span="4"><b>已收金额:</b> ¥{{ order.shopOrders[0].receiptAmount | amountfilters }}</el-col>
           </el-row>
           <el-row :gutter="24" class="box-row">
             <el-col :span="5"><b>机构名称:</b> {{ order.clubName }}</el-col>
@@ -99,7 +99,7 @@ export default {
 
   },
   created() {
-    this.getReceiptDetail(this.$route.query.receiptId)
+    this.getReceiptDetail({ orderId: this.$route.query.receiptId, shopOrderId: this.$route.query.shopOrderId })
   },
   methods: {
     async getReceiptDetail(receiptId) {

+ 3 - 3
src/views/finance/list.vue

@@ -131,12 +131,12 @@
       </el-table-column>
       <el-table-column label="关联订单号" align="center" prop="shopOrderNos">
         <template slot-scope="{ row }">
-          <p class="el-p-link" @click="handleOrderDetails(row)">{{ row.orderNo }}({{ row.orderId }})</p>
+          <p class="el-p-link" @click="handleOrderDetails(row)">{{ row.shopOrderNos }}({{ row.shopOrderId }})</p>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" width="120">
         <template slot-scope="{row}">
-          <el-button type="primary" size="mini" @click="handleToDetails(row.receiptId)">查看详情</el-button>
+          <el-button type="primary" size="mini" @click="handleToDetails(row)">查看详情</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -245,7 +245,7 @@ export default {
       return valueText
     },
     handleToDetails(receiptId) {
-      this.$router.push({ path: '/finance/details', query: { receiptId: receiptId }})
+      this.$router.push({ path: '/finance/details', query: { receiptId: receiptId.receiptId, shopOrderId: receiptId.shopOrderId }})
     },
     // 跳转订单详情
     handleOrderDetails(row) {

+ 26 - 66
src/views/finance/payfinance-refund-record.vue

@@ -1,18 +1,8 @@
 <template>
-  <div class="app-container">
+  <div v-loading="loading" class="app-container">
     <el-card v-if="cmReturnedPurchaseList.length === 0" class="box-card" style="height: 100px;line-height: 100px; text-align:center;color: #999;">暂无退款退货详情记录~</el-card>
     <template v-else>
       <div v-for="(cmReturn,index) in cmReturnedPurchaseList" id="printBox" :key="index">
-        <el-card class="box-card" style="margin: 5px auto;">
-          <div class="refund-item">
-            <h1 class="refund-item-title">审核信息</h1>
-            <el-row :gutter="24" class="box-row">
-              <el-col :span="5"><b>审核人:</b> {{ cmReturn.reviewUserName }}</el-col>
-              <el-col :span="4"><b>审核时间:</b> {{ cmReturn.confirmReturnTime ? cmReturn.confirmReturnTime :'--' }}</el-col>
-              <el-col :span="15"><b>审核备注:</b> {{ cmReturn.reviewRemarks ? cmReturn.reviewRemarks :'--' }}</el-col>
-            </el-row>
-          </div>
-        </el-card>
         <el-card class="box-card" style="margin: 5px auto;">
           <div class="refund-item">
             <h1 class="refund-item-title">申请信息</h1>
@@ -29,15 +19,14 @@
             <el-row :gutter="24" class="box-row">
               <el-col :span="5"><b>退款编号:</b> {{ cmReturn.returnedNo }}</el-col>
               <el-col :span="4"><b>申请时间:</b> {{ cmReturn.returnTime }}</el-col>
-              <el-col :span="15"><b>申请金额</b> ¥{{ cmReturn.refundFee | amountfilters }} </el-col>
+              <el-col :span="15"><b>申请金额</b> ¥{{ cmReturn.refundFee | amountfilters }} </el-col>
             </el-row>
             <h1 class="refund-item-title">退款方式</h1>
             <el-row :gutter="24" class="box-row">
-              <el-col v-if="cmReturn.returnedWay*1===4" :span="4"><b>未支付无退款</b> </el-col>
-              <template v-else-if="cmReturn.returnedWay*1===1">
+              <template>
                 <template v-if="cmReturn.refundOnlineFee*1 !== 0">
                   <el-col :span="5">
-                    <b>线上退回:</b>
+                    <b>线上退回</b>
                     <span>¥{{ cmReturn.refundOnlineFee | amountfilters }}</span>
                   </el-col>
                 </template>
@@ -46,59 +35,13 @@
                     <b>线下转账:</b>
                     <span>¥{{ cmReturn.refundOfflineFee | amountfilters }}</span>
                   </el-col>
-                  <el-col :span="4"><b>开户名:</b><span>{{ cmReturn.bankAccountName }}</span> </el-col>
-                  <el-col :span="4"><b>账号:</b> <span>{{ cmReturn.bankAccountNo }}</span> </el-col>
-                  <el-col :span="4"><b>开户行:</b> <span>{{ cmReturn.openBank }}</span> </el-col>
-                  <el-col :span="4"><b>账户类型:</b> <span>{{ cmReturn.bankAccountType*1 === 1 ? '公账' : '私账' }}</span> </el-col>
                 </template>
               </template>
-              <span v-else>----</span>
             </el-row>
           </div>
         </el-card>
         <el-card class="box-card" style="margin: 5px auto;">
           <div class="refund-item">
-            <el-row :gutter="24" class="box-row">
-              <el-col :span="5"><b>订单编号(ID):</b> {{ order.orderNo }}({{ order.orderId }})</el-col>
-              <el-col :span="4"><b>下单时间:</b> {{ order.orderTime }}</el-col>
-              <el-col :span="6"><b>机构名称:</b> {{ order.clubName }}</el-col>
-              <el-col :span="9">
-                <b>订单状态:</b>
-                <template v-if="['11','12','13','21','22','23','31','32','33'].indexOf(order.status)>=0">
-                  <el-tag type="success" size="small">交易中</el-tag>
-                </template>
-                <template v-else>
-                  <el-tag :type="order.status*1===6?'info':''" size="small">{{ order.status | orderStatusFilter }}</el-tag>
-                </template>
-              </el-col>
-            </el-row>
-            <el-row :gutter="24" class="box-row">
-              <el-col :span="5"><b>订单金额:</b> {{ order.payTotalFee }}</el-col>
-              <el-col :span="4"><b>应收金额:</b> {{ order.payableAmount }}</el-col>
-              <el-col :span="15"><b>机构运费:</b>  <span>{{ order.postageInfo }}</span></el-col>
-            </el-row>
-            <el-row :gutter="24" class="box-row">
-              <el-col :span="5"><b>收款状态:</b>
-                <el-tag v-if="order.receiptStatus*1===1" type="danger" size="small">待收款</el-tag>
-                <el-tag v-if="order.receiptStatus*1===2" type="warning" size="small">部分收款</el-tag>
-                <el-tag v-if="order.receiptStatus*1===3" type="success" size="small">已收款</el-tag>
-              </el-col>
-              <el-col :span="4"><b>退款状态:</b>
-                <el-tag v-if="order.refundType*1===1" type="warning" size="small">部分退款</el-tag>
-                <el-tag v-else-if="order.refundType*1===2" type="danger" size="small">已退款</el-tag>
-                <el-tag v-else type="info" size="small">无退款</el-tag>
-              </el-col>
-              <el-col :span="6"><b>发货状态:</b>
-                <el-tag v-if="order.sendOutStatus*1===1" type="danger" size="small">待发货</el-tag>
-                <el-tag v-if="order.sendOutStatus*1===2" type="warning" size="small">部分发货</el-tag>
-                <el-tag v-if="order.sendOutStatus*1===3" type="success" size="small">已发货</el-tag>
-              </el-col>
-              <el-col :span="9"><b>退款状态:</b>
-                <el-tag v-if="order.refundType*1===1" type="warning" size="small">部分退款</el-tag>
-                <el-tag v-else-if="order.refundType*1===2" type="danger" size="small">已退款</el-tag>
-                <el-tag v-else type="info" size="small">无退款</el-tag>
-              </el-col>
-            </el-row>
             <el-row :gutter="24" class="box-row">
               <el-col :span="5"><b>机构:</b> {{ order.bpOrderUserinfo.name }}</el-col>
               <el-col :span="4"><b>收货人:</b> {{ order.bpOrderUserinfo.shouHuoRen }}</el-col>
@@ -156,6 +99,18 @@
                   <el-tag v-if="row.payStatus*1===3" type="success" size="small">已付款</el-tag>
                 </template>
               </el-table-column>
+              <el-table-column label="运费" align="center">
+                <template>
+                  {{ order.newShopOrders[0].postageInfo }}
+                </template>
+              </el-table-column>
+              <el-table-column label="退款状态" align="center">
+                <template>
+                  <el-tag v-if="order.newShopOrders[0].refundStatus*1===1" type="info" size="small">无退款</el-tag>
+                  <el-tag v-if="order.newShopOrders[0].refundStatus*1===2" type="warning" size="small">退款中</el-tag>
+                  <el-tag v-if="order.newShopOrders[0].refundStatus*1===3" type="success" size="small">已退款</el-tag>
+                </template>
+              </el-table-column>
               <el-table-column label="供应商" align="center" prop="shopName" />
             </el-table>
           </div>
@@ -185,12 +140,16 @@ export default {
       repacts: {},
       products: [],
       cmReturnedPurchase: {},
-      cmReturnedPurchaseList: []
+      cmReturnedPurchaseList: [],
+      loading: true
     }
   },
   computed: {
     orderId: function() {
       return this.$route.query.orderId * 1
+    },
+    shopOrderId() {
+      return this.$route.query.shopOrderId * 1
     }
   },
   created() {
@@ -199,10 +158,11 @@ export default {
   methods: {
     async organizeToRecturnRecordByOrderId() {
       try {
-        const res = await organizeToRecturnRecordByOrderId(this.orderId)
+        const res = await organizeToRecturnRecordByOrderId({ orderId: this.orderId, shopOrderId: this.shopOrderId })
         this.order = res.data.order
         this.cmReturnedPurchase = res.data.cmReturnedPurchase
         this.cmReturnedPurchaseList = res.data.cmReturnedPurchaseList
+        this.loading = false
         console.log('res', res)
       } catch (error) {
         console.log('error', error)
@@ -212,7 +172,7 @@ export default {
 }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
   .app-title{
     line-height: 36px;
     font-size: 26px;
@@ -262,10 +222,10 @@ export default {
   .el-span-danger{
     color: #F56C6C;
   }
-  /deep/ .el-table__expanded-cell[class*=cell]{
+  ::v-deep .el-table__expanded-cell[class*=cell]{
     padding:10px 10px !important;
   }
-  /deep/ .el-card__body{
+  ::v-deep .el-card__body{
     padding: 5px 20px !important;
   }
 </style>

+ 158 - 87
src/views/finance/payfinance-remit-record.vue

@@ -1,34 +1,64 @@
 <template>
   <div class="app-container">
     <div id="printBox">
-      <el-card ref="print" class="box-card" style="margin: 0 auto;">
+      <el-card ref="print" class="box-card" style="margin: 0 auto">
         <div class="refund-item">
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="5"><b>订单编号(ID):</b> {{ dataOrder.order.orderNo }}({{ dataOrder.order.orderId }})</el-col>
-            <el-col :span="4"><b>下单时间:</b> {{ dataOrder.order.orderTime }}</el-col>
-            <el-col :span="4"><b>机构名称:</b> {{ dataOrder.order.clubName }}</el-col>
+          <el-row v-if="dataOrder.order.newShopOrders && dataOrder.order.newShopOrders.length > 0" :gutter="24" class="box-row">
+            <el-col
+              :span="5"
+            ><b>订单编号(ID):</b> {{ dataOrder.order.newShopOrders[0].shopOrderNo }}({{
+              dataOrder.order.newShopOrders[0].shopOrderId
+            }})</el-col>
+            <el-col :span="4"><b>下单时间:</b> {{ dataOrder.order.newShopOrders[0].orderTime }}</el-col>
+            <el-col :span="4"><b>机构名称:</b> {{ dataOrder.order.newShopOrders[0].clubName }}</el-col>
           </el-row>
           <el-row :gutter="24" class="box-row">
             <el-col :span="5">
               <b>订单状态:</b>
-              <template v-if="['11','12','13','21','22','23','31','32','33'].indexOf(dataOrder.order.status)>=0">
-                <el-tag type="success" size="small">交易中</el-tag>
+              <template v-if="dataOrder.order.newShopOrders[0].shopStatus < 10">
+                <el-tag type="success" size="small">
+                  {{ orderStatus(dataOrder.order.newShopOrders[0].shopStatus) }}
+                </el-tag>
               </template>
               <template v-else>
-                <el-tag :type="dataOrder.order.status*1===6?'info':''" size="small">{{ dataOrder.order.status | orderStatusFilter }}</el-tag>
+                <el-tag type="success" size="small"> 交易中 </el-tag>
               </template>
             </el-col>
-            <el-col :span="4">
+            <el-col v-if="dataOrder.order.newShopOrders && dataOrder.order.newShopOrders.length > 0" :span="4">
               <b>收款状态:</b>
-              <el-tag v-if="dataOrder.order.receiptStatus*1===1" type="danger" size="small">待收款</el-tag>
-              <el-tag v-if="dataOrder.order.receiptStatus*1===2" type="warning" size="small">部分收款</el-tag>
-              <el-tag v-if="dataOrder.order.receiptStatus*1===3" type="success" size="small">已收款</el-tag>
+              <el-tag
+                v-if="dataOrder.order.newShopOrders[0].receiptStatus * 1 === 1"
+                type="danger"
+                size="small"
+              >待收款</el-tag>
+              <el-tag
+                v-if="dataOrder.order.newShopOrders[0].receiptStatus * 1 === 2"
+                type="warning"
+                size="small"
+              >部分收款</el-tag>
+              <el-tag
+                v-if="dataOrder.order.newShopOrders[0].receiptStatus * 1 === 3"
+                type="success"
+                size="small"
+              >已收款</el-tag>
             </el-col>
-            <el-col :span="4">
+            <el-col v-if="dataOrder.order.newShopOrders && dataOrder.order.newShopOrders.length > 0" :span="4">
               <b>付款状态:</b>
-              <el-tag v-if="dataOrder.order.payStatus*1===1" type="danger" size="small">待付款</el-tag>
-              <el-tag v-if="dataOrder.order.payStatus*1===2" type="warning" size="small">部分付款</el-tag>
-              <el-tag v-if="dataOrder.order.payStatus*1===3" type="success" size="small">已付款</el-tag>
+              <el-tag
+                v-if="dataOrder.order.newShopOrders[0].payStatus * 1 === 1"
+                type="danger"
+                size="small"
+              >待付款</el-tag>
+              <el-tag
+                v-if="dataOrder.order.newShopOrders[0].payStatus * 1 === 2"
+                type="warning"
+                size="small"
+              >部分付款</el-tag>
+              <el-tag
+                v-if="dataOrder.order.newShopOrders[0].payStatus * 1 === 3"
+                type="success"
+                size="small"
+              >已付款</el-tag>
             </el-col>
           </el-row>
           <el-row :gutter="24" class="box-row">
@@ -43,44 +73,68 @@
               <b>地址:</b>
               {{ dataOrder.order.address }}</el-col>
           </el-row>
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="5"><b>订单金额:</b> ¥{{ dataOrder.order.payTotalFee | amountfilters }}</el-col>
-            <el-col :span="4"><b>应收金额:</b> ¥{{ dataOrder.order.payableAmount | amountfilters }}</el-col>
-            <el-col :span="5">
+          <el-row v-if="dataOrder.order.newShopOrders && dataOrder.order.newShopOrders.length > 0" :gutter="24" class="box-row">
+            <el-col
+              :span="5"
+            ><b>订单金额:</b> ¥{{
+              dataOrder.order.newShopOrders[0].totalAmount | amountfilters
+            }}</el-col>
+            <el-col
+              :span="4"
+            ><b>应收金额:</b> ¥{{
+              dataOrder.order.newShopOrders[0].needPayAmount | amountfilters
+            }}</el-col>
+            <!-- <el-col :span="5">
               <b>运费:</b>
               <span>{{ dataOrder.order.postageInfo }}</span>
-            </el-col>
-            <el-col :span="4"><b>退款金额:</b> ¥{{ dataOrder.order.returnValue | amountfilters }}</el-col>
+            </el-col> -->
+            <el-col
+              :span="4"
+            ><b>退款金额:</b> ¥{{
+              dataOrder.order.newShopOrders[0].refundsAmount | amountfilters
+            }}</el-col>
           </el-row>
           <h1 class="refund-item-title">收款记录</h1>
-          <el-table :data="dataOrder.receiptList" border fit highlight-current-row :header-cell-style="{background:'#e9f3f7',color:'#606266'}">
+          <el-table
+            :data="dataOrder.receiptList"
+            border
+            fit
+            highlight-current-row
+            :header-cell-style="{ background: '#e9f3f7', color: '#606266' }"
+          >
             <el-table-column label="序号" align="center" width="50">
               <template slot-scope="scope">{{ scope.$index + 1 }}</template>
             </el-table-column>
             <el-table-column label="收款ID" align="center" prop="receiptId" />
             <el-table-column label="收款方式" align="center" prop="bankNameType" />
             <el-table-column label="收款金额" align="center" prop="receiptAmount">
-              <template slot-scope="{row}">
+              <template slot-scope="{ row }">
                 ¥{{ row.receiptAmount | amountfilters }}
               </template>
             </el-table-column>
             <el-table-column label="收款时间" align="center" prop="receiptTime" />
           </el-table>
           <h1 class="refund-item-title">付款记录</h1>
-          <el-table :data="dataOrder.payList" border fit highlight-current-row :header-cell-style="{background:'#e9f3f7',color:'#606266'}">
+          <el-table
+            :data="dataOrder.payList"
+            border
+            fit
+            highlight-current-row
+            :header-cell-style="{ background: '#e9f3f7', color: '#606266' }"
+          >
             <el-table-column label="序号" align="center" width="50">
               <template slot-scope="scope">{{ scope.$index + 1 }}</template>
             </el-table-column>
             <el-table-column label="付款单ID" align="center" prop="payShopId" />
             <el-table-column label="付款方式" align="center" prop="bankNameType" />
             <el-table-column label="付款金额" align="center" prop="payAmount">
-              <template slot-scope="{row}">
+              <template slot-scope="{ row }">
                 ¥{{ row.payAmount | amountfilters }}
               </template>
             </el-table-column>
             <el-table-column label="付款时间" align="center" prop="payTime">
-              <template slot-scope="{row}">
-                {{ row.payTime ? row.payTime : '---' }}
+              <template slot-scope="{ row }">
+                {{ row.payTime ? row.payTime : "---" }}
               </template>
             </el-table-column>
           </el-table>
@@ -112,15 +166,33 @@ export default {
   computed: {
     orderId: function() {
       return this.$route.query.orderId * 1
+    },
+    shopOrderId() {
+      return this.$route.query.shopOrderId * 1
     }
   },
   created() {
     this.organizeReceiptRecord()
   },
   methods: {
+    // 订单状态更新
+    orderStatus(state) {
+      const status = {
+        0: '待确认',
+        1: '已确认',
+        2: '交易完成',
+        3: '订单完成',
+        4: '已关闭',
+        5: '交易全退'
+      }
+      return status[state]
+    },
     async organizeReceiptRecord() {
       try {
-        const res = await organizeReceiptRecord(this.orderId)
+        const res = await organizeReceiptRecord({
+          orderId: this.orderId,
+          shopOrderId: this.shopOrderId
+        })
         console.log('res', res)
         this.dataOrder = res.data
         this.listLoading = false
@@ -142,62 +214,61 @@ export default {
 }
 </script>
 
-<style scoped>
-  .app-title{
-    line-height: 36px;
-    font-size: 26px;
-    font-weight: bold;
-    color: #409EFF;
-    text-align: center;
-  }
-  .box-card{
-    margin-top: 20px;
-    font-size: 14px;
-  }
-  .box-row{
-    padding: 10px 0;
-  }
-  .box-row .dropdown{
-    margin-top: -10px;
-  }
-  .refund-item{
-    padding: 10px 0;
-  }
-  .refund-item-title{
-    line-height: 24px;
-    font-size: 14px;
-    color: #409EFF;
-  }
-  .order-item{
-    background:#f7f7f7;
-    margin-bottom: 20px;
-    padding: 10px 15px;
-    border-radius: 5px;
-  }
-  .product-row{
-    padding: 10px 0;
-    background: #EBEEF5;
-    border-top: 1px dashed #DCDFE6;
-  }
-  .op-item{
-    padding: 5px 0;
-  }
-  .el-span-warning{
-  color: #E6A23C;
-  }
-  .el-span-success{
-    color: #67C23A;
-  }
-  .el-span-danger{
-    color: #F56C6C;
-  }
-  /deep/ .el-table__expanded-cell[class*=cell]{
-    padding:10px 10px !important;
-  }
-  /deep/ .el-table__row td {
-    height: 34px !important;
-    line-height: 34px !important;
-    padding: 0 !important;
-  }
+<style scoped lang="scss">
+.app-title {
+  line-height: 36px;
+  font-size: 26px;
+  font-weight: bold;
+  color: #409eff;
+  text-align: center;
+}
+.box-card {
+  margin-top: 20px;
+  font-size: 14px;
+}
+.box-row {
+  padding: 10px 0;
+}
+.box-row .dropdown {
+  margin-top: -10px;
+}
+.refund-item {
+  padding: 10px 0;
+}
+.refund-item-title {
+  line-height: 24px;
+  font-size: 14px;
+  color: #409eff;
+}
+.order-item {
+  background: #f7f7f7;
+  margin-bottom: 20px;
+  padding: 10px 15px;
+  border-radius: 5px;
+}
+.product-row {
+  padding: 10px 0;
+  background: #ebeef5;
+  border-top: 1px dashed #dcdfe6;
+}
+.op-item {
+  padding: 5px 0;
+}
+.el-span-warning {
+  color: #e6a23c;
+}
+.el-span-success {
+  color: #67c23a;
+}
+.el-span-danger {
+  color: #f56c6c;
+}
+::v-deep .el-table__expanded-cell[class*="cell"] {
+  padding: 10px 10px !important;
+}
+::v-deep .el-table__row td {
+  height: 34px !important;
+  line-height: 34px !important;
+  padding: 0 !important;
+}
 </style>
-

+ 1 - 1
src/views/floor/components/good-multi-dialog.vue

@@ -81,7 +81,7 @@ export default {
       listQuery: {
         productName: '', // 商品名称
         shopName: '', // 供应商名称
-        validFlag: 1,
+        validFlag: 2,
         index: 1,
         organizeId: this.$store.getters.organizeId,
         pageSize: 10

+ 3 - 3
src/views/floor/edit.vue

@@ -35,7 +35,7 @@
           <el-table-column property="productName" label="商品名称" align="center" />
           <el-table-column prop="validFlag" label="商品状态" align="center" width="150">
             <template slot-scope="{row}">
-              <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+              <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 2 ? '已上架' : '已下架' }}</el-tag>
             </template>
           </el-table-column>
           <el-table-column prop="sort" label="排序" align="center" width="100">
@@ -69,8 +69,8 @@ export default {
   filters: {
     statusFilter(status) {
       const statusMap = {
-        1: 'success',
-        0: 'warning'
+        2: 'success',
+        3: 'warning'
       }
       return statusMap[status]
     }

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

@@ -24,8 +24,8 @@
       </el-table-column>
       <el-table-column class-name="status-col" label="状态" align="center" prop="enabledStatus">
         <template slot-scope="{row}">
-          <el-tag v-if="row.enabledStatus===0" type="danger" size="small">已用</el-tag>
-          <el-tag v-else type="success" size="small">已用</el-tag>
+          <el-tag v-if="row.enabledStatus===0" type="danger" size="small">已用</el-tag>
+          <el-tag v-else type="success" size="small">已用</el-tag>
           <el-button v-if="row.enabledStatus === 0" type="primary" size="mini" @click="handleShangeStatus(row.id,row.enabledStatus)">启用</el-button>
           <el-button v-else type="primary" size="mini" @click="handleShangeStatus(row.id,row.enabledStatus)">停用</el-button>
         </template>

+ 10 - 17
src/views/goods/components/price-edit.vue

@@ -19,9 +19,8 @@
         <div class="text" v-text="product.shopName" />
       </el-form-item>
       <el-form-item label="商品状态:" prop="validFlag">
-        <el-select v-model="formData.validFlag" placeholder="请选择" disabled="true" @change="handleChange($event)">
-          <el-option label="已上架" :value="1" />
-          <el-option label="已下架" :value="2" />
+        <el-select v-model="formData.validFlag" placeholder="请选择" :disabled="true" @change="handleChange($event)">
+          <el-option :label="storeStatus(formData.validFlag)" :value="formData.validFlag" />
         </el-select>
       </el-form-item>
       <el-form-item label="商品规格:" prop="skus">
@@ -35,38 +34,28 @@
             <template slot-scope="{row}">
               <span>{{ row.minBuyNumber }}</span>
             </template>
-            <!-- <template slot-scope="{row}">
-              <el-input v-model="row.minBuyNumber" disabled="true" @input="e => (row.name= checkedInput(e))" />
-            </template> -->
-          </el-table-column>
-          <el-table-column label="成本价" prop="name" align="center">
-            <template slot-scope="{row}">
-              <span> ¥{{ row.costPrice | toThousandFloatFilter }}</span>
-            </template>
           </el-table-column>
           <el-table-column label="售价" prop="name" align="center">
             <template slot-scope="{row}">
               <span> ¥{{ row.price | toThousandFloatFilter }}</span>
             </template>
-            <!-- <template slot-scope="{row}">
-              <el-input v-model="row.price" disabled="true" @input="e => (row.price= checkedInput(e))">
-                <template slot="prepend">¥</template>
-              </el-input>
-            </template> -->
           </el-table-column>
         </el-table>
       </el-form-item>
     </el-form>
     <div slot="footer" class="dialog-footer">
       <el-button @click="dialogFormVisible = false"> 关闭 </el-button>
-      <el-button type="primary" @click="handleSave"> 保存 </el-button>
+      <el-button v-if="isDetail" type="primary" @click="handleSave"> 保存 </el-button>
     </div>
   </el-dialog>
 </template>
 
 <script>
 import { saveGoods } from '@/api/goods'
+import storeStatus from '@/views/mixins/storeStatus'
+
 export default {
+  mixins: [storeStatus],
   props: {
     dialogTitle: {
       type: String,
@@ -83,6 +72,10 @@ export default {
     classify: {
       type: Array,
       default: () => []
+    },
+    isDetail: {
+      type: Boolean,
+      default: () => true
     }
   },
   data: function() {

+ 112 - 61
src/views/goods/list.vue

@@ -3,18 +3,41 @@
     <div class="filter-container">
       <div class="filter-control">
         <span>商品名称:</span>
-        <el-input v-model="listQuery.productName" style="width:180px;" placeholder="商品名称" clearable @keyup.enter.native="getList" @clear="getList" />
+        <el-input
+          v-model="listQuery.productName"
+          style="width: 180px"
+          placeholder="商品名称"
+          clearable
+          @keyup.enter.native="getList"
+          @clear="getList"
+        />
       </div>
       <div class="filter-control">
         <span>供应商名称:</span>
-        <el-input v-model="listQuery.shopName" style="width:180px;" placeholder="供应商名称" clearable @keyup.enter.native="getList" @clear="getList" />
+        <el-input
+          v-model="listQuery.shopName"
+          style="width: 180px"
+          placeholder="供应商名称"
+          clearable
+          @keyup.enter.native="getList"
+          @clear="getList"
+        />
       </div>
       <div class="filter-control">
         <span>商品状态:</span>
-        <el-select v-model="listQuery.validFlag" placeholder="商品状态" clearable style="width: 180px" value="" @change="getList">
+        <el-select
+          v-model="listQuery.validFlag"
+          placeholder="商品状态"
+          clearable
+          style="width: 180px"
+          value=""
+          @change="getList"
+        >
           <el-option label="所有" value="" />
-          <el-option label="已上架" value="1" />
-          <el-option label="已下架" value="2" />
+          <el-option label="已上架" value="2" />
+          <el-option label="已下架" value="3" />
+          <el-option label="待审核" value="1" />
+          <el-option label="审核未通过" value="8" />
         </el-select>
       </div>
       <div class="filter-control">
@@ -28,63 +51,95 @@
       border
       fit
       highlight-current-row
-      style="width:100%;margin-top:20px;"
-      :header-cell-style="{background:'#eef1f6',color:'#606266'}"
+      style="width: 100%; margin-top: 20px"
+      :header-cell-style="{ background: '#eef1f6', color: '#606266' }"
     >
       <el-table-column align="center" label="序号" width="35">
         <template slot-scope="scope">
-          <span style="white-space:nowrap;text-overflow:initial;">{{ ((pageNum-1)*listQuery.pageSize)+scope.$index+1 }}</span>
+          <span style="white-space: nowrap; text-overflow: initial">{{
+            (pageNum - 1) * listQuery.pageSize + scope.$index + 1
+          }}</span>
         </template>
       </el-table-column>
       <el-table-column label="商品图片" align="center" prop="mainImage">
-        <template slot-scope="{row}">
-          <el-popover
-            placement="top-start"
-            title=""
-            width="120"
-            trigger="hover"
-          >
-            <img :src="row.mainImage" alt="" style="width:100px;height:100px;">
-            <img slot="reference" :src="row.mainImage" alt="" style="width:50px;height:50px;">
+        <template slot-scope="{ row }">
+          <el-popover placement="top-start" title="" width="120" trigger="hover">
+            <img :src="row.mainImage" alt="" style="width: 100px; height: 100px">
+            <img
+              slot="reference"
+              :src="row.mainImage"
+              alt=""
+              style="width: 50px; height: 50px"
+            >
           </el-popover>
         </template>
       </el-table-column>
-      <el-table-column label="商品名称" align="center" prop="productName" min-width="200" />
+      <el-table-column
+        label="商品名称"
+        align="center"
+        prop="productName"
+        min-width="200"
+      />
       <el-table-column label="供应商" align="center" prop="shopName" min-width="110" />
-      <el-table-column label="成本价" align="center">
-        <template slot-scope="{row}">
-          ¥{{ row.costPrice | toThousandFloatFilter }}
+      <el-table-column label="SKU-售价" align="center" min-width="110">
+        <template slot-scope="{ row }">
+          <div v-for="item in row.skus" :key="item.skuId">
+            {{ item.unit }} - ¥{{ item.price | toThousandFloatFilter }}
+          </div>
         </template>
       </el-table-column>
-      <el-table-column label="售价" align="center">
-        <template slot-scope="{row}">
-          ¥{{ row.price | toThousandFloatFilter }}
-        </template>
-      </el-table-column>
-      <el-table-column class-name="status-col" label="商品状态" align="center" prop="validFlag">
-        <template slot-scope="{row}">
-          <el-tag :type="row.validFlag | statusFilter">{{ row.validFlag*1 === 1 ? '已上架' : '已下架' }}</el-tag>
+      <el-table-column
+        class-name="status-col"
+        label="商品状态"
+        align="center"
+        prop="validFlag"
+      >
+        <template slot-scope="{ row }">
+          <el-tag :type="(row.validFlag + '') | statusFilter">{{
+            storeStatus(row.validFlag)
+          }}</el-tag>
         </template>
       </el-table-column>
       <el-table-column align="center" label="添加时间" prop="addTime">
-        <template v-if="row.addTime" slot-scope="{row}">
-          <span>{{ row.addTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        <template v-if="row.addTime" slot-scope="{ row }">
+          <span>{{ row.addTime | parseTime("{y}-{m}-{d} {h}:{i}:{s}") }}</span>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" width="200">
-        <template slot-scope="{row}">
-          <el-button type="primary" size="mini" @click="handleEdit(row)">查看详情</el-button>
-          <el-button :type="row.validFlag*1 === 1 ? 'warning' : 'primary'" size="mini" @click="handleSwitch(row)">{{ row.validFlag*1 === 1 ? '下架' : '上架' }}</el-button>
+        <template slot-scope="{ row }">
+          <el-button
+            type="primary"
+            size="mini"
+            @click="handleEdit(row)"
+          >查看详情</el-button>
+          <el-button
+            v-if="row.validFlag * 1 === 2 || row.validFlag * 1 === 3"
+            :type="row.validFlag * 1 === 2 ? 'warning' : 'primary'"
+            size="mini"
+            @click="handleSwitch(row)"
+          >{{ row.validFlag * 1 === 2 ? "下架" : "上架" }}</el-button>
         </template>
       </el-table-column>
     </el-table>
 
-    <pagination v-show="total>10" :total="total" :page.sync="listQuery.index" :limit.sync="listQuery.pageSize" @pagination="getList" />
+    <pagination
+      v-show="total > 10"
+      :total="total"
+      :page.sync="listQuery.index"
+      :limit.sync="listQuery.pageSize"
+      @pagination="getList"
+    />
 
-    <PriceEdit ref="priceChild" :dialog-title="dialogTitle" :is-visible.sync="dialogFormVisible" :product="dialogData" />
+    <PriceEdit
+      ref="priceChild"
+      :dialog-title="dialogTitle"
+      :is-detail="false"
+      :is-visible.sync="dialogFormVisible"
+      :product="dialogData"
+    />
 
     <template>
-      <el-backtop style="right: 40px; bottom: 40px;">
+      <el-backtop style="right: 40px; bottom: 40px">
         <i class="el-icon-upload2" />
       </el-backtop>
     </template>
@@ -94,17 +149,10 @@
 <script>
 import { getList, switchGoods } from '@/api/goods'
 import PriceEdit from './components/price-edit'
+import storeStatus from '@/views/mixins/storeStatus'
 export default {
   components: { PriceEdit },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        1: 'success',
-        0: 'warning'
-      }
-      return statusMap[status]
-    }
-  },
+  mixins: [storeStatus],
   data: function() {
     return {
       pageNum: 0,
@@ -119,12 +167,12 @@ export default {
         organizeId: this.$store.getters.organizeId,
         productName: '',
         shopName: '',
-        validFlag: '' // '商品状态,1已上架,2已下架',
+        validFlag: ''
       },
       dialogData: {},
       dialogFormVisible: false,
       dialogStatus: '',
-      dialogTitle: '编辑'
+      dialogTitle: '查看详情'
     }
   },
   computed: {
@@ -152,12 +200,16 @@ export default {
     },
     handleSwitch(row) {
       // 操作上下架
-      if (row.validFlag === '1') {
-        this.$confirm('确定下架该商品吗?下架后该商品将不会再出现在联合丽格商城', '系统提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
+      if (row.validFlag === '2') {
+        this.$confirm(
+          '确定下架该商品吗?下架后该商品将不会再出现在联合丽格商城',
+          '系统提示',
+          {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }
+        ).then(() => {
           this.handSwithGoods(row)
         })
       } else {
@@ -191,11 +243,10 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-  i[type=success]{
-    color:#67C23A;
-  }
-  .goods-list .el-form-item{
-    margin-bottom: 8px;
-  }
+i[type="success"] {
+  color: #67c23a;
+}
+.goods-list .el-form-item {
+  margin-bottom: 8px;
+}
 </style>
-

+ 33 - 0
src/views/mixins/storeStatus.js

@@ -0,0 +1,33 @@
+// 商品状态标签管理
+
+export default {
+  data() {
+    return {}
+  },
+  filters: {
+    statusFilter(status) {
+      const statusMap = {
+        1: 'default',
+        2: 'success',
+        3: 'warning',
+        8: 'danger'
+      }
+      return statusMap[status]
+    }
+  },
+  methods: {
+    // 商品状态管理
+    storeStatus(row) {
+      const status = {
+        0: '已删除',
+        1: '待审核',
+        2: '已上架',
+        3: '已下架',
+        8: '审核未通过',
+        9: '已隐身',
+        10: '已冻结'
+      }
+      return status[row]
+    }
+  }
+}

+ 4 - 1
src/views/order/deliver-record.vue

@@ -59,10 +59,13 @@ export default {
   computed: {
     orderId: function() {
       return this.$route.query.orderId * 1
+    },
+    shopOrderId() {
+      return this.$route.query.shopOrderId * 1
     }
   },
   created() {
-    this.deliverDetails(this.orderId)
+    this.deliverDetails({ orderId: this.orderId, shopOrderId: this.shopOrderId })
   },
   methods: {
     // 付款单详情

+ 533 - 230
src/views/order/detail.vue

@@ -1,158 +1,356 @@
 <template>
   <div class="app-container">
-    <div class="app-header-top" style="width: 100%;float: right;margin-bottom: 10px;">
+    <div class="app-header-top" style="width: 100%; float: right; margin-bottom: 10px">
       <div class="app-title">订单详情</div>
-      <el-button type="primary" icon="el-icon-back" style="float: right;" @click="backToList">返回</el-button>
+      <el-button
+        type="primary"
+        icon="el-icon-back"
+        style="float: right"
+        @click="backToList"
+      >返回</el-button>
     </div>
     <el-card v-if="listLoading" class="box-card">
       <div class="refund-item">
         <el-row :gutter="24" class="box-row">
           <el-col :span="6"><b>下单时间:</b> {{ order.orderTime }}</el-col>
-          <el-col :span="6"><b>订单编号(ID):</b> {{ order.orderNo + '(' + order.orderId + ')' }}</el-col>
-          <el-col :span="4"><b>订单状态:</b>
-            <template v-if="['11','12','13','21','22','23','31','32','33'].indexOf(order.status)>=0">
+          <el-col
+            :span="6"
+          ><b>订单编号(ID):</b> {{ order.orderNo + "(" + order.orderId + ")" }}</el-col>
+          <el-col
+            :span="4"
+          ><b>订单状态:</b>
+            <template
+              v-if="
+                ['11', '12', '13', '21', '22', '23', '31', '32', '33'].indexOf(
+                  order.status
+                ) >= 0
+              "
+            >
               <el-tag type="success" size="small">交易中</el-tag>
             </template>
             <template v-else>
-              <el-tag :type="order.status*1===6?'info':''" size="small">{{ order.status | orderStatusFilter }}</el-tag>
+              <el-tag :type="order.status * 1 === 6 ? 'info' : ''" size="small">{{
+                order.status | orderStatusFilter
+              }}</el-tag>
             </template>
           </el-col>
-          <!-- <el-col :span="4"><b>订单类型:</b> {{ order.orderTime }}</el-col> -->
-          <el-col :span="4"><b>订单来源:</b> 【采美】平台</el-col>
+          <el-col :span="6"><b>订单来源:</b> 【丽格集采联盟】平台</el-col>
         </el-row>
         <el-row :gutter="24" class="box-row">
-          <el-col :span="6"><b>收款状态:</b>
-            <el-tag v-if="order.receiptStatus*1===1" type="danger" size="small">待收款</el-tag>
-            <el-tag v-if="order.receiptStatus*1===2" type="warning" size="small">部分收款</el-tag>
-            <el-tag v-if="order.receiptStatus*1===3" type="success" size="small">已收款</el-tag>
+          <el-col
+            :span="6"
+          ><b>收款状态:</b>
+            <el-tag
+              v-if="order.receiptStatus * 1 === 1"
+              type="danger"
+              size="small"
+            >待收款</el-tag>
+            <el-tag
+              v-if="order.receiptStatus * 1 === 2"
+              type="warning"
+              size="small"
+            >部分收款</el-tag>
+            <el-tag
+              v-if="order.receiptStatus * 1 === 3"
+              type="success"
+              size="small"
+            >已收款</el-tag>
           </el-col>
-          <el-col :span="6"><b>发货状态:</b>
-            <el-tag v-if="order.sendOutStatus*1===1" type="danger" size="small">待发货</el-tag>
-            <el-tag v-if="order.sendOutStatus*1===2" type="warning" size="small">部分发货</el-tag>
-            <el-tag v-if="order.sendOutStatus*1===3" type="success" size="small">已发货</el-tag>
+          <el-col
+            :span="6"
+          ><b>发货状态:</b>
+            <el-tag
+              v-if="order.sendOutStatus * 1 === 1"
+              type="danger"
+              size="small"
+            >待发货</el-tag>
+            <el-tag
+              v-if="order.sendOutStatus * 1 === 2"
+              type="warning"
+              size="small"
+            >部分发货</el-tag>
+            <el-tag
+              v-if="order.sendOutStatus * 1 === 3"
+              type="success"
+              size="small"
+            >已发货</el-tag>
           </el-col>
-          <el-col :span="4"><b>付款状态:</b>
-            <el-tag v-if="order.payStatus*1===1" type="danger" size="small">待付款</el-tag>
-            <el-tag v-if="order.payStatus*1===2" type="warning" size="small">部分付款</el-tag>
-            <el-tag v-if="order.payStatus*1===3" type="success" size="small">已付款</el-tag>
+          <el-col
+            :span="4"
+          ><b>付款状态:</b>
+            <el-tag
+              v-if="order.payStatus * 1 === 1"
+              type="danger"
+              size="small"
+            >待付款</el-tag>
+            <el-tag
+              v-if="order.payStatus * 1 === 2"
+              type="warning"
+              size="small"
+            >部分付款</el-tag>
+            <el-tag
+              v-if="order.payStatus * 1 === 3"
+              type="success"
+              size="small"
+            >已付款</el-tag>
           </el-col>
-          <el-col :span="4"><b>退款状态:</b>
-            <el-tag v-if="order.refundType*1===1" type="warning" size="small">部分退款</el-tag>
-            <el-tag v-else-if="order.refundType*1===2" type="danger" size="small">已退款</el-tag>
+          <el-col
+            :span="4"
+          ><b>退款状态:</b>
+            <el-tag
+              v-if="order.refundType * 1 === 1"
+              type="warning"
+              size="small"
+            >部分退款</el-tag>
+            <el-tag
+              v-else-if="order.refundType * 1 === 2"
+              type="danger"
+              size="small"
+            >已退款</el-tag>
             <el-tag v-else type="info" size="small">无退款</el-tag>
           </el-col>
-          <el-col :span="4">
-            <el-dropdown class="dropdown">
-              <el-button type="primary" size="mini">
-                功能<i class="el-icon-arrow-down el-icon--right" />
-              </el-button>
-              <el-dropdown-menu slot="dropdown">
-                <!-- <el-dropdown-item v-if="order.checkFlag === 1">
-                  <div @click="handeleDropdown(6,order.orderId)"> 上传线下支付凭证</div>
-                </el-dropdown-item>
-                <el-dropdown-item v-if="order.checkFlag === 1">
-                  <div @click="handeleDialogFormVisible"> 确认收款金额</div>
-                </el-dropdown-item>
-                <el-dropdown-item v-if="['11','12','21','22','31','32'].indexOf(order.status) !== -1">
-                  <div @click="handeleDropdown(1,order.orderId)">发货</div>
-                </el-dropdown-item> -->
-                <el-dropdown-item v-if="['4','5','12','13', '22', '23', '32', '33'].indexOf(order.status) !== -1">
-                  <div @click="handeleDropdown(2,order.orderId)">发货记录</div>
-                </el-dropdown-item>
-                <el-dropdown-item>
-                  <div @click="handeleDropdown(3,order.orderId)">收付款记录</div>
-                </el-dropdown-item>
-                <el-dropdown-item>
-                  <div @click="handeleDropdown(4,order.orderId)">退款(退货)记录</div>
-                </el-dropdown-item>
-                <el-dropdown-item>
-                  <div @click="handeleDropdown(5,order.orderId)">订单备注</div>
-                </el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-          </el-col>
         </el-row>
       </div>
       <div class="refund-item">
         <el-row v-if="order.bpOrderUserinfo" :gutter="24" class="box-row">
-          <el-col v-if="order.bpOrderUserinfo" :span="6"><b>机构:</b> {{ order.clubName }}</el-col>
+          <el-col
+            v-if="order.bpOrderUserinfo"
+            :span="6"
+          ><b>机构:</b> {{ order.clubName }}</el-col>
         </el-row>
         <el-row v-if="order.bpOrderUserinfo" :gutter="24" class="box-row">
-          <el-col :span="6"><b>收货人:</b> {{ order.bpOrderUserinfo.shouHuoRen }}</el-col>
+          <el-col
+            :span="6"
+          ><b>收货人:</b> {{ order.bpOrderUserinfo.shouHuoRen }}</el-col>
           <el-col :span="6"><b>手机:</b> {{ order.bpOrderUserinfo.mobile }}</el-col>
-          <el-col :span="12"><b>地址:</b> {{ order.bpOrderUserinfo.province +' '+ order.bpOrderUserinfo.city +' '+ order.bpOrderUserinfo.town +' '+ order.bpOrderUserinfo.address }}</el-col>
+          <el-col
+            :span="12"
+          ><b>地址:</b>
+            {{
+              order.bpOrderUserinfo.province +
+                " " +
+                order.bpOrderUserinfo.city +
+                " " +
+                order.bpOrderUserinfo.town +
+                " " +
+                order.bpOrderUserinfo.address
+            }}</el-col>
         </el-row>
         <el-row :gutter="24" class="box-row">
-          <el-col :span="6"><b>订单金额:</b> ¥{{ order.payTotalFee | toThousandFloatFilter }}</el-col>
-          <el-col :span="6"><b>应收金额:</b>
-            ¥{{ order.payTotalFee | toThousandFloatFilter }}
+          <el-col
+            :span="6"
+          ><b>订单金额:</b> ¥{{ order.payTotalFee | toThousandFloatFilter }}</el-col>
+          <el-col
+            :span="6"
+          ><b>应收金额:</b> ¥{{ order.payTotalFee | toThousandFloatFilter }}
           </el-col>
-          <el-col :span="12"><b>已收金额:</b>
-            <template v-if="order.receiptStatus*1===1">¥0.00</template>
+          <el-col
+            :span="12"
+          ><b>已收金额:</b>
+            <template v-if="order.receiptStatus * 1 === 1">¥0.00</template>
             <template v-else>¥{{ receiptAmount | toThousandFloatFilter }}</template>
           </el-col>
         </el-row>
-        <el-row :gutter="24" class="box-row">
-          <el-col :span="6"><b>退款金额(已完成):</b> ¥{{ returnValue | toThousandFloatFilter }}
-          </el-col>
-        </el-row>
       </div>
       <div class="refund-item">
-        <div v-for="shopOrder in order.newShopOrders" :key="shopOrder.shopOrderId" class="order-item">
+        <div
+          v-for="shopOrder in order.newShopOrders"
+          :key="shopOrder.shopOrderId"
+          class="order-item"
+        >
           <el-row :gutter="22" class="box-row">
             <el-col :span="6"><b>下单时间:</b> {{ shopOrder.orderTime }}</el-col>
-            <el-col :span="6"><b>子订单号(ID):</b> {{ shopOrder.shopOrderNo + '(' + shopOrder.shopOrderId + ')' }}</el-col>
-            <el-col :span="6"><b>子订单金额:</b> ¥{{ shopOrder.needPayAmount | toThousandFloatFilter }}</el-col>
-            <el-col :span="6"><b>运费:</b>
+            <el-col
+              :span="6"
+            ><b>子订单号(ID):</b>
+              {{ shopOrder.shopOrderNo + "(" + shopOrder.shopOrderId + ")" }}</el-col>
+            <el-col
+              :span="6"
+            ><b>子订单金额:</b> ¥{{
+              shopOrder.needPayAmount | toThousandFloatFilter
+            }}</el-col>
+            <el-col
+              :span="6"
+            ><b>运费:</b>
               <span>{{ shopOrder.postageInfo }}</span>
             </el-col>
+            <el-col :span="4" class="function">
+              <el-dropdown class="dropdown">
+                <el-button type="primary" size="mini">
+                  功能<i class="el-icon-arrow-down el-icon--right" />
+                </el-button>
+                <el-dropdown-menu slot="dropdown">
+                  <el-dropdown-item v-if="shopOrder.sendOutStatus * 1 > 1">
+                    <div
+                      @click="handeleDropdown(2, order.orderId, shopOrder.shopOrderId)"
+                    >
+                      发货记录
+                    </div>
+                  </el-dropdown-item>
+                  <el-dropdown-item>
+                    <div
+                      @click="handeleDropdown(3, order.orderId, shopOrder.shopOrderId)"
+                    >
+                      收付款记录
+                    </div>
+                  </el-dropdown-item>
+                  <el-dropdown-item>
+                    <div
+                      @click="handeleDropdown(4, order.orderId, shopOrder.shopOrderId)"
+                    >
+                      退款(退货)记录
+                    </div>
+                  </el-dropdown-item>
+                  <el-dropdown-item>
+                    <div
+                      @click="handeleDropdown(5, order.orderId, shopOrder.shopOrderId)"
+                    >
+                      订单备注
+                    </div>
+                  </el-dropdown-item>
+                </el-dropdown-menu>
+              </el-dropdown>
+            </el-col>
           </el-row>
           <el-row :gutter="22" class="box-row">
-            <el-col :span="6"><b>商品总额:</b> ¥{{ shopOrder.productAmount | toThousandFloatFilter }}</el-col>
-            <el-col :span="6"><b>应付金额:</b> ¥{{ shopOrder.shouldPayShopAmount | toThousandFloatFilter }}</el-col>
-            <el-col :span="6"><b>已付金额:</b> ¥{{ shopOrder.payedShopAmount | toThousandFloatFilter }}</el-col>
-            <el-col :span="6"><b>待付金额:</b> ¥{{ shopOrder.waitPayShop | toThousandFloatFilter }}</el-col>
+            <el-col
+              :span="6"
+            ><b>商品总额:</b> ¥{{
+              shopOrder.productAmount | toThousandFloatFilter
+            }}</el-col>
+            <el-col
+              :span="6"
+            ><b>应收金额:</b> ¥{{
+              shopOrder.needPayAmount | toThousandFloatFilter
+            }}</el-col>
+            <el-col
+              :span="6"
+            ><b>已收金额:</b> ¥{{
+              shopOrder.receiptAmount | toThousandFloatFilter
+            }}</el-col>
+            <el-col
+              :span="6"
+            ><b>待收金额:</b> ¥{{
+              shopOrder.restAmount | toThousandFloatFilter
+            }}</el-col>
           </el-row>
           <el-row :gutter="22" class="box-row">
-            <el-col :span="6"><b>收款状态:</b>
-              <el-tag v-if="shopOrder.receiptStatus*1===1" type="danger" size="small">待付款</el-tag>
-              <el-tag v-if="shopOrder.receiptStatus*1===2" type="warning" size="small">部分付款</el-tag>
-              <el-tag v-if="shopOrder.receiptStatus*1===3" type="success" size="small">已付款</el-tag>
+            <el-col
+              :span="6"
+            ><b>子订单状态:</b>
+              <template v-if="shopOrder.shopStatus < 10">
+                <el-tag type="success" size="small">
+                  {{ orderStatus(shopOrder.shopStatus) }}
+                </el-tag>
+              </template>
+              <template v-else>
+                <el-tag type="success" size="small"> 交易中 </el-tag>
+              </template>
             </el-col>
-            <el-col :span="6"><b>付款状态:</b>
-              <el-tag v-if="shopOrder.payStatus*1===1" type="danger" size="small">待付款</el-tag>
-              <el-tag v-if="shopOrder.payStatus*1===2" type="warning" size="small">部分付款</el-tag>
-              <el-tag v-if="shopOrder.payStatus*1===3" type="success" size="small">已付款</el-tag>
+            <el-col
+              :span="6"
+            ><b>收款状态:</b>
+              <el-tag
+                v-if="shopOrder.receiptStatus * 1 === 1"
+                type="danger"
+                size="small"
+              >待收款</el-tag>
+              <el-tag
+                v-if="shopOrder.receiptStatus * 1 === 2"
+                type="warning"
+                size="small"
+              >部分收款</el-tag>
+              <el-tag
+                v-if="shopOrder.receiptStatus * 1 === 3"
+                type="success"
+                size="small"
+              >已收款</el-tag>
             </el-col>
-            <el-col :span="6"><b>发货状态:</b>
-              <el-tag v-if="shopOrder.sendOutStatus*1===1" type="danger" size="small">待发货</el-tag>
-              <el-tag v-if="shopOrder.sendOutStatus*1===2" type="warning" size="small">部分发货</el-tag>
-              <el-tag v-if="shopOrder.sendOutStatus*1===3" type="success" size="small">已发货</el-tag>
+            <el-col
+              :span="6"
+            ><b>发货状态:</b>
+              <el-tag
+                v-if="shopOrder.sendOutStatus * 1 === 1"
+                type="danger"
+                size="small"
+              >待发货</el-tag>
+              <el-tag
+                v-if="shopOrder.sendOutStatus * 1 === 2"
+                type="warning"
+                size="small"
+              >部分发货</el-tag>
+              <el-tag
+                v-if="shopOrder.sendOutStatus * 1 === 3"
+                type="success"
+                size="small"
+              >已发货</el-tag>
             </el-col>
-            <el-col :span="6"><b>退款状态:</b>
-              <el-tag v-if="shopOrder.refundType*1===1" type="danger" size="small">待付款</el-tag>
-              <el-tag v-if="shopOrder.refundType*1===2" type="warning" size="small">部分付款</el-tag>
-              <el-tag v-if="shopOrder.refundType*1===3" type="success" size="small">已付款</el-tag>
+            <el-col
+              :span="6"
+            ><b>付款状态:</b>
+              <el-tag
+                v-if="shopOrder.payStatus * 1 === 1"
+                type="danger"
+                size="small"
+              >待付款</el-tag>
+              <el-tag
+                v-if="shopOrder.payStatus * 1 === 2"
+                type="warning"
+                size="small"
+              >部分付款</el-tag>
+              <el-tag
+                v-if="shopOrder.payStatus * 1 === 3"
+                type="success"
+                size="small"
+              >已付款</el-tag>
             </el-col>
           </el-row>
           <el-row :gutter="22" class="box-row">
-            <el-col :span="22"><b>留言:</b> {{ shopOrder.note ? shopOrder.note : '无' }}</el-col>
+            <el-col
+              :span="6"
+            ><b>退款状态:</b>
+              <el-tag
+                v-if="shopOrder.refundStatus * 1 === 1"
+                type="info"
+                size="small"
+              >无退款</el-tag>
+              <el-tag
+                v-if="shopOrder.refundStatus * 1 === 2"
+                type="warning"
+                size="small"
+              >退款中</el-tag>
+              <el-tag
+                v-if="shopOrder.refundStatus * 1 === 3"
+                type="success"
+                size="small"
+              >已退款</el-tag>
+            </el-col>
+            <el-col
+              :span="6"
+            ><b>留言:</b> {{ shopOrder.note ? shopOrder.note : "无" }}</el-col>
           </el-row>
           <el-row :gutter="22" class="box-row">
-            <el-col :span="22"><b>供应商:</b> {{ shopOrder.shopName ? shopOrder.shopName : '无' }}</el-col>
+            <el-col
+              :span="22"
+            ><b>供应商:</b>
+              {{ shopOrder.shopName ? shopOrder.shopName : "无" }}</el-col>
           </el-row>
           <el-row :gutter="22">
             <el-table :data="shopOrder.newOrderProducts" border>
               <el-table-column label="商品图片" align="center" prop="productImage">
-                <template slot-scope="{row}">
-                  <el-popover
-                    placement="top-start"
-                    title=""
-                    width="120"
-                    trigger="hover"
-                  >
-                    <img :src="row.productImage" alt="" style="width:100px;height:100px;">
-                    <img slot="reference" :src="row.productImage" alt="" style="width:50px;height:50px;">
+                <template slot-scope="{ row }">
+                  <el-popover placement="top-start" title="" width="120" trigger="hover">
+                    <img
+                      :src="row.productImage"
+                      alt=""
+                      style="width: 100px; height: 100px"
+                    >
+                    <img
+                      slot="reference"
+                      :src="row.productImage"
+                      alt=""
+                      style="width: 50px; height: 50px"
+                    >
                   </el-popover>
                 </template>
               </el-table-column>
@@ -160,43 +358,102 @@
               <el-table-column label="规格" align="center" prop="unit" />
               <el-table-column label="数量" align="center" prop="num" width="60" />
               <el-table-column label="单价" align="center" prop="price">
-                <template slot-scope="{row}">
+                <template slot-scope="{ row }">
                   <span>¥{{ row.price | amountfilters }}</span>
                 </template>
               </el-table-column>
               <el-table-column label="总价" align="center" prop="totalFee">
-                <template slot-scope="{row}">
+                <template slot-scope="{ row }">
                   <span>¥{{ row.totalFee | amountfilters }}</span>
                 </template>
               </el-table-column>
-              <el-table-column label="已发/已收" align="center" prop="returnedPurchaseProductNum">
-                <template slot-scope="{row}">
-                  <span>{{ `${row.sendOutNum ? row.sendOutNum : 0}/${row.receivedNum ? row.receivedNum : 0}` }}</span>
+              <el-table-column
+                label="已发/已收"
+                align="center"
+                prop="returnedPurchaseProductNum"
+              >
+                <template slot-scope="{ row }">
+                  <span>{{
+                    `${row.sendOutNum ? row.sendOutNum : 0}/${
+                      row.receivedNum ? row.receivedNum : 0
+                    }`
+                  }}</span>
                 </template>
               </el-table-column>
-              <el-table-column label="退款(退货)中/已完成" align="center" prop="returnedPurchaseProductNum">
-                <template slot-scope="{row}">
-                  <span>{{ row.returningNum ? row.returningNum : 0 }} / {{ row.returnedNum ? row.returnedNum : 0 }}</span>
+              <el-table-column
+                label="退款(退货)中/已完成"
+                align="center"
+                prop="returnedPurchaseProductNum"
+              >
+                <template slot-scope="{ row }">
+                  <span>{{ row.returningNum ? row.returningNum : 0 }} /
+                    {{ row.returnedNum ? row.returnedNum : 0 }}</span>
                 </template>
               </el-table-column>
             </el-table>
           </el-row>
+          <div v-if="shopOrder.vouchers.length > 0">
+            <h1 style="font-size: 14px; color: #409eff">线下支付凭证:</h1>
+            <el-row v-for="(vouch, index) in shopOrder.vouchers" :key="index" style="padding: 5px 0">
+              <p class="refund-item-p">{{ vouch.addTime }}</p>
+              <div class="refund-item-imgs">
+                <div
+                  v-for="(imgage, imgIndex) in vouch.images"
+                  :key="imgIndex"
+                  class="item-image"
+                >
+                  <a :href="imgage" target="_blank" rel="noopener noreferrer">
+                    <img :src="imgage" alt="">
+                  </a>
+                </div>
+              </div>
+              <p v-if="vouch.remarks" class="refund-item-p">备注:{{ vouch.remarks }}</p>
+            </el-row>
+          </div>
         </div>
       </div>
       <div class="refund-item">
         <template v-if="orderInvoice">
           <el-row :gutter="24" class="box-row">
-            <el-col :span="6"><b>发票信息:</b> {{ setInvoiceText(orderInvoice) }}</el-col>
+            <el-col
+              :span="6"
+            ><b>发票信息:</b> {{ setInvoiceText(orderInvoice) }}</el-col>
           </el-row>
           <el-row :gutter="24" class="box-row">
-            <el-col :span="6"><b>发票抬头:</b> {{ orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : '无' }}</el-col>
-            <el-col :span="6"><b>单位税号:</b> {{ orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum : '无' }}</el-col>
-            <el-col :span="8"><b>注册地址:</b> {{ orderInvoice.registeredAddress ? orderInvoice.registeredAddress : '无' }}</el-col>
+            <el-col
+              :span="6"
+            ><b>发票抬头:</b>
+              {{ orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : "无" }}</el-col>
+            <el-col
+              v-if="orderInvoice.invoiceTitleType*1 === 1"
+              :span="6"
+            ><b>单位税号:</b>
+              {{
+                orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum : "无"
+              }}</el-col>
+            <el-col
+              v-if="orderInvoice.invoiceTitleType*1 === 1"
+              :span="8"
+            ><b>注册地址:</b>
+              {{
+                orderInvoice.registeredAddress ? orderInvoice.registeredAddress : "无"
+              }}</el-col>
           </el-row>
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="6"><b>注册电话:</b> {{ orderInvoice.registeredPhone ? orderInvoice.registeredPhone : '无' }}</el-col>
-            <el-col :span="6"><b>开户银行:</b> {{ orderInvoice.openBank ? orderInvoice.openBank : '无' }}</el-col>
-            <el-col :span="8"><b>银行账号:</b> {{ orderInvoice.bankAccountNo ? orderInvoice.bankAccountNo : '无' }}</el-col>
+          <el-row v-if="orderInvoice.invoiceTitleType*1 === 1" :gutter="24" class="box-row">
+            <el-col
+              :span="6"
+            ><b>注册电话:</b>
+              {{
+                orderInvoice.registeredPhone ? orderInvoice.registeredPhone : "无"
+              }}</el-col>
+            <el-col
+              :span="6"
+            ><b>开户银行:</b>
+              {{ orderInvoice.openBank ? orderInvoice.openBank : "无" }}</el-col>
+            <el-col
+              :span="8"
+            ><b>银行账号:</b>
+              {{ orderInvoice.bankAccountNo ? orderInvoice.bankAccountNo : "无" }}</el-col>
           </el-row>
         </template>
         <template v-else>
@@ -205,26 +462,27 @@
           </el-row>
         </template>
       </div>
-      <div v-if="voucher.length>0" class="refund-item">
-        <h1 style="font-size: 14px;color: #409EFF;">线下支付凭证:</h1>
-        <el-row v-for="(vouch,index) in voucher" :key="index" style="padding:5px 0">
-          <p class="refund-item-p">{{ vouch.addTime }}</p>
-          <div class="refund-item-imgs">
-            <div v-for="(imgage,imgIndex) in vouch.images" :key="imgIndex" class="item-image">
-              <a :href="imgage" target="_blank" rel="noopener noreferrer">
-                <img :src="imgage" alt="">
-              </a>
-            </div>
-          </div>
-          <p v-if="vouch.remarks" class="refund-item-p">备注:{{ vouch.remarks }}</p>
-        </el-row>
-      </div>
+      <!-- <div v-if="voucher.length > 0" class="refund-item"></div> -->
       <el-dialog title="更改收款状态" :visible.sync="dialogFormVisible" width="600px">
-        <el-form ref="dataForm" :rules="rules" :model="chengeOrder" label-position="right" label-width="150px">
-          <el-row :gutter="24" class="box-row" style="margin-bottom: 40px;">
-            <el-col :span="8"><b>应收金额:</b> ¥{{ order.payTotalFee | amountfilters }}</el-col>
-            <el-col :span="8"><b>已收金额:</b>¥{{ receiptAmount | amountfilters }}</el-col>
-            <el-col :span="8"><b>未收金额:</b> ¥{{ (order.payTotalFee - receiptAmount) | amountfilters }}</el-col>
+        <el-form
+          ref="dataForm"
+          :rules="rules"
+          :model="chengeOrder"
+          label-position="right"
+          label-width="150px"
+        >
+          <el-row :gutter="24" class="box-row" style="margin-bottom: 40px">
+            <el-col
+              :span="8"
+            ><b>应收金额:</b> ¥{{ order.payTotalFee | amountfilters }}</el-col>
+            <el-col
+              :span="8"
+            ><b>已收金额:</b>¥{{ receiptAmount | amountfilters }}</el-col>
+            <el-col
+              :span="8"
+            ><b>未收金额:</b> ¥{{
+              (order.payTotalFee - receiptAmount) | amountfilters
+            }}</el-col>
           </el-row>
           <el-form-item label="订单本次收款金额:" prop="amount" :rules="rules.amount">
             <el-input v-model="chengeOrder.amount" style="width: 200px">
@@ -234,10 +492,19 @@
         </el-form>
         <div slot="footer" class="dialog-footer">
           <el-button @click="dialogFormVisible = false">取消</el-button>
-          <el-button type="primary" :disabled="disabled" @click="handleChangOrder">确定</el-button>
+          <el-button
+            type="primary"
+            :disabled="disabled"
+            @click="handleChangOrder"
+          >确定</el-button>
         </div>
       </el-dialog>
-      <Remarks dialog-title="订单备注信息" :is-visible.sync="dialogRemarksVisible" :order-id="dialogRemarksorderId" :remark-list="dialogRemarkList" />
+      <Remarks
+        dialog-title="订单备注信息"
+        :is-visible.sync="dialogRemarksVisible"
+        :order-id="dialogRemarksorderId"
+        :remark-list="dialogRemarkList"
+      />
     </el-card>
   </div>
 </template>
@@ -261,7 +528,10 @@ export default {
     const picValidator = (rule, value, callback) => {
       if (!this.chengeOrder.amount) {
         callback(new Error('请输入本次收款金额'))
-      } else if (this.chengeOrder.amount > this.SubtrAount(this.order.payTotalFee, this.receiptAmount) * 1) {
+      } else if (
+        this.chengeOrder.amount >
+        this.SubtrAount(this.order.payTotalFee, this.receiptAmount) * 1
+      ) {
         callback(new Error('本次收款金额不能大于未收金额'))
       } else {
         callback()
@@ -302,19 +572,33 @@ export default {
     this.fetchData()
   },
   methods: {
+    // 订单状态更新
+    orderStatus(state) {
+      const status = {
+        0: '待确认',
+        1: '已确认',
+        2: '交易完成',
+        3: '订单完成',
+        4: '已关闭',
+        5: '交易全退'
+      }
+      return status[state]
+    },
     fetchData() {
-      getDetail({ id: this.orderId }).then(response => {
-        this.order = response.data.order
-        this.bpClauses = response.data.bpClauses
-        this.receiptAmount = response.data.receiptAmount
-        this.returnValue = response.data.returnValue
-        this.returnedPurchaseFee = response.data.returnedPurchaseFee
-        this.orderInvoice = this.order.orderInvoice
-        this.voucher = response.data.voucher
-        this.listLoading = true
-      }).catch(() => {
-        this.listLoading = true
-      })
+      getDetail({ id: this.orderId })
+        .then((response) => {
+          this.order = response.data.order
+          this.bpClauses = response.data.bpClauses
+          this.receiptAmount = response.data.receiptAmount
+          this.returnValue = response.data.returnValue
+          this.returnedPurchaseFee = response.data.returnedPurchaseFee
+          this.orderInvoice = this.order.orderInvoice
+          this.voucher = response.data.voucher
+          this.listLoading = true
+        })
+        .catch(() => {
+          this.listLoading = true
+        })
     },
     // 设置发票文案
     setInvoiceText(data) {
@@ -337,7 +621,7 @@ export default {
       return invoiceText
     },
     RemarksOrder: function(id) {
-      getRemarks(id).then(response => {
+      getRemarks(id).then((response) => {
         this.dialogRemarkList = response.data
       })
       this.dialogRemarksorderId = id
@@ -346,31 +630,43 @@ export default {
     handeleDialogFormVisible() {
       this.dialogFormVisible = true
     },
-    handeleDropdown(type, orderId) {
+    handeleDropdown(type, orderId, shopOrderId) {
       switch (type) {
-        case 1:// 发货
+        case 1: // 发货
           this.$router.push({ path: '/order/deliver', query: { orderId: orderId }})
           break
-        case 2:// 发货记录
-          this.$router.push({ path: '/order/deliver-record', query: { orderId: orderId }})
+        case 2: // 发货记录
+          this.$router.push({
+            path: '/order/deliver-record',
+            query: { orderId: orderId, shopOrderId }
+          })
           break
-        case 3:// 收付款记录
-          this.$router.push({ path: '/finance/remit-record', query: { orderId: orderId }})
+        case 3: // 收付款记录
+          this.$router.push({
+            path: '/finance/remit-record',
+            query: { orderId: orderId, shopOrderId }
+          })
           break
-        case 4:// 退款(退货)记录
-          this.$router.push({ path: '/finance/refund-record', query: { orderId: orderId }})
+        case 4: // 退款(退货)记录
+          this.$router.push({
+            path: '/finance/refund-record',
+            query: { orderId: orderId, shopOrderId }
+          })
           break
-        case 5:// 订单备注
-          this.$router.push({ path: '/order/order-remarks', query: { orderId: orderId }})
+        case 5: // 订单备注
+          this.$router.push({
+            path: '/order/order-remarks',
+            query: { orderId: orderId, shopOrderId }
+          })
           break
-        case 6:// 上传线下支付凭证
+        case 6: // 上传线下支付凭证
           this.$router.push({ path: '/order/pay-remarks', query: { orderId: orderId }})
           break
       }
     },
     async handleChangOrder() {
       // 确认本次收款金额
-      this.$refs['dataForm'].validate(valid => {
+      this.$refs['dataForm'].validate((valid) => {
         if (valid) {
           this.orderCheckReceipt()
         } else {
@@ -401,7 +697,7 @@ export default {
         r2 = 0
       }
       m = Math.pow(10, Math.max(r1, r2))
-      n = (r1 >= r2) ? r1 : r2
+      n = r1 >= r2 ? r1 : r2
       return ((arg1 * m - arg2 * m) / m).toFixed(n)
     },
     backToList() {
@@ -418,70 +714,77 @@ export default {
 </script>
 
 <style scoped>
-  .app-title{
-    float: left;
-    line-height: 36px;
-    font-size: 18px;
-    font-weight: bold;
-    color: #999999;
-  }
-  .box-card{
-    margin-top: 20px;
-    font-size: 14px;
-  }
-  .box-row{
-    padding: 10px 0;
-  }
-  .box-row .dropdown{
-    margin-top: -10px;
-  }
-  .refund-item{
-    padding: 10px 0;
-    border-bottom:1px dashed #E4E7ED;
-  }
-  .refund-item-p{
-    width: 100%;
-    line-height: 18px;
-    font-size: 14px;
-    color: #666666;
-    float: left;
-  }
-  .refund-item-imgs{
-    width: 100%;
-    height: auto;
-    margin: 5px 0;
-  }
-  .refund-item-imgs .item-image{
-    width: 148px;
-    height: 148px;
-    margin-right: 10px;
-    border: 1px dashed #E1E1E1;
-    float: left;
-  }
-  .refund-item-imgs .item-image a{
-    width: 148px;
-    height: 148px;
-    display: block;
-  }
-  .refund-item-imgs .item-image a img{
-    width: 148px;
-    height: 148px;
-    display: block;
-  }
-  .order-item{
-    background:#F7F7F7;
-    padding:10px 20px;
-    box-sizing: border-box;
-    border-radius: 5px;
-    margin-bottom: 10px;
-  }
-  .product-row{
-    padding: 10px 0;
-    background: #EBEEF5;
-    border-top: 1px dashed #DCDFE6;
-  }
-  .op-item{
-    padding: 5px 0;
-  }
+::v-deep .el-row {
+  position: relative;
+}
+.function {
+  position: absolute;
+  right: 0;
+  width: auto;
+}
+.app-title {
+  float: left;
+  line-height: 36px;
+  font-size: 18px;
+  font-weight: bold;
+  color: #999999;
+}
+.box-card {
+  margin-top: 20px;
+  font-size: 14px;
+}
+.box-row {
+  padding: 10px 0;
+}
+.box-row .dropdown {
+  margin-top: -10px;
+}
+.refund-item {
+  padding: 10px 0;
+  border-bottom: 1px dashed #e4e7ed;
+}
+.refund-item-p {
+  width: 100%;
+  line-height: 18px;
+  font-size: 14px;
+  color: #666666;
+  float: left;
+}
+.refund-item-imgs {
+  width: 100%;
+  height: auto;
+  margin: 5px 0;
+}
+.refund-item-imgs .item-image {
+  width: 148px;
+  height: 148px;
+  margin-right: 10px;
+  border: 1px dashed #e1e1e1;
+  float: left;
+}
+.refund-item-imgs .item-image a {
+  width: 148px;
+  height: 148px;
+  display: block;
+}
+.refund-item-imgs .item-image a img {
+  width: 148px;
+  height: 148px;
+  display: block;
+}
+.order-item {
+  background: #f7f7f7;
+  padding: 10px 20px;
+  box-sizing: border-box;
+  border-radius: 5px;
+  margin-bottom: 10px;
+}
+.product-row {
+  padding: 10px 0;
+  background: #ebeef5;
+  border-top: 1px dashed #dcdfe6;
+}
+.op-item {
+  padding: 5px 0;
+}
 </style>
-

+ 11 - 30
src/views/order/list.vue

@@ -104,22 +104,6 @@
           <el-option label="已退款" value="2" />
         </el-select>
       </div>
-      <div class="filter-control">
-        <span>待审核退款:</span>
-        <el-select v-model="listQuery.returnedPurchaseStatus" style="width:180px;" clearable @change="getList">
-          <el-option value="" label="所有" />
-          <el-option label="有" value="1" />
-          <el-option label="无" value="0" />
-        </el-select>
-      </div>
-      <div class="filter-control">
-        <span>订单类型:</span>
-        <el-select v-model="listQuery.orderType" style="width:180px;" clearable @change="getList">
-          <el-option value="" label="所有" />
-          <el-option label="采购员订单" :value="0" />
-          <el-option label="自主订单" :value="1" />
-        </el-select>
-      </div>
       <div class="filter-control">
         <span>下单时间:</span>
         <el-date-picker
@@ -133,14 +117,12 @@
           @change="getList"
         />
       </div>
-      <div class="filter-control">
+      <!-- <div class="filter-control orderSource">
         <span>订单来源:</span>
-        <el-select v-model="listQuery.status" style="width:180px;" clearable @change="getList">
-          <el-option value="" label="所有" />
-          <el-option label="【采美】平台" value="99" />
-          <el-option label="【丽格集采联盟】平台" value="7" />
+        <el-select v-model="listQuery.organizeId" style="width:180px;" @change="getList">
+          <el-option label="【丽格集采联盟】平台" :value="4" />
         </el-select>
-      </div>
+      </div> -->
       <div class="filter-control">
         <el-button type="primary" icon="el-icon-search" @click="getList">查询</el-button>
       </div>
@@ -196,12 +178,6 @@
           <el-tag v-else type="info" size="small">无退款</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="待审核退款" align="center" prop="returnedPurchaseStatus">
-        <template slot-scope="{row}">
-          <el-tag v-if="row.returnedPurchaseStatus*1===1" type="warning" size="small">有</el-tag>
-          <el-tag v-else type="info" size="small">无</el-tag>
-        </template>
-      </el-table-column>
       <el-table-column label="订单金额" align="center" prop="payTotalFee">
         <template slot-scope="{row}">
           ¥{{ row.payTotalFee | toThousandFloatFilter }}
@@ -247,7 +223,7 @@ export default {
       listQuery: {
         index: 1,
         pageSize: 10,
-        organizeId: this.$store.getters.organizeId,
+        organizeId: 4,
         orderId: '',
         orderNo: '',
         buyer: '',
@@ -311,12 +287,17 @@ export default {
 }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
   .el-form-item{
     margin-bottom: 0
   }
   .date-box{
     margin-right:0;
   }
+  .orderSource {
+    ::v-deep .el-select {
+      width: 200px !important;
+    }
+  }
 </style>
 

+ 76 - 60
src/views/order/order-remarks.vue

@@ -2,13 +2,14 @@
   <div class="app-container">
     <div v-if="orderNoteList.length === 0" class="order_empty">
       <span>暂无订单备注</span>
-      <el-button type="primary" @click="handlePayNote">添加备注</el-button>
     </div>
     <div v-else>
-      <div class="filter-container" style="text-align: right; padding: 0;">
-        <el-button type="primary" @click="handlePayNote">添加备注</el-button>
-      </div>
-      <el-card v-for="item in orderNoteList" :key="item.id" class="box-card" style="margin: 0 auto;">
+      <el-card
+        v-for="item in orderNoteList"
+        :key="item.id"
+        class="box-card"
+        style="margin: 0 auto"
+      >
         <div class="refund-item">
           <el-form label-width="120px">
             <el-form-item :label="item.createName">
@@ -20,20 +21,34 @@
               {{ item.remarks }}
             </el-form-item>
             <el-form-item label="图片:">
-              <el-image v-for="(img, index) in item.images" :key="index" :preview-src-list="[img]" style="width: 148px;height: 148px;margin-right: 20px;" :src="img" />
+              <template v-if="item.images.length > 0">
+                <el-image
+                  v-for="(img, index) in item.images"
+                  :key="index"
+                  :preview-src-list="[img]"
+                  style="width: 148px; height: 148px; margin-right: 20px"
+                  :src="img"
+                />
+              </template>
+              <template v-else>
+                无
+              </template>
             </el-form-item>
             <el-form-item label="文件:">
-              <div v-for="file, i in item.ossFiles" :key="i">
-                <span class="order_text">{{ file.name }}</span>
-                <el-button type="text" @click="handlerDownload(file)">下载</el-button>
-              </div>
+              <template v-if="item.ossFiles.length > 0">
+                <div v-for="(file, i) in item.ossFiles" :key="i">
+                  <span class="order_text">{{ file.name }}</span>
+                  <el-button type="text" @click="handlerDownload(file)">下载</el-button>
+                </div>
+              </template>
+              <template v-else> 无 </template>
             </el-form-item>
           </el-form>
         </div>
       </el-card>
-      <div class="goBack">
+      <!-- <div class="goBack">
         <el-button plain @click="backToList">返回</el-button>
-      </div>
+      </div> -->
     </div>
   </div>
 </template>
@@ -42,8 +57,7 @@
 import { orderNotes, fileDownload } from '@/api/order'
 export default {
   name: 'OrderRemarks',
-  filters: {
-  },
+  filters: {},
   data() {
     return {
       orderInfo: {},
@@ -57,10 +71,13 @@ export default {
     },
     disabled() {
       return this.productRadio === null
+    },
+    shopOrderId() {
+      return this.$route.query.shopOrderId * 1
     }
   },
   created() {
-    this.orderNotes(this.orderId)
+    this.orderNotes({ orderId: this.orderId, shopOrderId: this.shopOrderId })
   },
   methods: {
     // 获取订单备注列表
@@ -117,7 +134,7 @@ export default {
   flex-direction: column;
 }
 .order_empty span {
-  color: #409EFF;
+  color: #409eff;
   margin: 1vw;
 }
 .order_time {
@@ -144,48 +161,47 @@ export default {
 ::v-deep .el-card {
   margin: 20px auto !important;
 }
-  .app-title{
-    line-height: 36px;
-    font-size: 26px;
-    font-weight: bold;
-    color: #409EFF;
-    text-align: center;
-    margin: 0;
-  }
-  .box-card{
-    font-size: 14px;
-  }
-  .box-row{
-    padding: 10px 0;
-  }
-  .box-row .dropdown{
-    margin-top: -10px;
-  }
-  .refund-item{
-    padding: 10px 0;
-  }
-  .order-item{
-    background:#f7f7f7;
-    margin-bottom: 20px;
-    padding: 10px 15px;
-    border-radius: 5px;
-  }
-  .product-row{
-    padding: 10px 0;
-    background: #EBEEF5;
-    border-top: 1px dashed #DCDFE6;
-  }
-  .op-item{
-    padding: 5px 0;
-  }
-  .el-span-warning{
-    color: #E6A23C;
-  }
-  .el-span-success{
-    color: #67C23A;
-  }
-  .el-span-danger{
-    color: #F56C6C;
-  }
+.app-title {
+  line-height: 36px;
+  font-size: 26px;
+  font-weight: bold;
+  color: #409eff;
+  text-align: center;
+  margin: 0;
+}
+.box-card {
+  font-size: 14px;
+}
+.box-row {
+  padding: 10px 0;
+}
+.box-row .dropdown {
+  margin-top: -10px;
+}
+.refund-item {
+  padding: 10px 0;
+}
+.order-item {
+  background: #f7f7f7;
+  margin-bottom: 20px;
+  padding: 10px 15px;
+  border-radius: 5px;
+}
+.product-row {
+  padding: 10px 0;
+  background: #ebeef5;
+  border-top: 1px dashed #dcdfe6;
+}
+.op-item {
+  padding: 5px 0;
+}
+.el-span-warning {
+  color: #e6a23c;
+}
+.el-span-success {
+  color: #67c23a;
+}
+.el-span-danger {
+  color: #f56c6c;
+}
 </style>
-

+ 7 - 87
src/views/order/refund-detail.vue

@@ -13,16 +13,10 @@
             <el-col :span="5"><b>退款编号:</b> {{ cmReturnedPurchase.returnedNo }}</el-col>
             <el-col :span="5"><b>申请时间:</b> {{ cmReturnedPurchase.returnTime }}</el-col>
             <el-col :span="4"><b>申请金额:</b> ¥{{ cmReturnedPurchase.refundFee | amountfilters }} </el-col>
-            <el-col :span="4"><b>退款审核状态:</b>
-              <el-tag v-if="cmReturnedPurchase.status*1===1" type="warning" size="small">待审核</el-tag>
-              <el-tag v-if="cmReturnedPurchase.status*1===2" type="success" size="small">审核通过</el-tag>
-              <el-tag v-if="cmReturnedPurchase.status*1===3" type="danger" size="small">审核不通过</el-tag>
-            </el-col>
           </el-row>
           <h1 class="refund-item-title">退款方式</h1>
           <el-row :gutter="24" class="box-row">
-            <el-col v-if="cmReturnedPurchase.returnedWay*1===4" :span="4"><b>未支付无退款</b> </el-col>
-            <template v-else-if="cmReturnedPurchase.returnedWay*1===1">
+            <template>
               <template v-if="cmReturnedPurchase.refundOnlineFee*1 !== 0">
                 <el-col :span="5">
                   <b>线上退回:</b>
@@ -34,73 +28,13 @@
                   <b>线下转账:</b>
                   <span>¥{{ cmReturnedPurchase.refundOfflineFee | amountfilters }}</span>
                 </el-col>
-                <el-col :span="4"><b>开户名:</b><span>{{ cmReturnedPurchase.bankAccountName }}</span> </el-col>
-                <el-col :span="4"><b>账号:</b> <span>{{ cmReturnedPurchase.bankAccountNo }}</span> </el-col>
-                <el-col :span="4"><b>开户行:</b> <span>{{ cmReturnedPurchase.openBank }}</span> </el-col>
-                <el-col :span="4"><b>账户类型:</b> <span>{{ cmReturnedPurchase.bankAccountType*1 === 1 ? '公账' : '私账' }}</span> </el-col>
               </template>
             </template>
-            <span v-else>----</span>
           </el-row>
         </div>
       </el-card>
       <el-card ref="print" class="box-card" style="margin: 5px auto;">
         <div class="refund-item">
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="5">
-              <b>订单编号(ID):</b>{{ orderData.orderNo }}({{ orderData.orderId }})
-            </el-col>
-            <el-col :span="5">
-              <b>下单时间:</b>{{ orderData.orderTime }}
-            </el-col>
-            <el-col :span="5">
-              <b>订单状态:</b>
-              <template v-if="['11','12','13','21','22','23','31','32','33'].indexOf(orderData.status)>=0">
-                <el-tag type="success" size="small">交易中({{ orderData.status | orderStatusFilter }})</el-tag>
-              </template>
-              <template v-else>
-                <el-tag :type="orderData.status*1===6?'info':''" size="small">{{ orderData.status | orderStatusFilter }}</el-tag>
-              </template>
-            </el-col>
-          </el-row>
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="5"><b>订单金额:</b> ¥{{ orderData.payTotalFee }}</el-col>
-            <el-col :span="5"><b>应收金额:</b> ¥{{ orderData.payableAmount }}</el-col>
-            <el-col :span="14"><b>机构运费:</b>
-              <span>{{ orderData.postageInfo }}</span>
-            </el-col>
-          </el-row>
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="5">
-              <b>收款状态:</b>
-              <el-tag v-if="orderData.receiptStatus*1===1" type="danger" size="small">待收款</el-tag>
-              <el-tag v-if="orderData.receiptStatus*1===2" type="warning" size="small">部分收款</el-tag>
-              <el-tag v-if="orderData.receiptStatus*1===3" type="success" size="small">已收款</el-tag>
-            </el-col>
-            <el-col :span="5">
-              <b>发货状态:</b>
-              <el-tag v-if="orderData.sendOutStatus*1===1" type="danger" size="small">待发货</el-tag>
-              <el-tag v-if="orderData.sendOutStatus*1===2" type="warning" size="small">部分发货</el-tag>
-              <el-tag v-if="orderData.sendOutStatus*1===3" type="success" size="small">已发货</el-tag>
-            </el-col>
-            <el-col :span="5">
-              <b>付款状态:</b>
-              <el-tag v-if="orderData.payStatus*1===1" type="danger" size="small">待付款</el-tag>
-              <el-tag v-if="orderData.payStatus*1===2" type="warning" size="small">部分付款</el-tag>
-              <el-tag v-if="orderData.payStatus*1===3" type="success" size="small">已付款</el-tag>
-            </el-col>
-            <el-col :span="5">
-              <b>退款状态:</b>
-              <el-tag v-if="orderData.refundType*1===1" type="warning" size="small">部分退款</el-tag>
-              <el-tag v-if="orderData.refundType*1===2" type="success" size="small">全部付款</el-tag>
-              <el-tag v-else type="info" size="small">无退款</el-tag>
-            </el-col>
-          </el-row>
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="5"><b>机构名称:</b> {{ orderData.clubName }}</el-col>
-            <el-col :span="5"><b>收货人:</b> {{ orderData.receiver }}({{ orderData.mobile }})</el-col>
-            <el-col :span="14"><b>地址:</b> {{ orderData.address }}</el-col>
-          </el-row>
           <el-table :data="orderData.newShopOrders" border fit highlight-current-row default-expand-all :header-cell-style="{background:'#e9f3f7',color:'#606266'}">
             <el-table-column label="商品信息" type="expand" width="110">
               <template slot-scope="{row}">
@@ -147,30 +81,16 @@
             </el-table-column>
             <el-table-column label="退款状态" align="center" prop="receiptStatus">
               <template slot-scope="{row}">
-                <el-tag v-if="row.refundType*1===1" type="warning" size="small">部分退款</el-tag>
-                <el-tag v-if="row.refundType*1===2" type="success" size="small">全部付款</el-tag>
+                <el-tag v-if="row.refundStatus*1===1" type="warning" size="small">无退款</el-tag>
+                <el-tag v-if="row.refundStatus*1===3" type="success" size="small">已退款</el-tag>
                 <el-tag v-else type="info" size="small">无退款</el-tag>
               </template>
             </el-table-column>
+            <el-table-column label="运费" align="center" prop="postageInfo" />
             <el-table-column label="供应商" align="center" prop="shopName" />
           </el-table>
         </div>
       </el-card>
-      <el-card ref="print" class="box-card" style="margin: 5px auto;">
-        <div class="refund-item">
-          <h1 class="refund-item-title">审核信息</h1>
-          <el-row :gutter="24" class="box-row">
-            <el-col :span="6">
-              <b>审核时间:</b>
-              {{ cmReturnedPurchase.confirmReturnTime ? cmReturnedPurchase.confirmReturnTime :'--' }}
-            </el-col>
-            <el-col :span="11">
-              <b>审核备注:</b>
-              {{ cmReturnedPurchase.reviewRemarks ? cmReturnedPurchase.reviewRemarks :'无' }}
-            </el-col>
-          </el-row>
-        </div>
-      </el-card>
       <el-card ref="print" class="box-card" style="margin: 5px auto;">
         <div class="refund-item">
           <h1 class="refund-item-title">申请信息</h1>
@@ -291,7 +211,7 @@ export default {
 }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
   .app-title{
     line-height: 32px;
     font-size: 24px;
@@ -342,10 +262,10 @@ export default {
   .el-span-danger{
     color: #F56C6C;
   }
-  /deep/ .el-table__expanded-cell[class*=cell]{
+  ::v-deep .el-table__expanded-cell[class*=cell]{
     padding:10px 10px !important;
   }
-  /deep/ .el-card__body{
+  ::v-deep .el-card__body{
     padding: 5px 20px !important;
   }
 </style>

+ 2 - 7
src/views/order/refund-record.vue

@@ -1,10 +1,5 @@
 <template>
   <div class="app-container">
-
-    <!--<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal">
-      <el-menu-item index="1" @click="backToList">订单列表</el-menu-item>
-      <el-menu-item index="2">收退款记录</el-menu-item>
-    </el-menu>-->
     <div class="app-header-top" style="width: 100%;float: right;margin-bottom: 10px;">
       <div class="app-title">收退款记录</div>
       <el-button type="primary" icon="el-icon-back" style="float: right;" @click="backToList">返回</el-button>
@@ -117,13 +112,13 @@
           <span>{{ row.returnTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="退款状态" align="center" prop="payType">
+      <!-- <el-table-column label="退款状态" align="center" prop="payType">
         <template slot-scope="{row}">
           <el-tag v-if="row.status*1===1" type="warning" size="small">待审核</el-tag>
           <el-tag v-if="row.status*1===2" type="success" size="small">审核通过</el-tag>
           <el-tag v-if="row.status*1===3" type="danger" size="small">审核不通过</el-tag>
         </template>
-      </el-table-column>
+      </el-table-column> -->
     </el-table>
     <template>
       <el-backtop style="right: 40px; bottom: 40px;">

+ 2 - 2
src/views/order/refund-return.vue

@@ -64,11 +64,11 @@
             <el-col :span="6"><b>退款编号:</b> {{ refund.returnedNo }}</el-col>
             <el-col :span="6"><b>申请时间:</b> <template v-if="refund.returnTime">{{ refund.returnTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</template></el-col>
             <el-col :span="6"><b>申请金额:</b> ¥{{ refund.refundFee | toThousandFloatFilter }}</el-col>
-            <el-col :span="6"><b>退款审核状态:</b>
+            <!-- <el-col :span="6"><b>退款审核状态:</b>
               <el-tag v-if="refund.status*1===1" type="warning" size="small">待审核</el-tag>
               <el-tag v-if="refund.status*1===2" type="success" size="small">审核通过</el-tag>
               <el-tag v-if="refund.status*1===3" type="danger" size="small">审核不通过</el-tag>
-            </el-col>
+            </el-col> -->
           </el-row>
           <el-row :gutter="24" class="box-row">
             <el-col :span="20"><b>退款方式:</b>

+ 106 - 62
src/views/order/refund.vue

@@ -3,28 +3,47 @@
     <div class="filter-container">
       <div class="filter-control">
         <span>退款编号:</span>
-        <el-input v-model="listQuery.returnedNo" style="width:180px;" placeholder="退款编号" clearable @keyup.enter.native="getList" @clear="getList" />
+        <el-input
+          v-model="listQuery.returnedNo"
+          style="width: 180px"
+          placeholder="退款编号"
+          clearable
+          @keyup.enter.native="getList"
+          @clear="getList"
+        />
       </div>
       <div class="filter-control">
         <span>订单ID:</span>
-        <el-input v-model="listQuery.orderId" style="width:180px;" placeholder="订单ID" clearable @keyup.enter.native="getList" @clear="getList" />
+        <el-input
+          v-model="listQuery.shopOrderId"
+          style="width: 180px"
+          placeholder="订单ID"
+          clearable
+          @keyup.enter.native="getList"
+          @clear="getList"
+        />
       </div>
       <div class="filter-control">
         <span>订单编号:</span>
-        <el-input v-model="listQuery.orderNo" style="width:180px;" placeholder="订单编号" clearable @keyup.enter.native="getList" @clear="getList" />
+        <el-input
+          v-model="listQuery.orderNo"
+          style="width: 180px"
+          placeholder="订单编号"
+          clearable
+          @keyup.enter.native="getList"
+          @clear="getList"
+        />
       </div>
       <div class="filter-control">
         <span>机构名称:</span>
-        <el-input v-model="listQuery.clubName" style="width:180px;" placeholder="机构名称" clearable @keyup.enter.native="getList" @clear="getList" />
-      </div>
-      <div class="filter-control">
-        <span>退款审核状态:</span>
-        <el-select v-model="listQuery.status" style="width:180px;" clearable @change="getList">
-          <el-option value="" label="所有" />
-          <el-option label="待审核" value="1" />
-          <el-option label="审核通过" value="2" />
-          <el-option label="审核不通过" value="3" />
-        </el-select>
+        <el-input
+          v-model="listQuery.clubName"
+          style="width: 180px"
+          placeholder="机构名称"
+          clearable
+          @keyup.enter.native="getList"
+          @clear="getList"
+        />
       </div>
       <div class="filter-control">
         <span>申请时间:</span>
@@ -50,63 +69,68 @@
       border
       fit
       highlight-current-row
-      :header-cell-style="{background:'#eef1f6',color:'#606266'}"
+      :header-cell-style="{ background: '#eef1f6', color: '#606266' }"
     >
       <el-table-column label="退款编号" align="center" prop="returnedNo" />
       <el-table-column label="订单编号(ID)" align="center" prop="orderNo" width="200">
-        <template slot-scope="{row}">{{ row.orderNo + '(' + row.orderId + ')' }}</template>
+        <template slot-scope="{ row }">{{
+          row.shopOrderReturnedList[0].shopOrderNo +
+            "(" +
+            row.shopOrderReturnedList[0].shopOrderId +
+            ")"
+        }}</template>
       </el-table-column>
       <el-table-column label="机构" align="center" prop="clubName" />
       <el-table-column label="退款金额" align="center" prop="refundFee" width="110">
-        <template slot-scope="{row}">¥{{ row.refundFee | toThousandFloatFilter }}</template>
+        <template
+          slot-scope="{ row }"
+        >¥{{ row.refundFee | toThousandFloatFilter }}</template>
       </el-table-column>
       <el-table-column label="退款方式" align="center" prop="returnedWay" min-width="130">
-        <template slot-scope="{row}">
-          <template v-if="row.returnedWay*1===4">未支付无退款</template>
-          <template v-else-if="row.returnedWay*1===1">
-            <p v-if="row.refundBalanceFee*1 !== 0">余额账户:¥{{ row.refundBalanceFee | toThousandFloatFilter }}</p>
-            <p v-if="row.refundOnlineFee*1 !== 0">线上退回:¥{{ row.refundOnlineFee | toThousandFloatFilter }}</p>
-            <p v-if="row.refundOfflineFee*1 !== 0">线下转账:¥{{ row.refundOfflineFee | toThousandFloatFilter }}</p>
+        <template slot-scope="{ row }">
+          <template>
+            <p v-if="row.refundBalanceFee * 1 !== 0">
+              余额账户:¥{{ row.refundBalanceFee | toThousandFloatFilter }}
+            </p>
+            <p v-if="row.refundOnlineFee * 1 !== 0">
+              线上退回:¥{{ row.refundOnlineFee | toThousandFloatFilter }}
+            </p>
+            <p v-if="row.refundOfflineFee * 1 !== 0">
+              线下转账:¥{{ row.refundOfflineFee | toThousandFloatFilter }}
+            </p>
           </template>
-          <template v-else>----</template>
-        </template>
-      </el-table-column>
-      <el-table-column label="申请人" align="center" prop="applicationUserName" width="100">
-        <template slot-scope="{row}">
-          <span>{{ row.applicationUserName ? row.applicationUserName : '--' }}</span>
         </template>
       </el-table-column>
       <el-table-column align="center" label="申请时间" prop="returnTime">
-        <template v-if="row.returnTime" slot-scope="{row}">
-          <span>{{ row.returnTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="审核人" align="center" prop="reviewUserName" width="100">
-        <template slot-scope="{row}">
-          <span>{{ row.reviewUserName ? row.reviewUserName : '--' }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column align="center" label="审核时间" prop="confirmReturnTime">
-        <template v-if="row.confirmReturnTime" slot-scope="{row}">
-          <span>{{ row.confirmReturnTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="退款审核状态" align="center" prop="status" width="90">
-        <template slot-scope="{row}">
-          <el-tag v-if="row.status*1===1" type="warning" size="small">待审核</el-tag>
-          <el-tag v-if="row.status*1===2" type="success" size="small">审核通过</el-tag>
-          <el-tag v-if="row.status*1===3" type="danger" size="small">审核不通过</el-tag>
+        <template v-if="row.returnTime" slot-scope="{ row }">
+          <span>{{ row.returnTime | parseTime("{y}-{m}-{d} {h}:{i}:{s}") }}</span>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center">
-        <template slot-scope="{row}">
-          <el-button type="primary" size="mini" @click="handleDetailes(row)">查看详情</el-button>
+        <template slot-scope="{ row }">
+          <el-button
+            type="primary"
+            size="mini"
+            @click="handleDetailes(row)"
+          >查看详情</el-button>
+          <el-button
+            v-if="row.status == 2 && row.refundOnlineFee * 1 !== 0"
+            type="warning"
+            size="mini"
+            @click="revokeRefund(row)"
+          >撤销退款</el-button>
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="total>10" :total="total" :page.sync="listQuery.index" :limit.sync="listQuery.pageSize" @pagination="getList" />
+    <pagination
+      v-show="total > 10"
+      :total="total"
+      :page.sync="listQuery.index"
+      :limit.sync="listQuery.pageSize"
+      @pagination="getList"
+    />
     <template>
-      <el-backtop style="right: 40px; bottom: 40px;">
+      <el-backtop style="right: 40px; bottom: 40px">
         <i class="el-icon-upload2" />
       </el-backtop>
     </template>
@@ -114,7 +138,7 @@
 </template>
 
 <script>
-import { getRefundList } from '@/api/order'
+import { getRefundList, revokeApply } from '@/api/order'
 import pickerOptions from '@/utils/time-picker.js'
 export default {
   data() {
@@ -130,7 +154,7 @@ export default {
         pageSize: 10,
         organizeId: this.$store.getters.organizeId,
         returnedNo: '',
-        orderId: '',
+        shopOrderId: '',
         orderNo: '',
         userName: '',
         beginReturnTime: '',
@@ -139,9 +163,7 @@ export default {
       }
     }
   },
-  computed: {
-
-  },
+  computed: {},
   created() {
     this.getList()
   },
@@ -158,6 +180,7 @@ export default {
       try {
         const res = await getRefundList(this.listQuery)
         this.list = res.data.results
+        console.log(this.list)
         this.total = res.data.totalRecord
         this.listLoading = false
       } catch (error) {
@@ -170,16 +193,37 @@ export default {
     },
     handleDetailes(row) {
       this.$router.push({ path: '/order/refund-detail', query: { id: row.id }})
+    },
+    revokeRefund(row) {
+      this.$confirm('确定撤销本次退款吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(async() => {
+          try {
+            await revokeApply({
+              organizeId: 4,
+              id: row.id,
+              orderId: row.orderId,
+              shopOrderId: row.shopOrderReturnedList[0].shopOrderId
+            })
+            this.getList()
+          } catch (error) {
+            console.log(error)
+          }
+        })
+        .catch(() => {})
     }
   }
 }
 </script>
 
 <style scoped>
-  .el-form-item{
-    margin-bottom: 0;
-  }
-  .date-box{
-    margin-right:0;
-  }
+.el-form-item {
+  margin-bottom: 0;
+}
+.date-box {
+  margin-right: 0;
+}
 </style>