Explorar o código

佣金订单-接口调试

jingbb hai 2 meses
pai
achega
8ec05cbae2

+ 40 - 28
src/views/platformBusiness/commissionOrder/commissionOrder.vue

@@ -18,40 +18,42 @@
           </a-col>
           <template v-if="toggleSearchStatus">
             <a-col :lg="8">
-              <a-form-item label="供应商回款(supplier payment)">
+              <a-form-item label="供应商回款(supplier payment)" :label-col="{ style: 'width: 200px' }">
                 <JDictSelectTag v-model:value="queryParam.supplierPayment" placeholder="请选择" dictCode="yes_or_no" style="width: 100%" />
               </a-form-item>
             </a-col>
             <a-col :lg="16">
-              <a-form-item name="customer">
+              <a-form-item name="customerId" :label-col="{ style: 'width: 200px' }">
                 <template #label><span title="客户(customer)">客户(customer)</span></template>
-                <JSelect   v-model:value="queryParam.customer" :get-option-url="CustomerOption" :showField="showField"></JSelect>
-              </a-form-item>
-            </a-col>
-            <a-col :lg="16">
-              <a-form-item name="supplier">
-                <template #label><span title="供应商(supplier)">供应商(supplier)</span></template>
-                <JSelect   v-model:value="queryParam.supplier" :get-option-url="supplierOption" :showField="showField"></JSelect>
+                <JSelect   v-model:value="queryParam.customerId" :get-option-url="CustomerOption" :showField="showField"></JSelect>
               </a-form-item>
             </a-col>
             <a-col :lg="8">
-              <a-form-item name="submit">
+              <a-form-item name="submit" :label-col="{ style: 'width: 200px' }">
                 <template #label><span title="提交(submit)">提交(submit)</span></template>
                 <JDictSelectTag v-model:value="queryParam.submit" placeholder="请选择" dictCode="yes_or_no" style="width: 100%" />
               </a-form-item>
             </a-col>
+            <a-col :lg="16">
+              <a-form-item name="supplierId" :label-col="{ style: 'width: 200px' }">
+                <template #label><span title="供应商(supplier)">供应商(supplier)</span></template>
+                <JSelect   v-model:value="queryParam.supplierId" :get-option-url="supplierOption" :showField="showField"></JSelect>
+              </a-form-item>
+            </a-col>
             <a-col :lg="8">
-                <a-form-item label="业务员(salesman)" >
-                    <j-input placeholder="请输入" v-model:value="queryParam.salesman"></j-input>
+                <a-form-item  name="salesmanName" :label-col="{ style: 'width: 200px' }">
+                  <template #label><span title="业务员(salesman)">业务员(salesman)</span></template>
+                  <j-input placeholder="请输入" v-model:value="queryParam.salesmanName"></j-input>
                 </a-form-item>
             </a-col>
             <a-col :lg="8">
-                 <a-form-item label="销售部门(sale department)">
-                    <j-input placeholder="请输入" v-model:value="queryParam.saleDepartment"></j-input>
+                 <a-form-item  name="saleDepartmenName" :label-col="{ style: 'width: 200px' }">
+                    <template #label><span title="销售部门(sale department)">销售部门(sale department)</span></template>
+                    <j-input placeholder="请输入" v-model:value="queryParam.saleDepartmenName"></j-input>
                   </a-form-item>
             </a-col>
             <a-col :lg="8">
-              <a-form-item name="close">
+              <a-form-item name="close" :label-col="{ style: 'width: 200px' }">
                 <template #label><span title="关闭(close)">关闭(close)</span></template>
                 <JDictSelectTag v-model:value="queryParam.close" placeholder="请选择" dictCode="yes_or_no" style="width: 100%" />
               </a-form-item>
@@ -76,16 +78,17 @@
     <BasicTable @register="registerTable" :rowSelection="rowSelection" size="small">
       <!--插槽:table标题-->
       <template #tableTitle>
-        <a-button type="primary"  @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增(add)</a-button>
-        <a-button type="primary"  preIcon="ant-design:export-outlined" @click="onExportXls">
+        <a-button type="primary"  @click="handleAdd" preIcon="ant-design:plus-outlined" v-auth="'platCode:plat_commission_order:add'"> 新增(add)</a-button>
+        <a-button type="primary"  preIcon="ant-design:export-outlined" @click="onExportXls" v-auth="'platCode:plat_commission_order:exportXls'">
           导出(export)</a-button
         >
         <a-button type="primary" @click="submit"> 提交(submit)</a-button>
         <a-button type="primary" @click="cancelSubmit"> 取消提交(cancelSubmit)</a-button>
