Przeglądaj źródła

Merge branch 'develop_yh19' of jianguan-web/qpls-md-html into pre-release

李磊 2 lat temu
rodzic
commit
1aed06515c

+ 1 - 1
.env.preview

@@ -1,6 +1,6 @@
 NODE_ENV=production
 VUE_APP_PREVIEW=true
-VUE_APP_API_BASE_URL=http://p.iscm.360arrow.com/qpls-md
+VUE_APP_API_BASE_URL=https://p.iscm.360arrow.com/qpls-md
 VUE_APP_WX_BASE_URL=//p.iscm.360arrow.com/qpls-md/websocket/
 VUE_APP_VERSION=V1.0.1
 VUE_APP_ENVTIPS=预发布环境

+ 15 - 3
public/dzd/index.html

@@ -198,7 +198,7 @@
           尊敬的“{{info.customer.customerName || '--'}}”,您好!
         </div>
         <div class="tipDesc">
-          以下是您在本店的未结账单,请查阅。
+          以下是您在本店的账单,请查阅。
         </div>
         <div class="orderInfo"
           :style="{bottom:(info.discountAmount && info.discountAmount*1 !=0 ? '-1.9rem':'-1.3rem' )}">
@@ -217,8 +217,9 @@
             <div class="amount_list flex align_center flex-between">
               <span class="amountName">折后金额</span>
               <span class="amount" style="color: #f0ad4e"
-                v-if="info.settleAmount">¥{{toThousands(info.settleAmount,2)}}</span>
-              <span class="amount" style="color: #f0ad4e" v-else>¥0.00</span>
+                v-if="info.billStatus == 'UNSETTLE'">¥{{info.settleAmount?toThousands(info.settleAmount,2):'0.00'}}</span>
+				<span class="amount" style="color: #f0ad4e"
+				  v-else>¥{{foldPrice}}</span>
             </div>
           </div>
           <div class="downLoadCon">
@@ -293,6 +294,17 @@
         this.ajaxUrl = window.location.origin + '/qpls-md/'
         this.loadData()
       },
+	  computed:{
+		  // 折后金额
+		  foldPrice(){
+		  	let totalAmount = this.info.totalAmount?this.info.totalAmount:0
+		  	let discountPrice=this.info.discountAmount?this.info.discountAmount:0
+		  	let foldAmount = totalAmount - discountPrice 
+		  	foldAmount=Number(foldAmount)>0 ? foldAmount : 0
+		  	const newFoldPrice = foldAmount.toFixed(2)
+		  	return newFoldPrice
+		  }
+	  },
       methods: {
         loadData () {
           const ajaxData = {

Plik diff jest za duży
+ 1 - 0
public/js/axios.min.js


Plik diff jest za duży
+ 0 - 0
public/js/echarts.min.js


Plik diff jest za duży
+ 5 - 0
public/js/vue-router.min.js


Plik diff jest za duży
+ 5 - 0
public/js/vue.min.js


Plik diff jest za duży
+ 5 - 0
public/js/vuex.min.js


+ 1 - 1
public/version.json

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

+ 9 - 0
src/api/receiving.js

@@ -96,3 +96,12 @@ export const receivingAuditList = (params) => {
     method: 'post'
   })
 }
+// 修改入库数量
+export const updateRealPutQty = (params) => {
+  const url = `/receivingDetail/updateRealPutQty`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}

+ 1 - 5
src/components/index.less

@@ -472,11 +472,7 @@
   .ant-table-small > .ant-table-content .ant-table-body{
     margin: 0;
   }
-  input:disabled{
-    opacity: 1!important;
-    color: #fff!important;
-    -webkit-text-fill-color: #fff!important;
-  }
+   
   .table-td-link{
     color: #2A86F4;
     cursor: pointer;

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

@@ -1312,6 +1312,53 @@ export const asyncRouterMap = [
               }
             ]
           },
