浏览代码

线上支付订单

chenrui 6 月之前
父节点
当前提交
460e533795

+ 1 - 1
public/version.json

@@ -1,5 +1,5 @@
 {
   "message": "发现有新版本发布,确定更新系统?",
   "vendorJsVersion": "",
-  "version": 17301713560000
+  "version": 1734051804409
 }

+ 62 - 0
src/config/router.config.js

@@ -210,6 +210,43 @@ export const asyncRouterMap = [
               }
             ]
           },
+          {
+            path: '/salesManagement/onlinePayOrder',
+            redirect: '/salesManagement/onlinePayOrder/list',
+            name: 'onlinePayOrder',
+            component: BlankLayout,
+            meta: {
+              title: '线上支付订单',
+              icon: 'rocket'
+              // permission: 'M_onlinePayOrderList'
+            },
+            hideChildrenInMenu: true,
+            children: [
+              {
+                path: 'list',
+                name: 'onlinePayOrderList',
+                component: () => import(/* webpackChunkName: "salesManagement" */ '@/views/salesManagement/onlinePayOrder/list.vue'),
+                meta: {
+                  title: '线上支付订单',
+                  icon: 'rocket',
+                  hidden: true
+                  // permission: 'M_onlinePayOrderList'
+                }
+              },
+              {
+                path: 'detail/:sn',
+                name: 'onlinePayOrderDetail',
+                component: () => import(/* webpackChunkName: "salesManagement" */ '@/views/salesManagement/onlinePayOrder/detail.vue'),
+                meta: {
+                  title: '线上支付订单详情',
+                  icon: 'rocket',
+                  hidden: true,
+                  replaceTab: true
+                  // permission: 'M_onlinePayOrderDetail'
+                }
+              }
+            ]
+          },
           {
             path: '/salesManagement/urgentItemsOffset',
             redirect: '/salesManagement/urgentItemsOffset/list',
@@ -670,6 +707,31 @@ export const asyncRouterMap = [
               }
             ]
           },
+          {
+            path: '/numsGoodsShelves/onlinePayInvoice',
+            redirect: '/numsGoodsShelves/onlinePayInvoice/list',
+            name: 'ngsWithdrawalManagement',
+            component: BlankLayout,
+            meta: {
+              title: '线上支付账单',
+              icon: 'monitor'
+              // permission: 'M_onlinePayInvoice'
+            },
+            hideChildrenInMenu: true,
+            children: [
+              {
+                path: 'list',
+                name: 'onlinePayInvoiceList',
+                component: () => import(/* webpackChunkName: "numsGoodsShelves" */ '@/views/numsGoodsShelves/onlinePayInvoice/list.vue'),
+                meta: {
+                  title: '线上支付账单',
+                  icon: 'monitor',
+                  hidden: true
+                  // permission: 'M_onlinePayInvoiceList'
+                }
+              }
+            ]
+          },
           {
             path: '/numsGoodsShelves/withdrawalManagement',
             redirect: '/numsGoodsShelves/withdrawalManagement/list',

+ 67 - 0
src/views/common/hideCellMenus.js

@@ -0,0 +1,67 @@
+const HideCellMenus = {
+  template: `
+     <a-dropdown v-model="visibleMenu" @click="visibleMenu=true">
+       <a-menu slot="overlay">
+         <a-menu-item v-for="item in list" :key="item.key">
+           <a-checkbox :checked="item.checked" @change="e=>onHideKeyChange(e.target.checked,item.key)">
+             {{ item.title }}
+           </a-checkbox>
+         </a-menu-item>
+       </a-menu>
+       <a-button type="link" class="button-default" :size="size" :id="id"><a-icon type="setting" />{{placeholder}} </a-button>
+     </a-dropdown>
+    `,
+  props: {
+    defHiddenKes: {
+      type: Array,
+      defatut: function () {
+        return []
+      }
+    },
+    id: {
+      type: String,
+      default: 'hideCellMenus'
+    },
+    placeholder: {
+      type: String,
+      default: '显示更多列'
+    },
+    size: {
+      type: String,
+      default: 'default'
+    }
+  },
+  data () {
+    return {
+      visibleMenu: false,
+      list: this.defHiddenKes.filter(item => !item.disabled)
+    }
+  },
+  mounted () {
+  },
+  watch: {
+    defHiddenKes: {
+      handler: function (val) {
+        this.list = val.filter(item => !item.disabled)
+      },
+      immediate: true
+    },
+    list: {
+      handler: function (val) {
+        const hidekey = this.list.filter(item => !item.checked).map(item => item.key)
+        this.$emit('change', hidekey)
+        this.$emit('input', hidekey)
+      },
+      immediate: true
+    }
+  },
+  methods: {
+    onHideKeyChange (checked, key) {
+      const row = this.list.find(item => item.key == key)
+      row.checked = checked
+      this.list.splice()
+    }
+  }
+}
+
+export default HideCellMenus

+ 3 - 0
src/views/financialManagement/financialCollection/detailModal.vue

@@ -20,6 +20,9 @@
         <a-descriptions-item label="收款方式">{{ detailsData.settleStyleSnDictValue || '--' }}</a-descriptions-item>
         <a-descriptions-item label="收款时间">{{ detailsData.settleTime || '--' }}</a-descriptions-item>
         <a-descriptions-item label="审核时间">{{ detailsData.auditTime || '--' }}</a-descriptions-item>
+        <a-descriptions-item label="退款金额">{{ detailsData.auditTime || '--' }}</a-descriptions-item>
+        <a-descriptions-item label="退款时间">{{ detailsData.auditTime || '--' }}</a-descriptions-item>
+        <a-descriptions-item label="退款方式">{{ detailsData.auditTime || '--' }}</a-descriptions-item>
       </a-descriptions>
       <div class="btn-cont"><a-button id="financialPaymentDetail-modal-back" @click="isShow = false">关闭</a-button></div>
     </div>

+ 7 - 0
src/views/financialManagement/financialCollection/list.vue

@@ -76,6 +76,12 @@
           <strong>{{ totalData&&(totalData.settledAmount || totalData.settledAmount==0) ? toThousands(totalData.settledAmount) : '--' }}</strong>
           ,待收金额
           <strong>{{ totalData&&(totalData.unsettleAmount || totalData.unsettleAmount==0) ? toThousands(totalData.unsettleAmount) : '--' }}</strong>
+          ,退款中金额
+          <strong>{{ totalData&&(totalData.unsettleAmount || totalData.unsettleAmount==0) ? toThousands(totalData.unsettleAmount) : '--' }}</strong>
+          ,已退金额
+          <strong>{{ totalData&&(totalData.unsettleAmount || totalData.unsettleAmount==0) ? toThousands(totalData.unsettleAmount) : '--' }}</strong>
+          <a-tooltip placement="bottom" title="实收金额=已收金额-退款中金额-已退金额">,实收金额<a-icon type="question-circle" style="margin:0 10px 0 5px;"/></a-tooltip>
+          <strong>{{ totalData&&(totalData.unsettleAmount || totalData.unsettleAmount==0) ? toThousands(totalData.unsettleAmount) : '--' }}</strong>
         </div>
       </a-alert>
       <div v-if="$hasPermissions('B_financialCollectionPl')" style="margin-bottom: 10px">
@@ -233,6 +239,7 @@ export default {
         { title: '创建时间', dataIndex: 'createDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '审核时间', dataIndex: 'auditTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '收款时间', dataIndex: 'settleTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '退款时间', dataIndex: 'settleTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '5%', align: 'center' }
       ],
       loading: false,

+ 8 - 0
src/views/numsGoodsShelves/onlinePayInvoice/list.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 223 - 0
src/views/numsGoodsShelves/withdrawalManagement/billFlowModal.vue

@@ -0,0 +1,223 @@
+<template>
+  <a-drawer
+    title="账单流水"
+    placement="right"
+    class="billFlowModal-modal jg-page-wrap"
+    :visible="isShow"
+    @close="isShow=false"
+    width="75%"
+    :get-container="false"
+    :wrap-style="{ position: 'absolute' }">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 搜索条件 -->
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+          <a-row :gutter="15">
+            <a-col :md="10" :sm="24">
+              <a-form-item label="创建时间">
+                <rangeDate id="billFlowModal-createDate" ref="createDate" @change="createDateChange" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-model-item label="客户名称">
+                <custList id="customerReport-salesTargetName" ref="custSatelliteList" @change="custSatelliteChange"></custList>
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="7" :sm="24">
+              <a-form-item label="关联财务单号">
+                <a-input id="billFlowModal-bizNo" v-model.trim="queryParam.bizNo" allowClear placeholder="请输入关联财务单号"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="7" :sm="24">
+              <a-form-item label="交易类型">
+                <v-select
+                  v-model="queryParam.bizType"
+                  ref="bizType"
+                  id="billFlowModal-bizType"
+                  code="SETTLE_BIZ_TYPE"
+                  placeholder="请选择交易类型"
+                  allowClear></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="7" :sm="24">
+              <a-form-item label="交易状态">
+                <v-select
+                  v-model="queryParam.bizType"
+                  ref="bizType"
+                  id="billFlowModal-bizType"
+                  code="SETTLE_BIZ_TYPE"
+                  placeholder="请选择交易状态"
+                  allowClear></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-button style="margin-bottom: 18px;" type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="billFlowModal-refresh">查询</a-button>
+              <a-button style="margin: 0 0 18px 8px" @click="resetSearchForm" :disabled="disabled" id="billFlowModal-reset">重置</a-button>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+      <div class="table-operator">
+        <div class="alert-message">
+          收入金额:<strong>{{ detailData&&(detailData.totalAmount || detailData.totalAmount==0) ? toThousands(detailData.totalAmount) : '--' }}</strong>;
+          其中到账金额:<strong>{{ detailData&&(detailData.totalCost || detailData.totalCost==0) ? toThousands(detailData.totalCost) : '--' }}</strong>;
+          在途金额:<strong>{{ detailData&&(detailData.grossProfit || detailData.grossProfit==0) ? toThousands(detailData.grossProfit) : '--' }}</strong>;
+          支出金额:<strong>{{ detailData&&(detailData.totalGiveAmount || detailData.totalGiveAmount==0) ? toThousands(detailData.totalGiveAmount) : '--' }}</strong>;
+          其中退款金额:<strong>{{ detailData&&(detailData.totalGiveAmount || detailData.totalGiveAmount==0) ? toThousands(detailData.totalGiveAmount) : '--' }}</strong>;
+          提现金额:<strong>{{ detailData&&(detailData.totalGiveAmount || detailData.totalGiveAmount==0) ? toThousands(detailData.totalGiveAmount) : '--' }}</strong>;
+          提现服务费:<strong>{{ detailData&&(detailData.totalGiveAmount || detailData.totalGiveAmount==0) ? toThousands(detailData.totalGiveAmount) : '--' }}</strong>;
+        </div>
+      </div>
+      <!-- 列表 -->
+      <s-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :showPagination="false"
+        :scroll="{ y: 400 }"
+        :defaultLoadData="false"
+        bordered>
+      </s-table>
+    </a-spin>
+  </a-drawer>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import { STable, VSelect } from '@/components'
+import rangeDate from '@/views/common/rangeDate.vue'
+import custList from '@/views/common/custList.vue'
+import { settleInfoAllList } from '@/api/settle'
+export default {
+  name: 'BillFlowModal',
+  components: { STable, VSelect, rangeDate, custList },
+  mixins: [commonMixin],
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    const _this = this
+    return {
+      spinning: false,
+      isShow: this.openModal, //  是否打开弹框
+      disabled: false,
+      queryParam: {
+        auditBeginDate: '', // 审核开始时间
+        auditEndDate: '', // 审核结束时间
+        bizNo: '', // 单据号
+        bizType: undefined, // 单据类型
+        bizCreateBeginDate: undefined, // 创建开始时间
+        bizCreateEndDate: undefined // 创建结束时间
+      },
+      // 表头
+      columns: [
+        { title: '序号', dataIndex: 'no', width: '6%', align: 'center' },
+        { title: '创建时间', dataIndex: 'auditTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'bizNo', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '关联单号', dataIndex: 'bizTypeDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '金额', dataIndex: 'totalAmount', width: '10%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '交易类型', dataIndex: 'checked', width: '6%', align: 'center', customRender: function (text) { return text ? '已选' : '--' } },
+        { title: '交易状态', dataIndex: 'checked', width: '6%', align: 'center', scopedSlots: { customRender: 'status' } }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        const _this = this
+        return settleInfoAllList(Object.assign(this.queryParam, { settleClientType: this.settleClientType, settleClientSn: this.settleClientSn, notEqZero: 1 })).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            for (var i = 0; i < data.length; i++) {
+              data[i].no = i + 1
+              data[i].settleAmount = data[i].unsettleAmount
+              const has = _this.nowChoose.find(item => item.id == data[i].id)
+              data[i].checked = !!has
+            }
+            this.disabled = false
+          }
+          this.spinning = false
+          return data
+        })
+      },
+      rowSelectionInfo: null // 已选数据
+    }
+  },
+  methods: {
+    // 表格选中项
+    rowSelectionFun (obj) {
+      this.rowSelectionInfo = obj || null
+    },
+    // 重新选择
+    handleReSel () {
+      this.$emit('ok', [])
+      this.resetSearchForm()
+    },
+    // 关联单据创建时间
+    createDateChange (date) {
+      this.queryParam.bizCreateBeginDate = date[0]
+      this.queryParam.bizCreateEndDate = date[1]
+    },
+    //  审核时间  change
+    dateChange (date) {
+      this.queryParam.auditBeginDate = date[0]
+      this.queryParam.auditEndDate = date[1]
+    },
+    // 确定
+    handleSave () {
+      if (this.totalNums) {
+        this.$emit('ok', this.rowSelectionInfo && this.rowSelectionInfo.selectedRows)
+        this.resetSearchForm()
+      } else {
+        this.$message.info('请选择单据')
+      }
+    },
+    // 重置
+    resetSearchForm () {
+      this.$refs.rangeDate.resetDate()
+      this.$refs.createDate.resetDate()
+      this.queryParam.auditBeginDate = ''
+      this.queryParam.auditEndDate = ''
+      this.queryParam.bizCreateBeginDate = ''
+      this.queryParam.bizCreateEndDate = ''
+      this.queryParam.bizNo = ''
+      this.queryParam.bizType = undefined
+      this.$refs.table.refresh(true)
+      this.$refs.table.clearSelected()
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      const _this = this
+      if (!newValue) {
+        _this.$emit('close')
+        _this.resetSearchForm()
+      } else {
+        // setTimeout(() => {
+        //   _this.$refs.table.refresh(true)
+        // }, 200)
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .billFlowModal-new-modal{
+    .btn-cont {
+      margin: 0 0 10px 0;
+      text-align: left;
+    }
+  }
+</style>

+ 13 - 8
src/views/numsGoodsShelves/withdrawalManagement/list.vue

@@ -6,7 +6,7 @@
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
             <a-col :xl="6" :lg="6" :md="12" :sm="24">
-              <a-form-item label="交易时间">
+              <a-form-item label="提现时间">
                 <rangeDate id="withdrawa-time" ref="rangeDate" v-model="time" @change="dateChange" />
               </a-form-item>
             </a-col>
@@ -18,13 +18,12 @@
         </a-form>
       </div>
       <div style="margin:10px 0">
-        <div style="display: flex;align-items: center;padding: 2px 0;">
-          <div style="display: flex;align-items: center;">
-            可提现金额:<span>{{ pageInfo&&pageInfo.activeAmount?toThousands(pageInfo.activeAmount):'--' }}</span>
-            <a-button id="withdrawa-tixian" size="small" type="primary" class="button-primary" @click="handleTX">申请提现</a-button>
-            <span>(提示:① 提现手续费为0.5元/笔;② 资金到账周期为工作日+1天)</span>
-          </div>
+        <div style="margin:10px 0">
+          账户总金额:¥100.00(包含可提现金额:<span>{{ pageInfo&&pageInfo.activeAmount?toThousands(pageInfo.activeAmount):'--' }}</span>,在途金额:¥12.00)
+          <p style="margin-top:10px;">(提示:①提现手续费为0.5元/笔;②资金到账周期为工作日+1天;③销售单需审核通过后才能提现;④销售单审核不通过或修理厂取消订单后将会在1-3个工作日原路返回到修理厂)</p>
         </div>
+        <a-button id="withdrawa-tixian" type="primary" class="button-primary" @click="handleTX">申请提现</a-button>
+        <a-button id="withdrawa-tixian" class="button-info" @click="showBillFlowModal=true">账单流水</a-button>
       </div>
       <s-table
         class="sTable fixPagination"
@@ -41,6 +40,8 @@
     </a-spin>
     <!-- 申请提现 -->
     <applyWithdrawal :isOpenModal="showModal" :currentData="currentData" @close="showModal=false" @refresh="getPageInfo"></applyWithdrawal>
+    <!-- 交易流水 -->
+    <billFlowModal :openModal="showBillFlowModal" @close="showBillFlowModal=false" @ok="showBillFlowModal=false"></billFlowModal>
   </a-card>
 </template>
 
@@ -48,11 +49,13 @@
 import { commonMixin } from '@/utils/mixin'
 import { STable } from '@/components'
 import applyWithdrawal from './applyWithdrawal.vue'
+import billFlowModal from './billFlowModal.vue'
+
 import rangeDate from '@/views/common/rangeDate.vue'
 import { queryMerchantCashOutPage, merchantCashOutDetail } from '@/api/merchant'
 export default {
   mixins: [commonMixin],
-  components: { STable, applyWithdrawal, rangeDate },
+  components: { STable, applyWithdrawal, billFlowModal, rangeDate },
   data () {
     const _this = this
     return {
@@ -61,6 +64,7 @@ export default {
       tableHeight: 0, // 表格高度
       showModal: false, // 是否显示申请提现弹窗
       currentData: null, // 当前行数据
+      showBillFlowModal: false,
       time: [], // 提现时间
       pageInfo: null, // 详情信息
       queryParam: {
@@ -73,6 +77,7 @@ export default {
         { title: '提现时间', dataIndex: 'cashOutDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '申请提现金额', dataIndex: 'amount', width: '10%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } },
         { title: '开户名', dataIndex: 'bankAccount', width: '15%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '开户银行', dataIndex: 'bankAccount', width: '15%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '银行卡号', dataIndex: 'bankCard', width: '20%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '提现人', dataIndex: 'operName', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '状态', dataIndex: 'stateDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },

+ 383 - 0
src/views/salesManagement/onlinePayOrder/detail.vue

@@ -0,0 +1,383 @@
+<template>
+  <div v-if="showPage" class="jg-page-wrap salesDetail-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <a-page-header :ghost="false" :backIcon="false" class="salesDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
+        <!-- 自定义的二级文字标题 -->
+        <template slot="subTitle" v-if="!outBizSn && detailData">
+          <span class="billno">单号:{{ detailData.salesBillNo ||'--' }}</span>
+          <a-tag color="green" v-if="detailData.billStatusDictValue">{{ detailData.billStatusDictValue }}</a-tag>
+          <a-tag color="orange" v-if="detailData.financialStatusDictValue">{{ detailData.financialStatusDictValue }}</a-tag>
+          <a-button type="link" class="button-default" @click="isShowBisiceInfo=!isShowBisiceInfo" style="margin-left:10px;vertical-align:middle;">
+            <a-icon :type="isShowBisiceInfo ? 'eye-invisible' : 'eye'"/>
+            {{ isShowBisiceInfo?'隐藏':'查看' }}信息
+          </a-button>
+          <a-button id="purchaseNewOrderEdit-back-btn" type="link" @click="handleBack" class="button-default"> <a-icon type="rollback" /> 返回列表</a-button>
+        </template>
+        <!-- 操作区,位于 title 行的行尾 -->
+        <template slot="extra" v-if="outBizSn ? $hasPermissions('B_outboundOrderDetail') : $hasPermissions('B_salesPrint')">
+          <div style="margin-top: 5px;">
+            <PrintPanel ref="printBox" position="bottomRight" :disabled="localDataSource.length==0" @handlePrint="handlePrint">
+              <div style="padding:10px;line-height: 30px;" slot="extendCons">
+                <a-checkbox v-model="printAllName" :checked="printAllName" id="salesQuery-printAllName">打印完整产品名称</a-checkbox>
+                <a-checkbox v-model="printOrgCode" :checked="printOrgCode" id="salesQuery-printOrgCode">打印原厂编码</a-checkbox>
+                <a-checkbox v-model="printPrice" :checked="printPrice" id="salesQuery-printPrice">打印售价</a-checkbox>
+                <br>
+                <a-checkbox v-model="printRemarks" :checked="printRemarks" id="salesQuery-printRemarks">打印备注</a-checkbox>
+                <!-- <a-checkbox v-model="printNo" :checked="printNo" id="salesQuery-printNo">打印销售单号</a-checkbox> -->
+              </div>
+            </PrintPanel>
+          </div>
+        </template>
+      </a-page-header>
+      <div class="sales-detail-body">
+        <!-- 基础信息 -->
+        <a-card size="small" :bordered="false" class="salesDetail-cont" v-show="isShowBisiceInfo">
+          <a-descriptions size="small" :column="3">
+            <div slot="title" style="display:flex;justify-content:space-between;align-items:center;">
+              <span>基础信息</span>
+              <a-button
+                type="link"
+                id="salesReturnGrabEdit-editDesc-btn"
+                size="small"
+                @click="openEditModal=true"
+                class="button-info"
+                key="0"> <a-icon type="edit"></a-icon> 编辑</a-button>
+            </div>
+            <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerNameCurrent?detailData.buyerName?detailData.buyerName==detailData.buyerNameCurrent?detailData.buyerNameCurrent:detailData.buyerNameCurrent+'('+detailData.buyerName+')':detailData.buyerNameCurrent:'--' }}</a-descriptions-item>
+            <a-descriptions-item label="客户地址" :span="2">
+              <div v-if="detailData&&(detailData.shippingAddressProvinceName || detailData.shippingAddressCityName || detailData.shippingAddressCountyName || detailData.shippingAddress)">
+                {{ detailData&&detailData.shippingAddressProvinceName || '' }}
+                {{ detailData&&detailData.shippingAddressCityName || '' }}
+                {{ detailData&&detailData.shippingAddressCountyName || '' }}
+                {{ detailData&&detailData.shippingAddress || '' }}
+              </div>
+              <span v-else>--</span>
+            </a-descriptions-item>
+            <a-descriptions-item label="收款方式">{{ detailData&&detailData.settleStyleSnDictValue || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="联系电话">{{ detailData&&detailData.consigneeTel || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="备注">{{ detailData&&detailData.remarks || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="销售单号">{{ detailData&&detailData.salesBillNo || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="制单人">{{ detailData&&detailData.operatorName || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="业务员">{{ detailData&&detailData.salesManName || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="来源">{{ detailData&&detailData.sourceTypeDictValue || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="下级采购单号" v-if="detailData&&detailData.sourceType=='PURCHASE'">{{ detailData&&detailData.purchaseBillNo || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="业务状态">{{ detailData&&detailData.billStatusDictValue || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="财务状态">{{ detailData&&detailData.financialStatusDictValue || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="采购单号" v-if="detailData&&detailData.sourceType!='SALES'&&detailData.sourceType!='TRANSFER_ORDER'">{{ detailData.purchaseBillNo || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="收货状态" v-if="detailData&&detailData.sourceType=='XPRH_PURCHASE'&&detailData.billStatus=='FINISH'">{{ detailData.purchaseBillNo || '--' }}</a-descriptions-item>
+          </a-descriptions>
+        </a-card>
+        <a-card size="small" :bordered="false" class="pages-wrap">
+          <!-- alert -->
+          <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom:10px;">
+            <div>
+              总款数:<strong>{{ detailData&&(detailData.totalCategory || detailData.totalCategory==0) ? detailData.totalCategory : '--' }}</strong>;
+              总数量:<strong>{{ detailData&&(detailData.totalQty || detailData.totalQty==0) ? detailData.totalQty : '--' }}</strong>;
+              总赠品数量:<strong>{{ detailData&&(detailData.giftQty || detailData.giftQty==0) ? detailData.giftQty : '--' }}</strong>;
+              急件总款数:<strong>{{ detailData&&(detailData.oosCategory || detailData.oosCategory==0) ? detailData.oosCategory : '--' }}</strong>;
+              急件总数量:<strong>{{ detailData&&(detailData.oosQty || detailData.oosQty==0) ? detailData.oosQty : '--' }}</strong>;<br/>
+              总售价:<strong>{{ detailData&&(detailData.totalAmount || detailData.totalAmount==0) ? toThousands(detailData.totalAmount) : '--' }}</strong>;
+              总成本:<strong>{{ detailData&&(detailData.totalCost || detailData.totalCost==0) ? toThousands(detailData.totalCost) : '--' }}</strong>;
+              总毛利:<strong>{{ detailData&&(detailData.grossProfit || detailData.grossProfit==0) ? toThousands(detailData.grossProfit) : '--' }}</strong>;
+              <span v-if="detailData&&detailData.sourceType&&detailData.sourceType==='XPRH_PURCHASE'"> 返券金额:<strong>{{ detailData&&(detailData.totalGiveAmount || detailData.totalGiveAmount==0) ? toThousands(detailData.totalGiveAmount) : '--' }}</strong>;</span>
+            </div>
+            <div>
+              <a-checkbox v-model="showCost" v-if="$hasPermissions('M_ShowAllCost')" id="salesQuery-cost">成本价</a-checkbox>
+            </div>
+          </div>
+          <!-- 列表 -->
+          <s-table
+            class="sTable"
+            ref="table"
+            size="small"
+            :rowKey="(record) => record.id"
+            :columns="columns"
+            :data="loadData"
+            :defaultLoadData="false"
+            bordered>
+            <div slot="costTitle">
+              <a-tooltip placement="top">
+                <template slot="title">
+                  系统中不同批次的产品,成本价可能不同,此值是按照实际出库批次的成本计算得到。
+                </template>
+                <span style="margin-right: 5px;">实际总成本</span> <a-icon type="question-circle" />
+              </a-tooltip>
+            </div>
+            <!-- 产品编码 -->
+            <template slot="productCode" slot-scope="text, record">
+              <div v-if="detailData">
+                <div v-if="isOwerEdit">
+                  <a-badge count="急" v-if="record.oosFlag == 1">
+                    <div style="padding-right: 15px;">{{ text }}</div>
+                  </a-badge>
+                  <span v-else>{{ text }}</span>
+                </div>
+                <div v-else>
+                  <a-badge count="急" v-if="isAudit&&record.oosFlag == 1">
+                    <div style="padding-right: 15px;">{{ text }}</div>
+                  </a-badge>
+                  <a-badge count="缺" v-else-if="!isAudit&&(!record.currentStockQty || record.currentStockQty < record.qty)">
+                    <div style="padding-right: 15px;">{{ text }}</div>
+                  </a-badge>
+                  <span v-else>{{ text }}</span>
+                </div>
+              </div>
+            </template>
+            <!-- 操作 -->
+            <template slot="action" slot-scope="text, record">
+              <a-button
+                :id="'sales-detail-out-'+record.id"
+                size="small"
+                type="link"
+                v-if="record.oosFlag == 0 && (isOwerEdit || isAudit)"
+                class="button-primary"
+                @click="handleViewDetail(record)">出库明细</a-button>
+              <span v-else>--</span>
+            </template>
+          </s-table>
+        </a-card>
+      </div>
+    </a-spin>
+    <!-- 出入库明细 -->
+    <outInDetialModal ref="outInDetialModal" outBizType="SALES" :openModal="showOutInModal" @close="showOutInModal=false"></outInDetialModal>
+    <!-- 编辑备注 -->
+    <editRemarkModal :openModal="openEditModal" @close="openEditModal=false" @ok="handleEditOk"></editRemarkModal>
+  </div>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import { getOperationalPrecision } from '@/libs/tools.js'
+import { hdPrint } from '@/libs/JGPrint'
+// 组件
+import { STable, VSelect } from '@/components'
+import editRemarkModal from './editRemarkModal.vue'
+import PrintPanel from '@/views/common/printPanel.vue'
+// 接口
+import { salesDetailBySn, salesDetailPrint, salesDetailExport } from '@/api/sales'
+import { salesDetailList } from '@/api/salesDetail'
+export default {
+  name: 'SalesDetail',
+  components: { STable, VSelect, PrintPanel, editRemarkModal },
+  mixins: [commonMixin],
+  props: {
+    outBizSn: { //  有值则为弹框,无值则为页面
+      type: [Number, String],
+      default: ''
+    }
+  },
+  data () {
+    return {
+      showPage: false, // 是否显示组件
+      spinning: false,
+      disabled: false,
+      showCost: false, // 是否显示成本价
+      printOrgCode: false, // 是否打印原创编码
+      printAllName: false, // 是否打印全部名称
+      printRemarks: false, // 是否打印备注
+      printPrice: false, // 是否打印价格
+      printNo: true, // 是否打印销售单号
+      showOutInModal: false, // 出库明细弹框
+      openEditModal: false, // 打开编辑备注弹窗
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        return salesDetailList(Object.assign(parameter, { orderBy: 'sales_bill_detail.CREATE_DATE desc', salesBillSn: this.outBizSn || this.$route.params.sn })).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            const no = (data.pageNo - 1) * data.pageSize
+            for (var i = 0; i < data.list.length; i++) {
+              data.list[i].no = no + i + 1
+              const productCode = (data.list[i].productEntity && data.list[i].productEntity.code) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.code)
+              const productName = (data.list[i].productEntity && data.list[i].productEntity.name) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.name)
+              const productOrigCode = (data.list[i].productEntity && data.list[i].productEntity.origCode) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.origCode) || '--'
+              const productOrigUnit = (data.list[i].productEntity && data.list[i].productEntity.unit) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.unit)
+              data.list[i].productCode = productCode || '--'
+              data.list[i].productName = productName || '--'
+              data.list[i].productOrigCode = productOrigCode || '--'
+              data.list[i].productOrigUnit = productOrigUnit || '--'
+              data.list[i].warehouseName = data.list[i].warehouseEntity && data.list[i].warehouseEntity.name || '--'
+              data.list[i].warehouseLocationName = data.list[i].warehouseLocationEntity && data.list[i].warehouseLocationEntity.name || '--'
+              // 售价小计  由于数据库内小数位数为4位,页面则需显示2位。因此会做小数运算精度处理
+              data.list[i].salePriceSubtotal = getOperationalPrecision(data.list[i].price, data.list[i].qty)
+            }
+            this.localDataSource = data.list
+            this.disabled = false
+          }
+          return data
+        })
+      },
+      localDataSource: [], // 原始列表数据
+      detailData: null, //  详情数据
+      isShowBisiceInfo: false// 显示基础内容
+    }
+  },
+  computed: {
+    // 是否自建单据
+    isOwerEdit () {
+      return this.detailData && this.detailData.sourceType == 'SALES'
+    },
+    // 是否审核通过
+    isAudit () {
+      return this.detailData ? (this.detailData.billStatus == 'WAIT_OUT_WAREHOUSE' || this.detailData.billStatus == 'FINISH') : false
+    },
+    // 列定义
+    columns () {
+      const _this = this
+      const arr = [
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'dealerProductEntity.code', width: '11%', scopedSlots: { customRender: 'productCode' }, align: 'center' },
+        { title: '产品名称', dataIndex: 'productName', width: '11%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width: '9%', align: 'center', customRender: function (text) { return text && text != ' ' ? text : '--' } },
+        { title: '售价', dataIndex: 'price', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '销售数量', dataIndex: 'qty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productOrigUnit', width: '4%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '售价小计', dataIndex: 'totalAmount', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '是否急件', dataIndex: 'oosFlagDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '7%', align: 'center' }
+      ]
+      if (this.detailData && this.detailData.sourceType && this.detailData.sourceType === 'XPRH_PURCHASE') {
+        arr.splice(8, 0, { title: <a-tooltip placement="bottom" title='返券金额以销售单完结时的活动规则为准'>返券金额&nbsp;<a-icon type="question-circle" /></a-tooltip>, dataIndex: 'giveAmount', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+      }
+      // 实际总成本
+      if (this.showCost) {
+        arr.splice(9, 0, { slots: { title: 'costTitle' }, dataIndex: 'totalCost', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+      }
+      // 下级创建,不显示仓库仓位
+      if (!this.isOwerEdit) {
+        arr.splice(10, 0, { title: '库存数量', dataIndex: 'currentStockQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+      }
+
+      return arr
+    }
+  },
+  methods: {
+    handleEditOk () {
+      this.openEditModal = false
+    },
+    // 打印预览/快捷打印
+    handlePrint (type, printerType) {
+      const _this = this
+      _this.spinning = true
+      let url = salesDetailPrint
+      const params = {
+        sn: this.outBizSn || this.$route.params.sn,
+        printOrgCode: this.printOrgCode ? 1 : 0,
+        printAllName: this.printAllName ? 1 : 0,
+        remarksShowFlag: this.printRemarks ? 1 : 0,
+        printNo: this.printNo ? 1 : 0,
+        priceFlag: this.printPrice ? 1 : 0
+      }
+      if (type == 'export') { //  导出
+        url = salesDetailExport
+      }
+      // 打印或导出
+      hdPrint(printerType, type, url, params, '销售单', function () {
+        _this.spinning = false
+      })
+    },
+    //  返回
+    handleBack () {
+      this.$router.push({ name: 'onlinePayOrderList' })
+    },
+    //  详情
+    getDetail () {
+      salesDetailBySn({ salesBillSn: this.outBizSn || this.$route.params.sn }).then(res => {
+        if (res.status == 200) {
+          this.detailData = res.data
+        } else {
+          this.detailData = null
+        }
+      })
+    },
+    // 打开出入库明细
+    handleViewDetail (row) {
+      this.showOutInModal = true
+      this.$refs.outInDetialModal.getData(row)
+    },
+    // 页面初始
+    pageInit () {
+      const vm = this
+      vm.$nextTick(() => {
+        vm.spinning = false
+        vm.disabled = false
+        // 是否默认打印原厂编码
+        vm.printOrgCode = localStorage.getItem('printOrgCode-' + this.$store.state.user.info.orgId) == 'true'
+        vm.printAllName = localStorage.getItem('printAllName-' + this.$store.state.user.info.orgId) == 'true'
+        vm.printRemarks = localStorage.getItem('printRemarks-' + this.$store.state.user.info.orgId) == 'true'
+        vm.printPrice = localStorage.getItem('printPrice-' + this.$store.state.user.info.orgId) == 'true'
+        const printNo = localStorage.getItem('printNo-' + this.$store.state.user.info.orgId)
+        console.log(printNo)
+        vm.printNo = printNo ? printNo == 'true' : true
+        // 查询列表
+        vm.$refs.table.refresh(true)
+        // 获取单据详情
+        vm.getDetail()
+      })
+    }
+  },
+  watch: {
+    // 打印选项变化
+    printOrgCode (newValue, oldValue) {
+      localStorage.setItem('printOrgCode-' + this.$store.state.user.info.orgId, newValue)
+    },
+    printRemarks (newValue, oldValue) {
+      localStorage.setItem('printRemarks-' + this.$store.state.user.info.orgId, newValue)
+    },
+    printPrice (newValue, oldValue) {
+      localStorage.setItem('printPrice-' + this.$store.state.user.info.orgId, newValue)
+    },
+    printAllName (newValue, oldValue) {
+      localStorage.setItem('printAllName-' + this.$store.state.user.info.orgId, newValue)
+    },
+    printNo (newValue, oldValue) {
+      localStorage.setItem('printNo-' + this.$store.state.user.info.orgId, newValue)
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab || this.outBizSn) { // 页签刷新时调用
+      this.showPage = true
+      this.pageInit()
+    }
+  },
+  activated () {
+    this.showPage = true
+    this.pageInit()
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {
+    })
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .salesDetail-wrap{
+    position: relative;
+    height: 100%;
+    .billno{
+      font-size: 16px;
+      font-weight: 600;
+      display: inline-block;
+      vertical-align: middle;
+      color: #333;
+      margin-right: 15px;
+    }
+    .ant-tag-green,.ant-tag-orange{
+      vertical-align: middle;
+    }
+    .salesDetail-cont{
+      margin-bottom: 10px;
+      /deep/ .ant-descriptions-title{
+          margin-bottom: 10px;
+        }
+    }
+    .pages-wrap{
+        strong{
+          color:#f12929;
+        }
+    }
+
+  }
+</style>

+ 125 - 0
src/views/salesManagement/onlinePayOrder/editRemarkModal.vue

@@ -0,0 +1,125 @@
+<template>
+  <a-modal
+    centered
+    class="chainTransferOut-basicInfo-modal"
+    :footer="null"
+    :maskClosable="false"
+    title="编辑备注"
+    v-model="isShow"
+    @cancel="isShow = false"
+    :width="450">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <a-form-model
+        id="chainTransferOut-basicInfo-form"
+        ref="ruleForm"
+        :model="form"
+        :rules="rules"
+        :label-col="formItemLayout.labelCol"
+        :wrapper-col="formItemLayout.wrapperCol"
+      >
+        <a-form-model-item label="备注" prop="remark">
+          <a-textarea
+            :autosize="{minRows: 5, maxRows: 5}"
+            id="chainTransferOut-basicInfo-remark"
+            :maxLength="100"
+            v-model="form.remark"
+            placeholder="请输入备注(最多100个字符)"
+            allowClear />
+        </a-form-model-item>
+      </a-form-model>
+      <div class="btn-cont">
+        <a-button id="chainTransferOut-basicInfo-modal-back" @click="isShow = false" style="margin-right: 15px;">取消</a-button>
+        <a-button type="primary" id="chainTransferOut-basicInfo-modal-save" @click="handleSave">保存</a-button>
+      </div>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import { VSelect } from '@/components'
+import outTenant from '@/views/common/outTenant.js'
+import { allocLinkageOutSave } from '@/api/allocLinkageOut'
+export default {
+  name: 'ChainTransferOutBasicInfoModal',
+  components: { VSelect, outTenant },
+  mixins: [commonMixin],
+  props: {
+    openModal: {
+      //  弹框显示状态
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    return {
+      spinning: false,
+      isShow: this.openModal, //  是否打开弹框
+      formItemLayout: {
+        labelCol: { span: 3 },
+        wrapperCol: { span: 20 }
+      },
+      form: {
+        allocationType: '', // 调出产品类型
+        putTenantSn: undefined, //  调往对象
+        remark: ''// 备注
+      },
+      rules: {
+        allocationType: [{ required: true, message: '请选择调出产品类型', trigger: 'change' }],
+        putTenantSn: [{ required: true, message: '请选择调往对象', trigger: 'change' }]
+      }
+    }
+  },
+  methods: {
+    //  保存
+    handleSave () {
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          const form = JSON.parse(JSON.stringify(_this.form))
+          _this.spinning = true
+          allocLinkageOutSave(form).then(res => {
+            if (res.status == 200) {
+              _this.$message.success(res.message)
+              setTimeout(() => {
+                _this.isShow = false
+                _this.$emit('ok', res.data)
+                _this.spinning = false
+              }, 1000)
+            } else {
+              _this.spinning = false
+            }
+          })
+        } else {
+          return false
+        }
+      })
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+        this.$refs.ruleForm.resetFields()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+.chainTransferOut-basicInfo-modal {
+	.ant-modal-body {
+		padding: 40px 40px 24px;
+	}
+	.btn-cont {
+		text-align: center;
+		margin: 35px 0 10px;
+	}
+}
+</style>

+ 33 - 63
src/views/salesManagement/onlinePayOrder/list.vue

@@ -111,7 +111,7 @@
                 <a-checkbox id="sales-custQuery" style="margin-left:10px;" v-model="isByCustQuery">包括废弃单</a-checkbox>
                 <a-popover placement="right">
                   <template slot="content">
-                    废弃单:指【已取消】状态的订单
+                    废弃单:指【已取消】和【审核不通过】状态的订单
                   </template>
                   <a-icon type="question-circle" />
                 </a-popover>
@@ -148,25 +148,14 @@
             总款数:<strong>{{ totalData&&(totalData.totalCategory || totalData.totalCategory==0) ? totalData.totalCategory : '--' }}</strong>;
             总数量:<strong>{{ totalData&&(totalData.totalQty || totalData.totalQty==0) ? totalData.totalQty : '--' }}</strong>;
             总售价:<strong>{{ totalData&&(totalData.totalAmount || totalData.totalAmount==0) ? toThousands(totalData.totalAmount) : '--' }}</strong>;
-            <span v-if="showDiscount">
-              折扣金额:<strong>{{ totalData&&(totalData.discountAmount || totalData.discountAmount==0) ? toThousands(totalData.discountAmount) : '--' }}</strong>;
-              折后总售价:<strong>{{ totalData&&(totalData.discountedAmount || totalData.discountedAmount==0) ? toThousands(totalData.discountedAmount) : '--' }}</strong>;
-            </span>
+            已收款金额:<strong>{{ totalData&&(totalData.discountAmount || totalData.discountAmount==0) ? toThousands(totalData.discountAmount) : '--' }}</strong>;
+            退款中金额:<strong>{{ totalData&&(totalData.discountedAmount || totalData.discountedAmount==0) ? toThousands(totalData.discountedAmount) : '--' }}</strong>;
+            已退款金额:<strong>{{ totalData&&(totalData.discountedAmount || totalData.discountedAmount==0) ? toThousands(totalData.discountedAmount) : '--' }}</strong>;
           </div>
           <div class="action-buttons">
             <a-button id="salesManagementList-add0" type="primary" class="button-error" v-if="$hasPermissions('B_salesNews')" @click="handleAdd(0)"><a-icon type="plus" /> 新增(零售)</a-button>
             <a-button id="salesManagementList-add1" type="primary" class="button-error" v-if="$hasPermissions('B_salesNews')" @click="handleAdd(1)"><a-icon type="plus" /> 新增(铺货)</a-button>
-            <a-dropdown v-model="showCell">
-              <a-button type="link" class="button-default" id="salesQuery-discount-showCell"> <a-icon type="setting" />  显示</a-button>
-              <a-menu slot="overlay">
-                <a-menu-item>
-                  <a-checkbox v-model="showDiscount" id="salesManagementList-discount">折后总售价</a-checkbox>
-                </a-menu-item>
-                <a-menu-item>
-                  <a-checkbox v-model="showKhgx" id="salesQuery-khgx">客户关系</a-checkbox>
-                </a-menu-item>
-              </a-menu>
-            </a-dropdown>
+            <hideCellMenus placeholder="显示" :defHiddenKes="colsArr" v-model="showCell"></hideCellMenus>
           </div>
         </div>
 
@@ -225,49 +214,7 @@
               class="button-primary"
               @click="handleSend(record)"
             >出库</a-button>
-            <a-button
-              :id="'salesManagementList-edit-'+record.id"
-              size="small"
-              type="link"
-              class="button-primary"
-              v-if="((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' || record.sourceType == 'TEMPORARY_DISPATCHING'||record.sourceType == 'XPRH_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'WAIT_SUBMIT' || record.billStatus == 'AUDIT_REJECT')) && $hasPermissions('B_salesEdit')"
-              @click="handleEdit(record)"
-            >
-              编辑
-            </a-button>
-            <a-button
-              :id="'salesManagementList-del-'+record.id"
-              size="small"
-              type="link"
-              class="button-error"
-              v-if="((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' ) && record.billStatus != 'FINISH')||(record.sourceType == 'TEMPORARY_DISPATCHING'&&record.billStatus != 'FINISH'&&record.billStatus != 'WAIT_OUT_WAREHOUSE')&& $hasPermissions('B_salesDel')"
-              @click="handleDel(record)"
-            >
-              删除
-            </a-button>
-            <a-button
-              :id="'salesManagementList-editUp-'+record.id"
-              size="small"
-              type="link"
-              class="button-primary"
-              v-if="((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) && $hasPermissions('B_salesEdit')"
-              @click="handleEdit(record)"
-            >
-              改单
-            </a-button>
-            <a-button
-              :id="'salesManagementList-cancel-'+record.id"
-              size="small"
-              type="link"
-              class="button-error"
-              v-if="((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE'||record.sourceType =='XPRH_PURCHASE' ) && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) && $hasPermissions('B_salesDel')"
-              @click="handleDel(record, 'cancel')"
-            >
-              取消
-            </a-button>
-            <span v-if="!(record.billStatus == 'WAIT_AUDIT' && $hasPermissions('B_salesAudit')) && !(record.billStatus == 'WAIT_OUT_WAREHOUSE' && $hasPermissions('B_salesStockOut')) && !(((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' || record.sourceType == 'TEMPORARY_DISPATCHING'||record.sourceType == 'XPRH_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'WAIT_SUBMIT' || record.billStatus == 'AUDIT_REJECT')) && $hasPermissions('B_salesEdit')) && !(((record.sourceType == 'SATELLITE' || record.sourceType == 'SALES' || record.sourceType == 'TEMPORARY_DISPATCHING') && record.billStatus != 'FINISH') && $hasPermissions('B_salesDel'))">
-              <span v-if="!(((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) &&$hasPermissions('B_salesEdit')) && !(((record.sourceType == 'CHILD_PURCHASE'||record.sourceType == 'DEALER_PURCHASE') && (record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'SUPERIOR_CHANGE')) && $hasPermissions('B_salesDel'))">--</span>
-            </span>
+            <span v-if="false">--</span>
           </template>
         </s-table>
       </a-spin>
@@ -289,12 +236,13 @@ import rangeDate from '@/views/common/rangeDate.vue'
 import custList from '@/views/common/custList.vue'
 import { downloadExcel } from '@/libs/JGPrint.js'
 import stateIcon from '@/views/common/stateIcon'
+import hideCellMenus from '@/views/common/hideCellMenus'
 // 接口
 import { salesList, salesDel, salesWriteAudit, salesWriteStockOut, salesCount, salesExport } from '@/api/sales'
 import moment from 'moment'
 export default {
   name: 'SalesList',
-  components: { STable, VSelect, rangeDate, auditModal, custList, stateIcon },
+  components: { STable, VSelect, rangeDate, auditModal, custList, stateIcon, hideCellMenus },
   mixins: [commonMixin],
   data () {
     return {
@@ -367,7 +315,27 @@ export default {
       visibleAudit: false, // 审核弹框
       auditInfo: null, // 审核信息
       spinningAudit: false, // 审核操作loading
-      distributionFlag: '0' // 是否铺货
+      distributionFlag: '0', // 是否铺货
+      colsArr: [
+        {
+          title: '客户关系',
+          key: 'buyerRelationTypeDictValue',
+          disabled: false,
+          checked: false
+        },
+        {
+          title: '取消时间',
+          key: 'totalUnpushedQty',
+          disabled: false,
+          checked: false
+        },
+        {
+          title: '退款时间',
+          key: 'totalUnpushedAmount',
+          disabled: false,
+          checked: false
+        }
+      ]
     }
   },
   computed: {
@@ -387,6 +355,8 @@ export default {
         { title: '收款方式', dataIndex: 'settleStyleSnDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '审核时间', dataIndex: 'auditDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '取消时间', dataIndex: 'auditDate1', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '退款时间', dataIndex: 'auditDate2', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '业务状态', dataIndex: 'billStatusDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '审核', scopedSlots: { customRender: 'audit' }, width: '2%', align: 'center' },
         { title: '急件', scopedSlots: { customRender: 'oosFlag' }, width: '2%', align: 'center' },
@@ -490,7 +460,7 @@ export default {
     },
     // 详情
     handleDetail (row) {
-      this.$router.push({ name: 'salesNewDetail', params: { sn: row.salesBillSn } })
+      this.$router.push({ name: 'onlinePayOrderDetail', params: { sn: row.salesBillSn } })
     },
     // 编辑
     handleEdit (row) {
@@ -607,7 +577,7 @@ export default {
           })
           reader.readAsText(res)
         } else {
-          downloadExcel(res, '销售列表')
+          downloadExcel(res, '销售线上订单')
         }
       })
     },