+        <a-button type="primary" @click="handleClose"> 关闭(handleClose)</a-button>
         <a-dropdown v-if="selectedRowKeys.length > 0">
           <template #overlay>
             <a-menu>
-              <a-menu-item key="1" @click="batchHandleDelete">
+              <a-menu-item key="1" @click="batchHandleDelete"  v-auth="'platCode:plat_commission_order:deleteBatch'">
                 <Icon icon="ant-design:delete-outlined" />
                 删除(delete)
               </a-menu-item>
@@ -93,7 +96,7 @@
           </template>
           <a-button 
             >批量操作
-            <Icon icon="mdi:chevron-down" />
+            <Icon icon="mdi:chevron-down" v-auth="'platCode:plat_commission_order:deleteBatch'"/>
           </a-button>
         </a-dropdown>
       </template>
@@ -124,7 +127,8 @@
     batchSubmit,
     cancelBatchSubmit,
     supplierOption,
-    CustomerOption
+    CustomerOption,
+    batchClose
   } from './commissionOrderForm.api';
   import { cloneDeep } from 'lodash-es';
   import { JDictSelectTag, JInput ,JSelect} from '/@/components/Form';
@@ -145,11 +149,11 @@
       canResize: false,
       useSearchForm: false,
       actionColumn: {
-        width: 240,
+        width: 300,
         fixed: 'right',
       },
       scroll: {
-        x: '2000px',
+        x: '2200px',
         y:'calc(100vh - 400px)',
       },
       beforeFetch: async (params) => {
@@ -227,8 +231,8 @@
       {
         label: '编辑(edit)',
         onClick: handleEdit.bind(null, record),
-        // auth: 'saleCode:sale_quotation:edit',
-        ifShow: record.status == '0',
+        auth: 'platCode:plat_commission_order:edit',
+        ifShow: record.submit == '0',
       },
       {
         label: '删除(delete)',
@@ -237,14 +241,14 @@
           confirm: handleDelete.bind(null, record),
           placement: 'topLeft',
         },
-        ifShow: record.status == '0',
-        // auth: 'saleCode:sale_quotation:delete',
+        ifShow: record.submit == '0',
+        auth: 'platCode:plat_commission_order:delete',
       },
       {
         label: '开票申请(apply invice)',
         onClick: handleApplyInvice.bind(null, record),
         // auth: 'saleCode:sale_quotation:edit',
-        ifShow: record.status == '1',
+        ifShow: record.submit == '1',
       },
     ];
   }
@@ -275,8 +279,16 @@
       cancelBatchSubmit({ ids: ids }, handleSuccess);
     }
   }
+  function handleClose(){
+    if (selectedRowKeys.value.length == 0) {
+      message.warning('请选择数据');
+    } else {
+      var ids = selectedRowKeys.value.join(',');
+      batchClose({ ids: ids }, handleSuccess);
+    }
+  }
   function handleApplyInvice(record) {
-    
+   
   }
 
   /* ----------------------以下为原生查询需要添加的-------------------------- */

+ 30 - 12
src/views/platformBusiness/commissionOrder/commissionOrderForm.api.ts

@@ -4,17 +4,19 @@ import { useMessage } from "/@/hooks/web/useMessage";
 const { createConfirm } = useMessage();
 
 enum Api {
-  list = '/saleCode/saleQuotation/list',
-  save='/saleCode/saleQuotation/add',
-  edit='/saleCode/saleQuotation/edit',
-  deleteOne = '/saleCode/saleQuotation/delete',
-  deleteBatch = '/saleCode/saleQuotation/deleteBatch',
-  importExcel = '/saleCode/saleQuotation/importExcel',
-  exportXls = '/saleCode/saleQuotation/exportXls',
-  queryDataById = '/saleCode/saleQuotation/queryById',
-  productList = '/saleCode/saleQuotation/queryProductByMainId',
-  submitBatch='/saleCode/saleQuotation/submitBatch',
-  cancelSubmitBatch='/saleCode/saleQuotation/returnSubmitBatch',
+  list = '/platCode/platCommissionOrder/list',
+  save='/platCode/platCommissionOrder/add',
+  edit='/platCode/platCommissionOrder/edit',
+  deleteOne = '/platCode/platCommissionOrder/delete',
+  deleteBatch = '/platCode/platCommissionOrder/deleteBatch',
+  importExcel = '/platCode/platCommissionOrder/importExcel',
+  exportXls = '/platCode/platCommissionOrder/exportXls',
+  queryDataById = '/platCode/platCommissionOrder/queryById',
+  productList = '/platCode/platCommissionOrder/queryPlatCommissionOrderProductByMainId',
+  productListFromCon = '/platCode/platCommissionContract/queryPlatCommissionContractProductByMainId',
+  submitBatch='/platCode/platCommissionOrder/submitBatch',
+  cancelSubmitBatch='/platCode/platCommissionOrder/returnSubmitBatch',
+  closeBatch='/platCode/platCommissionOrder/submitClose',
   supplierList='/cuspCode/cuspSupplierProfile/list?pageSize=-1',
   customerList='/cuspCode/cuspCustomerProfile/list',
 }
