|
|
@@ -9,11 +9,24 @@
|
|
|
:title="isDetail ? '预付款详情' : (isUpdate ? '修改预付款' : '新增预付款')"
|
|
|
@update:visible="updateVisible"
|
|
|
>
|
|
|
+ <div class="switch_left" v-if="isDetail">
|
|
|
+ <ul>
|
|
|
+ <li
|
|
|
+ v-for="item in tabOptions"
|
|
|
+ :key="item.key"
|
|
|
+ :class="{ active: activeComp == item.key }"
|
|
|
+ @click="activeComp = item.key"
|
|
|
+ >
|
|
|
+ {{ item.name }}
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
<el-form
|
|
|
ref="form"
|
|
|
:model="form"
|
|
|
:rules="rules"
|
|
|
label-width="120px"
|
|
|
+ v-show="activeComp == 'main'"
|
|
|
>
|
|
|
<!-- 基本信息 -->
|
|
|
<headerTitle title="基本信息" size="16px"></headerTitle>
|
|
|
@@ -63,20 +76,14 @@
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="供应商名称:" prop="contactName">
|
|
|
- <el-select
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
v-model="form.contactName"
|
|
|
+ @click.native="$refs.parentRef.open()"
|
|
|
placeholder="请选择"
|
|
|
- style="width: 100%"
|
|
|
+ readonly
|
|
|
:disabled="isDetail"
|
|
|
- filterable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in supplierOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
@@ -94,7 +101,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="来源编码:" prop="sourceCode">
|
|
|
- <el-select
|
|
|
+ <!-- <el-select
|
|
|
v-model="form.sourceCode"
|
|
|
placeholder="请选择"
|
|
|
style="width: 100%"
|
|
|
@@ -107,7 +114,15 @@
|
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
|
/>
|
|
|
- </el-select>
|
|
|
+ </el-select> -->
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ v-model="form.sourceCode"
|
|
|
+ @click.native="openSource"
|
|
|
+ placeholder="请选择"
|
|
|
+ :disabled="isDetail"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -126,7 +141,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="付款条件:" prop="paymentConditionName">
|
|
|
- <el-select
|
|
|
+ <!-- <el-select
|
|
|
v-model="form.paymentConditionName"
|
|
|
placeholder="请选择"
|
|
|
style="width: 100%"
|
|
|
@@ -138,7 +153,15 @@
|
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
|
/>
|
|
|
- </el-select>
|
|
|
+ </el-select> -->
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ v-model="form.paymentConditionName"
|
|
|
+ @click.native="openReceiveTerms"
|
|
|
+ placeholder="请选择"
|
|
|
+ :disabled="isDetail"
|
|
|
+ readonly
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -155,7 +178,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="附件:" prop="files">
|
|
|
- <fileMain v-model="form.files" :disabled="isDetail"></fileMain>
|
|
|
+ <fileMain v-model="form.files" :type="isDetail ? 'view' : 'add'"></fileMain>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -169,6 +192,28 @@
|
|
|
:isSelected="false"
|
|
|
cacheKeyUrl="eos-prepayment-inventoryTableDetails"
|
|
|
></inventoryTableDetails>
|
|
|
+
|
|
|
+ <!-- 付款信息 -->
|
|
|
+ <div style="margin-top: 20px" v-if="isDetail">
|
|
|
+ <headerTitle title="付款信息"></headerTitle>
|
|
|
+ <div style="margin: 10px 0; font-size: 14px; color: #606266;">
|
|
|
+ <span>预付金额:{{ form.amount || 0 }} 元</span>
|
|
|
+ <span style="margin-left: 20px;">已付金额:{{ paidAmount }} 元</span>
|
|
|
+ <span style="margin-left: 20px;">未付金额:{{ unpaidAmount }} 元</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <ele-pro-table
|
|
|
+ ref="table"
|
|
|
+ :needPage="false"
|
|
|
+ :columns="columns"
|
|
|
+ :datasource="form.detailList"
|
|
|
+ :toolkit="[]"
|
|
|
+ >
|
|
|
+ <template v-slot:files="{ row: r }">
|
|
|
+ <fileMain v-model="r.files" type="view" :limit="1"></fileMain>
|
|
|
+ </template>
|
|
|
+ </ele-pro-table>
|
|
|
+ </div>
|
|
|
</el-form>
|
|
|
|
|
|
<template v-slot:footer>
|
|
|
@@ -176,12 +221,53 @@
|
|
|
<el-button @click="updateVisible(false)">关闭</el-button>
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
- <el-button type="primary" :loading="loading" @click="save">
|
|
|
- 确定
|
|
|
+ <el-button type="primary" :loading="loading" @click="save(0)">
|
|
|
+ 保存
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" :loading="loading" @click="save(1)">
|
|
|
+ 提交
|
|
|
</el-button>
|
|
|
<el-button @click="updateVisible(false)">取消</el-button>
|
|
|
</template>
|
|
|
</template>
|
|
|
+ <contractListDialog
|
|
|
+ ref="selectContractRef"
|
|
|
+ @changeParent="changeContract"
|
|
|
+ :isChange="true"
|
|
|
+ :type="2"
|
|
|
+ :contactData="{
|
|
|
+ id: form.contactId
|
|
|
+ }"
|
|
|
+ ></contractListDialog>
|
|
|
+ <!-- 采购订单 -->
|
|
|
+ <orderListDialog
|
|
|
+ ref="orderListDialogRef"
|
|
|
+ :isMy="true"
|
|
|
+ :contactData="{
|
|
|
+ id: form.contactId
|
|
|
+ }"
|
|
|
+ @changeParent="changeOrder"
|
|
|
+ ></orderListDialog>
|
|
|
+ <!-- 供应商 -->
|
|
|
+ <parentList
|
|
|
+ ref="parentRef"
|
|
|
+ @changeParent="changeParent"
|
|
|
+ :classType="2"
|
|
|
+ ></parentList>
|
|
|
+ <!-- 付款条件 -->
|
|
|
+ <receiveTermsDialog ref="receiveTermsDialogRef" conditionType="terms" @changeParent="changeReceiveTerms"></receiveTermsDialog>
|
|
|
+ <bpmDetail
|
|
|
+ v-if="activeComp === 'bpm' && form.processInstanceId"
|
|
|
+ :id="form.processInstanceId"
|
|
|
+ ></bpmDetail>
|
|
|
+
|
|
|
+ <process-submit-dialog
|
|
|
+ :isNotNeedProcess="false"
|
|
|
+ :processSubmitDialogFlag.sync="processSubmitDialogFlag"
|
|
|
+ v-if="processSubmitDialogFlag"
|
|
|
+ ref="processSubmitDialogRef"
|
|
|
+ @reload="reload"
|
|
|
+ ></process-submit-dialog>
|
|
|
</ele-modal>
|
|
|
</template>
|
|
|
|
|
|
@@ -189,25 +275,45 @@
|
|
|
import headerTitle from '@/components/header-title';
|
|
|
import inventoryTableDetails from '@/BIZComponents/inventoryTableDetails.vue';
|
|
|
import fileMain from '@/components/addDoc/index.vue';
|
|
|
- import { addPrepayment, updatePrepayment } from '@/api/financialManage/prepayment';
|
|
|
+ import { addPrepayment, updatePrepayment, getPrepaymentInfo } from '@/api/financialManage/prepayment';
|
|
|
import { getTreeByPid } from '@/api/classifyManage';
|
|
|
+ import parentList from '@/views/purchasingManage/supplierManage/components/parentList.vue';
|
|
|
+ import contractListDialog from '@/views/saleManage/saleOrder/components/contractListDialog.vue';
|
|
|
+ import orderListDialog from '@/views/purchasingManage/purchaseOrder/invoice/components/orderListDialog.vue';
|
|
|
+ import { getByIdCondition } from '@/api/purchasingManage/purchaseOrder';
|
|
|
+ import receiveTermsDialog from '@/views/financialManage/advanceReceipt/components/receiveTermsDialog.vue';
|
|
|
+ import bpmDetail from '@/views/bpm/processInstance/detail.vue';
|
|
|
+ import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
headerTitle,
|
|
|
inventoryTableDetails,
|
|
|
- fileMain
|
|
|
+ fileMain,
|
|
|
+ parentList,
|
|
|
+ contractListDialog,
|
|
|
+ orderListDialog,
|
|
|
+ receiveTermsDialog,
|
|
|
+ bpmDetail,
|
|
|
+ processSubmitDialog
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ activeComp: 'main',
|
|
|
visible: false,
|
|
|
loading: false,
|
|
|
isUpdate: false,
|
|
|
isDetail: false,
|
|
|
+ processSubmitDialogFlag: false,
|
|
|
supplierOptions: [],
|
|
|
sourceCodeOptions: [],
|
|
|
paymentTermsOptions: [],
|
|
|
accountingSubjectList: [],
|
|
|
+ businessId: '',
|
|
|
+ tabOptions: [
|
|
|
+ { key: 'main', name: '预付款项' },
|
|
|
+ { key: 'bpm', name: '流程详情' }
|
|
|
+ ],
|
|
|
form: {
|
|
|
id: null,
|
|
|
code: '',
|
|
|
@@ -215,6 +321,7 @@
|
|
|
prepayTotalPrice: '',
|
|
|
accountingSubjectId: '1779719367139791007',
|
|
|
accountingSubjectCode: '1123',
|
|
|
+ accountingSubjectName: '预付账款',
|
|
|
contactName: '',
|
|
|
contactId: '',
|
|
|
sourceType: 3,
|
|
|
@@ -234,7 +341,47 @@
|
|
|
sourceType: [{ required: true, message: '请选择来源类型', trigger: 'change' }],
|
|
|
sourceCode: [{ required: true, message: '请选择来源编码', trigger: 'change' }],
|
|
|
fundType: [{ required: true, message: '请选择款项类型', trigger: 'change' }]
|
|
|
- }
|
|
|
+ },
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ type: 'index',
|
|
|
+ label: '序号',
|
|
|
+ width: 55,
|
|
|
+ align: 'center',
|
|
|
+ fixed: 'left'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'paidDate',
|
|
|
+ label: '付款时间',
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 160
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'paidTotalPrice',
|
|
|
+ label: '已付金额',
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 140
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'paymentTypeName',
|
|
|
+ label: '支付类型',
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 140
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'files',
|
|
|
+ label: '附件',
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 120,
|
|
|
+ slot: 'files'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'remark',
|
|
|
+ label: '备注',
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 140
|
|
|
+ }
|
|
|
+ ]
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
@@ -253,10 +400,11 @@
|
|
|
this.isUpdate = type === 'edit';
|
|
|
this.isDetail = type === 'detail';
|
|
|
if ((this.isUpdate || this.isDetail) && row) {
|
|
|
- this.form = { ...row };
|
|
|
+ this.form = await getPrepaymentInfo(row.id);
|
|
|
+ this.businessId = row.id;
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs.inventoryTableDetailsRef &&
|
|
|
- this.$refs.inventoryTableDetailsRef.putTableValue(row.productList || []);
|
|
|
+ this.$refs.inventoryTableDetailsRef.putTableValue(this.form || []);
|
|
|
});
|
|
|
} else {
|
|
|
this.resetForm();
|
|
|
@@ -265,14 +413,65 @@
|
|
|
this.$refs.inventoryTableDetailsRef &&
|
|
|
this.$refs.inventoryTableDetailsRef.putTableValue([]);
|
|
|
});
|
|
|
- this.form.accountingSubjectId = '1779719367139792005';
|
|
|
- this.form.accountingSubjectCode = '2203';
|
|
|
+ this.form.accountingSubjectId = '1779719367139791007';
|
|
|
+ this.form.accountingSubjectCode = '1123';
|
|
|
+ this.form.accountingSubjectName = '预付账款';
|
|
|
}
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs.form && this.$refs.form.clearValidate();
|
|
|
});
|
|
|
},
|
|
|
|
|
|
+ openReceiveTerms() {
|
|
|
+ this.$refs.receiveTermsDialogRef.open();
|
|
|
+ },
|
|
|
+
|
|
|
+ changeReceiveTerms(row, index) {
|
|
|
+ console.log('changeReceiveTerms~~~', row)
|
|
|
+ this.form.paymentConditionId = row.id;
|
|
|
+ this.form.paymentConditionName = row.name;
|
|
|
+ console.log('changeReceiveTerms!!!', this.form)
|
|
|
+ this.$forceUpdate()
|
|
|
+ },
|
|
|
+
|
|
|
+ async changeContract(row) {
|
|
|
+ console.log(row, 'dadas');
|
|
|
+ this.form.sourceCode = row.contractNumber;
|
|
|
+ this.form.sourceId = row.id;
|
|
|
+ const { productList, receiptPaymentList, contractVO } = await getDetail(
|
|
|
+ row.id
|
|
|
+ );
|
|
|
+
|
|
|
+ this.$refs.inventoryTableDetailsRef.putTableValue({ productList });
|
|
|
+ this.form.prepayTotalPrice = contractVO.discountTotalPrice;
|
|
|
+ },
|
|
|
+
|
|
|
+ async changeOrder(row) {
|
|
|
+ this.form.sourceCode = row.orderNo;
|
|
|
+ this.form.sourceId = row.id;
|
|
|
+ const { productList, receiptPaymentList, payAmount } =
|
|
|
+ await getByIdCondition(row.id, 2);
|
|
|
+
|
|
|
+ this.$refs.inventoryTableDetailsRef.putTableValue({ productList });
|
|
|
+ this.form.prepayTotalPrice = payAmount;
|
|
|
+ },
|
|
|
+
|
|
|
+ openSource() {
|
|
|
+ if (!this.form.contactName) {
|
|
|
+ this.$message.error('请选择供应商');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!this.form.sourceType) {
|
|
|
+ this.$message.error('请选择来源类型');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (this.form.sourceType == 3) {
|
|
|
+ this.$refs.orderListDialogRef.open()
|
|
|
+ } else {
|
|
|
+ this.$refs.selectContractRef.open();
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
//获取分类管理中的数据
|
|
|
async getClassifyList(id, listName) {
|
|
|
let res = await getTreeByPid(id);
|
|
|
@@ -280,8 +479,14 @@
|
|
|
},
|
|
|
|
|
|
changeSubjectInfo(val) {
|
|
|
- const { code } = this.$refs.treeSelect.getNodeByValue(val);
|
|
|
+ const { code, name } = this.$refs.treeSelect.getNodeByValue(val);
|
|
|
this.form.accountingSubjectCode = code;
|
|
|
+ this.form.accountingSubjectName = name;
|
|
|
+ },
|
|
|
+
|
|
|
+ async changeParent(obj) {
|
|
|
+ this.form.contactName = obj.name;
|
|
|
+ this.form.contactId = obj.id;
|
|
|
},
|
|
|
|
|
|
resetForm() {
|
|
|
@@ -292,6 +497,7 @@
|
|
|
prepayTotalPrice: '',
|
|
|
accountingSubjectId: '1779719367139791007',
|
|
|
accountingSubjectCode: '1123',
|
|
|
+ accountingSubjectName: '预付账款',
|
|
|
contactName: '',
|
|
|
contactId: '',
|
|
|
sourceType: 3,
|
|
|
@@ -305,7 +511,7 @@
|
|
|
};
|
|
|
},
|
|
|
|
|
|
- save() {
|
|
|
+ save(type) {
|
|
|
this.$refs.form.validate((valid) => {
|
|
|
if (!valid) return;
|
|
|
this.loading = true;
|
|
|
@@ -320,6 +526,11 @@
|
|
|
.then(() => {
|
|
|
this.loading = false;
|
|
|
this.$message.success(this.isUpdate ? '修改成功' : '新增成功');
|
|
|
+ console.log('sub', type)
|
|
|
+ if(type == 1) {
|
|
|
+ console.log('提交', res)
|
|
|
+ this.sub(res);
|
|
|
+ }
|
|
|
this.updateVisible(false);
|
|
|
this.$emit('done');
|
|
|
})
|
|
|
@@ -329,6 +540,47 @@
|
|
|
});
|
|
|
},
|
|
|
|
|
|
+ async sub(res) {
|
|
|
+ const data = await getPrepaymentInfo(
|
|
|
+ this.businessId || res
|
|
|
+ );
|
|
|
+ this.processSubmitDialogFlag = true;
|
|
|
+ let key = 'fin_prepay_approve';
|
|
|
+ this.$nextTick(() => {
|
|
|
+ let params = {
|
|
|
+ businessId: data.id,
|
|
|
+ businessKey: key,
|
|
|
+ formCreateUserId: data.createUserId,
|
|
|
+ variables: {
|
|
|
+ businessCode: data.code,
|
|
|
+ businessName: data.contactName,
|
|
|
+ fundType: data.fundTypeName,
|
|
|
+ sourceType: data.sourceType,
|
|
|
+ businessType: '预付款项'
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ this.$refs.processSubmitDialogRef.init(params);
|
|
|
+ });
|
|
|
+
|
|
|
+ // submit({
|
|
|
+ // businessId: this.businessId || res,
|
|
|
+ // receiveType: this.form.receiveType,
|
|
|
+ // sourceType,
|
|
|
+ // variables: {
|
|
|
+ // storemanIds
|
|
|
+ // }
|
|
|
+ // }).then((res) => {
|
|
|
+ // this.cancel();
|
|
|
+ // this.$emit('done');
|
|
|
+ // });
|
|
|
+ },
|
|
|
+
|
|
|
+ reload() {
|
|
|
+ this.updateVisible(false);
|
|
|
+ this.$emit('done');
|
|
|
+ },
|
|
|
+
|
|
|
updateVisible(value) {
|
|
|
this.visible = value;
|
|
|
if (!value) {
|