|
@@ -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
|
|
|
};
|
|
|
},
|
|
|
});
|