@@ -29,6 +31,7 @@ export const getExportUrl = Api.exportXls;
  */
 export const getImportUrl = Api.importExcel;
 export const queryProductListByMainId = (id) => defHttp.get({url: Api.productList, params:{ id }});
+export const queryProductListByMainIdFormCon = (id) => defHttp.get({url: Api.productListFromCon, params:{ id }});
 
 /**
  * 列表接口
@@ -78,7 +81,7 @@ export const saveOrUpdate = (params, isUpdate) => {
 * 根据id查询数据
 * @param params
 */
-export const queryDataById = (id) => defHttp.get({url: Api.queryDataById, params:{ id }});
+export const queryDataById =  (id) => defHttp.get({url: Api.queryDataById, params:{ id }});
 // 提交
 export const batchSubmit = (params, handleSuccess) => {
   createConfirm({
@@ -109,6 +112,21 @@ export const cancelBatchSubmit = (params, handleSuccess) => {
     }
   });
 }
+//关闭
+export const batchClose = (params, handleSuccess) => {
+  createConfirm({
+    iconType: 'warning',
+    title: '确认关闭',
+    content: '是否关闭选中数据',
+    okText: '确认',
+    cancelText: '取消',
+    onOk: () => {
+      return defHttp.get({url: Api.closeBatch, params}, {joinParamsToUrl: true}).then(() => {
+        handleSuccess();
+      });
+    }
+  });
+}
 
 //获取供应商列表
 export const supplierOption = (params) => defHttp.get({url: Api.supplierList, params});

+ 10 - 8
src/views/platformBusiness/commissionOrder/commissionOrderForm.data.ts