+          {
+            path: '/financialManagement/companyReceivablePayableNew',
+            redirect: '/financialManagement/companyReceivablePayableNew/list',
+            name: 'companyReceivablePayableNew',
+            component: BlankLayout,
+            meta: {
+              title: '单位应收应付管理(新版)',
+              icon: 'transaction',
+              permission: 'M_companyReceivablePayableList'
+            },
+            hideChildrenInMenu: true,
+            children: [
+              {
+                path: 'list',
+                name: 'companyReceivablePayableNewList',
+                component: () => import(/* webpackChunkName: "financialManagement" */ '@/views/financialManagement/companyReceivablePayableNew/list.vue'),
+                meta: {
+                  title: '单位应收应付列表(新版)',
+                  icon: 'transaction',
+                  hidden: true,
+                  permission: 'M_companyReceivablePayableList'
+                }
+              },
+              {
+                path: 'collectionPayment/:sn/:name/:type',
+                name: 'companyReceivablePayableNewCollectionPayment',
+                component: () => import(/* webpackChunkName: "financialManagement" */ '@/views/financialManagement/companyReceivablePayableNew/collectionPayment.vue'),
+                meta: {
+                  title: '编辑单位应收应付(新版)',
+                  icon: 'transaction',
+                  hidden: true,
+                  permission: 'M_collectionPayment'
+                }
+              },
+              {
+                path: 'detail/:sn/:name/:type',
+                name: 'companyReceivablePayableNewDetail',
+                component: () => import(/* webpackChunkName: "financialManagement" */ '@/views/financialManagement/companyReceivablePayableNew/detail.vue'),
+                meta: {
+                  title: '单位应收应付详情(新版)',
+                  icon: 'transaction',
+                  hidden: true,
+                  permission: 'M_companyReceivablePayable_detail'
+                }
+              }
+            ]
+          },
           {
             path: '/financialManagement/companyCollectionPayment',
             redirect: '/financialManagement/companyCollectionPayment/list',

+ 4 - 2
src/views/financialManagement/companyCollectionPayment/detail.vue

@@ -68,9 +68,11 @@ export default {
       spinning: false,
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', align: 'center', width: '10%' },
-        { title: '单据号', dataIndex: 'bizNo', align: 'center', width: '25%', customRender: function (text) { return text || '--' } },
+        { title: '序号', dataIndex: 'no', align: 'center', width: '5%' },
+        { title: '单据号', dataIndex: 'bizNo', align: 'center', width: '30%', customRender: function (text) { return text || '--' } },
         { title: '类型', dataIndex: 'bizTypeDictValue', align: 'center', width: '25%', customRender: function (text) { return text || '--' } },
+        // { title: '总款数', dataIndex: 'totalTypeNum', align: 'center', width: '10%', customRender: function (text) { return (text || text == 0)?text: '--' } },
+        // { title: '总数量', dataIndex: 'totalNum', align: 'center', width: '10%', customRender: function (text) { return (text || text == 0)?text: '--'  } },
         { title: '金额', dataIndex: 'totalAmount', align: 'right', width: '20%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '结算金额', dataIndex: 'settleAmount', align: 'right', width: '20%', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
       ],

+ 229 - 0
src/views/financialManagement/companyReceivablePayableNew/chooseBillModal.vue

@@ -0,0 +1,229 @@
+<template>
+  <a-drawer
+    title="全部单据"
+    placement="right"
+    class="chooseBillModal-new-modal jg-page-wrap"
+    :visible="isShow"
+    @close="isShow=false"
+    width="70%"
+    :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="7" :sm="24">
+              <a-form-item label="单据号">
+                <a-input id="chooseBillModal-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="chooseBillModal-bizType"
+                  code="SETTLE_BIZ_TYPE"
+                  placeholder="请选择单据类型"
+                  allowClear></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="10" :sm="24">
+              <a-form-item label="关联单据创建时间">
+                <rangeDate ref="createDate" @change="createDateChange" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="7" :sm="24">
+              <a-form-item label="审核时间">
+                <rangeDate ref="rangeDate" @change="dateChange" />
+              </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="chooseBillModal-refresh">查询</a-button>
+              <a-button style="margin: 0 0 18px 8px" @click="resetSearchForm" :disabled="disabled" id="chooseBillModal-reset">重置</a-button>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+      <div class="btn-cont">
+        <a-button type="primary" ghost id="chooseBillModal-modal-save" @click="handleSave">批量添加</a-button>
+        <span v-if="totalNums" style="margin-left: 15px;">已选{{ totalNums }}项</span>
+      </div>
+      <!-- 列表 -->
+      <s-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.id"
+        :row-selection="{columnWidth: 40, getCheckboxProps: record => ({ props: { disabled: record.checked } })}"
+        @rowSelection="rowSelectionFun"
+        :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 { settleInfoAllList } from '@/api/settle'
+export default {
+  name: 'ChooseBillModal',
+  components: { STable, VSelect, rangeDate },
+  mixins: [commonMixin],
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    nowChoose: {
+      type: Array,
+      default: () => {
+        return []
+      }
+    },
+    settleClientSn: {
+      type: String,
+      default: ''
+    },
+    settleClientType: {
+      type: String,
+      default: ''
+    }
+  },
+  computed:{
+    totalNums(){
+      return this.rowSelectionInfo && this.rowSelectionInfo.selectedRows && this.rowSelectionInfo.selectedRows.length
+    }
+  },
+  data () {
+    const _this = this
+    return {
+      spinning: false,
+      isShow: this.openModal, //  是否打开弹框
+      disabled: false,
+      queryParam: {
+        auditBeginDate: '',
+        auditEndDate: '',
+        bizNo: '',
+        bizType: undefined,
+        bizCreateBeginDate: undefined,
+        bizCreateEndDate: undefined
+      },
+      allData: [],
+      // 表头
+      columns: [
+        { title: '序号', dataIndex: 'no', width: '6%', align: 'center' },
+        { title: '单据号', dataIndex: 'bizNo', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据类型', dataIndex: 'bizTypeDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '关联单据创建时间', dataIndex: 'bizCreateDate', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'auditTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '总款数', dataIndex: 'bizTotalCategory', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '总数量', dataIndex: 'bizTotalQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '金额', dataIndex: 'totalAmount', width: '10%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '余额', dataIndex: 'unsettleAmount', 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 ? '已选' : '--' } }
+      ],
+      // 加载数据方法 必须为 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) {
+      console.log(obj)
+      this.rowSelectionInfo = obj || null
+    },
+    // 关联单据创建时间
+    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.$refs.table.clearSelected() // 清空表格选中项
+        _this.selectedRowKeys = []
+        _this.selectedRows = []
+        _this.resetSearchForm()
+      } else {
+        setTimeout(() => {
+          _this.$refs.table.refresh(true)
+        }, 200)
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .chooseBillModal-new-modal{
+    .btn-cont {
+      margin: 0 0 10px 0;
+      text-align: left;
+    }
+  }
+</style>

+ 500 - 0
src/views/financialManagement/companyReceivablePayableNew/collectionPayment.vue

@@ -0,0 +1,500 @@
+<template>
+  <div class="jg-page-wrap collectionPayment-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <a-page-header :ghost="false" :backIcon="false" class="collectionPayment-back" >
+        <!-- 自定义的二级文字标题 -->
+        <template slot="subTitle">
+          <span style="margin-right:30px;color: #000;font-size: 16px;font-weight: 600;">客户:{{ $route.params.name!='undefined'?$route.params.name: '--' }}</span>
+          <a-button id="purchaseNewOrderEdit-back-btn" type="link" @click="handleBack" class="button-default"> <a-icon type="rollback" /> 返回列表</a-button>
+        </template>
+        <template slot="extra" v-if="$hasPermissions('B_cPayment_printAndExport')">
+          <div style="margin-top: 5px;">
+            <PrintPanel ref="printBox" @handlePrint="handlePrint">
+              <!-- <div style="padding:10px;" slot="extendCons">
+                <a-checkbox v-model="printTotalKs" :checked="printTotalKs" id="salesQuery-printTotalKs">打印总款数</a-checkbox>
+                <a-checkbox v-model="printTotalNums" :checked="printTotalNums" id="salesQuery-printTotalNums">打印总数量</a-checkbox>
+              </div> -->
+            </PrintPanel>
+            <a-divider type="vertical" />
+            <a-button id="salesNewOrderEdit-add-btn" type="link" @click="openModal=true"><a-icon type="plus" />选择单据</a-button>
+          </div>
+        </template>
+      </a-page-header>
+      <!-- 已选单据 -->
+      <a-card size="small" :bordered="false" class="collectionPayment-cont">
+        <div class="table-operator">
+          <div class="alert-message">
+            共 <strong>{{ chooseLoadData.length }}</strong>条明细 ,
+            金额合计<strong>{{ toThousands(totalAmount) }}</strong> ,
+            余额合计<strong>{{ toThousands(totalBalance) }}</strong> ,
+            本次结算金额合计<strong>{{ toThousands(currentTotalBalance) }}</strong>
+          </div>
+        </div>
+        <!-- 列表 -->
+        <a-table
+          class="sTable"
+          ref="chooseTable"
+          size="small"
+          :rowKey="(record) => record.id"
+          :columns="chooseColumns"
+          :dataSource="chooseLoadData"
+          :scroll="{ y: 300 }"
+          :loading="loading"
+          :locale="{emptyText: '请先选择单据'}"
+          :pagination="false"
+          bordered>
+          <!-- 序号 -->
+          <template slot="no" slot-scope="text, record, index">
+            {{ index+1 }}
+          </template>
+          <!-- 本次结算金额 -->
+          <template slot="settleAmount" slot-scope="text, record">
+            <a-input-number
+              id="collectionPayment-settleAmount"
+              v-model="record.settleAmount"
+              :precision="2"
+              :min="record.unsettleAmount<0 ? record.unsettleAmount : 0"
+              :max="record.unsettleAmount<0 ? 0 : record.unsettleAmount"
+              @change="amountSettledChange"
+              size="small"
+              placeholder="请输入"
+              style="width: 100%;" />
+          </template>
+          <!-- 操作 -->
+          <template slot="action" slot-scope="text, record">
+            <a-button size="small" type="link" class="button-error" @click="handleDel(record)" id="collectionPayment-del-btn">移除</a-button>
+          </template>
+        </a-table>
+      </a-card>
+      <a-card size="small" :bordered="false" class="collectionPayment-cont">
+        <a-collapse :activeKey="['1']">
+          <a-collapse-panel key="1" header="收付款信息">
+            <a-form-model
+              id="collectionPayment-form"
+              ref="ruleForm"
+              :model="form"
+              :rules="rules"
+              :label-col="formItemLayout.labelCol"
+              :wrapper-col="formItemLayout.wrapperCol">
+              <a-row :gutter="20">
+                <a-col span="12">
+                  <a-form-model-item prop="amountSettled">
+                    <template slot="label">
+                      本次结算金额(<span :class="isPositive ? 'green':'red'">{{ isPositive ? '收款' : '付款' }}</span>)
+                    </template>
+                    <a-input-number
+                      id="collectionPayment-amountSettled"
+                      v-model="form.amountSettled"
+                      @change="amountSettledTotalChange"
+                      :precision="2"
+                      placeholder=""
+                      :max="maxAmountSettled"
+                      style="width: 100%;" />
+                  </a-form-model-item>
+                </a-col>
+                <a-col span="12">
+                  <a-form-model-item label="折让金额" prop="discountAmount">
+                    <a-input-number
+                      id="collectionPayment-discountAmount"
+                      v-model="form.discountAmount"
+                      :precision="2"
+                      :min="0"
+                      :max="form.amountSettled"
+                      placeholder="请输入"
+                      style="width: 100%;"
+                      allowClear />
+                  </a-form-model-item>
+                </a-col>
+                <a-col span="12">
+                  <a-form-model-item prop="actualSettlementAmount">
+                    <template slot="label">
+                      本次实际结算金额(<span :class="isPositive ? 'green':'red'">{{ isPositive ? '收款' : '付款' }}</span>)
+                    </template>
+                    <a-input-number
+                      id="collectionPayment-actualSettlementAmount"
+                      v-model="actualSettlementAmount"
+                      disabled
+                      :precision="2"
+                      placeholder=""
+                      style="width: 100%;" />
+                  </a-form-model-item>
+                </a-col>
+                <a-col span="12">
+                  <a-form-model-item label="结算方式" prop="settleStyleSn">
+                    <v-select
+                      code="SETTLE_STYLE"
+                      id="collectionPayment-settleStyleSn"
+                      v-model="form.settleStyleSn"
+                      @change="settleStyleChange"
+                      allowClear
+                      placeholder="请选择结算方式"
+                    ></v-select>
+                  </a-form-model-item>
+                </a-col>
+                <a-col span="12">
+                  <a-form-model-item v-if="enableFundAccount" label="结算账户" prop="settleAccountSn">
+                    <settleAccount
+                      id="collectionPayment-settleAccountSn"
+                      v-model="form.settleAccountSn"
+                      :settleStyleSn="form.settleStyleSn"
+                      @change="settleAccountChange"
+                      placeholder="请选择结算账户">
+                    </settleAccount>
+                  </a-form-model-item>
+                </a-col>
+                <a-col span="24">
+                  <a-form-model-item label="备注" prop="remark" :label-col="{ span: 3 }" :wrapper-col="{ span: 20 }">
+                    <a-textarea id="collectionPayment-remark" :maxLength="100" v-model="form.remark" placeholder="请输入备注(最多100个字符)" allowClear />
+                  </a-form-model-item>
+                </a-col>
+              </a-row>
+            </a-form-model>
+          </a-collapse-panel>
+        </a-collapse>
+      </a-card>
+    </a-spin>
+    <div class="affix-cont">
+      <a-button
+        type="primary"
+        id="collectionPayment-submit"
+        size="large"
+        :disabled="spinning"
+        class="button-primary"
+        @click="handleSubmit"
+        style="padding: 0 60px;">提交</a-button>
+    </div>
+    <choose-bill-modal
+      ref="chooseBillModal"
+      :openModal="openModal"
+      :nowChoose="chooseLoadData"
+      :settleClientType="$route.params.type"
+      :settleClientSn="$route.params.sn"
+      @ok="handleOk"
+      @close="handleClose" />
+  </div>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import { mapActions } from 'vuex'
+import debounce from 'lodash/debounce'
+import { STable, VSelect } from '@/components'
+import chooseBillModal from './chooseBillModal.vue'
+import { settleUnitSave, settleUnitPrint, settleUnitExport, settleInfoAllList } from '@/api/settle'
+import Print from '@/views/common/print.vue'
+import settleAccount from '@/views/common/settleAccount'
+import rangeDate from '@/views/common/rangeDate.vue'
+import { hdPrint } from '@/libs/JGPrint'
+import PrintPanel from '@/views/common/printPanel.vue'
+export default {
+  name: 'CollectionPaymentDetail',
+  components: { STable, VSelect, chooseBillModal, Print, settleAccount, rangeDate, PrintPanel },
+  mixins: [commonMixin],
+  data () {
+    this.amountSettledChange = debounce(this.amountSettledChange, 800)
+    this.amountSettledTotalChange = debounce(this.amountSettledTotalChange, 800)
+    const _this = this
+    return {
+      disabled: false,
+      spinning: false,
+      loading: false, //  表格加载中
+      chooseQueryParam: {
+        productCode: '',
+        productName: ''
+      },
+      // 表头
+      chooseColumns: [
+        { title: '序号', scopedSlots: { customRender: 'no' }, width: '5%', align: 'center' },
+        { title: '单据号', dataIndex: 'bizNo', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据类型', dataIndex: 'bizTypeDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '关联单据创建时间', dataIndex: 'bizCreateDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'auditTime', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '总款数', dataIndex: 'bizTotalCategory', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '总数量', dataIndex: 'bizTotalQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '金额', dataIndex: 'totalAmount', width: '10%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '余额', dataIndex: 'unsettleAmount', width: '10%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '本次结算金额', scopedSlots: { customRender: 'settleAmount' }, width: '12%', align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
+      ],
+      chooseLoadData: [],
+      formItemLayout: {
+        labelCol: { span: 6 },
+        wrapperCol: { span: 16 }
+      },
+      form: {
+        amountSettled: 0,
+        discountAmount: 0, //  折让金额
+        settleStyleSn: undefined,
+        settleClientName: '',
+        settleAccountSn: undefined,
+        settleAccountName: undefined,
+        remark: ''
+      },
+      rules: {
+        amountSettled: [{ required: true, message: '请输入本次结算金额,系统将自动分配到已选单据上', trigger: 'change' }],
+        discountAmount: [{ required: true, message: '请输入折让金额', trigger: 'blur' }],
+        settleStyleSn: [{ required: true, message: '请选择结算方式', trigger: 'change' }],
+        settleAccountSn: [{ required: true, message: '请选择结算账户', trigger: 'change' }]
+      },
+      openModal: false, //  弹框
+      isPositive: true, // 是否是正值
+      isChangeAs: false,
+      maxAmountSettled: 0,
+      enableFundAccount: false,
+      printTotalKs: false, // 打印原创编码
+      printTotalNums: false, // 打印全部名称
+    }
+  },
+  computed: {
+    // 本次结算金额合计
+    currentTotalBalance () {
+      let val = 0
+      this.chooseLoadData.map(item => {
+        val += (Number(item.settleAmount) * 1000)
+      })
+      return val / 1000
+    },
+    // 金额合计
+    totalAmount () {
+      let val = 0
+      this.chooseLoadData.map(item => {
+        val += (Number(item.totalAmount) * 1000)
+      })
+      return val / 1000
+    },
+    // 余额合计
+    totalBalance () {
+      let val = 0
+      this.chooseLoadData.map(item => {
+        val += (Number(item.unsettleAmount) * 1000)
+      })
+      return val / 1000
+    },
+    // 实结算金额
+    actualSettlementAmount () {
+      const val = (this.form.amountSettled * 1000 - this.form.discountAmount * 1000) / 1000
+      return val
+    }
+  },
+  methods: {
+    ...mapActions(['GetSettleAccountState']),
+    // 打印预览/快捷打印
+    handlePrint (type, printerType) {
+      const _this = this
+      const params = _this.getParams()
+      
+      _this.spinning = true
+      let url = ''
+      if (type == 'export') { //  导出
+        url = settleUnitExport
+      }else{
+        url = settleUnitPrint
+        // 打印
+        // params.printTotalKs = params.printTotalKs ? 1 : 0
+        // params.printTotalNums = params.printTotalNums ? 1 : 0
+      }
+      // 打印或导出
+      hdPrint(printerType, type, url, params, '单位应收应付', function () {
+        _this.spinning = false
+      })
+    },
+    // 选择结算方式
+    settleStyleChange (v, name) {
+      this.form.settleStyleName = name.dispName
+      if (this.form.settleAccountSn) {
+        this.form.settleAccountSn = undefined
+      }
+    },
+    settleAccountChange (v, name) {
+      this.form.settleAccountName = name
+    },
+    // 应结算金额
+    amountSettledChange () {
+      console.log(this.isChangeAs)
+      if (!this.isChangeAs) {
+        let val = 0
+        this.chooseLoadData.map(item => {
+          val += (Number(item.settleAmount) * 1000)
+        })
+        val = val / 1000
+        this.isPositive = val > 0
+        this.form.amountSettled = Math.abs(val)
+        this.maxAmountSettled = Math.abs(val)
+      }
+    },
+    // 修改本次结算金额,自动分配
+    amountSettledTotalChange (v) {
+      console.log(this.isChangeAs, v, this.totalBalance, this.isPositive)
+      if (v <= Math.abs(this.totalBalance)) {
+        this.isChangeAs = true
+        const sa = v
+        const list = this.chooseLoadData
+        // 恢复初始值
+        list.map((item, index) => {
+          item.settleAmount = item.unsettleAmount
+        })
+        this.maxAmountSettled = Math.abs(this.totalBalance)
+        // 开始计算
+        let temp = 0
+        let ti = 0
+        for (let i = 0; i < list.length; i++) {
+          temp = temp + list[i].settleAmount * (this.isPositive ? 1 : -1)
+          if (temp >= sa) {
+            ti = i
+            break
+          }
+        }
+        console.log(ti, temp, sa)
+        list[ti].settleAmount = (list[ti].settleAmount - (temp - sa) * (this.isPositive ? 1 : -1)).toFixed(2)
+        // ti 之后的都改成0
+        for (let i = ti + 1; i < list.length; i++) {
+          list[i].settleAmount = 0
+        }
+        list.splice()
+        this.isChangeAs = false
+      }
+    },
+    // 选择单据
+    handleChoose () {
+      this.openModal = true
+    },
+    //  移除
+    handleDel (record) {
+      const ind = this.chooseLoadData.findIndex(item => item.id == record.id)
+      this.chooseLoadData.splice(ind, 1)
+      this.amountSettledChange()
+    },
+    getParams () {
+      const _this = this
+      const form = _this.form
+      form.settleClientName = _this.$route.params.name
+      form.settleClientSn = _this.$route.params.sn || undefined
+      form.settleClientType = _this.chooseLoadData[0].settleClientType
+      form.settleType = _this.isPositive ? 'R' : 'P'
+      form.settleAmount = _this.form.amountSettled
+      form.realSettleAmount = _this.actualSettlementAmount
+      form.detailList = []
+      _this.chooseLoadData.map(item => {
+        form.detailList.push({
+          bizSn: item.bizSn,
+          settleAmount: item.settleAmount,
+          prFlag: item.prFlag
+        })
+      })
+      return form
+    },
+    // 提交
+    handleSubmit () {
+      const _this = this
+      if (_this.chooseLoadData.length == 0) {
+        _this.$message.warning('请选择单据后再提交信息')
+        return
+      }
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          _this.spinning = true
+          const form = this.getParams()
+          settleUnitSave(form).then(res => {
+            if (res.status == 200) {
+              _this.$message.success(res.message)
+              _this.handleBack()
+              _this.spinning = false
+            } else {
+              _this.spinning = false
+            }
+          })
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    },
+    handleOk (selectedRows) {
+      this.chooseLoadData = this.chooseLoadData.concat(selectedRows).sort((a, b) => {
+        const at = new Date(a.auditTime).getTime()
+        const bt = new Date(b.auditTime).getTime()
+        return at - bt
+      })
+      this.amountSettledChange()
+    },
+    // 返回列表
+    handleBack () {
+      this.$router.push({ path: `/financialManagement/companyReceivablePayableNew/list` })
+    },
+    // 关闭
+    handleClose () {
+      this.openModal = false
+    },
+    // 默认获取所有单据
+    getsettleInfoAllList () {
+      this.loading = true
+      this.disabled = true
+      settleInfoAllList({ settleClientSn: this.$route.params.sn, settleClientType: this.$route.params.type, notEqZero: 1 }).then(res => {
+        res.data.map(item => {
+          item.settleAmount = item.unsettleAmount
+        })
+        this.chooseLoadData = res.data || []
+        this.loading = false
+        this.disabled = false
+        this.amountSettledChange()
+      })
+    },
+    pageInit () {
+      const vm = this
+      vm.$nextTick(() => {
+        vm.chooseLoadData = []
+        vm.getsettleInfoAllList()
+      })
+    },
+    // 重置
+    resetSearchForm () {
+      this.getsettleInfoAllList()
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+    }
+  },
+  activated () {
+    // 如果是新页签打开或者进入新的子页(例:存在列表第2条数据编辑页页签时再打开第4条数据的编辑页),则重置当前页面
+    if (this.$store.state.app.isNewTab || !this.$store.state.app.isNewSubTab) {
+      this.pageInit()
+    }
+    // 结算账户状态查询
+    if (this.$hasPermissions('M_fundAccountList') && this.$hasPermissions('B_fundAccountEnable')) {
+      this.GetSettleAccountState().then(res => {
+        if (res.status == 200) {
+          this.enableFundAccount = res.data.functionEnableFlag == 1
+        }
+      })
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .collectionPayment-wrap{
+    position: relative;
+    height: 100%;
+    padding-bottom: 51px;
+    box-sizing: border-box;
+    >.ant-spin-nested-loading{
+      overflow-y: auto;
+      height: 100%;
+    }
+    .collectionPayment-cont{
+      margin-top: 10px;
+      .green{
+        color: #19be6b;
+      }
+      .red{
+        color: #ed1c24;
+      }
+    }
+    
+  }
+</style>

+ 192 - 0
src/views/financialManagement/companyReceivablePayableNew/detail.vue

@@ -0,0 +1,192 @@
+<template>
+  <div class="companyCollectionPaymentDetail-wrap jg-page-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <a-page-header :ghost="false" :backIcon="false" class="companyCollectionPaymentDetail-cont" >
+        <!-- 自定义的二级文字标题 -->
+        <template slot="subTitle">
+          <span style="margin-right: 30px;color: #000;font-size: 16px;font-weight: 600;">客户:{{ $route.params.name!='undefined'?$route.params.name: '--' }}</span>
+          <a-button id="companyCollectionPaymentDetail-back-btn" type="link" @click="handleBack" class="button-default"> <a-icon type="rollback" /> 返回列表</a-button>
+        </template>
+      </a-page-header>
+      <a-card>
+        <!-- 搜索条件 -->
+        <div class="table-page-search-wrapper">
+          <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+            <a-row :gutter="15">
+              <a-col :md="6" :sm="24">
+                <a-form-item label="单据号">
+                  <a-input id="companyReceivablePayableDetail-bizNo" v-model.trim="queryParam.bizNo" allowClear placeholder="请输入单据号"/>
+                </a-form-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="审核时间">
+                  <rangeDate ref="rangeDate" @change="dateChange" />
+                </a-form-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <span class="table-page-search-submitButtons">
+                  <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="companyReceivablePayableDetail-refresh">查询</a-button>
+                  <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="companyReceivablePayableDetail-reset">重置</a-button>
+                  <!-- <a-button
+                    type="danger"
+                    style="margin-left: 8px"
+                    @click="handleExport"
+                    :disabled="disabled"
+                    :loading="exportLoading"
+                    id="companyReceivablePayableDetail-export-btn">导出</a-button> -->
+                </span>
+              </a-col>
+            </a-row>
+          </a-form>
+        </div>
+        <!-- alert -->
+        <div class="table-operator">
+          <div class="alert-message">
+            共 <strong>{{ total }}</strong> 条明细,
+            金额合计 <strong>{{ (productTotal&&(productTotal.totalAmount || productTotal.totalAmount==0)) ? toThousands(productTotal.totalAmount) : '--' }}</strong> ,
+            余额合计 <strong>{{ (productTotal&&(productTotal.unsettleAmount || productTotal.unsettleAmount==0)) ? toThousands(productTotal.unsettleAmount) : '--' }}</strong>
+          </div>
+        </div>
+        <!-- 列表 -->
+        <s-table
+          class="sTable"
+          ref="table"
+          size="small"
+          :rowKey="(record) => record.id"
+          :columns="columns"
+          :data="loadData"
+          :defaultLoadData="false"
+          bordered>
+          <!-- 采购数量 -->
+          <template slot="purchaseNum" slot-scope="text, record">
+            <span>{{ record.purchaseNum }}</span>
+          </template>
+          <!-- 缺货数量 -->
+          <template slot="outOfStockNum" slot-scope="text, record">
+            <span>{{ record.outOfStockNum }}</span>
+          </template>
+        </s-table>
+      </a-card>
+    </a-spin>
+  </div>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+// import { downloadExcel } from '@/libs/JGPrint.js'
+import { STable, VSelect } from '@/components'
+import rangeDate from '@/views/common/rangeDate.vue'
+import { settleInfoList, settleInfoQueryReceiptOrPaySum } from '@/api/settle'
+export default {
+  name: 'CompanyReceivablePayableDetail',
+  components: { STable, VSelect, rangeDate },
+  mixins: [commonMixin],
+  data () {
+    const _this = this
+    return {
+      spinning: false,
+      disabled: false, //  查询、重置按钮是否可操作
+      // 查询参数
+      queryParam: {
+        auditBeginDate: '',
+        auditEndDate: '',
+        bizNo: ''
+      },
+      exportLoading: false, // 导出loading
+      // 表头
+      columns: [
+        { title: '序号', dataIndex: 'no', width: '6%', align: 'center' },
+        { title: '单据号', dataIndex: 'bizNo', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '类型', dataIndex: 'bizTypeDictValue', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'auditTime', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '总款数', dataIndex: 'bizTotalCategory', width: '12%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '总数量', dataIndex: 'bizTotalQty', width: '12%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '金额', dataIndex: 'totalAmount', width: '14%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '余额', dataIndex: 'unsettleAmount', width: '14%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        const params = Object.assign(parameter, this.queryParam, { settleClientSn: this.$route.params.sn, settleClientType: this.$route.params.type })
+        return settleInfoList(params).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            this.getTotal(params)
+            const no = (data.pageNo - 1) * data.pageSize
+            for (var i = 0; i < data.list.length; i++) {
+              data.list[i].no = no + i + 1
+            }
+            this.disabled = false
+            this.total = data.count || 0
+          }
+          this.spinning = false
+          return data
+        })
+      },
+      basicInfoData: null, //  基本信息
+      total: 0, //  总条数
+      productTotal: null //  合计
+    }
+  },
+  methods: {
+    //  时间  change
+    dateChange (date) {
+      this.queryParam.auditBeginDate = date[0]
+      this.queryParam.auditEndDate = date[1]
+    },
+    //  返回列表
+    handleBack () {
+      this.$router.push({ path: '/financialManagement/companyReceivablePayableNew/list' })
+    },
+    // 合计
+    getTotal (param) {
+      settleInfoQueryReceiptOrPaySum(param).then(res => {
+        if (res.status == 200 && res.data) {
+          this.productTotal = res.data
+        } else {
+          this.productTotal = null
+        }
+      })
+    },
+    // 重置
+    resetSearchForm () {
+      this.$refs.rangeDate.resetDate()
+      this.queryParam.auditBeginDate = ''
+      this.queryParam.auditEndDate = ''
+      this.queryParam.bizNo = ''
+      this.$refs.table.refresh(true)
+    },
+    //  导出
+    handleExport () {
+      // const params = this.queryParam
+      // this.exportLoading = true
+      // customerBundleExportDelay(params).then(res => {
+      //   this.exportLoading = false
+	  // downloadExcel(res, '单位应收应付')
+      // })
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.resetSearchForm()
+    }
+  },
+  activated () {
+    // 如果是新页签打开或者进入新的子页(例:存在列表第2条数据编辑页页签时再打开第4条数据的编辑页),则重置当前页面
+    if (this.$store.state.app.isNewTab || !this.$store.state.app.isNewSubTab) {
+      this.resetSearchForm()
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>
+
+<style lang="less">
+  .companyCollectionPaymentDetail-cont{
+    margin-bottom: 10px;
+  }
+</style>

+ 218 - 0
src/views/financialManagement/companyReceivablePayableNew/list.vue

@@ -0,0 +1,218 @@
+<template>
+  <div class="jg-page-wrap">
+    <a-card size="small" :bordered="false" class="table-page-search-wrapper">
+      <!-- 搜索条件 -->
+      <div ref="tableSearch">
+        <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+          <a-row :gutter="15">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="客户名称">
+                <a-input id="companyReceivablePayableNewList-settleClientName" v-model.trim="queryParam.settleClientNameCurrent" allowClear placeholder="请输入客户名称"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="单位类型">
+                <v-select
+                  v-model="queryParam.settleClientType"
+                  ref="settleClientType"
+                  id="companyReceivablePayableNewList-settleClientType"
+                  code="SETTLE_CLIENT_TYPE"
+                  placeholder="请选择单位类型"
+                  allowClear></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <span class="table-page-search-submitButtons">
+                <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="companyReceivablePayableNewList-refresh">查询</a-button>
+                <a-button style="margin-left: 8px" @click="resetSearchForm()" :disabled="disabled" id="companyReceivablePayableNewList-reset">重置</a-button>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+    </a-card>
+    <a-card size="small" :bordered="false" class="companyReceivablePayableNewList-wrap">
+      <a-spin :spinning="spinning" tip="Loading...">
+        <!-- 统计 -->
+        <div class="table-operator">
+          <div class="alert-message">
+            共 <strong>{{ total }}</strong> 条记录,
+            应收金额合计 <strong>{{ (productTotal&&(productTotal.receipt || productTotal.receipt==0)) ? toThousands(productTotal.receipt) : '--' }}</strong> ,
+            应付金额合计 <strong>{{ (productTotal&&productTotal.pay) ? toThousands(productTotal.pay) : 0 }}</strong>
+          </div>
+        </div>
+        <!-- 列表 -->
+        <s-table
+          class="sTable fixPagination"
+          ref="table"
+          :style="{ height: tableHeight+84.5+'px' }"
+          size="small"
+          :rowKey="(record) => record.no"
+          rowKeyName="no"
+          :columns="columns"
+          :data="loadData"
+          :scroll="{ y: tableHeight }"
+          :defaultLoadData="false"
+          bordered>
+          <!-- 客户名称 -->
+          <template slot="customerName" slot-scope="text, record">
+            <span v-if="record.settleClientType&&record.settleClientType=='CUSTOMER'">{{ record.settleClientNameCurrent||'--' }}</span>
+            <span v-else>{{ record.settleClientName||'--' }}</span>
+          </template>
+          <!-- 操作 -->
+          <template slot="action" slot-scope="text, record">
+            <a-button
+              v-if="$hasPermissions('M_collectionPayment')"
+              size="small"
+              type="link"
+              class="button-primary"
+              @click="handleCollectionPayment(record)"
+              id="companyReceivablePayableNewList-collectionPayment-btn">收付款</a-button>
+            <a-button
+              size="small"
+              type="link"
+              class="button-success"
+              @click="handleDetail(record)"
+              id="companyReceivablePayableNewList-detail-btn"
+              v-if="$hasPermissions('M_companyReceivablePayable_detail')">详情</a-button>
+            <span v-if="!$hasPermissions('M_collectionPayment') && !$hasPermissions('M_companyReceivablePayable_detail')">--</span>
+          </template>
+        </s-table>
+      </a-spin>
+    </a-card>
+  </div>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import { STable, VSelect } from '@/components'
+import { settleUnitClientList, settleInfoQuerySum } from '@/api/settle'
+export default {
+  name: 'CollectionPaymentList',
+  components: { STable, VSelect },
+  mixins: [commonMixin],
+  data () {
+    const _this = this
+    return {
+      spinning: false,
+      disabled: false, //  查询、重置按钮是否可操作
+      tableHeight: 0,
+      // 查询参数
+      queryParam: {
+        settleClientNameCurrent: '',
+        settleClientType: undefined
+      },
+      // 表头
+      columns: [
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '客户名称', width: '20%', align: 'center', scopedSlots: { customRender: 'customerName' } },
+        { title: '单位类型', dataIndex: 'settleClientTypeDictValue', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '应收金额', dataIndex: 'unSettleAmountReceipt', width: '20%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '应付金额', dataIndex: 'unSettleAmountPay', width: '20%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        return settleUnitClientList(Object.assign(parameter, this.queryParam)).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            this.getTotal(Object.assign(parameter, this.queryParam))
+            const no = (data.pageNo - 1) * data.pageSize
+            for (var i = 0; i < data.list.length; i++) {
+              data.list[i].no = no + i + 1
+              // 应付金额  值为负,应显示为正
+              data.list[i].unSettleAmountPay = Math.abs(data.list[i].unSettleAmountPay) || 0
+            }
+            this.disabled = false
+            this.total = data.count || 0
+          }
+          this.spinning = false
+          return data
+        })
+      },
+      total: 0, //  总条数
+      productTotal: null
+    }
+  },
+  methods: {
+    //  详情
+    handleDetail (row) {
+      if (row.settleClientType == 'CUSTOMER') {
+        this.$router.push({ path: `/financialManagement/companyReceivablePayableNew/detail/${row.settleClientSn}/${row.settleClientNameCurrent}/${row.settleClientType}` })
+      } else {
+        this.$router.push({ path: `/financialManagement/companyReceivablePayableNew/detail/${row.settleClientSn}/${row.settleClientName}/${row.settleClientType}` })
+      }
+    },
+    // 合计
+    getTotal (param) {
+      settleInfoQuerySum(param).then(res => {
+        if (res.status == 200 && res.data) {
+          this.productTotal = res.data
+        } else {
+          this.productTotal = null
+        }
+      })
+    },
+    //  收付款
+    handleCollectionPayment (row) {
+      if (row.settleClientType == 'CUSTOMER') {
+        this.$router.push({ path: `/financialManagement/companyReceivablePayableNew/collectionPayment/${row.settleClientSn}/${row.settleClientNameCurrent}/${row.settleClientType}` })
+      } else {
+        this.$router.push({ path: `/financialManagement/companyReceivablePayableNew/collectionPayment/${row.settleClientSn}/${row.settleClientName}/${row.settleClientType}` })
+      }
+    },
+    //  重置
+    resetSearchForm () {
+      this.queryParam.settleClientNameCurrent = ''
+      this.queryParam.settleClientType = undefined
+      this.$refs.table.refresh(true)
+    },
+    pageInit () {
+      const _this = this
+      this.$nextTick(() => { // 页面渲染完成后的回调
+        _this.setTableH()
+      })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 260
+    }
+  },
+  watch: {
+    '$store.state.app.winHeight' (newValue, oldValue) { //  窗口变更时,需同时更改表格高度
+      this.setTableH()
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  activated () {
+    // 如果是新页签打开,则重置当前页面
+    if (this.$store.state.app.isNewTab) {
+      this.pageInit()
+      this.resetSearchForm()
+    }
+    // 仅刷新列表,不重置页面
+    if (this.$store.state.app.updateList) {
+      this.pageInit()
+      this.$refs.table.refresh()
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>
+<style lang="less">
+  .companyReceivablePayableNewList-wrap{
+    .sTable{
+      margin-top: 10px;
+    }
+  }
+</style>

+ 6 - 6
src/views/financialManagement/warehousingAudit/detail.vue

@@ -26,8 +26,8 @@
               <a-descriptions-item label="采购总数量">{{ basicInfoData&&(basicInfoData.totalQty || basicInfoData.totalQty==0) ? basicInfoData.totalQty : '--' }}</a-descriptions-item>
               <a-descriptions-item label="采购总成本" v-if="$hasPermissions('M_ShowAllCost')">{{ basicInfoData&&(basicInfoData.totalAmount || basicInfoData.totalAmount==0) ? toThousands(basicInfoData.totalAmount) : '--' }}</a-descriptions-item>
               <a-descriptions-item label="入库总款数">{{ basicInfoData&&(basicInfoData.totalPutCategory || basicInfoData.totalPutCategory==0) ? basicInfoData.totalPutCategory : '--' }}</a-descriptions-item>
-              <a-descriptions-item label="入库总数量">{{ basicInfoData&&(basicInfoData.totalPutQty || basicInfoData.totalPutQty==0) ? basicInfoData.totalPutQty : '--' }}</a-descriptions-item>
-              <a-descriptions-item label="入库总成本" v-if="$hasPermissions('M_ShowAllCost')">{{ basicInfoData&&(basicInfoData.totalPutAmount || basicInfoData.totalPutAmount==0) ? toThousands(basicInfoData.totalPutAmount) : '--' }}</a-descriptions-item>
+              <a-descriptions-item label="入库总数量">{{ basicInfoData&&(basicInfoData.totalRealPutQty || basicInfoData.totalRealPutQty==0) ? basicInfoData.totalRealPutQty : '--' }}</a-descriptions-item>
+              <a-descriptions-item label="入库总成本" v-if="$hasPermissions('M_ShowAllCost')">{{ basicInfoData&&(basicInfoData.totalRealPutAmount || basicInfoData.totalRealPutAmount==0) ? toThousands(basicInfoData.totalRealPutAmount) : '--' }}</a-descriptions-item>
             </a-descriptions>
           </a-collapse-panel>
         </a-collapse>
@@ -100,16 +100,16 @@ export default {
         { title: '产品名称', dataIndex: 'dealerProductEntity.name', width: '15%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '原厂编码', dataIndex: 'dealerProductEntity.origCode', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '采购数量', dataIndex: 'qty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库数量', dataIndex: 'putQty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库数量', dataIndex: 'realPutQty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         // { title: '成本价', dataIndex: 'discountedPrice', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '单位', dataIndex: 'dealerProductEntity.unit', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
-        // { title: '入库小计', dataIndex: 'discountedAmount', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '入库小计', dataIndex: 'realPutAmount', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '仓库', dataIndex: 'warehouseEntity.name', width: '9%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '仓位', dataIndex: 'warehouseLocationEntity.name', width: '9%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
       ]
       if (this.$hasPermissions('M_ShowAllCost')) {
-        arr.splice(6, 0, { title: '成本价', dataIndex: 'discountedPrice', width: '7%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
-        arr.splice(8, 0, { title: '入库小计', dataIndex: 'discountedAmount', width: '7%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(7, 0, { title: '成本价', dataIndex: 'discountedPrice', width: '7%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(8, 0, { title: '入库小计', dataIndex: 'realPutAmount', width: '7%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       return arr
     }

+ 3 - 3
src/views/financialManagement/warehousingAudit/list.vue

@@ -166,8 +166,8 @@ export default {
         { title: '采购单号', dataIndex: 'purchaseBillNo', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '发货单号', scopedSlots: { customRender: 'receivingBillNo' }, width: '15%', align: 'center' },
         { title: '总款数', dataIndex: 'totalPutCategory', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库总数量', dataIndex: 'totalPutQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        // { title: '入库总成本', dataIndex: 'totalPutAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库总数量', dataIndex: 'totalRealPutQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '入库总成本', dataIndex: 'totalRealPutAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '签收入库时间', dataIndex: 'stockPutTime', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '财务入库审核时间', dataIndex: 'auditTime', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '审核', scopedSlots: { customRender: 'audit' }, width: '3%', align: 'center' },
@@ -175,7 +175,7 @@ export default {
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ]
       if (this.$hasPermissions('M_ShowAllCost')) {
-        arr.splice(5, 0, { title: '入库总成本', dataIndex: 'totalPutAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.splice(5, 0, { title: '入库总成本', dataIndex: 'totalRealPutAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       return arr
     }

+ 8 - 2
src/views/inventoryManagement/inventoryQuery/warehouseDetail.vue

@@ -107,8 +107,14 @@
           bordered>
           <!-- 单位名称 -->
           <template slot="newUnitName" slot-scope="text, record">
-            <span v-if="record.unitType&&record.unitType=='CUSTOMER'">{{ record.unitNameCurrent||'--' }}</span>
-            <span v-else>{{ record.unitName||'--' }}</span>
+            <a-tooltip placement="bottom">
+                    <template slot="title">
+                     <span v-if="record.unitType&&record.unitType=='CUSTOMER'">{{ record.unitNameCurrent||'--' }}</span>
+                     <span v-else>{{ record.unitName||'--' }}</span>
+                    </template>
+                  <span v-if="record.unitType&&record.unitType=='CUSTOMER'">{{ record.unitNameCurrent||'--' }}</span>
+                  <span v-else>{{ record.unitName||'--' }}</span>
+            </a-tooltip>
           </template>
           <!-- 数量 -->
           <template slot="qty" slot-scope="text, record">

+ 49 - 12
src/views/purchasingManagement/signWarehousing/edit.vue

@@ -20,8 +20,12 @@
               产品款数 <strong>{{ item.totalPutCategory }}</strong> ,
               本次发货数量合计 <strong>{{ item.totalPutQty }}</strong> ,
               <div style="display: inline-block;" v-if="$hasPermissions('M_ShowAllCost')">
-                本次发货金额合计<strong>{{ item.totalPutAmount?toThousands(item.totalPutAmount,2):'0.00' }}</strong>
+                本次发货金额合计<strong>{{ item.totalPutAmount?toThousands(item.totalPutAmount,2):'0.00' }}</strong>
               </div>
+              本次入库数量合计:<strong>{{ item && (item.totalRealPutQty || item.totalRealPutQty==0) ? item.totalRealPutQty : '--' }}</strong>
+              <div style="display: inline-block;" v-if="$hasPermissions('M_ShowAllCost')">,
+              本次入库金额合计:<strong>{{ item && (item.totalRealPutAmount || item.totalRealPutAmount==0) ? toThousands(item.totalRealPutAmount, 2) : '--' }}</strong>
+            </div>
             </div>
           </div>
         </a-alert>
@@ -41,6 +45,19 @@
             <div>{{ text }}</div>
             <div v-if="record.origqty">原采购数量:{{ record.origqty }}</div>
           </template>
+          <!-- 入库数量 -->
+          <template slot="warehouseNum" slot-scope="text, record">
+            <a-input-number
+              size="small"
+              v-model="record.realPutQty"
+              :disabled="!(item.auditState=='WAIT_PUT_WAREHOUSE' || item.auditState == 'PUT_WAREHOUSE_AUDIT_REJECT')"
+              :precision="0"
+              :min="0"
+              :max="999999"
+              style="width: 100%;"
+              @blur="changePutQty(record, bindex)"
+              placeholder="请输入入库数量" />
+          </template>
           <!-- 仓库仓位 -->
           <template slot="warehousePosition" slot-scope="text, record, index">
             <a-cascader
@@ -76,6 +93,7 @@
 import { commonMixin } from '@/utils/mixin'
 import { STable, VSelect } from '@/components'
 import { purchaseWriteStockIn, receivingQuery, receivingDetail } from '@/api/purchase'
+import { updateRealPutQty } from '@/api/receiving'
 import { purchaseUpdateWarehouse } from '@/api/purchaseDetail'
 import ProductType from '../../common/productType.js'
 import ProductBrand from '../../common/productBrand.js'
@@ -110,7 +128,7 @@ export default {
           const no = (data.pageNo - 1) * data.pageSize
           for (var i = 0; i < data.list.length; i++) {
             data.list[i].no = no + i + 1
-            data.list[i].shippedQty = data.list[i].putQty
+            data.list[i].shippedQty = data.list[i].realPutQty
             const warehouseSn = data.list[i].warehouseSn || undefined
             const warehouseLocationSn = data.list[i].warehouseLocationSn || undefined
             if (warehouseSn || warehouseLocationSn) {
@@ -140,20 +158,19 @@ export default {
       const _this = this
       const arr = [
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
-        { title: '产品编码', dataIndex: 'dealerProductEntity.code', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'dealerProductEntity.name', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'dealerProductEntity.origCode', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
-        // { title: '采购单价', dataIndex: 'discountedPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '产品编码', dataIndex: 'dealerProductEntity.code', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'dealerProductEntity.name', width: '17%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'dealerProductEntity.origCode', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '采购数量', dataIndex: 'qty', width: '6%', align: 'center', scopedSlots: { customRender: 'origqty' } },
-        { title: '本次发货数量', dataIndex: 'shippedQty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '单位', dataIndex: 'dealerProductEntity.unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
-        // { title: '本次发货金额', dataIndex: 'discountedAmount', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '本次入库数量', dataIndex: 'putQty', width: '9%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '仓库仓位', scopedSlots: { customRender: 'warehousePosition' }, width: '13%', align: 'center' }
+        { title: '本次发货数量', dataIndex: 'putQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '本次入库数量', scopedSlots: { customRender: 'warehouseNum' }, width: '8%', align: 'center' },
+        { title: '仓库仓位', scopedSlots: { customRender: 'warehousePosition' }, width: '14%', align: 'center' }
       ]
       if (this.$hasPermissions('M_ShowAllCost')) {
         arr.splice(4, 0, { title: '采购单价', dataIndex: 'discountedPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
-        arr.splice(8, 0, { title: '本次发货金额', dataIndex: 'discountedAmount', width: '9%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
+        arr.splice(8, 0, { title: '本次发货金额', dataIndex: 'discountedAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
+        arr.splice(10, 0, { title: '本次入库金额', dataIndex: 'realPutAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
       }
       return arr
     }
@@ -256,6 +273,23 @@ export default {
         }
       })
     },
+    // 修改入库数量
+    changePutQty(record, bindex){
+      if(record.realPutQty == record.shippedQty){
+        return
+      }
+      this.spinning = true
+      updateRealPutQty({id:record.id,realPutQty:record.realPutQty}).then(res => {
+        if(res.status == 200){
+          this.$message.success(res.message)
+          this.getDetail()
+          this.$refs['table-' + bindex][0].refresh()
+        }else{
+          record.realPutQty = record.shippedQty
+        }
+        this.spinning = false
+      })
+    },
     // 修改仓库仓位
     changeWarehouseCascade (val, opt, ind, bindex) {
       let loadData = this.chooseLoadData[bindex][ind]
@@ -319,7 +353,7 @@ export default {
 }
 </script>
 
-<style lang="less">
+<style lang="less" scoped>
   .purchaseOrderWarehousing-wrap{
     position: relative;
     height: 100%;
@@ -339,5 +373,8 @@ export default {
     .purchaseOrderWarehousing-cont{
       margin-top: 10px;
     }
+    /deep/.ant-input-number-input{
+      text-align: center !important;
+    }
   }
 </style>

+ 6 - 5
src/views/purchasingManagement/signWarehousing/list.vue

@@ -141,12 +141,12 @@ export default {
     columns () {
       const _this = this
       const arr = [
-        { title: '采购单号', scopedSlots: { customRender: 'purchaseBillNo' }, width: '18%', align: 'center' },
-        { title: '发货单号', scopedSlots: { customRender: 'sendBillNo' }, width: '18%', align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '采购单号', scopedSlots: { customRender: 'purchaseBillNo' }, width: '14%', align: 'center' },
+        { title: '发货单号', scopedSlots: { customRender: 'sendBillNo' }, width: '14%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '发货数量', dataIndex: 'totalPutQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        // { title: '发货金额', dataIndex: 'totalPutAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库时间', dataIndex: 'stockPutTime', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库数量', dataIndex: 'totalRealPutQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库时间', dataIndex: 'stockPutTime', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '业务状态', dataIndex: 'auditStateDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '入库', scopedSlots: { customRender: 'waitIn' }, width: '3%', align: 'center' },
         { title: '审核', scopedSlots: { customRender: 'audit' }, width: '3%', align: 'center' },
@@ -154,6 +154,7 @@ export default {
       ]
       if (this.$hasPermissions('M_ShowAllCost')) {
         arr.splice(4, 0, { title: '发货金额', dataIndex: 'totalPutAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
+        arr.splice(6, 0, { title: '入库金额', dataIndex: 'totalRealPutAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
       }
       return arr
     }

+ 11 - 9
src/views/purchasingManagement/signWarehousing/stockOrderDetail.vue

@@ -51,7 +51,11 @@
           <div slot="message">
             产品款数:<strong>{{ detail && (detail.totalPutCategory || detail.totalPutCategory==0) ? detail.totalPutCategory : '--' }}</strong>,
             本次发货数量合计:<strong>{{ detail && (detail.totalPutQty || detail.totalPutQty==0) ? detail.totalPutQty : '--' }}</strong>,
-            <div style="display: inline-block;" v-if="$hasPermissions('M_ShowAllCost')">本次发货金额合计:<strong>{{ detail && (detail.totalPutAmount || detail.totalPutAmount==0) ? toThousands(detail.totalPutAmount, 2) : '--' }}</strong></div>
+            <div style="display: inline-block;" v-if="$hasPermissions('M_ShowAllCost')">本次发货金额合计:<strong>{{ detail && (detail.totalPutAmount || detail.totalPutAmount==0) ? toThousands(detail.totalPutAmount, 2) : '--' }}</strong>,</div>
+            本次入库数量合计:<strong>{{ detail && (detail.totalRealPutQty || detail.totalRealPutQty==0) ? detail.totalRealPutQty : '--' }}</strong>
+            <div style="display: inline-block;" v-if="$hasPermissions('M_ShowAllCost')">,
+            本次入库金额合计:<strong>{{ detail && (detail.totalRealPutAmount || detail.totalRealPutAmount==0) ? toThousands(detail.totalRealPutAmount, 2) : '--' }}</strong>
+            </div>
           </div>
         </a-alert>
         <!-- 列表 -->
@@ -106,7 +110,6 @@ export default {
           const no = (data.pageNo - 1) * data.pageSize
           for (var i = 0; i < data.list.length; i++) {
             data.list[i].no = no + i + 1
-            data.list[i].receivingQty = data.list[i].putQty
           }
           this.localDataSource = data.list
           this.disabled = false
@@ -123,19 +126,18 @@ export default {
       const _this = this
       const arr = [
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
-        { title: '产品编码', dataIndex: 'dealerProductEntity.code', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'dealerProductEntity.name', width: '17%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'dealerProductEntity.origCode', width: '16%', align: 'center', customRender: function (text) { return text || '--' } },
-        // { title: '采购单价', dataIndex: 'discountedPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '产品编码', dataIndex: 'dealerProductEntity.code', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'dealerProductEntity.name', width: '14%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'dealerProductEntity.origCode', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '采购数量', width: '6%', align: 'center', scopedSlots: { customRender: 'qty' } },
-        { title: '本次发货数量', dataIndex: 'receivingQty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '单位', dataIndex: 'dealerProductEntity.unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
-        // { title: '本次发货金额', dataIndex: 'discountedAmount', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '本次入库数量', dataIndex: 'putQty', width: '9%', align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '本次发货数量', dataIndex: 'putQty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '本次入库数量', dataIndex: 'realPutQty', width: '9%', align: 'center', customRender: function (text) { return text || '--' } },
       ]
       if (this.$hasPermissions('M_ShowAllCost')) {
         arr.splice(4, 0, { title: '采购单价', dataIndex: 'discountedPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
         arr.splice(8, 0, { title: '本次发货金额', dataIndex: 'discountedAmount', width: '9%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
+        arr.splice(10, 0, { title: '本次入库金额', dataIndex: 'realPutAmount', width: '9%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } })
       }
       return arr
     }

+ 7 - 9
vue.config.js

@@ -30,17 +30,15 @@ function isProd () {
 // 例如:https://www.foobar.com/my-app/
 // 需要将它改为'/my-app/'
 const BASE_URL = isProd ? '/' : '/'
-
 const assetsCDN = {
   css: [],
   // https://unpkg.com/browse/vue@2.6.10/
   js: [
-    '//vuepkg.oss-cn-beijing.aliyuncs.com/vue.min.js',
-    '//vuepkg.oss-cn-beijing.aliyuncs.com/vue-router.min.js',
-    '//vuepkg.oss-cn-beijing.aliyuncs.com/vuex.min.js',
-    '//vuepkg.oss-cn-beijing.aliyuncs.com/axios.min.js',
-    // '//vuepkg.oss-cn-beijing.aliyuncs.com/lodash.min.js',
-    '//vuepkg.oss-cn-beijing.aliyuncs.com/echarts.min.js'
+    BASE_URL + 'js/vue.min.js',
+    BASE_URL + 'js/vue-router.min.js',
+    BASE_URL + 'js/vuex.min.js',
+    BASE_URL + 'js/axios.min.js',
+    BASE_URL + 'js/echarts.min.js'
   ]
 }
 
@@ -211,8 +209,8 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        target: 'http://192.168.2.111/qpls-md',
-        // target: 'http://p.iscm.360arrow.com/qpls-md',
+        // target: 'http://192.168.2.111/qpls-md',
+        target: 'https://p.iscm.360arrow.com/qpls-md',
         // ws: false,
         ws: true,
         changeOrigin: true,

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików