Просмотр исходного кода

feat(accountstatement): 更新对账单模块功能

liujt 7 месяцев назад
Родитель
Сommit
3829ca22f8

+ 33 - 0
src/api/saleManage/accountstatement.js

@@ -103,6 +103,17 @@ export async function saveAccountStatementAPI(data) {
   return Promise.reject(new Error(res.data.message));
 }
 
+/**
+ * 对账单 保存 新
+ */
+export async function createAccountStatementAPI(data) {
+  const res = await request.post(`/eom/accountstatement/create`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
 /**
  * 对账单 修改
  */
@@ -114,6 +125,17 @@ export async function updateAccountStatementAPI(data) {
   return Promise.reject(new Error(res.data.message));
 }
 
+/**
+ * 对账单 修改 新
+ */
+export async function accountstatementUpdateAPI(data) {
+  const res = await request.put(`/eom/accountstatement/v2/update`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
 /**
  * 对账单 信息详情
  */
@@ -125,6 +147,17 @@ export async function infoAccountStatementAPI(id) {
   return Promise.reject(new Error(res.data.message));
 }
 
+/**
+ * 对账单 信息详情 新
+ */
+export async function accountstatementInfoAPI(id) {
+  const res = await request.get(`/eom/accountstatement/v2/getById/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
 /**
  * 对账单 提交发起流程
  */

+ 42 - 42
src/views/purchasingManage/purchaseOrder/accountstatement/components/addAccountDialog.vue

@@ -23,35 +23,28 @@
     <headerTitle title="对账明细" style="margin-top: 30px">
       <template v-slot>
         <el-row style="font-weight: 700; color: red">
+          <span>总金额:</span>
+          <span>{{ dataForm.amountTotalPrice || 0 }}</span>
           <el-divider direction="vertical"></el-divider>
-            <span>总金额:</span>
-            <span>{{ dataForm.amountTotalPrice || 0 }}</span>
-            <el-divider direction="vertical"></el-divider>
-            <span>应收金额:</span>
-            <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
-            <el-divider direction="vertical"></el-divider>
-            <span>已收金额:</span>
-            <span>{{ dataForm.amountReceivablePass||0 }}</span>
-            <el-divider direction="vertical"></el-divider>
-            <span>应付金额:</span>
-            <span>{{ dataForm.amountPayablePrice || 0 }}</span>
-      
-            <el-divider direction="vertical"></el-divider>
-            <span>已付金额:</span>
-            <span>{{ dataForm.amountPayablePass||0 }}</span>
+          <span>已对账金额:</span>
+          <span>{{ dataForm.amountCompletePrice || 0 }}</span>
+          <el-divider direction="vertical"></el-divider>
+          <span>未对账金额:</span>
+          <span>{{ dataForm.amountUnCompletePrice || 0 }}</span>
         </el-row>
       </template>
     </headerTitle>
-    <recorpayTableList
+    <!-- <recorpayTableList
       ref="recorpayListRef"
       :dataForm="dataForm"
       :recorpayList.sync="recorpayList"
       :dialogType="dialogType"
-    ></recorpayTableList>
+    ></recorpayTableList> -->
     <inventoryTable
       ref="inventoryTableref"
       :datasource.sync="datasource"
       :dialogType="dialogType"
+      type="purchase"
     ></inventoryTable>
     <div slot="footer" class="footer">
       <el-button
@@ -80,15 +73,15 @@
 </template>
 
 <script>
-  import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
-
-  import InventoryTable from './inventoryTable.vue';
+  // import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
+  // import InventoryTable from './inventoryTable.vue';
+  import InventoryTable from '@/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue';
   import purchaseForm from './purchaseForm.vue';
   import {
-    getSearchMergeListByTypeAPI,
-    infoAccountStatementAPI,
-    saveAccountStatementAPI,
-    updateAccountStatementAPI
+    getStatementRecordListAPI,
+    createAccountStatementAPI,
+    accountstatementInfoAPI,
+    accountstatementUpdateAPI
   } from '@/api/saleManage/accountstatement';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
 
@@ -99,7 +92,7 @@
       processSubmitDialog,
       InventoryTable,
       purchaseForm,
-      recorpayTableList
+      // recorpayTableList
     },
     data() {
       return {
@@ -124,7 +117,8 @@
           id: '',
           startDate: '',
           endDate: '',
-          repliedFiles: []
+          repliedFiles: [],
+          queryDimension: 3,
         },
         title: '',
         processSubmitDialogFlag: false,
@@ -148,8 +142,11 @@
       },
       //获取对账单详情
       async getInfo(row) {
-        let data = await infoAccountStatementAPI(row.id);
-        this.recorpayList = data.recorpayList || [];
+        let data = await accountstatementInfoAPI(row.id);
+        // this.recorpayList = data.recorpayList || [];
+        data.amountTotalPrice = data.orderList.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0),
+        data.amountCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.statementAmount, 0),
+        data.amountUnCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.unStatementAmount, 0)
         this.datasource = data.orderList || [];
         this.dataForm = data;
         switch (this.dataForm.dateType) {
@@ -188,18 +185,22 @@
           sourceId: params.sourceId,
           sourceType: params.sourceType,
           startDate: params.startDate,
+          queryDimension: params.queryDimension,
           type: 2
         };
-        let data = await getSearchMergeListByTypeAPI(searchQuery);
-        this.recorpayList = data.recorpayList || [];
-        this.datasource = data.orderList || [];
+        let data = await getStatementRecordListAPI(searchQuery);
+        // this.recorpayList = data.recorpayList || [];
+        this.datasource = data || [];
         this.dataForm = {
           ...this.dataForm,
-          amountPayablePrice: data.amountPayablePrice,
-          amountReceivablePrice: data.amountReceivablePrice,
-          amountTotalPrice: data.amountTotalPrice,
-          amountPayablePass: data.amountPayablePass,
-          amountReceivablePass: data.amountReceivablePass
+          // amountPayablePrice: data.amountPayablePrice,
+          // amountReceivablePrice: data.amountReceivablePrice,
+          // amountTotalPrice: data.amountTotalPrice,
+          // amountPayablePass: data.amountPayablePass,
+          // amountReceivablePass: data.amountReceivablePass
+          amountTotalPrice: data.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0),
+          amountCompletePrice: data.reduce((pre, cur) => pre + +cur.statementAmount, 0),
+          amountUnCompletePrice: data.reduce((pre, cur) => pre + +cur.unStatementAmount, 0)
         };
         // if (!this.datasource.length) this.$message.warning('暂无订单信息');
       },
@@ -210,8 +211,8 @@
 
         let api =
           this.dialogType == 'add'
-            ? saveAccountStatementAPI
-            : updateAccountStatementAPI;
+            ? createAccountStatementAPI
+            : accountstatementUpdateAPI;
         let params = {
           ...this.dataForm,
           orderList: this.datasource,
@@ -228,12 +229,11 @@
           //   }
           // )
         }
-        this.cancel();
-        //刷新主页面
-        this.$emit('done');
+        this.$message.success('操作成功');
+        this.reload();
       },
       async submit(res) {
-        let data = await infoAccountStatementAPI(res);
+        let data = await accountstatementInfoAPI(res);
         this.processSubmitDialogFlag = true;
         this.$nextTick(() => {
           let params = {

+ 18 - 11
src/views/purchasingManage/purchaseOrder/accountstatement/components/addAccountDialogNew.vue → src/views/purchasingManage/purchaseOrder/accountstatement/components/addAccountDialogOld.vue

@@ -23,23 +23,31 @@
     <headerTitle title="对账明细" style="margin-top: 30px">
       <template v-slot>
         <el-row style="font-weight: 700; color: red">
-          <span>总金额:</span>
-          <span>{{ dataForm.amountTotalPrice || 0 }}</span>
           <el-divider direction="vertical"></el-divider>
-          <span>已对账金额:</span>
-          <span>{{ dataForm.amountCompletePrice || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>未对账金额:</span>
-          <span>{{ dataForm.amountUnCompletePrice || 0 }}</span>
+            <span>总金额:</span>
+            <span>{{ dataForm.amountTotalPrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>应收金额:</span>
+            <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>已收金额:</span>
+            <span>{{ dataForm.amountReceivablePass||0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>应付金额:</span>
+            <span>{{ dataForm.amountPayablePrice || 0 }}</span>
+      
+            <el-divider direction="vertical"></el-divider>
+            <span>已付金额:</span>
+            <span>{{ dataForm.amountPayablePass||0 }}</span>
         </el-row>
       </template>
     </headerTitle>
-    <!-- <recorpayTableList
+    <recorpayTableList
       ref="recorpayListRef"
       :dataForm="dataForm"
       :recorpayList.sync="recorpayList"
       :dialogType="dialogType"
-    ></recorpayTableList> -->
+    ></recorpayTableList>
     <inventoryTable
       ref="inventoryTableref"
       :datasource.sync="datasource"
@@ -74,8 +82,7 @@
 <script>
   import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
 
-  // import InventoryTable from './inventoryTable.vue';
-  import InventoryTable from '@/views/saleManage/saleOrder/accountstatement/components/inventoryTableNew.vue';
+  import InventoryTable from './inventoryTable.vue';
   import purchaseForm from './purchaseForm.vue';
   import {
     getSearchMergeListByTypeAPI,

+ 17 - 20
src/views/purchasingManage/purchaseOrder/accountstatement/components/detailDialog.vue

@@ -37,36 +37,29 @@
       <headerTitle title="对账明细" style="margin-top: 30px">
         <template v-slot>
           <el-row style="font-weight: 700; color: red">
-            <el-divider direction="vertical"></el-divider>
             <span>总金额:</span>
             <span>{{ dataForm.amountTotalPrice || 0 }}</span>
             <el-divider direction="vertical"></el-divider>
-            <span>应收金额:</span>
-            <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
-            <el-divider direction="vertical"></el-divider>
-            <span>已收金额:</span>
-            <span>{{ dataForm.amountReceivablePass||0 }}</span>
-            <el-divider direction="vertical"></el-divider>
-            <span>应付金额:</span>
-            <span>{{ dataForm.amountPayablePrice || 0 }}</span>
-      
+            <span>已对账金额:</span>
+            <span>{{ dataForm.amountCompletePrice || 0 }}</span>
             <el-divider direction="vertical"></el-divider>
-            <span>已付金额:</span>
-            <span>{{ dataForm.amountPayablePass||0 }}</span>
+            <span>未对账金额:</span>
+            <span>{{ dataForm.amountUnCompletePrice || 0 }}</span>
           </el-row>
         </template>
       </headerTitle>
-      <recorpayTableList
+      <!-- <recorpayTableList
         ref="recorpayListRef"
         :dataForm="dataForm"
         :recorpayList.sync="recorpayList"
         dialogType="view"
-      ></recorpayTableList>
+      ></recorpayTableList> -->
       <inventoryTable
         ref="inventoryTableref"
         :dataForm="dataForm"
         :datasource.sync="datasource"
         dialogType="view"
+        type="purchase"
       ></inventoryTable>
     </div>
 
@@ -83,18 +76,19 @@
 
 <script>
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
-  import InventoryTable from './inventoryTable.vue';
-  import { infoAccountStatementAPI } from '@/api/saleManage/accountstatement';
+  // import InventoryTable from './inventoryTable.vue';
+  import { accountstatementInfoAPI } from '@/api/saleManage/accountstatement';
   import purchaseForm from './purchaseForm.vue';
-  import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
+  import InventoryTable from '@/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue';
+  // import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
 
   export default {
     props: ['detailDialogFlag'],
     components: {
       purchaseForm,
       InventoryTable,
-      bpmDetail
-      ,recorpayTableList
+      bpmDetail,
+      // recorpayTableList
     },
     data() {
       return {
@@ -117,7 +111,10 @@
         this.form = row;
         this.dialogType = dialogType;
         this.dataForm.type = type;
-        let data = await infoAccountStatementAPI(row.id);
+        let data = await accountstatementInfoAPI(row.id);
+        data.amountTotalPrice = data.orderList.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0),
+        data.amountCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.statementAmount, 0),
+        data.amountUnCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.unStatementAmount, 0)
         this.datasource = data.orderList||[];
         this.recorpayList = data.recorpayList || [];
         this.dataForm = data;

+ 48 - 10
src/views/purchasingManage/purchaseOrder/accountstatement/components/purchaseForm.vue

@@ -8,7 +8,7 @@
   >
     <headerTitle title="对账单信息"></headerTitle>
     <el-row>
-      <el-col :span="12" class="el-col-form">
+      <el-col :span="8" class="el-col-form">
         <el-form-item label="来源类型" prop="sourceType">
           <el-select
             :disabled="dialogType == 'view'"
@@ -26,7 +26,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="12">
+      <el-col :span="8">
         <el-form-item
           label="选择供应商"
           prop="contactId"
@@ -64,9 +64,24 @@
           ></el-input>
         </el-form-item>
       </el-col>
+      <el-col :span="8">
+        <el-form-item label="查询维度" prop="queryDimension">
+          <el-select
+            disabled
+            clearable
+            class="ele-block"
+            v-model="dataForm.queryDimension"
+            placeholder="请选择"
+          >
+            <el-option label="按发货单" :value="1" />
+            <el-option label="按调拨单" :value="2" />
+            <el-option label="按收货单" :value="3" />
+          </el-select>
+        </el-form-item>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="12">
+      <el-col :span="8">
         <el-form-item label="查询方式" prop="dateType">
           <el-select
             :disabled="dialogType == 'view'"
@@ -83,7 +98,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="12" v-if="![2].includes(dataForm.dateType)">
+      <el-col :span="8" v-if="![2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -134,7 +149,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -152,7 +167,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择季度"
           prop="quarter"
@@ -173,19 +188,31 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="12" v-if="dialogType == 'view'">
+    </el-row>
+    <el-row>
+      <el-col :span="8">
+        <el-form-item prop="accountStatementPrice" label="对账金额">
+          <el-input disabled v-model="accountStatementPrice"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col :span="8">
+        <el-form-item prop="relatedOrderNumber" label="关联订单编码">
+          <el-input disabled v-model="relatedOrderNumber"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col :span="8" v-if="dialogType == 'view'">
         <el-form-item prop="createUserName" label="对账人">
           <el-input disabled v-model="dataForm.createUserName"></el-input>
         </el-form-item>
       </el-col>
-      <el-col :span="12" v-if="dialogType == 'view'">
+      <el-col :span="8" v-if="dialogType == 'view'">
         <el-form-item prop="createTime" label="对账时间">
           <el-input disabled v-model="dataForm.createTime"></el-input>
         </el-form-item>
       </el-col>
     </el-row>
     <el-row v-if="dialogType == 'view'">
-      <el-col :span="12">
+      <el-col :span="8">
         <el-form-item prop="repliedFiles" label="回执附件">
           <fileMain v-model="dataForm.repliedFiles" type="view"></fileMain>
         </el-form-item>
@@ -235,6 +262,16 @@
       contractListDialog
     },
     props: ['dataForm', 'datasource', 'dialogType','recorpayList'],
+    computed: {
+      //计算未对账金额
+      accountStatementPrice() {
+        return this.datasource.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0);
+      },
+      //计算相关订单号
+      relatedOrderNumber() {
+        return this.datasource.map((item) => item.orderNo).join(',');
+      }
+    },
     data() {
       return {
         monthByDays: {},
@@ -260,7 +297,8 @@
             message: '请选择',
             trigger: 'change'
           },
-          contractId: { required: true, message: '请选择', trigger: 'change' }
+          contractId: { required: true, message: '请选择', trigger: 'change' },
+          queryDimension: { required: true, message: '请选择', trigger: 'change' },
         }
       };
     },

+ 10 - 47
src/views/purchasingManage/purchaseOrder/accountstatement/components/purchaseFormNew.vue → src/views/purchasingManage/purchaseOrder/accountstatement/components/purchaseFormOld.vue

@@ -8,7 +8,7 @@
   >
     <headerTitle title="对账单信息"></headerTitle>
     <el-row>
-      <el-col :span="8" class="el-col-form">
+      <el-col :span="12" class="el-col-form">
         <el-form-item label="来源类型" prop="sourceType">
           <el-select
             :disabled="dialogType == 'view'"
@@ -26,7 +26,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="8">
+      <el-col :span="12">
         <el-form-item
           label="选择供应商"
           prop="contactId"
@@ -64,23 +64,9 @@
           ></el-input>
         </el-form-item>
       </el-col>
-      <el-col :span="8">
-        <el-form-item label="查询维度" prop="queryDimension">
-          <el-select
-            :disabled="dialogType == 'view'"
-            clearable
-            class="ele-block"
-            v-model="dataForm.queryDimension"
-            placeholder="请选择"
-          >
-            <el-option label="按发货单" :value="1" />
-            <el-option label="按调拨单" :value="2" />
-          </el-select>
-        </el-form-item>
-      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="8">
+      <el-col :span="12">
         <el-form-item label="查询方式" prop="dateType">
           <el-select
             :disabled="dialogType == 'view'"
@@ -97,7 +83,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="8" v-if="![2].includes(dataForm.dateType)">
+      <el-col :span="12" v-if="![2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -148,7 +134,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -166,7 +152,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择季度"
           prop="quarter"
@@ -187,31 +173,19 @@
           </el-select>
         </el-form-item>
       </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="8">
-        <el-form-item prop="accountStatementPrice" label="对账金额">
-          <el-input disabled v-model="accountStatementPrice"></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col :span="8">
-        <el-form-item prop="relatedOrderNumber" label="关联订单编码">
-          <el-input disabled v-model="relatedOrderNumber"></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col :span="8" v-if="dialogType == 'view'">
+      <el-col :span="12" v-if="dialogType == 'view'">
         <el-form-item prop="createUserName" label="对账人">
           <el-input disabled v-model="dataForm.createUserName"></el-input>
         </el-form-item>
       </el-col>
-      <el-col :span="8" v-if="dialogType == 'view'">
+      <el-col :span="12" v-if="dialogType == 'view'">
         <el-form-item prop="createTime" label="对账时间">
           <el-input disabled v-model="dataForm.createTime"></el-input>
         </el-form-item>
       </el-col>
     </el-row>
     <el-row v-if="dialogType == 'view'">
-      <el-col :span="8">
+      <el-col :span="12">
         <el-form-item prop="repliedFiles" label="回执附件">
           <fileMain v-model="dataForm.repliedFiles" type="view"></fileMain>
         </el-form-item>
@@ -261,16 +235,6 @@
       contractListDialog
     },
     props: ['dataForm', 'datasource', 'dialogType','recorpayList'],
-    computed: {
-      //计算未对账金额
-      accountStatementPrice() {
-        return this.datasource.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0);
-      },
-      //计算相关订单号
-      relatedOrderNumber() {
-        return this.datasource.map((item) => item.orderNo).join(',');
-      }
-    },
     data() {
       return {
         monthByDays: {},
@@ -296,8 +260,7 @@
             message: '请选择',
             trigger: 'change'
           },
-          contractId: { required: true, message: '请选择', trigger: 'change' },
-          queryDimension: { required: true, message: '请选择', trigger: 'change' },
+          contractId: { required: true, message: '请选择', trigger: 'change' }
         }
       };
     },

+ 100 - 79
src/views/saleManage/saleOrder/accountstatement/components/addAccountDialog.vue

@@ -11,50 +11,45 @@
     width="85%"
     :before-close="cancel"
   >
-    <!--销售表单-->
-    <sale-form
-      @handleSearch="handleSearch"
-      :dataForm.sync="dataForm"
-      :datasource.sync="datasource"
-      :contactData="contactData"
-      :saleOrderData="saleOrderData"
-      :recorpayList.sync="recorpayList"
-      :dialogType="dialogType"
-      ref="saleFormRef"
-    ></sale-form>
-    <headerTitle title="对账明细" style="margin-top: 30px">
-      <template v-slot>
-        <el-row style="font-weight: 700; color: red">
-          <span>总金额:</span>
-          <span>{{ dataForm.amountTotalPrice || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>应收金额:</span>
-          <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>已收金额:</span>
-          <span>{{ dataForm.amountReceivablePass || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>应付金额:</span>
-          <span>{{ dataForm.amountPayablePrice || 0 }}</span>
-
-          <el-divider direction="vertical"></el-divider>
-          <span>已付金额:</span>
-          <span>{{ dataForm.amountPayablePass || 0 }}</span>
-        </el-row>
-      </template>
-    </headerTitle>
-    <recorpayTableList
-      ref="recorpayListRef"
-      :dataForm="dataForm"
-      :recorpayList.sync="recorpayList"
-      :dialogType="dialogType"
-    ></recorpayTableList>
-    <inventoryTable
-      ref="inventoryTableref"
-      :dataForm="dataForm"
-      :datasource.sync="datasource"
-      :dialogType="dialogType"
-    ></inventoryTable>
+    <div v-loading="loading">
+      <!--销售表单-->
+      <sale-form
+        @handleSearch="handleSearch"
+        :dataForm.sync="dataForm"
+        :datasource.sync="datasource"
+        :contactData="contactData"
+        :saleOrderData="saleOrderData"
+        :recorpayList.sync="recorpayList"
+        :dialogType="dialogType"
+        ref="saleFormRef"
+      ></sale-form>
+      <headerTitle title="对账明细" style="margin-top: 30px">
+        <template v-slot>
+          <el-row style="font-weight: 700; color: red">
+            <span>总金额:</span>
+            <span>{{ dataForm.amountTotalPrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>已对账金额:</span>
+            <span>{{ dataForm.amountCompletePrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>未对账金额:</span>
+            <span>{{ dataForm.amountUnCompletePrice || 0 }}</span>
+          </el-row>
+        </template>
+      </headerTitle>
+      <!-- <recorpayTableList
+        ref="recorpayListRef"
+        :dataForm="dataForm"
+        :recorpayList.sync="recorpayList"
+        :dialogType="dialogType"
+      ></recorpayTableList> -->
+      <inventoryTable
+        ref="inventoryTableref"
+        :dataForm="dataForm"
+        :datasource.sync="datasource"
+        :dialogType="dialogType"
+      ></inventoryTable>
+    </div>
     <div slot="footer" class="footer">
       <el-button
         v-if="dialogType !== 'view'"
@@ -82,15 +77,18 @@
 </template>
 
 <script>
-  import InventoryTable from '@/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue';
-  import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
+  import InventoryTable from './inventoryTable.vue';
+  import recorpayTableList from './recorpayTableList.vue';
 
-  import saleForm from '@/views/saleManage/saleOrder/accountstatement/components/saleForm.vue';
+  import saleForm from './saleForm.vue';
   import {
-    getSearchMergeListByTypeAPI,
+    getStatementRecordListAPI,
     infoAccountStatementAPI,
     saveAccountStatementAPI,
-    updateAccountStatementAPI
+    createAccountStatementAPI,
+    updateAccountStatementAPI,
+    accountstatementInfoAPI,
+    accountstatementUpdateAPI
   } from '@/api/saleManage/accountstatement';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
 
@@ -124,11 +122,14 @@
     data() {
       return {
         fullscreen: false,
+        loading: false,
+        saveLoading: false,
         datasource: [],
         recorpayList: [],
         dataForm: {
           sourceType: 1,
           dateType: 1,
+          queryDimension: 1,
           dateValue: '',
           contactId: '',
           contactName: '',
@@ -176,8 +177,11 @@
       },
       //获取对账单详情
       async getInfo(row) {
-        let data = await infoAccountStatementAPI(row.id);
-        this.recorpayList = data.recorpayList || [];
+        let data = await accountstatementInfoAPI(row.id);
+        // this.recorpayList = data.recorpayList || [];
+        data.amountTotalPrice = data.orderList.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0),
+        data.amountCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.statementAmount, 0),
+        data.amountUnCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.unStatementAmount, 0)
         this.datasource = data.orderList || [];
         this.dataForm = data;
         switch (this.dataForm.dateType) {
@@ -216,51 +220,68 @@
           sourceId: params.sourceId,
           sourceType: params.sourceType,
           startDate: params.startDate,
+          queryDimension: params.queryDimension,
           type: 1
         };
-        let data = await getSearchMergeListByTypeAPI(searchQuery);
-        console.log(data, 'data');
 
-        this.datasource = data.orderList || [];
-        this.recorpayList = data.recorpayList || [];
-        this.dataForm = {
-          ...this.dataForm,
-          amountPayablePrice: data.amountPayablePrice,
-          amountReceivablePrice: data.amountReceivablePrice,
-          amountTotalPrice: data.amountTotalPrice,
-          amountPayablePass: data.amountPayablePass,
-          amountReceivablePass: data.amountReceivablePass
-        };
-        this.$forceUpdate();
+        // const searchQuery = ["SALES20251225007","SALES20251225005","SALES20251225009"];
+        this.loading = true;
+        try {
+          let data = await getStatementRecordListAPI(searchQuery);
+          console.log(data, 'data');
+          this.loading = false;
+          this.datasource = data || [];
+          // this.recorpayList = data.recorpayList || [];
+          this.dataForm = {
+            ...this.dataForm,
+            // amountPayablePrice: data.amountPayablePrice,
+            // amountReceivablePrice: data.amountReceivablePrice,
+            // amountTotalPrice: data.amountTotalPrice,
+            // amountPayablePass: data.amountPayablePass,
+            // amountReceivablePass: data.amountReceivablePass
+            amountTotalPrice: data.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0),
+            amountCompletePrice: data.reduce((pre, cur) => pre + +cur.statementAmount, 0),
+            amountUnCompletePrice: data.reduce((pre, cur) => pre + +cur.unStatementAmount, 0)
+          };
+          this.$forceUpdate();
+        } catch (error) {
+          this.loading = false;
+        }
         // if (!this.datasource.length) this.$message.warning('暂无订单信息');
       },
       //保存
       async save(is) {
-        if (!this.datasource.length&&!this.recorpayList.length)
+        if (!this.datasource.length)
           return this.$message.warning('暂无对账信息');
         let api =
           this.dialogType == 'add'
-            ? saveAccountStatementAPI
-            : updateAccountStatementAPI;
+            ? createAccountStatementAPI
+            : accountstatementUpdateAPI;
         let params = {
           ...this.dataForm,
           orderList: this.datasource,
-          recorpayList: this.recorpayList
+          // recorpayList: this.recorpayList
         };
-        let data = await api(params);
-        if (is == 'sub') {
-          await this.submitApprove(data);
-          return;
-          // await submitAccountStatementApproveAPI({
-          //   businessId: data,
-          //   type: this.dataForm.type
-          // });
+        this.saveLoading = true;
+        try {
+          let data = await api(params);
+          if (is == 'sub') {
+            await this.submitApprove(data);
+            return;
+            // await submitAccountStatementApproveAPI({
+            //   businessId: data,
+            //   type: this.dataForm.type
+            // });
+          }
+          this.$message.success('操作成功');
+          this.reload();
+          this.saveLoading = false;
+        } catch (error) {
+          this.saveLoading = false;
         }
-        this.$message.success('操作成功');
-        this.reload();
       },
       async submitApprove(res) {
-        let data = await infoAccountStatementAPI(res);
+        let data = await accountstatementInfoAPI(res);
         this.processSubmitDialogFlag = true;
         this.$nextTick(() => {
           let params = {

+ 27 - 28
src/views/saleManage/saleOrder/accountstatement/components/addAccountDialogNew.vue → src/views/saleManage/saleOrder/accountstatement/components/addAccountDialogOld.vue

@@ -28,20 +28,27 @@
           <span>总金额:</span>
           <span>{{ dataForm.amountTotalPrice || 0 }}</span>
           <el-divider direction="vertical"></el-divider>
-          <span>已对账金额:</span>
-          <span>{{ dataForm.amountCompletePrice || 0 }}</span>
+          <span>应收金额:</span>
+          <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
           <el-divider direction="vertical"></el-divider>
-          <span>未对账金额:</span>
-          <span>{{ dataForm.amountUnCompletePrice || 0 }}</span>
+          <span>已收金额:</span>
+          <span>{{ dataForm.amountReceivablePass || 0 }}</span>
+          <el-divider direction="vertical"></el-divider>
+          <span>应付金额:</span>
+          <span>{{ dataForm.amountPayablePrice || 0 }}</span>
+
+          <el-divider direction="vertical"></el-divider>
+          <span>已付金额:</span>
+          <span>{{ dataForm.amountPayablePass || 0 }}</span>
         </el-row>
       </template>
     </headerTitle>
-    <!-- <recorpayTableList
+    <recorpayTableList
       ref="recorpayListRef"
       :dataForm="dataForm"
       :recorpayList.sync="recorpayList"
       :dialogType="dialogType"
-    ></recorpayTableList> -->
+    ></recorpayTableList>
     <inventoryTable
       ref="inventoryTableref"
       :dataForm="dataForm"
@@ -75,12 +82,12 @@
 </template>
 
 <script>
-  import InventoryTable from './inventoryTable.vue';
-  import recorpayTableList from './recorpayTableList.vue';
+  import InventoryTable from '@/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue';
+  import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
 
-  import saleForm from './saleForm.vue';
+  import saleForm from '@/views/saleManage/saleOrder/accountstatement/components/saleForm.vue';
   import {
-    getStatementRecordListAPI,
+    getSearchMergeListByTypeAPI,
     infoAccountStatementAPI,
     saveAccountStatementAPI,
     updateAccountStatementAPI
@@ -122,7 +129,6 @@
         dataForm: {
           sourceType: 1,
           dateType: 1,
-          queryDimension: 1,
           dateValue: '',
           contactId: '',
           contactName: '',
@@ -171,8 +177,8 @@
       //获取对账单详情
       async getInfo(row) {
         let data = await infoAccountStatementAPI(row.id);
-        // this.recorpayList = data.recorpayList || [];
-        this.datasource = data || [];
+        this.recorpayList = data.recorpayList || [];
+        this.datasource = data.orderList || [];
         this.dataForm = data;
         switch (this.dataForm.dateType) {
           case 1:
@@ -210,27 +216,20 @@
           sourceId: params.sourceId,
           sourceType: params.sourceType,
           startDate: params.startDate,
-          queryDimension: params.queryDimension,
           type: 1
         };
-
-        // const searchQuery = ["SALES20251225007","SALES20251225005","SALES20251225009"];
-
-        let data = await getStatementRecordListAPI(searchQuery);
+        let data = await getSearchMergeListByTypeAPI(searchQuery);
         console.log(data, 'data');
 
-        this.datasource = data || [];
-        // this.recorpayList = data.recorpayList || [];
+        this.datasource = data.orderList || [];
+        this.recorpayList = data.recorpayList || [];
         this.dataForm = {
           ...this.dataForm,
-          // amountPayablePrice: data.amountPayablePrice,
-          // amountReceivablePrice: data.amountReceivablePrice,
-          // amountTotalPrice: data.amountTotalPrice,
-          // amountPayablePass: data.amountPayablePass,
-          // amountReceivablePass: data.amountReceivablePass
-          amountTotalPrice: data.reduce((pre, cur) => pre + cur.amountTotalPrice, 0),
-          amountCompletePrice: data.reduce((pre, cur) => pre + cur.statementAmount, 0),
-          amountUnCompletePrice: data.reduce((pre, cur) => pre + cur.unStatementAmount, 0)
+          amountPayablePrice: data.amountPayablePrice,
+          amountReceivablePrice: data.amountReceivablePrice,
+          amountTotalPrice: data.amountTotalPrice,
+          amountPayablePass: data.amountPayablePass,
+          amountReceivablePass: data.amountReceivablePass
         };
         this.$forceUpdate();
         // if (!this.datasource.length) this.$message.warning('暂无订单信息');

+ 13 - 18
src/views/saleManage/saleOrder/accountstatement/components/detailDialog.vue

@@ -34,32 +34,24 @@
                  dialogType="view"></sale-form>
       <headerTitle title="对账明细" style="margin-top: 30px">
         <template v-slot>
-          <el-row style="font-weight: 700;color: red" >
+          <el-row style="font-weight: 700; color: red">
             <span>总金额:</span>
             <span>{{ dataForm.amountTotalPrice || 0 }}</span>
             <el-divider direction="vertical"></el-divider>
-            <span>应收金额:</span>
-            <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
+            <span>已对账金额:</span>
+            <span>{{ dataForm.amountCompletePrice || 0 }}</span>
             <el-divider direction="vertical"></el-divider>
-            <span>已收金额:</span>
-            <span>{{ dataForm.amountReceivablePass||0 }}</span>
-            <el-divider direction="vertical"></el-divider>
-            <span>应付金额:</span>
-            <span>{{ dataForm.amountPayablePrice || 0 }}</span>
-      
-            <el-divider direction="vertical"></el-divider>
-            <span>已付金额:</span>
-            <span>{{ dataForm.amountPayablePass||0 }}</span>
-
+            <span>未对账金额:</span>
+            <span>{{ dataForm.amountUnCompletePrice || 0 }}</span>
           </el-row>
         </template>
       </headerTitle>
-      <recorpayTableList
+      <!-- <recorpayTableList
         ref="recorpayListRef"
         :dataForm="dataForm"
         :recorpayList.sync="recorpayList"
         dialogType="view"
-      ></recorpayTableList>
+      ></recorpayTableList> -->
       <inventoryTable ref="inventoryTableref" :dataForm="dataForm" :datasource.sync="datasource" dialogType="view"></inventoryTable>
     </div>
     <bpmDetail v-if="activeComp==='bpm'&&form.processInstanceId" :id="form.processInstanceId"></bpmDetail>
@@ -75,7 +67,7 @@
 import bpmDetail from '@/views/bpm/processInstance/detail.vue';
 import InventoryTable from "@/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue";
 import saleForm from "@/views/saleManage/saleOrder/accountstatement/components/saleForm.vue";
-import {infoAccountStatementAPI} from "@/api/saleManage/accountstatement";
+import {accountstatementInfoAPI} from "@/api/saleManage/accountstatement";
 import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
 
 export default {
@@ -110,11 +102,14 @@ export default {
       this.form = row
       this.dialogType = dialogType
       this.dataForm.type = type
-      let data = await infoAccountStatementAPI(row.id)
+      let data = await accountstatementInfoAPI(row.id)
 
 
       this.datasource = data.orderList
-      this.recorpayList = data.recorpayList || [];
+      // this.recorpayList = data.recorpayList || [];
+      data.amountTotalPrice = data.orderList.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0),
+      data.amountCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.statementAmount, 0),
+      data.amountUnCompletePrice = data.orderList.reduce((pre, cur) => pre + +cur.unStatementAmount, 0)
       this.dataForm = data
       switch (this.dataForm.dateType) {
         case 1:

+ 222 - 82
src/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <div v-for="(item) in datasource" style="margin-bottom: 10px">
+    <!-- <div v-for="(item) in datasource" style="margin-bottom: 10px">
       <div>
         <div style="margin-bottom: 10px;font-weight: bold;">
           <div>
             <el-divider direction="vertical"></el-divider>
-            <span>销售订单:</span>
+            <span><span>{{ index + 1 }}</span> 销售订单:</span>
             <span>{{ item.orderNo }}</span>
-            <el-divider direction="vertical"></el-divider>
+            <el-divider direction="vertical"></el-divider> -->
             <!-- <span>计价方式:</span>
             <span> {{ item.pricingWay == 1 ? '按数量计费' : '按重量计费' }}</span> -->
             <!-- <el-divider direction="vertical"></el-divider> -->
-            <span>总金额:</span>
+            <!-- <span>总金额:</span>
             <span>{{item.amountTotalPrice}}</span>
             <el-divider direction="vertical"></el-divider>
             <span>应收金额:</span>
@@ -54,7 +54,7 @@
                   </el-link>
                 </template>
               </el-popconfirm>
-            </template>
+            </template> -->
             <!--            <template v-slot:productName="{ row,$index }">-->
             <!--              <el-popover-->
             <!--                placement="right"-->
@@ -70,10 +70,74 @@
             <!--                <el-button type="text" slot="reference">{{ row.productName }}</el-button>-->
             <!--              </el-popover>-->
             <!--            </template>-->
-          </ele-pro-table>
+          <!-- </ele-pro-table>
         </div>
       </div>
-    </div>
+    </div> -->
+
+    <el-collapse  v-model="activeNames">
+      <el-collapse-item v-for="(item, index) in datasource" :key="index" :name="index">
+        <template slot="title">
+          <div class="collapse-title">
+            <div class="collapse-title-left"><span class="collapse-title-index">{{ index + 1 }}</span> {{ type === 'purchase' ? '采购订单' : '销售订单' }}:{{ item.orderNo }}</div>
+            <div class="collapse-title-right">
+              <span>订单金额:{{ item.amountTotalPrice || 0 }}元</span>
+              <span>已对账金额:{{ item.statementAmount || 0 }}元</span>
+              <span>未对账金额:{{ item.unStatementAmount || 0 }}元</span>
+            </div>
+          </div>
+        </template>
+        <div>
+          <el-tabs type="border-card">
+            <el-tab-pane :label="type === 'purchase' ? '收货单' : '发货单'">
+              <ele-pro-table :show-summary="false" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"
+                          :columns="getColumns(item, 'deliveryProducts')" max-height="500px" style="margin-bottom: 10px" :datasource="item.deliveryProducts || []"
+                          cache-key="systemRoleTable17-11121" class="time-form">
+                <template v-slot:toolbar>
+                  <div class="headbox">
+                    <div>
+                      <span class="amount">对账金额合计:{{ getSummariesA(item.deliveryProducts || []) }}元</span>
+                    </div>
+                  </div>
+                </template>
+                <template v-slot:action="{ row,$index }">
+                  <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(index,$index,'line')">
+                    <template v-slot:reference>
+                      <el-link type="danger" v-if="dialogType!=='view'" :underline="false" icon="el-icon-delete">
+                        删除
+                      </el-link>
+                    </template>
+                  </el-popconfirm>
+                </template>
+              </ele-pro-table>
+            </el-tab-pane>
+            <el-tab-pane label="退货单">
+              <ele-pro-table :show-summary="false" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"
+                          :columns="getColumns(item, 'returnProducts')" max-height="500px" style="margin-bottom: 10px" :datasource="item.returnProducts || []"
+                          cache-key="systemRoleTable17-11122" class="time-form">
+                <template v-slot:toolbar>
+                  <div class="headbox">
+                    <div>
+                      <span class="amount">对账金额合计:{{ getSummariesA(item.returnProducts || []) }}元</span>
+                    </div>
+                  </div>
+                </template>
+                <template v-slot:action="{ row,$index }">
+                  <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(index,$index,'line')">
+                    <template v-slot:reference>
+                      <el-link type="danger" v-if="dialogType!=='view'" :underline="false" icon="el-icon-delete">
+                        删除
+                      </el-link>
+                    </template>
+                  </el-popconfirm>
+                </template>
+              </ele-pro-table>
+            </el-tab-pane>
+          </el-tabs>
+          
+        </div>
+      </el-collapse-item>
+    </el-collapse>
 
 <!--    <el-row v-if="dialogType=='view'" style="margin-top: 10px">-->
 <!--      <el-col :span="6" style="float: right;">-->
@@ -90,14 +154,15 @@
 </template>
 <script>
 import dictMixins from '@/mixins/dictMixins';
+import { pricingWayList } from '@/enum/dict';
 
 export default {
   mixins: [dictMixins],
   components: {},
-  props: ['datasource', 'dialogType', 'dataForm'],
+  props: ['datasource', 'dialogType', 'dataForm', 'type'],
   computed: {
     getColumns() {
-      return (j)=>{
+      return (item, type)=>{
         let basicFields = [
           {
             width: 60,
@@ -107,10 +172,18 @@ export default {
             align: 'center',
             fixed: 'left'
           },
+          {
+            minWidth: 130,
+            prop: 'statementSubOrderNo',
+            label: type == 'deliveryProducts'? this.type === 'purchase'?'收货单编码':'发货单编码':'退货单编码',
+            align: 'center',
+            slot: 'statementSubOrderNo',
+            showOverflowTooltip: true
+          },
           {
             minWidth: 130,
             prop: 'productOperateTime',
-            label: this.subColumnsTypeList[j.subType],
+            label: type == 'deliveryProducts'? this.type === 'purchase'?'收货日期':'发货日期':'退货日期',
             align: 'center',
             slot: 'productOperateTime',
             showOverflowTooltip: true
@@ -131,17 +204,17 @@ export default {
             align: 'center',
             showOverflowTooltip: true
           },
-          {
-            minWidth: 140,
-            prop: 'subType',
-            label: '退货产品类型',
-            slot: 'subType',
-            align: 'center',
-            show:j.subType==11,
-            showOverflowTooltip: true,formatter(_row, _column, cellValue){
-              return cellValue==12?'实物赔偿':'原货'
-            }
-          },
+          // {
+          //   minWidth: 140,
+          //   prop: 'subType',
+          //   label: '退货产品类型',
+          //   slot: 'subType',
+          //   align: 'center',
+          //   show:j.subType==11,
+          //   showOverflowTooltip: true,formatter(_row, _column, cellValue){
+          //     return cellValue==12?'实物赔偿':'原货'
+          //   }
+          // },
           
           {
             minWidth: 100,
@@ -159,34 +232,35 @@ export default {
             slot: 'modelType',
             showOverflowTooltip: true
           },
-          {
-            prop: 'provenance',
-            label: '产地',
-            slot: 'provenance',
-            align: 'center',
-            // show:this.contractBookType==2,
-            minWidth: 200,
-            showOverflowTooltip: true,
-            formatter: (row, column) => {
-       
-              return row.provenance && row.provenance.length
-                ? row.provenance
-                    .map((item) => this.getDictValue('产地', item ))
-                    .join(',')
-                : '';
-            }
-          },
           // {
-          //   minWidth: 100,
-          //   prop: 'pricingWay',
-          //   label: '计价方式',
+          //   prop: 'provenance',
+          //   label: '产地',
+          //   slot: 'provenance',
           //   align: 'center',
-          //   slot: 'pricingWay',
+          //   // show:this.contractBookType==2,
+          //   minWidth: 200,
           //   showOverflowTooltip: true,
-          //   formatter: (_row, _column, cellValue) => {
-          //     return _row.pricingWay == 1 ? '按数量计价' :_row.pricingWay == 2? '按重量计价':''
+          //   formatter: (row, column) => {
+       
+          //     return row.provenance && row.provenance.length
+          //       ? row.provenance
+          //           .map((item) => this.getDictValue('产地', item ))
+          //           .join(',')
+          //       : '';
           //   }
           // },
+          {
+            minWidth: 100,
+            prop: 'pricingWay',
+            label: '计价方式',
+            align: 'center',
+            slot: 'pricingWay',
+            showOverflowTooltip: true,
+            formatter: (_row, _column, cellValue) => {
+              let pricingWay = pricingWayList.find(item => item.id == cellValue)
+              return pricingWay ? pricingWay.name : ''
+            }
+          },
           {
             minWidth: 100,
             prop: 'totalCount',
@@ -237,40 +311,44 @@ export default {
             label: '单价',
             align: 'center',
             slot: 'singlePrice',
-            show:j.subType==11
           },
           {
             minWidth: 100,
-            prop: 'discountSinglePrice',
-            label: '单价',
+            prop: 'taxRate',
+            label: '税率',
             align: 'center',
-            slot: 'discountSinglePrice',
-            show:j.subType!=11
-
           },
           {
             width: 150,
-            prop: 'notaxSinglePrice',
+            prop: 'notTaxSinglePrice',
             label: '不含税单价',
             align: 'center'
           },
           {
             minWidth: 120,
             prop: 'totalPrice',
-            label: '合计金额',
+            label: '合计',
             slot: 'totalPrice',
             align: 'center',
-            show:j.subType==11,
-            fixed: 'right'
+          },
+          {
+            minWidth: 100,
+            prop: 'discountRatio',
+            label: '折让比例',
+            align: 'center',
+          },
+          {
+            minWidth: 100,
+            prop: 'discountSinglePrice',
+            label: '折让单价',
+            align: 'center',
           },
           {
             minWidth: 120,
             prop: 'discountTotalPrice',
-            label: '合计金额',
+            label: '折让合计',
             slot: 'discountTotalPrice',
             align: 'center',
-            show:j.subType!=11,
-            fixed: 'right'
           },
     
 
@@ -396,47 +474,75 @@ export default {
       }
     },
     getTitle(){
-        return (j)=>{
-          let title=this.subTypeList[j.subType]+(j.statementSubOrderCode||'')+' '
-          if(j.subType==11&&j.subExecType){
-                 if(j.subExecType=='10'){
-                  title=title+' 退货方式:全部原货 '
-                 }
-                 if(j.subExecType=='20'){
-                  title=title+' 退货方式:部分原货+实物赔偿'
-                 }
-                 if(j.subExecType=='30'){
-                  title=title+' 退货方式:部分原货+现金赔偿 '+' 赔偿金额:'+j.amountPayablePrice
-                 }
-                 if(j.subExecType=='40'){
-                  title=title+' 退货方式:全部实物赔偿'
-                 }
-                 if(j.subExecType=='50'){
-                  title=title+' 退货方式:全部现金赔偿  '+' 赔偿金额:'+j.amountPayablePrice
-                 }
-          }
-          return title
+        return (item, type)=>{
+        //   let title=this.subTypeList[j.subType]+(j.statementSubOrderCode||'')+' '
+        //   if(j.subType==11&&j.subExecType){
+        //          if(j.subExecType=='10'){
+        //           title=title+' 退货方式:全部原货 '
+        //          }
+        //          if(j.subExecType=='20'){
+        //           title=title+' 退货方式:部分原货+实物赔偿'
+        //          }
+        //          if(j.subExecType=='30'){
+        //           title=title+' 退货方式:部分原货+现金赔偿 '+' 赔偿金额:'+j.amountPayablePrice
+        //          }
+        //          if(j.subExecType=='40'){
+        //           title=title+' 退货方式:全部实物赔偿'
+        //          }
+        //          if(j.subExecType=='50'){
+        //           title=title+' 退货方式:全部现金赔偿  '+' 赔偿金额:'+j.amountPayablePrice
+        //          }
+        //   }
+        console.log(item[type])
+          const total = item[type]?.reduce((prev, curr) => {
+            console.log(curr.discountTotalPrice)
+            return prev + Number(curr.discountTotalPrice || 0) + '元';
+          }, 0);
+          return `对账金额合计:${total}`
+        }
+      },
+      getFHDatasource() {
+        return (item)=>{
+          return item.subList?.detailList
         }
       }
   },
-  created(){
-    this.requestDict('产地');
-  },
   data() {
     return {
+      activeNames: [],
       rules: {},
       form: {},
       subTypeList:{
         10:'发货单:',
         11:'退货单:',
         12:'实物赔偿清单:',
+        30:'调拨单:',
       },
       subColumnsTypeList:{
-        10:'发货日期',
-        11:'退货日期',
+        10: '发货',
+        11: '退货',
+        30: '调拨'
       },
     };
   },
+  watch: {
+    datasource: {
+      handler(newVal, oldVal) {
+        if (newVal.length > 0) {
+          this.activeNames = newVal.map((item, index) => index);
+          console.log('this.activeNames~~~', this.activeNames)
+        }
+      },
+      deep: true
+    }
+  },
+  created(){
+    this.requestDict('产地');
+  },
+  mounted() {
+    // this.activeNames = this.datasource.map((item, index) => index.toString());
+    // console.log('activeNames~~~', this.activeNames)
+  },
   methods: {
     remove(tableIndex, lineIndex, delType) {
       let params = {
@@ -472,11 +578,45 @@ export default {
       });
 
       return sums;
+    },
+    getSummariesA(table) {
+      return table.reduce((prev, curr) => {
+        return prev + Number(curr.discountTotalPrice || 0)
+      }, 0)
     }
   }
 };
 </script>
 <style lang="scss" scoped>
+.collapse-title {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  width: 96%;
+}
+.collapse-title-left {
+    display: flex;
+    /* justify-content: center; */
+    align-items: center;
+    font-size: 16px;
+}
+.collapse-title-index {
+    width: 24px;
+    height: 24px;
+    background: #63a103;
+    display: inline-block;
+    text-align: center;
+    line-height: 24px;
+    border-radius: 50%;
+    color: #fff;
+    margin-right: 10px;
+    font-size: 14px;
+}
+.collapse-title-right {
+  display:grid;
+  grid-auto-flow: column;
+  gap: 18px;
+}
 .headbox {
   display: flex;
   justify-content: space-between;

+ 78 - 207
src/views/saleManage/saleOrder/accountstatement/components/inventoryTableNew.vue → src/views/saleManage/saleOrder/accountstatement/components/inventoryTableOld.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <!-- <div v-for="(item) in datasource" style="margin-bottom: 10px">
+    <div v-for="(item) in datasource" style="margin-bottom: 10px">
       <div>
         <div style="margin-bottom: 10px;font-weight: bold;">
           <div>
             <el-divider direction="vertical"></el-divider>
-            <span><span>{{ index + 1 }}</span> 销售订单:</span>
+            <span>销售订单:</span>
             <span>{{ item.orderNo }}</span>
-            <el-divider direction="vertical"></el-divider> -->
+            <el-divider direction="vertical"></el-divider>
             <!-- <span>计价方式:</span>
             <span> {{ item.pricingWay == 1 ? '按数量计费' : '按重量计费' }}</span> -->
             <!-- <el-divider direction="vertical"></el-divider> -->
-            <!-- <span>总金额:</span>
+            <span>总金额:</span>
             <span>{{item.amountTotalPrice}}</span>
             <el-divider direction="vertical"></el-divider>
             <span>应收金额:</span>
@@ -54,7 +54,7 @@
                   </el-link>
                 </template>
               </el-popconfirm>
-            </template> -->
+            </template>
             <!--            <template v-slot:productName="{ row,$index }">-->
             <!--              <el-popover-->
             <!--                placement="right"-->
@@ -70,74 +70,10 @@
             <!--                <el-button type="text" slot="reference">{{ row.productName }}</el-button>-->
             <!--              </el-popover>-->
             <!--            </template>-->
-          <!-- </ele-pro-table>
+          </ele-pro-table>
         </div>
       </div>
-    </div> -->
-
-    <el-collapse  v-model="activeNames">
-      <el-collapse-item v-for="(item, index) in datasource" :key="index" :name="index">
-        <template slot="title">
-          <div class="collapse-title">
-            <div class="collapse-title-left"><span class="collapse-title-index">{{ index + 1 }}</span> 销售订单:{{ item.orderNo }}</div>
-            <div class="collapse-title-right">
-              <span>订单金额:{{ item.amountTotalPrice || 0 }}元</span>
-              <span>已对账金额:{{ item.statementAmount || 0 }}元</span>
-              <span>未对账金额:{{ item.unStatementAmount || 0 }}元</span>
-            </div>
-          </div>
-        </template>
-        <div>
-          <el-tabs type="border-card">
-            <el-tab-pane label="调拨单">
-              <ele-pro-table :show-summary="false" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"
-                          :columns="getColumns(item, 'deliveryProducts')" max-height="500px" style="margin-bottom: 10px" :datasource="item.deliveryProducts || []"
-                          cache-key="systemRoleTable17-11121" class="time-form">
-                <template v-slot:toolbar>
-                  <div class="headbox">
-                    <div>
-                      <span class="amount">对账金额合计:{{ getSummariesA(item.deliveryProducts || []) }}元</span>
-                    </div>
-                  </div>
-                </template>
-                <template v-slot:action="{ row,$index }">
-                  <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(index,$index,'line')">
-                    <template v-slot:reference>
-                      <el-link type="danger" v-if="dialogType!=='view'" :underline="false" icon="el-icon-delete">
-                        删除
-                      </el-link>
-                    </template>
-                  </el-popconfirm>
-                </template>
-              </ele-pro-table>
-            </el-tab-pane>
-            <el-tab-pane label="退货单">
-              <ele-pro-table :show-summary="false" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"
-                          :columns="getColumns(item, 'returnProducts')" max-height="500px" style="margin-bottom: 10px" :datasource="item.returnProducts || []"
-                          cache-key="systemRoleTable17-11122" class="time-form">
-                <template v-slot:toolbar>
-                  <div class="headbox">
-                    <div>
-                      <span class="amount">对账金额合计:{{ getSummariesA(item.deliveryProducts || []) }}元</span>
-                    </div>
-                  </div>
-                </template>
-                <template v-slot:action="{ row,$index }">
-                  <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(index,$index,'line')">
-                    <template v-slot:reference>
-                      <el-link type="danger" v-if="dialogType!=='view'" :underline="false" icon="el-icon-delete">
-                        删除
-                      </el-link>
-                    </template>
-                  </el-popconfirm>
-                </template>
-              </ele-pro-table>
-            </el-tab-pane>
-          </el-tabs>
-          
-        </div>
-      </el-collapse-item>
-    </el-collapse>
+    </div>
 
 <!--    <el-row v-if="dialogType=='view'" style="margin-top: 10px">-->
 <!--      <el-col :span="6" style="float: right;">-->
@@ -154,7 +90,6 @@
 </template>
 <script>
 import dictMixins from '@/mixins/dictMixins';
-import { pricingWayList } from '@/enum/dict';
 
 export default {
   mixins: [dictMixins],
@@ -162,7 +97,7 @@ export default {
   props: ['datasource', 'dialogType', 'dataForm'],
   computed: {
     getColumns() {
-      return (item, type)=>{
+      return (j)=>{
         let basicFields = [
           {
             width: 60,
@@ -172,18 +107,10 @@ export default {
             align: 'center',
             fixed: 'left'
           },
-          {
-            minWidth: 130,
-            prop: 'statementSubOrderNo',
-            label: type == 'deliveryProducts'?'发货单编码':'退货单编码',
-            align: 'center',
-            slot: 'statementSubOrderNo',
-            showOverflowTooltip: true
-          },
           {
             minWidth: 130,
             prop: 'productOperateTime',
-            label: type == 'deliveryProducts'?'发货日期':'退货日期',
+            label: this.subColumnsTypeList[j.subType],
             align: 'center',
             slot: 'productOperateTime',
             showOverflowTooltip: true
@@ -204,17 +131,17 @@ export default {
             align: 'center',
             showOverflowTooltip: true
           },
-          // {
-          //   minWidth: 140,
-          //   prop: 'subType',
-          //   label: '退货产品类型',
-          //   slot: 'subType',
-          //   align: 'center',
-          //   show:j.subType==11,
-          //   showOverflowTooltip: true,formatter(_row, _column, cellValue){
-          //     return cellValue==12?'实物赔偿':'原货'
-          //   }
-          // },
+          {
+            minWidth: 140,
+            prop: 'subType',
+            label: '退货产品类型',
+            slot: 'subType',
+            align: 'center',
+            show:j.subType==11,
+            showOverflowTooltip: true,formatter(_row, _column, cellValue){
+              return cellValue==12?'实物赔偿':'原货'
+            }
+          },
           
           {
             minWidth: 100,
@@ -232,35 +159,34 @@ export default {
             slot: 'modelType',
             showOverflowTooltip: true
           },
-          // {
-          //   prop: 'provenance',
-          //   label: '产地',
-          //   slot: 'provenance',
-          //   align: 'center',
-          //   // show:this.contractBookType==2,
-          //   minWidth: 200,
-          //   showOverflowTooltip: true,
-          //   formatter: (row, column) => {
-       
-          //     return row.provenance && row.provenance.length
-          //       ? row.provenance
-          //           .map((item) => this.getDictValue('产地', item ))
-          //           .join(',')
-          //       : '';
-          //   }
-          // },
           {
-            minWidth: 100,
-            prop: 'pricingWay',
-            label: '计价方式',
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
             align: 'center',
-            slot: 'pricingWay',
+            // show:this.contractBookType==2,
+            minWidth: 200,
             showOverflowTooltip: true,
-            formatter: (_row, _column, cellValue) => {
-              let pricingWay = pricingWayList.find(item => item.id == cellValue)
-              return pricingWay ? pricingWay.name : ''
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
             }
           },
+          // {
+          //   minWidth: 100,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   align: 'center',
+          //   slot: 'pricingWay',
+          //   showOverflowTooltip: true,
+          //   formatter: (_row, _column, cellValue) => {
+          //     return _row.pricingWay == 1 ? '按数量计价' :_row.pricingWay == 2? '按重量计价':''
+          //   }
+          // },
           {
             minWidth: 100,
             prop: 'totalCount',
@@ -311,44 +237,40 @@ export default {
             label: '单价',
             align: 'center',
             slot: 'singlePrice',
+            show:j.subType==11
           },
           {
             minWidth: 100,
-            prop: 'taxRate',
-            label: '税率',
+            prop: 'discountSinglePrice',
+            label: '单价',
             align: 'center',
+            slot: 'discountSinglePrice',
+            show:j.subType!=11
+
           },
           {
             width: 150,
-            prop: 'notTaxSinglePrice',
+            prop: 'notaxSinglePrice',
             label: '不含税单价',
             align: 'center'
           },
           {
             minWidth: 120,
             prop: 'totalPrice',
-            label: '合计',
+            label: '合计金额',
             slot: 'totalPrice',
             align: 'center',
-          },
-          {
-            minWidth: 100,
-            prop: 'discountRate',
-            label: '折让比列',
-            align: 'center',
-          },
-          {
-            minWidth: 100,
-            prop: 'discountSinglePrice',
-            label: '折让单价',
-            align: 'center',
+            show:j.subType==11,
+            fixed: 'right'
           },
           {
             minWidth: 120,
             prop: 'discountTotalPrice',
-            label: '折让合计',
+            label: '合计金额',
             slot: 'discountTotalPrice',
             align: 'center',
+            show:j.subType!=11,
+            fixed: 'right'
           },
     
 
@@ -474,36 +396,26 @@ export default {
       }
     },
     getTitle(){
-        return (item, type)=>{
-        //   let title=this.subTypeList[j.subType]+(j.statementSubOrderCode||'')+' '
-        //   if(j.subType==11&&j.subExecType){
-        //          if(j.subExecType=='10'){
-        //           title=title+' 退货方式:全部原货 '
-        //          }
-        //          if(j.subExecType=='20'){
-        //           title=title+' 退货方式:部分原货+实物赔偿'
-        //          }
-        //          if(j.subExecType=='30'){
-        //           title=title+' 退货方式:部分原货+现金赔偿 '+' 赔偿金额:'+j.amountPayablePrice
-        //          }
-        //          if(j.subExecType=='40'){
-        //           title=title+' 退货方式:全部实物赔偿'
-        //          }
-        //          if(j.subExecType=='50'){
-        //           title=title+' 退货方式:全部现金赔偿  '+' 赔偿金额:'+j.amountPayablePrice
-        //          }
-        //   }
-        console.log(item[type])
-          const total = item[type]?.reduce((prev, curr) => {
-            console.log(curr.discountTotalPrice)
-            return prev + Number(curr.discountTotalPrice || 0) + '元';
-          }, 0);
-          return `对账金额合计:${total}`
-        }
-      },
-      getFHDatasource() {
-        return (item)=>{
-          return item.subList?.detailList
+        return (j)=>{
+          let title=this.subTypeList[j.subType]+(j.statementSubOrderCode||'')+' '
+          if(j.subType==11&&j.subExecType){
+                 if(j.subExecType=='10'){
+                  title=title+' 退货方式:全部原货 '
+                 }
+                 if(j.subExecType=='20'){
+                  title=title+' 退货方式:部分原货+实物赔偿'
+                 }
+                 if(j.subExecType=='30'){
+                  title=title+' 退货方式:部分原货+现金赔偿 '+' 赔偿金额:'+j.amountPayablePrice
+                 }
+                 if(j.subExecType=='40'){
+                  title=title+' 退货方式:全部实物赔偿'
+                 }
+                 if(j.subExecType=='50'){
+                  title=title+' 退货方式:全部现金赔偿  '+' 赔偿金额:'+j.amountPayablePrice
+                 }
+          }
+          return title
         }
       }
   },
@@ -512,26 +424,19 @@ export default {
   },
   data() {
     return {
-      activeNames: [],
       rules: {},
       form: {},
       subTypeList:{
         10:'发货单:',
         11:'退货单:',
         12:'实物赔偿清单:',
-        30:'调拨单:',
       },
       subColumnsTypeList:{
-        10: '发货',
-        11: '退货',
-        30: '调拨'
+        10:'发货日期',
+        11:'退货日期',
       },
     };
   },
-  mounted() {
-    this.activeNames = this.datasource.map((item, index) => index.toString());
-    console.log('activeNames~~~', this.activeNames)
-  },
   methods: {
     remove(tableIndex, lineIndex, delType) {
       let params = {
@@ -567,45 +472,11 @@ export default {
       });
 
       return sums;
-    },
-    getSummariesA(table) {
-      return table.reduce((prev, curr) => {
-        return prev + Number(curr.discountTotalPrice || 0)
-      }, 0)
     }
   }
 };
 </script>
 <style lang="scss" scoped>
-.collapse-title {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  width: 96%;
-}
-.collapse-title-left {
-    display: flex;
-    /* justify-content: center; */
-    align-items: center;
-    font-size: 16px;
-}
-.collapse-title-index {
-    width: 24px;
-    height: 24px;
-    background: #63a103;
-    display: inline-block;
-    text-align: center;
-    line-height: 24px;
-    border-radius: 50%;
-    color: #fff;
-    margin-right: 10px;
-    font-size: 14px;
-}
-.collapse-title-right {
-  display:grid;
-  grid-auto-flow: column;
-  gap: 18px;
-}
 .headbox {
   display: flex;
   justify-content: space-between;

+ 58 - 17
src/views/saleManage/saleOrder/accountstatement/components/saleForm.vue

@@ -2,7 +2,7 @@
   <el-form ref="form" :model="dataForm" :rules="rules" label-width="120px">
     <headerTitle title="对账单信息"></headerTitle>
     <el-row>
-      <el-col :span="12">
+      <el-col :span="8">
         <el-form-item label="来源类型" prop="sourceType">
           <el-select
             :disabled="dialogType == 'view' || !!saleOrderData?.id"
@@ -20,7 +20,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="12">
+      <el-col :span="8">
         <el-form-item
           label="选择客户"
           prop="contactId"
@@ -58,9 +58,24 @@
           ></el-input>
         </el-form-item>
       </el-col>
+      <el-col :span="8">
+        <el-form-item label="查询维度" prop="queryDimension">
+          <el-select
+            disabled
+            clearable
+            class="ele-block"
+            v-model="dataForm.queryDimension"
+            placeholder="请选择"
+          >
+            <el-option label="按发货单" :value="1" />
+            <el-option label="按调拨单" :value="2" />
+            <el-option label="按收货单" :value="3" />
+          </el-select>
+        </el-form-item>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="12">
+      <el-col :span="8">
         <el-form-item label="查询方式" prop="dateType">
           <el-select
             :disabled="dialogType == 'view'"
@@ -77,7 +92,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="12" v-if="![2].includes(dataForm.dateType)">
+      <el-col :span="8" v-if="![2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -129,7 +144,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -147,7 +162,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择季度"
           prop="quarter"
@@ -168,12 +183,26 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="12" v-if="dialogType == 'view'">
+    </el-row>
+    <el-row>
+      <el-col :span="8">
+        <el-form-item prop="createUserName" label="对账金额">
+          <el-input disabled v-model="accountStatementPrice"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col :span="8">
+        <el-form-item prop="createUserName" label="关联订单编码">
+          <el-input disabled v-model="relatedOrderNumber"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col :span="8" v-if="dialogType == 'view'">
         <el-form-item prop="createUserName" label="对账人">
           <el-input disabled v-model="dataForm.createUserName"></el-input>
         </el-form-item>
       </el-col>
-      <el-col :span="12" v-if="dialogType == 'view'">
+    </el-row>
+    <el-row>
+      <el-col :span="8" v-if="dialogType == 'view'">
         <el-form-item prop="createTime" label="对账时间">
           <el-input disabled v-model="dataForm.createTime"></el-input>
         </el-form-item>
@@ -210,10 +239,11 @@
 </template>
 <script xmlns:el-col="http://www.w3.org/1999/html">
   import parentList from '@/views/saleManage/contact/components/parentList.vue';
-  import OrderListDialog from '@/views/saleManage/saleOrder/accountstatement/components/orderListDialog.vue';
+  import OrderListDialog from './orderListDialog.vue';
   import { getFile } from '@/api/system/file';
   // import fileMain from '@/components/addDoc/index.vue';
   import contractListDialog from '@/views/saleManage/saleOrder/components/contractListDialog.vue';
+import { accountStatementExportAPI } from '@/api/saleManage/accountstatement';
 
   export default {
     name: 'saleForm',
@@ -229,7 +259,7 @@
         }
       },
       datasource: {
-        type: Object,
+        type: Array,
         default: () => {
           return [];
         }
@@ -247,12 +277,12 @@
           return {};
         }
       },
-      recorpayList: {
-        type: Object,
-        default: () => {
-          return [];
-        }
-      },
+      // recorpayList: {
+      //   type: Object,
+      //   default: () => {
+      //     return [];
+      //   }
+      // },
       
     },
     data() {
@@ -282,9 +312,20 @@
           },
           sourceId: { required: true, message: '请选择', trigger: 'change' },
           contractId: { required: true, message: '请选择', trigger: 'change' },
+          queryDimension: { required: true, message: '请选择', trigger: 'change' },
         }
       };
     },
+    computed: {
+      //计算未对账金额
+      accountStatementPrice() {
+        return this.datasource.reduce((pre, cur) => pre + +cur.amountTotalPrice, 0);
+      },
+      //计算相关订单号
+      relatedOrderNumber() {
+        return this.datasource.map((item) => item.orderNo).join(',');
+      }
+    },
     methods: {
       //查询
       handleSearch() {
@@ -404,7 +445,7 @@
       },
       reloadTableData() {
         this.$emit('update:datasource', []);
-        this.$emit('update:recorpayList', []);
+        // this.$emit('update:recorpayList', []);
       },
       downloadFile(file) {
         getFile({ objectName: file.storePath }, file.name);

+ 17 - 57
src/views/saleManage/saleOrder/accountstatement/components/saleFormNew.vue → src/views/saleManage/saleOrder/accountstatement/components/saleFormOld.vue

@@ -2,7 +2,7 @@
   <el-form ref="form" :model="dataForm" :rules="rules" label-width="120px">
     <headerTitle title="对账单信息"></headerTitle>
     <el-row>
-      <el-col :span="8">
+      <el-col :span="12">
         <el-form-item label="来源类型" prop="sourceType">
           <el-select
             :disabled="dialogType == 'view' || !!saleOrderData?.id"
@@ -20,7 +20,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="8">
+      <el-col :span="12">
         <el-form-item
           label="选择客户"
           prop="contactId"
@@ -58,23 +58,9 @@
           ></el-input>
         </el-form-item>
       </el-col>
-      <el-col :span="8">
-        <el-form-item label="查询维度" prop="queryDimension">
-          <el-select
-            :disabled="dialogType == 'view' || !!saleOrderData?.id"
-            clearable
-            class="ele-block"
-            v-model="dataForm.queryDimension"
-            placeholder="请选择"
-          >
-            <el-option label="按发货单" :value="1" />
-            <el-option label="按调拨单" :value="2" />
-          </el-select>
-        </el-form-item>
-      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="8">
+      <el-col :span="12">
         <el-form-item label="查询方式" prop="dateType">
           <el-select
             :disabled="dialogType == 'view'"
@@ -91,7 +77,7 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :span="8" v-if="![2].includes(dataForm.dateType)">
+      <el-col :span="12" v-if="![2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -143,7 +129,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择年度"
           prop="year"
@@ -161,7 +147,7 @@
           </el-date-picker>
         </el-form-item>
       </el-col>
-      <el-col :span="8" v-if="[2].includes(dataForm.dateType)">
+      <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
         <el-form-item
           label="选择季度"
           prop="quarter"
@@ -182,26 +168,12 @@
           </el-select>
         </el-form-item>
       </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="8">
-        <el-form-item prop="createUserName" label="对账金额">
-          <el-input disabled v-model="accountStatementPrice"></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col :span="8">
-        <el-form-item prop="createUserName" label="关联订单编码">
-          <el-input disabled v-model="relatedOrderNumber"></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col :span="8" v-if="dialogType == 'view'">
+      <el-col :span="12" v-if="dialogType == 'view'">
         <el-form-item prop="createUserName" label="对账人">
           <el-input disabled v-model="dataForm.createUserName"></el-input>
         </el-form-item>
       </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="8" v-if="dialogType == 'view'">
+      <el-col :span="12" v-if="dialogType == 'view'">
         <el-form-item prop="createTime" label="对账时间">
           <el-input disabled v-model="dataForm.createTime"></el-input>
         </el-form-item>
@@ -238,11 +210,10 @@
 </template>
 <script xmlns:el-col="http://www.w3.org/1999/html">
   import parentList from '@/views/saleManage/contact/components/parentList.vue';
-  import OrderListDialog from './orderListDialog.vue';
+  import OrderListDialog from '@/views/saleManage/saleOrder/accountstatement/components/orderListDialog.vue';
   import { getFile } from '@/api/system/file';
   // import fileMain from '@/components/addDoc/index.vue';
   import contractListDialog from '@/views/saleManage/saleOrder/components/contractListDialog.vue';
-import { accountStatementExportAPI } from '@/api/saleManage/accountstatement';
 
   export default {
     name: 'saleForm',
@@ -258,7 +229,7 @@ import { accountStatementExportAPI } from '@/api/saleManage/accountstatement';
         }
       },
       datasource: {
-        type: Array,
+        type: Object,
         default: () => {
           return [];
         }
@@ -276,12 +247,12 @@ import { accountStatementExportAPI } from '@/api/saleManage/accountstatement';
           return {};
         }
       },
-      // recorpayList: {
-      //   type: Object,
-      //   default: () => {
-      //     return [];
-      //   }
-      // },
+      recorpayList: {
+        type: Object,
+        default: () => {
+          return [];
+        }
+      },
       
     },
     data() {
@@ -311,20 +282,9 @@ import { accountStatementExportAPI } from '@/api/saleManage/accountstatement';
           },
           sourceId: { required: true, message: '请选择', trigger: 'change' },
           contractId: { required: true, message: '请选择', trigger: 'change' },
-          queryDimension: { required: true, message: '请选择', trigger: 'change' },
         }
       };
     },
-    computed: {
-      //计算未对账金额
-      accountStatementPrice() {
-        return this.datasource.reduce((pre, cur) => pre + cur.amountTotalPrice, 0);
-      },
-      //计算相关订单号
-      relatedOrderNumber() {
-        return this.datasource.map((item) => item.orderNo).join(',');
-      }
-    },
     methods: {
       //查询
       handleSearch() {
@@ -444,7 +404,7 @@ import { accountStatementExportAPI } from '@/api/saleManage/accountstatement';
       },
       reloadTableData() {
         this.$emit('update:datasource', []);
-        // this.$emit('update:recorpayList', []);
+        this.$emit('update:recorpayList', []);
       },
       downloadFile(file) {
         getFile({ objectName: file.storePath }, file.name);