@@ -34,23 +34,23 @@ export const columns: BasicColumn[] = [
    {
     title: '销售部门(saleDepartment)',
     align:"center",
-    dataIndex: 'saleDepartment'
+    dataIndex: 'saleDepartmenName'
    },
    {
     title: '业务员(salesman)',
     align:"center",
-    dataIndex: 'salesman',
+    dataIndex: 'salesmanName',
     width:250,
    },
    {
     title: '提交(submit)',
     align:"center",
-    dataIndex: 'submit'
+    dataIndex: 'submit_dictText'
    },
    {
     title: '关闭(close)',
     align:"center",
-    dataIndex: 'close'
+    dataIndex: 'close_dictText'
    },
    {
     title: '供应商回款(supplier payment)',
@@ -129,7 +129,9 @@ export const ProductColumns: JVxeColumn[] = [
     {
       title: '质量等级(quality grade)',
       key: 'qualityGrade',
-      type: JVxeTypes.normal,
+      type: JVxeTypes.select,
+      options: [],
+      dictCode: 'quality_grade',
       placeholder: '请输入${title}',
       width:"200px",
       defaultValue:'',
@@ -162,8 +164,8 @@ export const ProductColumns: JVxeColumn[] = [
     },
     {
       title: '佣金率(commission rate)',
-      key: 'commissionRate',
-      type: JVxeTypes.normal,
+      key: 'commissionRateChild',
+      type: JVxeTypes.inputNumber,
       placeholder: '请输入${title}',
       width:"200px",
       defaultValue:'',
@@ -178,7 +180,7 @@ export const ProductColumns: JVxeColumn[] = [
     },
     {
       title: '备注(note)',
-      key: 'notes',
+      key: 'notesChild',
       width:"200px",
       type: JVxeTypes.input,
       placeholder: '请输入${title}',

+ 33 - 33
src/views/platformBusiness/commissionOrder/components/SelectCommissionContractModal.vue

@@ -25,17 +25,17 @@
                     <template v-if="toggleSearchStatus">
                         <a-col :md="6" :sm="8">
                             <a-form-item label="供应商(supplier)"  >
-                                <JSelect   v-model:value="queryParams.supplier" :get-option-url="supplierOption" :showField="showField"></JSelect>
+                                <JSelect   v-model:value="queryParams.supplierId" :get-option-url="supplierOption" :showField="showField"></JSelect>
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
                             <a-form-item label="业务员(salesman)" >
-                                <j-input placeholder="请输入" v-model:value="queryParams.salesman"></j-input>
+                                <j-input placeholder="请输入" v-model:value="queryParams.salesmanName"></j-input>
                             </a-form-item>
                         </a-col>
                         <a-col :md="6" :sm="8">
                             <a-form-item label="销售部门(sale department)">
-                                <j-input placeholder="请输入" v-model:value="queryParams.saleDepartment"></j-input>
+                                <j-input placeholder="请输入" v-model:value="queryParams.saleDepartmenName"></j-input>
                             </a-form-item>
                         </a-col>
                     </template>
@@ -115,23 +115,23 @@
         {
             title: '供应商(supplier)',
             key: 'supplierName',
-            dataIndex: 'suppilerName',
+            dataIndex: 'supplierName',
             align:"center"
         },
         {
             title: '销售部门(sale department)',
             align:"center",
-            dataIndex: 'saleDepartment'
+            dataIndex: 'saleDepartmenName'
         },
         {
             title: '业务员(salesman)',
             align:"center",
-            dataIndex: 'salesman'
+            dataIndex: 'salesmanName'
         },
         {
             title: '佣金比例(commission rate)',
             align:"center",
-            dataIndex: 'headModel'
+            dataIndex: 'commissionRate'
         },        
     ];
     const dataSource =ref([]);
@@ -141,10 +141,10 @@
     var billDate = ref([])
     const queryParams = ref({
         billCode:'',
-        supplier:'',
+        supplierId:'',
         inquirySuppiler:'',
-        salesman:'',
-        saleDepartment:'',
+        salesmanName:'',
+        saleDepartmenName:'',
     });
     let pagination = ref({
       current: 1,
@@ -159,21 +159,21 @@
     });
     function loadData(){
         let params = getQueryParams();
-        // defHttp
-        // .get({ url: '/purCode/purInquiryForm/alertPurInquiryList',params}, { isTransformResponse: false })
-        // .then((res) => {
-        //     if (res.success) {
-        //         dataSource.value = res.result.records;
-        //         pagination.value.total = res.result.total;
-        //         pagination.value.current = res.result.current;
-        //         pagination.value.pageSize = res.result.size;                
-        //     } else {
-        //         message.error(res.message);
-        //     }
-        // })
-        // .finally(() => {
-        //     // loading.value = false;
-        // });
+        defHttp
+        .get({ url: '/platCode/platCommissionContract/list',params}, { isTransformResponse: false })
+        .then((res) => {
+            if (res.success) {
+                dataSource.value = res.result.records;
+                pagination.value.total = res.result.total;
+                pagination.value.current = res.result.current;
+                pagination.value.pageSize = res.result.size;                
+            } else {
+                message.error(res.message);
+            }
+        })
+        .finally(() => {
+            // loading.value = false;
+        });
     }
     function getQueryParams(){
         let params = Object.assign(queryParams.value);
@@ -198,10 +198,10 @@
         billDate.value = []
         queryParams.value = {
             billCode:'',
-            supplier:'',
+            supplierId:'',
             inquirySuppiler:'',
-            salesman:'',
-            saleDepartment:'',
+            salesmanName:'',
+            saleDepartmenName:'',
         }
         pagination.value.current =1;
         pagination.value.pageSize = 10; 
@@ -254,8 +254,8 @@
         }
     }
     function handleOk(){
-      if(selectedRowKeys.value.length==0){
-        message.error('请勾选数据');
+      if(selectedRowKeys.value.length!==1){
+        message.error('请勾选一条数据数据');
       }else{
         emit('selectCommissionContract', selectionRows.value)
         handleCancel()
@@ -266,10 +266,10 @@
       billDate.value = []
       queryParams.value = {
             billCode:'',
-            supplier:'',
+            supplierId:'',
             inquirySuppiler:'',
-            salesman:'',
-            saleDepartment:'',
+            salesmanName:'',
+            saleDepartmenName:'',
         }
       selectedRowKeys.value = []
       selectionRows.value=[]

+ 129 - 38
src/views/platformBusiness/commissionOrder/components/commissionOrderFormForm.vue

@@ -22,54 +22,51 @@
             </a-col>
             <a-col :span="12">
               <a-form-item label="供应商(supplier)" v-bind="validateInfos.supplier" id="commissionOrderForm-supplier" name="supplier">
-                <ApiSelect
-                  :api="supplierOption"
-                  showSearch
-                  v-model:value="formData.supplier"
-                  optionFilterProp="label"
-                  resultField="records"
-                  labelField="name"
-                />
+                <JSelect   v-model:value="formData.supplierId" :get-option-url="supplierOption" :showField="showField"  @change="handleSupplierChange"></JSelect>
               </a-form-item>
             </a-col>
             <a-col :span="12">
               <a-form-item label="客户(customer)" v-bind="validateInfos.customer" id="commissionOrderForm-customer" name="customer">
-                <ApiSelect
-                  :api="CustomerOption"
-                  showSearch
-                  v-model:value="formData.customer"
-                  optionFilterProp="label"
-                  resultField="records"
-                  labelField="name"
-                />
+                <JSelect   v-model:value="formData.customerId" :get-option-url="CustomerOption" :showField="showField"  @change="handleCustomerChange"></JSelect>
               </a-form-item>
             </a-col>
             <a-col :span="12">
               <a-form-item label="佣金合同(commission contract)" v-bind="validateInfos.commissionContract" id="SaleOrderForm-commissionContract" name="commissionContract">
                 <a-input-search
-                  v-model:value="formData.commissionContract"
+                  v-model:value="formData.commissionContractCode"
                   placeholder=""
                   readonly
                   allow-clear
                   enter-button="Search"
                   AutoComplete="off"
                   @search="onSearchCommissionContract"
+                  :disabled ='commissionOrderFormProductTable.dataSource&&commissionOrderFormProductTable.dataSource.length!==0'
                 />
               </a-form-item>
             </a-col>
+            <a-col :span="12">
+              <a-form-item label="币种(currency)" v-bind="validateInfos.currency" id="commissionContractForm-currency" name="currency">
+                <JDictSelectTag v-model:value="formData.currency" placeholder="请选择" dictCode="currency"  />
+              </a-form-item>
+            </a-col>
             <a-col :span="12">
               <a-form-item label="佣金(commission)" v-bind="validateInfos.commission" id="commissionOrderForm-commission" name="commission">
-                <a-input v-model:value="formData.commission" placeholder="请输入采购员(salesman)" allow-clear  />
+                <a-input v-model:value="formData.commission" placeholder="" allow-clear  disabled/>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item label="佣金比例(commissionRate)" v-bind="validateInfos.commissionRate" id="commissionOrderForm-commissionRate" name="commissionRate">
+                <a-input v-model:value="formData.commissionRate" placeholder="" allow-clear  :disabled="formData.commissionContractCode&&formData.commissionContractCode!==''"/>
               </a-form-item>
             </a-col>
             <a-col :span="12">
               <a-form-item
                 label="销售部门(sale department)"
-                v-bind="validateInfos.saleDepartment"
-                id="commissionOrderForm-saleDepartment"
-                name="saleDepartment"
+                v-bind="validateInfos.saleDepartmen"
+                id="commissionOrderForm-saleDepartmen"
+                name="saleDepartmen"
               >
-                <a-input v-model:value="formData.saleDepartmentName" placeholder="请输入" allow-clear disabled />
+                <a-input v-model:value="formData.saleDepartmenName" placeholder="请输入" allow-clear disabled />
               </a-form-item>
             </a-col>
             <a-col :span="12">
@@ -95,7 +92,7 @@
     <!-- 子表单区域 -->
     <a-tabs v-model:activeKey="activeKey" animated style="padding: 24px; padding-top: 0px">
       <a-tab-pane tab="佣金合同 - 产品明细(product details)" key="commissionOrderFormProduct" :forceRender="true">
-        <a-button type="primary" style="margin-right: 1%;margin-bottom: 1%;" @click="selectProductList"> 选择产品(select products)</a-button>
+        <a-button type="primary" style="margin-right: 1%;margin-bottom: 1%;" @click="selectProductList" :disabled="formData.commissionContractCode!==''"> 选择产品(select products)</a-button>
         <j-vxe-table
           :keep-source="true"
           resizable
@@ -108,6 +105,7 @@
           :rowNumber="true"
           :rowSelection="true"
           asyncRemove
+          @valueChange="changeValues"
         >
           <template #action="props">
             <a-popconfirm title="确定删除吗?" @confirm="handleDelete(props)">
@@ -125,14 +123,14 @@
 <script lang="ts">
   import { defineComponent, ref, reactive, computed, toRaw } from 'vue';
   import { useValidateAntFormAndTable } from '/@/hooks/system/useJvxeMethods';
-  import { queryProductListByMainId, queryDataById, supplierOption, saveOrUpdate,CustomerOption} from '../commissionOrderForm.api';
+  import { queryProductListByMainId, queryDataById, supplierOption, saveOrUpdate,CustomerOption,queryProductListByMainIdFormCon} from '../commissionOrderForm.api';
   import { JVxeTable } from '/@/components/jeecg/JVxeTable';
   import { ProductColumns } from '../commissionOrderForm.data';
   import SelectPrpductModal from '../../../publicComponents/SelectPrpductModal.vue';
   import SelectCommissionContractModal from './SelectCommissionContractModal.vue';
   import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
   import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
-  import { JDictSelectTag, ApiSelect } from '/@/components/Form';
+  import { JDictSelectTag, ApiSelect,JSelect } from '/@/components/Form';
   import { Form, message } from 'ant-design-vue';
   import { useUserStore } from '/@/store/modules/user';
   import moment from 'moment';
@@ -146,7 +144,8 @@
       JUpload,
       JDictSelectTag,
       ApiSelect,
-      SelectCommissionContractModal
+      SelectCommissionContractModal,
+      JSelect
     },
     props: {
       formDisabled: {
@@ -158,6 +157,7 @@
     },
     emits: ['success'],
     setup(props, { emit }) {
+      var showField = ref('currency+name');
       const userStore = useUserStore();
       const loading = ref(false);
       const formRef = ref();
@@ -175,18 +175,22 @@
         status: undefined,
         delFlag: undefined,
         submit: undefined,
+        supplierPayment:undefined,
         billCode: '',
         billDate: moment(new Date()).format('YYYY-MM-DD'),
-        supplier: '',
+        supplierId: '',
         supplierName: '',
+        customerId:'',
+        customerName:'',
         currency: '',
         salesman:'',
         salesmanName:'',
-        saleDepartment:'',
-        saleDepartmentName:'',
+        saleDepartmen:'',
+        saleDepartmenName:'',
         notes: '',
         attachs: '',
-        commissionContract:'',
+        commissionContractCode:'',
+        commissionContract:''
       });
 
       //表单验证
@@ -219,8 +223,8 @@
         activeKey.value = 'commissionOrderFormProduct';
         formData.salesman = userStore.getUserInfo.username;
         formData.salesmanName = userStore.getUserInfo.realname;
-        formData.saleDepartment = userStore.getUserInfo.orgCode;
-        formData.saleDepartmentName = userStore.getUserInfo.orgName;
+        formData.saleDepartmen = userStore.getUserInfo.orgCode;
+        formData.saleDepartmenName = userStore.getUserInfo.orgName;
       }
       async function edit(row) {
         //主表数据
@@ -243,7 +247,7 @@
       }
 
       const { getSubFormAndTableData, transformData } = useValidateAntFormAndTable(activeKey, {
-        purOrderProduct: commissionOrderFormProductTableRef,
+        platCommissionOrderProduct: commissionOrderFormProductTableRef,
       });
 
       async function getFormData() {
@@ -295,22 +299,42 @@
         SelectPrpductModalRef.value.getTable()
       }
       function addProduct(data) {
+        formData.commissionContractCode = ''
+        formData.commissionContract =''
+        formData.currency = ''
+        formData.commissionRate =''
         data.map((item) => {
           item.productClass = item.classId_dictText;
           item.productCode = item.code;
           item.productId = item.id;
           item.id = undefined
+          item.notesChild = ''
         });
         var xTable = commissionOrderFormProductTableRef.value!.getXTable();
         var arrProduct = xTable.data.concat(data);
         commissionOrderFormProductTable.dataSource = arrProduct;
-      }      //产品明细-删除行
+        var arr = commissionOrderFormProductTable.columns
+        arr.map(item=>{
+          if(item.key=='commissionRateChild'){
+            item.type = "input-number"
+          }
+        })
+        commissionOrderFormProductTable.columns=arr
+      }      
+      //产品明细-删除行
       function handleDelete(prop) {
         var xTable = commissionOrderFormProductTableRef.value!.getXTable()
         var newArray = [...xTable.data]
         newArray.splice(prop.rowIndex, 1)
         commissionOrderFormProductTable.dataSource = newArray  
-      }      /**
+        if(commissionOrderFormProductTable.dataSource.length==0){
+          formData.commissionContractCode = ''
+          formData.commissionContract =''
+          formData.currency = ''
+          formData.commissionRate =''
+        }
+      }      
+      /**
        * 值改变事件触发-树控件回调
        * @param key
        * @param value
@@ -321,8 +345,71 @@
       function onSearchCommissionContract(){
         SelectCommissionContractModalRef.value.getTable()
       }
-      function addCommissionContract(){
-
+      function addCommissionContract(data){
+        formData.commissionContractCode = data[0].billCode
+        formData.commissionContract = data[0].id
+        formData.currency = data[0].currency
+        formData.commissionRate = data[0].commissionRate
+        formData.supplierId = data[0].supplierId
+        formData.supplierName = data[0].supplierName
+        getSonListFormCon(data[0].id)
+      }
+      async function getSonListFormCon(id){
+        commissionOrderFormProductTable.dataSource=[]
+        const commissionOrderFormProductDataList = await queryProductListByMainIdFormCon(id);
+        commissionOrderFormProductTable.dataSource = [...commissionOrderFormProductDataList];
+        var arr = commissionOrderFormProductTable.columns
+        arr.map(item=>{
+          if(item.key=='commissionRateChild'){
+            item.type = "normal"
+          }
+        })
+        commissionOrderFormProductTable.columns=arr
+      }
+      function changeValues(prop){
+        if (prop.col.key == 'taxPrice'||prop.col.key == 'quantity') {
+          if (prop.row.taxPrice&&prop.row.quantity) {
+            prop.row.taxMoney = Number(prop.row.taxPrice)*Number(prop.row.quantity);
+            if(prop.row.commissionRateChild){
+              prop.row.commission = Number(prop.row.taxMoney)*Number(prop.row.commissionRateChild)/100
+            }
+          }
+        }
+        if (prop.col.key == 'commissionRateChild') {
+          if (prop.row.taxMoney) {
+            prop.row.commission = Number(prop.row.taxMoney)*Number(prop.row.commissionRateChild)/100
+          }
+        }
+        getMainCommission()
+      }
+      function getMainCommission(){
+        var xTable = commissionOrderFormProductTableRef.value!.getXTable()
+        var newArray = [...xTable.data]
+        var allCommission = 0
+        newArray.map(item=>{
+          allCommission += item.commission&&item.commission!==''?Number(item.commission):0
+        })
+        formData.commission = allCommission
+      }
+      async function handleSupplierChange(prop){
+        if (prop) {
+          var params = { id: prop };
+          var obj = await supplierOption(params);
+          formData.supplierName = obj.records[0].name;
+        } else {
+          formData.supplierId = '';
+          formData.supplierName = '';
+        }
+      }
+      async function handleCustomerChange(prop){
+        if (prop) {
+          var params = { id: prop };
+          var obj = await CustomerOption(params);
+          formData.customerName = obj.records[0].name;
+        } else {
+          formData.customerId = '';
+          formData.customerName = '';
+        }
       }
       return {
         commissionOrderFormProductTableRef,
@@ -349,7 +436,11 @@
         CustomerOption,
         onSearchCommissionContract,
         SelectCommissionContractModalRef,
-        addCommissionContract
+        addCommissionContract,
+        changeValues,
+        showField,
+        handleSupplierChange,
+        handleCustomerChange
       };
     },
   });

+ 0 - 1
src/views/platformBusiness/commissionOrder/components/commissionOrderModal.vue

@@ -27,7 +27,6 @@
       //表单赋值
       const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
         setModalProps({confirmLoading: false,showCancelBtn:data?.showFooter,showOkBtn:data?.showFooter});
-        debugger
           isUpdate.value = !!data?.isUpdate;
           formDisabled.value = !data?.showFooter;
           title.value = data?.isUpdate ? (unref(formDisabled) ? '详情' : '编辑') : '新增';