|
|
@@ -15,9 +15,7 @@
|
|
|
placeholder="请输入"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="采购计划单名称"
|
|
|
- prop="planCode">
|
|
|
+ <el-form-item label="采购计划单名称" prop="planCode">
|
|
|
<el-input
|
|
|
@click.native="handPurchasePlan"
|
|
|
v-model="form.purchasePlanName"
|
|
|
@@ -35,7 +33,6 @@
|
|
|
clearable
|
|
|
v-model="form.sourceType"
|
|
|
:disabled="isFlag"
|
|
|
-
|
|
|
>
|
|
|
<!-- v-if="form.sourceType != 1" -->
|
|
|
</DictSelection>
|
|
|
@@ -60,12 +57,18 @@
|
|
|
<el-form-item
|
|
|
label="计价方式"
|
|
|
prop="pricingWay"
|
|
|
- style="margin-bottom: 22px">
|
|
|
- <el-radio-group v-model="form.pricingWay" @change="changePricingWay" :disabled="!!form.contractId">
|
|
|
- <el-radio v-for="item in pricingWayList" :label="item.id">{{ item.name }}</el-radio>
|
|
|
+ style="margin-bottom: 22px"
|
|
|
+ >
|
|
|
+ <el-radio-group
|
|
|
+ v-model="form.pricingWay"
|
|
|
+ @change="changePricingWay"
|
|
|
+ :disabled="!!form.contractId"
|
|
|
+ >
|
|
|
+ <el-radio v-for="item in pricingWayList" :label="item.id">{{
|
|
|
+ item.name
|
|
|
+ }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item
|
|
|
@@ -93,18 +96,18 @@
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item> -->
|
|
|
-<!-- <el-form-item-->
|
|
|
-<!-- label="采购订单类型"-->
|
|
|
-<!-- prop="purchaseType"-->
|
|
|
-<!-- style="margin-bottom: 22px"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <DictSelection-->
|
|
|
-<!-- dictName="采购订单类型"-->
|
|
|
-<!-- clearable-->
|
|
|
-<!-- v-model="form.purchaseType"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- </DictSelection>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
+ <!-- <el-form-item-->
|
|
|
+ <!-- label="采购订单类型"-->
|
|
|
+ <!-- prop="purchaseType"-->
|
|
|
+ <!-- style="margin-bottom: 22px"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- <DictSelection-->
|
|
|
+ <!-- dictName="采购订单类型"-->
|
|
|
+ <!-- clearable-->
|
|
|
+ <!-- v-model="form.purchaseType"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- </DictSelection>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
<el-form-item label="结算方式" prop="settlementMode">
|
|
|
<DictSelection
|
|
|
dictName="结算方式"
|
|
|
@@ -123,13 +126,13 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="orderFiles" label="附件">
|
|
|
- <fileMain v-model="form.orderFiles" ></fileMain>
|
|
|
-<!-- <fileUpload-->
|
|
|
-<!-- v-model="form.orderFiles"-->
|
|
|
-<!-- module="main"-->
|
|
|
-<!-- :showLib="false"-->
|
|
|
-<!-- :limit="10"-->
|
|
|
-<!-- />-->
|
|
|
+ <fileMain v-model="form.orderFiles"></fileMain>
|
|
|
+ <!-- <fileUpload-->
|
|
|
+ <!-- v-model="form.orderFiles"-->
|
|
|
+ <!-- module="main"-->
|
|
|
+ <!-- :showLib="false"-->
|
|
|
+ <!-- :limit="10"-->
|
|
|
+ <!-- />-->
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -141,7 +144,7 @@
|
|
|
prop="partaName"
|
|
|
style="margin-bottom: 22px"
|
|
|
>
|
|
|
- <el-input clearable v-model="form.partaName" placeholder="请输入"/>
|
|
|
+ <el-input clearable v-model="form.partaName" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
label="采购方统一社会信用代码"
|
|
|
@@ -184,7 +187,7 @@
|
|
|
prop="partaFax"
|
|
|
style="margin-bottom: 22px"
|
|
|
>
|
|
|
- <el-input clearable v-model="form.partaFax" placeholder="请输入"/>
|
|
|
+ <el-input clearable v-model="form.partaFax" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
label=" 采购方Email"
|
|
|
@@ -257,10 +260,10 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="partbTel" label="供应商联系电话">
|
|
|
- <el-input clearable v-model="form.partbTel" placeholder="请输入"/>
|
|
|
+ <el-input clearable v-model="form.partbTel" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="partbFax" label="供应商传真">
|
|
|
- <el-input clearable v-model="form.partbFax" placeholder="请输入"/>
|
|
|
+ <el-input clearable v-model="form.partbFax" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item
|
|
|
@@ -289,14 +292,47 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
- <headerTitle title="产品清单" style="margin-top: 30px"></headerTitle>
|
|
|
+ <el-tabs v-model="activeName" style="margin-top: 15px" type="border-card">
|
|
|
+ <el-tab-pane label="物品清单" name="1">
|
|
|
+ <inventoryTable
|
|
|
+ ref="inventoryTable"
|
|
|
+ @orderDiscountAmount="orderDiscountAmount"
|
|
|
+ :pricingWay="form.pricingWay"
|
|
|
+ :is-show-supplier-mark="true"
|
|
|
+ :isContractId="!!form.contractId"
|
|
|
+ >
|
|
|
+ </inventoryTable>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane
|
|
|
+ label="带料清单"
|
|
|
+ name="2"
|
|
|
+ v-if="['3', '4', '5', '6'].includes(form.sourceType)"
|
|
|
+ >
|
|
|
+ <inventoryTable
|
|
|
+ ref="rawDetailListRef"
|
|
|
+ :pricingWay="form.pricingWay"
|
|
|
+ :is-show-supplier-mark="true"
|
|
|
+ :isContractId="!!form.contractId"
|
|
|
+ :detailType="1"
|
|
|
+ >
|
|
|
+ </inventoryTable>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane
|
|
|
+ label="产出清单"
|
|
|
+ name="2"
|
|
|
+ v-if="['3', '4', '5', '6'].includes(form.sourceType)"
|
|
|
+ >
|
|
|
+ <inventoryTable
|
|
|
+ ref="outputDetailListRef"
|
|
|
+ :pricingWay="form.pricingWay"
|
|
|
+ :is-show-supplier-mark="true"
|
|
|
+ :isContractId="!!form.contractId"
|
|
|
+ :detailType="2"
|
|
|
+ >
|
|
|
+ </inventoryTable>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
|
|
|
- <inventoryTable ref="inventoryTable"
|
|
|
- @orderDiscountAmount="orderDiscountAmount"
|
|
|
- :pricingWay="form.pricingWay"
|
|
|
- :is-show-supplier-mark="true"
|
|
|
- :isContractId='!!form.contractId'>
|
|
|
- </inventoryTable>
|
|
|
<el-row style="margin-top: 20px">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item
|
|
|
@@ -304,10 +340,14 @@
|
|
|
prop="payAmount"
|
|
|
style="margin-bottom: 22px"
|
|
|
>
|
|
|
- <el-input clearable v-model="form.payAmount" :disabled="!!form.contractId||!allcountAmount"
|
|
|
- type="number"
|
|
|
- @blur="discountInput"
|
|
|
- placeholder="请输入">
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ v-model="form.payAmount"
|
|
|
+ :disabled="!!form.contractId || !allcountAmount"
|
|
|
+ type="number"
|
|
|
+ @blur="discountInput"
|
|
|
+ placeholder="请输入"
|
|
|
+ >
|
|
|
<template slot="append">元</template>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
@@ -358,572 +398,586 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {emailReg, numberReg} from 'ele-admin';
|
|
|
-import inventoryTable from './inventoryTable.vue';
|
|
|
-import fileUpload from '@/components/upload/fileUpload';
|
|
|
-import dictMixins from '@/mixins/dictMixins';
|
|
|
-import personSelect from '@/components/CommomSelect/person-select.vue';
|
|
|
-import parentList from '@/views/bpm/handleTask/components/quotation/parentList.vue';
|
|
|
-import {getDetail} from '@/api/bpm/components/contractManage/contractBook';
|
|
|
-import headList from '@/components/headList';
|
|
|
-
|
|
|
-import {getpurchaseorderDetail} from '@/api/bpm/components/purchasingManage/purchaseOrder';
|
|
|
-import {getcontactlink} from '@/api/bpm/components/saleManage/businessOpportunity.js';
|
|
|
-
|
|
|
-import contractListDialog from '@/views/bpm/handleTask/components/saleOrder/contractListDialog.vue';
|
|
|
-import {listOrganizations} from '@/api/system/organization';
|
|
|
-import {copyObj} from '@/utils/util';
|
|
|
-import {getpurchaseinquiry} from "@/api/bpm/components/purchasingManage/inquiryManage";
|
|
|
-import InquiryManageList from "@/views/bpm/handleTask/components/inquiryManage/inquiryManage-list.vue";
|
|
|
-import {getplanDetail, getPurchasePlanByContractIdAPI} from "@/api/bpm/components/purchasingManage/purchasePlanManage";
|
|
|
-import fileMain from "@/components/addDoc/index.vue";
|
|
|
-export default {
|
|
|
- mixins: [dictMixins],
|
|
|
- components: {
|
|
|
- fileMain,
|
|
|
- InquiryManageList,
|
|
|
- fileUpload,
|
|
|
- contractListDialog,
|
|
|
- inventoryTable,
|
|
|
- parentList,
|
|
|
- personSelect,
|
|
|
- headList
|
|
|
- },
|
|
|
- props: {
|
|
|
- businessId: {
|
|
|
- default: ''
|
|
|
- }
|
|
|
- },
|
|
|
- data() {
|
|
|
- let formDef = {
|
|
|
- id: '',
|
|
|
- contractId: '',
|
|
|
- orderFiles: [],
|
|
|
- contractName: '',
|
|
|
- deliveryDate: '',
|
|
|
- payAmount: '',
|
|
|
- projectName: '',
|
|
|
- projectId: '',
|
|
|
- receiveAddress: '',
|
|
|
- sourceType: '',
|
|
|
- sourceTypeName: '',
|
|
|
- pricingWay: 1,
|
|
|
- remark: '',
|
|
|
- saleType: '',
|
|
|
- saleTypeName: '',
|
|
|
- totalAmount: '',
|
|
|
- settlementMode: '',
|
|
|
- settlementModeName: '',
|
|
|
- partaUnifiedSocialCreditCode: '',
|
|
|
- partbUnifiedSocialCreditCode: '',
|
|
|
- partaAddress: '',
|
|
|
- partaEmail: '',
|
|
|
- partaFax: '',
|
|
|
- partaId: '',
|
|
|
- partaLinkId: '',
|
|
|
- partaLinkName: '',
|
|
|
- partaName: '',
|
|
|
- partaTel: '',
|
|
|
- partbAddress: '',
|
|
|
- partbEmail: '',
|
|
|
- partbFax: '',
|
|
|
- partbId: '',
|
|
|
- partbLinkId: '',
|
|
|
- partbLinkName: '',
|
|
|
- partbName: '',
|
|
|
- partbTel: '',
|
|
|
- purchasePlanId: '',
|
|
|
- purchasePlanNo: '',
|
|
|
- purchasePlanName: '',
|
|
|
-
|
|
|
- };
|
|
|
-
|
|
|
- return {
|
|
|
- clearing: false, //是否清除合同
|
|
|
- isFlag: false, //需求类型是否可以修改
|
|
|
- payWayOptions: [],
|
|
|
- delDetailIds: [],
|
|
|
- linkNameOptions: [],
|
|
|
- visible: false,
|
|
|
- title: '',
|
|
|
- row: {},
|
|
|
- activeName: 'base',
|
|
|
- pricingWayList: [
|
|
|
- {id: 1, name: '按数量计价'},
|
|
|
- {id: 2, name: '按重量计价'}
|
|
|
- ],
|
|
|
- formDef,
|
|
|
- form: copyObj(formDef),
|
|
|
- tableBankData: [],
|
|
|
- tableLinkData: [],
|
|
|
- // 组织机构树形结构数据
|
|
|
- groupTreeData: [],
|
|
|
- groupData: [],
|
|
|
- rules: {
|
|
|
- deliveryDate: [
|
|
|
- {required: true, message: '请选择交货日期', trigger: 'change'}
|
|
|
- ],
|
|
|
- // purchaseType: [
|
|
|
- // {required: true, message: '请选择采购订单类型', trigger: 'change'}
|
|
|
- // ],
|
|
|
- settlementMode: [
|
|
|
- {required: true, message: '请选择结算方式', trigger: 'change'}
|
|
|
- ],
|
|
|
- partaName: [
|
|
|
- {required: true, message: '请选择供应商名称', trigger: 'change'}
|
|
|
- ],
|
|
|
- partaLinkName: [
|
|
|
- {required: true, message: '请选择供应商联系人', trigger: 'change'}
|
|
|
- ],
|
|
|
- acceptUnpack: [
|
|
|
- {required: true, message: '请选择是否接受', trigger: 'change'}
|
|
|
- ],
|
|
|
- sourceType: [
|
|
|
- {required: true, message: '请选择需求类型', trigger: 'change'}
|
|
|
- ],
|
|
|
- partaTel: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- pattern: numberReg,
|
|
|
- message: '请输入供应商联系电话',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
-
|
|
|
- partbName: [
|
|
|
- {required: true, message: '请输入供采购方名称', trigger: 'change'}
|
|
|
- ],
|
|
|
- partbLinkName: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入供采购方联系人',
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- partbTel: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- pattern: numberReg,
|
|
|
- message: '请输入供采购方联系电话',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- partaEmail: [
|
|
|
- {pattern: emailReg, message: '邮箱格式不正确', trigger: 'blur'}
|
|
|
- ]
|
|
|
- },
|
|
|
-
|
|
|
- // 提交状态
|
|
|
- loading: false,
|
|
|
- // 是否是修改
|
|
|
- isUpdate: false
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- allcountAmount() {
|
|
|
- return this.$store.state.order.allcountAmount;
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- created() {
|
|
|
- this.getpurchaseorderDetail(this.businessId);
|
|
|
- this.getGroupAll();
|
|
|
- },
|
|
|
-
|
|
|
- methods: {
|
|
|
- // 选择负责人部门
|
|
|
- change_principalDep(id) {
|
|
|
- const info = this.groupData.find((e) => e.id == id);
|
|
|
- this.form.requireDeptName = info.name;
|
|
|
- // this.form.requireUserId = '';
|
|
|
- // this.form.requireUserName = '';
|
|
|
- this.$set(this.form, 'requireUserId', '');
|
|
|
- this.$set(this.form, 'requireUserName', '');
|
|
|
- // 根据部门获取人员
|
|
|
-
|
|
|
- this.getrequireUser(id);
|
|
|
- },
|
|
|
- //切换计价方式重新算费用
|
|
|
- changePricingWay() {
|
|
|
- this.$refs.inventoryTable.getTotalPrice()
|
|
|
- },
|
|
|
- //选择采购计划
|
|
|
- handPurchasePlan() {
|
|
|
- this.$refs.inquiryManageRef.open(this.form.planCode);
|
|
|
- },
|
|
|
-//选择采购计划回调
|
|
|
- async changeInquiryManageList(data) {
|
|
|
- this.form.purchasePlanId = data.id;
|
|
|
- this.form.purchasePlanNo = data.planCode;
|
|
|
- this.form.purchasePlanName = data.planName;
|
|
|
-
|
|
|
-
|
|
|
- let info = await getplanDetail(data.id)
|
|
|
- let cusInfo = {}
|
|
|
- this.$set(this.form, 'purchasePlanName', data.planName);
|
|
|
- this.$set(this.form, 'purchasePlanId', data.id);
|
|
|
- this.$set(this.form, 'purchasePlanNo', data.planCode);
|
|
|
- let form = {
|
|
|
- contractVO: {
|
|
|
- ...this.form
|
|
|
- },
|
|
|
- productList: info.detailList || []
|
|
|
- }
|
|
|
-
|
|
|
- this.$refs.inventoryTable &&
|
|
|
- this.$refs.inventoryTable.putTableValue(form.productList);
|
|
|
- await this.getLinkInfo(cusInfo.base.id)
|
|
|
-
|
|
|
+ import { emailReg, numberReg } from 'ele-admin';
|
|
|
+ import inventoryTable from './inventoryTable.vue';
|
|
|
+ import fileUpload from '@/components/upload/fileUpload';
|
|
|
+ import dictMixins from '@/mixins/dictMixins';
|
|
|
+ import personSelect from '@/components/CommomSelect/person-select.vue';
|
|
|
+ import parentList from '@/views/bpm/handleTask/components/quotation/parentList.vue';
|
|
|
+ import { getDetail } from '@/api/bpm/components/contractManage/contractBook';
|
|
|
+ import headList from '@/components/headList';
|
|
|
+
|
|
|
+ import { getpurchaseorderDetail } from '@/api/bpm/components/purchasingManage/purchaseOrder';
|
|
|
+ import { getcontactlink } from '@/api/bpm/components/saleManage/businessOpportunity.js';
|
|
|
+
|
|
|
+ import contractListDialog from '@/views/bpm/handleTask/components/saleOrder/contractListDialog.vue';
|
|
|
+ import { listOrganizations } from '@/api/system/organization';
|
|
|
+ import { copyObj } from '@/utils/util';
|
|
|
+ import { getpurchaseinquiry } from '@/api/bpm/components/purchasingManage/inquiryManage';
|
|
|
+ import InquiryManageList from '@/views/bpm/handleTask/components/inquiryManage/inquiryManage-list.vue';
|
|
|
+ import {
|
|
|
+ getplanDetail,
|
|
|
+ getPurchasePlanByContractIdAPI
|
|
|
+ } from '@/api/bpm/components/purchasingManage/purchasePlanManage';
|
|
|
+ import fileMain from '@/components/addDoc/index.vue';
|
|
|
+ export default {
|
|
|
+ mixins: [dictMixins],
|
|
|
+ components: {
|
|
|
+ fileMain,
|
|
|
+ InquiryManageList,
|
|
|
+ fileUpload,
|
|
|
+ contractListDialog,
|
|
|
+ inventoryTable,
|
|
|
+ parentList,
|
|
|
+ personSelect,
|
|
|
+ headList
|
|
|
},
|
|
|
- // //选择需求来源类型
|
|
|
- // chaengSource(data) {
|
|
|
- // this.form.sourceType = data?.dictValue;
|
|
|
- // },
|
|
|
- getrequireUser(groupId) {
|
|
|
- if (groupId) {
|
|
|
- this.$refs.directorRef.getList({groupId});
|
|
|
+ props: {
|
|
|
+ businessId: {
|
|
|
+ default: ''
|
|
|
}
|
|
|
},
|
|
|
- salesmanChange(val, info) {
|
|
|
- this.$set(this.form, 'requireUserId', val);
|
|
|
- this.$set(this.form, 'requireUserName', info.name);
|
|
|
- // this.form.requireUserName = info.name;
|
|
|
- },
|
|
|
- // 获取公司数据
|
|
|
- getGroupAll() {
|
|
|
- listOrganizations().then((list) => {
|
|
|
- this.groupData = list;
|
|
|
- this.groupTreeData = this.$util.toTreeData({
|
|
|
- data: list,
|
|
|
- idField: 'id',
|
|
|
- parentIdField: 'parentId'
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
- discountInput() {
|
|
|
- this.$refs.inventoryTable.discountInputByOrder(this.form.payAmount)
|
|
|
- },
|
|
|
- //产品清单修改单价或者数量重置优惠金额
|
|
|
- orderDiscountAmount(val=0){
|
|
|
- this.form.payAmount = val
|
|
|
- },
|
|
|
- //选择供应商
|
|
|
- changeSupplier(obj) {
|
|
|
- this.form = Object.assign({}, this.form, {
|
|
|
- partbId: obj.id,
|
|
|
- partbName: obj.name,
|
|
|
- partbAddress: obj.addressName + obj.address,
|
|
|
+ data() {
|
|
|
+ let formDef = {
|
|
|
+ id: '',
|
|
|
+ contractId: '',
|
|
|
+ orderFiles: [],
|
|
|
+ contractName: '',
|
|
|
+ deliveryDate: '',
|
|
|
+ payAmount: '',
|
|
|
+ projectName: '',
|
|
|
+ projectId: '',
|
|
|
+ receiveAddress: '',
|
|
|
+ sourceType: '',
|
|
|
+ sourceTypeName: '',
|
|
|
+ pricingWay: 1,
|
|
|
+ remark: '',
|
|
|
+ saleType: '',
|
|
|
+ saleTypeName: '',
|
|
|
+ totalAmount: '',
|
|
|
+ settlementMode: '',
|
|
|
+ settlementModeName: '',
|
|
|
+ partaUnifiedSocialCreditCode: '',
|
|
|
+ partbUnifiedSocialCreditCode: '',
|
|
|
+ partaAddress: '',
|
|
|
+ partaEmail: '',
|
|
|
+ partaFax: '',
|
|
|
+ partaId: '',
|
|
|
+ partaLinkId: '',
|
|
|
+ partaLinkName: '',
|
|
|
+ partaName: '',
|
|
|
+ partaTel: '',
|
|
|
+ partbAddress: '',
|
|
|
+ partbEmail: '',
|
|
|
+ partbFax: '',
|
|
|
+ partbId: '',
|
|
|
partbLinkId: '',
|
|
|
partbLinkName: '',
|
|
|
- partbEmail: '',
|
|
|
- partbTel: ''
|
|
|
- });
|
|
|
- this.getLinkInfo(obj.id);
|
|
|
- },
|
|
|
- //选择合同获取合同的详情
|
|
|
- async getDetailData(id) {
|
|
|
- this.loading = true;
|
|
|
- const data = await getDetail(id);
|
|
|
- this.loading = false;
|
|
|
- if (data) {
|
|
|
- this.$nextTick(() => {
|
|
|
- let {contractVO} = data;
|
|
|
- // this.form=contractVOform.receiveAddress
|
|
|
- let {
|
|
|
- partaAddress,
|
|
|
- partaEmail,
|
|
|
- partaFax,
|
|
|
- partaId,
|
|
|
- partaLinkId,
|
|
|
- partaLinkName,
|
|
|
- partaName,
|
|
|
- partaTel,
|
|
|
- partbAddress,
|
|
|
- partbEmail,
|
|
|
- partbFax,
|
|
|
- partbId,
|
|
|
- partbLinkId,
|
|
|
- partbLinkName,
|
|
|
- partbName,
|
|
|
- partbTel,
|
|
|
- totalPrice,
|
|
|
- discountTotalPrice,
|
|
|
- partaUnifiedSocialCreditCode,
|
|
|
- partbUnifiedSocialCreditCode,
|
|
|
- settlementMode,
|
|
|
- settlementModeName,
|
|
|
- pricingWay
|
|
|
- } = contractVO;
|
|
|
- this.form = Object.assign({}, this.form, {
|
|
|
- partaAddress,
|
|
|
- partaEmail,
|
|
|
- partaFax,
|
|
|
- partaId,
|
|
|
- partaLinkId,
|
|
|
- partaLinkName,
|
|
|
- partaName,
|
|
|
- partaTel,
|
|
|
- partbAddress,
|
|
|
- partbEmail,
|
|
|
- partbFax,
|
|
|
- partbId,
|
|
|
- partbLinkId,
|
|
|
- partbLinkName,
|
|
|
- partbName,
|
|
|
- partbTel,
|
|
|
- totalPrice,
|
|
|
- discountTotalPrice,
|
|
|
- partaUnifiedSocialCreditCode,
|
|
|
- partbUnifiedSocialCreditCode,
|
|
|
- pricingWay,
|
|
|
- totalAmount: totalPrice,
|
|
|
- payAmount: discountTotalPrice,
|
|
|
- receiveAddress: partaAddress,
|
|
|
- settlementMode,
|
|
|
- settlementModeName
|
|
|
- });
|
|
|
- this.getLinkInfo(partaId);
|
|
|
-
|
|
|
- this.$refs.inventoryTable &&
|
|
|
- this.$refs.inventoryTable.putTableValue(
|
|
|
- data.productList,
|
|
|
- contractVO.contractStartDate
|
|
|
- );
|
|
|
- this.$store.commit('order/setAllcountAmount', totalPrice);
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- //获取订单详情
|
|
|
- async getpurchaseorderDetail(id) {
|
|
|
- this.loading = true;
|
|
|
- const data = await getpurchaseorderDetail(id);
|
|
|
- this.loading = false;
|
|
|
- if (data) {
|
|
|
- this.$nextTick(() => {
|
|
|
- this.form = data;
|
|
|
- this.$refs.inventoryTable &&
|
|
|
- this.$refs.inventoryTable.putTableValue(data.productList);
|
|
|
- this.getLinkInfo(data.partaId);
|
|
|
- this.getrequireUser(this.form.requireDeptId);
|
|
|
-
|
|
|
- this.$store.commit('order/setAllcountAmount', data.totalAmount);
|
|
|
- this.$store.commit('order/setContractId', data.contractId);
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- //更新联系人数据
|
|
|
- async getLinkInfo(contactId) {
|
|
|
- const data = await getcontactlink({contactId});
|
|
|
- if (data && data?.length) {
|
|
|
- this.linkNameOptions = data;
|
|
|
- }
|
|
|
- },
|
|
|
- selectFocus() {
|
|
|
- if (this.linkNameOptions.length === 0) {
|
|
|
- return this.$message.error('请先选择名称');
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- //选择下拉框
|
|
|
- onchangeLink(selectedOptions) {
|
|
|
- const option = this.linkNameOptions.find(
|
|
|
- (opt) => opt.id === selectedOptions
|
|
|
- );
|
|
|
- this.form = Object.assign({}, this.form, {
|
|
|
- partbEmail: option?.email,
|
|
|
- partbLinkName: option?.linkName || '',
|
|
|
- partbTel: option?.mobilePhone || option?.phone || '',
|
|
|
- partbLinkId: option?.id
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- handHead() {
|
|
|
- let item = {
|
|
|
- id: this.form.partaLinkId
|
|
|
+ partbName: '',
|
|
|
+ partbTel: '',
|
|
|
+ purchasePlanId: '',
|
|
|
+ purchasePlanNo: '',
|
|
|
+ purchasePlanName: ''
|
|
|
};
|
|
|
- this.$refs.headRef.open(item);
|
|
|
- },
|
|
|
|
|
|
- //选择供采购方人回调
|
|
|
- changePersonel(obj) {
|
|
|
- this.$set(this.form, 'partaLinkId', obj.id);
|
|
|
- this.$set(this.form, 'partaLinkName', obj.name);
|
|
|
- this.$set(this.form, 'partaTel', obj.phone);
|
|
|
- this.$set(this.form, 'partaEmail', obj.email);
|
|
|
- },
|
|
|
- //选择供应商回调
|
|
|
- changeParent(obj) {
|
|
|
- this.form = Object.assign({}, this.form, {
|
|
|
- partbId: obj.id,
|
|
|
- partbName: obj.name,
|
|
|
- partbAddress: obj.addressName + obj.address,
|
|
|
- partbLinkId: '',
|
|
|
- partbLinkName: '',
|
|
|
- partbEmail: '',
|
|
|
- partbTel: ''
|
|
|
- });
|
|
|
- this.getLinkInfo(obj.id);
|
|
|
- },
|
|
|
+ return {
|
|
|
+ clearing: false, //是否清除合同
|
|
|
+ isFlag: false, //需求类型是否可以修改
|
|
|
+ payWayOptions: [],
|
|
|
+ delDetailIds: [],
|
|
|
+ linkNameOptions: [],
|
|
|
+ visible: false,
|
|
|
+ title: '',
|
|
|
+ row: {},
|
|
|
+ activeName: 'base',
|
|
|
+ pricingWayList: [
|
|
|
+ { id: 1, name: '按数量计价' },
|
|
|
+ { id: 2, name: '按重量计价' }
|
|
|
+ ],
|
|
|
+ formDef,
|
|
|
+ form: copyObj(formDef),
|
|
|
+ tableBankData: [],
|
|
|
+ tableLinkData: [],
|
|
|
+ // 组织机构树形结构数据
|
|
|
+ groupTreeData: [],
|
|
|
+ groupData: [],
|
|
|
+ rules: {
|
|
|
+ deliveryDate: [
|
|
|
+ { required: true, message: '请选择交货日期', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ // purchaseType: [
|
|
|
+ // {required: true, message: '请选择采购订单类型', trigger: 'change'}
|
|
|
+ // ],
|
|
|
+ settlementMode: [
|
|
|
+ { required: true, message: '请选择结算方式', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ partaName: [
|
|
|
+ { required: true, message: '请选择供应商名称', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ partaLinkName: [
|
|
|
+ { required: true, message: '请选择供应商联系人', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ acceptUnpack: [
|
|
|
+ { required: true, message: '请选择是否接受', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ sourceType: [
|
|
|
+ { required: true, message: '请选择需求类型', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ partaTel: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ pattern: numberReg,
|
|
|
+ message: '请输入供应商联系电话',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+
|
|
|
+ partbName: [
|
|
|
+ { required: true, message: '请输入供采购方名称', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ partbLinkName: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入供采购方联系人',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ partbTel: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ pattern: numberReg,
|
|
|
+ message: '请输入供采购方联系电话',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ partaEmail: [
|
|
|
+ { pattern: emailReg, message: '邮箱格式不正确', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
|
|
|
- //选择合同回调
|
|
|
- changeContract(obj) {
|
|
|
- this.form = Object.assign({}, this.form, {
|
|
|
- contractId: obj.id,
|
|
|
- contractName: obj.contractName,
|
|
|
- contractNo: obj.contractNo
|
|
|
- });
|
|
|
-
|
|
|
- this.getDetailData(obj.id);
|
|
|
- // //采购询价表
|
|
|
- // this.getPurchaseinquiry(obj.sourceId);
|
|
|
- //获取合同采购计划
|
|
|
- this.getPlanInfo(this.form.contractId)
|
|
|
- this.$store.commit('order/setContractId', obj.id);
|
|
|
- },
|
|
|
- async getPlanInfo(id) {
|
|
|
- let res = await getPurchasePlanByContractIdAPI(id)
|
|
|
- this.form = Object.assign({}, this.form, {
|
|
|
- purchasePlanId: res.data?.id,
|
|
|
- purchasePlanName: res.data?.planName,
|
|
|
- purchasePlanNo: res.data?.planCode,
|
|
|
- sourceType: res.data?.sourceType,
|
|
|
- sourceTypeName: res.data?.sourceTypeName,
|
|
|
- });
|
|
|
- },
|
|
|
- //选择合同弹框
|
|
|
- handleContractBtn() {
|
|
|
- if (this.clearing) return;
|
|
|
- let item = {
|
|
|
- id: this.form.contractId
|
|
|
+ // 提交状态
|
|
|
+ loading: false,
|
|
|
+ // 是否是修改
|
|
|
+ isUpdate: false
|
|
|
};
|
|
|
- this.$refs.selectContractRef.open(item);
|
|
|
- },
|
|
|
- //清除合同
|
|
|
- clearContrcat() {
|
|
|
- this.clearing = true;
|
|
|
- this.isFlag = false;
|
|
|
- let {
|
|
|
- id,
|
|
|
- projectName,
|
|
|
- saleType,
|
|
|
- saleTypeName,
|
|
|
- deliveryDate,
|
|
|
- orderFiles,
|
|
|
- remark
|
|
|
- } = this.form;
|
|
|
- this.form = Object.assign({}, copyObj(this.formDef), {
|
|
|
- id,
|
|
|
- projectName,
|
|
|
- saleType,
|
|
|
- saleTypeName,
|
|
|
- deliveryDate,
|
|
|
- orderFiles,
|
|
|
- remark
|
|
|
- });
|
|
|
-
|
|
|
- this.$store.commit('order/setContractId', '');
|
|
|
- this.$store.commit('order/setAllcountAmount', 0);
|
|
|
- this.$refs.inventoryTable.putTableValue([]);
|
|
|
-
|
|
|
- setTimeout(() => {
|
|
|
- this.clearing = false;
|
|
|
- }, 500);
|
|
|
},
|
|
|
-
|
|
|
- handParent() {
|
|
|
- if (this.form.contractId) {
|
|
|
- return this.$message.error('选择了合同不能更改供应商名称');
|
|
|
+ computed: {
|
|
|
+ allcountAmount() {
|
|
|
+ return this.$store.state.order.allcountAmount;
|
|
|
}
|
|
|
- let item = {
|
|
|
- id: this.form.contactId
|
|
|
- };
|
|
|
- this.$refs.parentRef.open(item);
|
|
|
},
|
|
|
|
|
|
- settlementModeChange(info) {
|
|
|
- this.form.settlementModeName = info.dictValue;
|
|
|
- },
|
|
|
- ifChiefChange(value, idx) {
|
|
|
- if (value === 1) {
|
|
|
- this.tableLinkData.forEach((e) => (e.ifChief = 0));
|
|
|
- this.tableLinkData[idx].ifChief = 1;
|
|
|
- }
|
|
|
+ created() {
|
|
|
+ this.getpurchaseorderDetail(this.businessId);
|
|
|
+ this.getGroupAll();
|
|
|
},
|
|
|
|
|
|
- getValidate() {
|
|
|
- return Promise.all([
|
|
|
- new Promise((resolve, reject) => {
|
|
|
- this.$refs.form.validate((valid) => {
|
|
|
- if (!valid) {
|
|
|
- reject(false);
|
|
|
- } else {
|
|
|
- resolve(true);
|
|
|
- }
|
|
|
+ methods: {
|
|
|
+ // 选择负责人部门
|
|
|
+ change_principalDep(id) {
|
|
|
+ const info = this.groupData.find((e) => e.id == id);
|
|
|
+ this.form.requireDeptName = info.name;
|
|
|
+ // this.form.requireUserId = '';
|
|
|
+ // this.form.requireUserName = '';
|
|
|
+ this.$set(this.form, 'requireUserId', '');
|
|
|
+ this.$set(this.form, 'requireUserName', '');
|
|
|
+ // 根据部门获取人员
|
|
|
+
|
|
|
+ this.getrequireUser(id);
|
|
|
+ },
|
|
|
+ //切换计价方式重新算费用
|
|
|
+ changePricingWay() {
|
|
|
+ this.$refs.inventoryTable.getTotalPrice();
|
|
|
+ },
|
|
|
+ //选择采购计划
|
|
|
+ handPurchasePlan() {
|
|
|
+ this.$refs.inquiryManageRef.open(this.form.planCode);
|
|
|
+ },
|
|
|
+ //选择采购计划回调
|
|
|
+ async changeInquiryManageList(data) {
|
|
|
+ this.form.purchasePlanId = data.id;
|
|
|
+ this.form.purchasePlanNo = data.planCode;
|
|
|
+ this.form.purchasePlanName = data.planName;
|
|
|
+
|
|
|
+ let info = await getplanDetail(data.id);
|
|
|
+ let cusInfo = {};
|
|
|
+ this.$set(this.form, 'purchasePlanName', data.planName);
|
|
|
+ this.$set(this.form, 'purchasePlanId', data.id);
|
|
|
+ this.$set(this.form, 'purchasePlanNo', data.planCode);
|
|
|
+ let form = {
|
|
|
+ contractVO: {
|
|
|
+ ...this.form
|
|
|
+ },
|
|
|
+ productList: info.detailList || []
|
|
|
+ };
|
|
|
+
|
|
|
+ this.$refs.inventoryTable &&
|
|
|
+ this.$refs.inventoryTable.putTableValue(form.productList);
|
|
|
+ await this.getLinkInfo(cusInfo.base.id);
|
|
|
+ },
|
|
|
+ // //选择需求来源类型
|
|
|
+ // chaengSource(data) {
|
|
|
+ // this.form.sourceType = data?.dictValue;
|
|
|
+ // },
|
|
|
+ getrequireUser(groupId) {
|
|
|
+ if (groupId) {
|
|
|
+ this.$refs.directorRef.getList({ groupId });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ salesmanChange(val, info) {
|
|
|
+ this.$set(this.form, 'requireUserId', val);
|
|
|
+ this.$set(this.form, 'requireUserName', info.name);
|
|
|
+ // this.form.requireUserName = info.name;
|
|
|
+ },
|
|
|
+ // 获取公司数据
|
|
|
+ getGroupAll() {
|
|
|
+ listOrganizations().then((list) => {
|
|
|
+ this.groupData = list;
|
|
|
+ this.groupTreeData = this.$util.toTreeData({
|
|
|
+ data: list,
|
|
|
+ idField: 'id',
|
|
|
+ parentIdField: 'parentId'
|
|
|
});
|
|
|
- }),
|
|
|
- new Promise((resolve, reject) => {
|
|
|
- this.$refs.inventoryTable.validateForm((valid) => {
|
|
|
- if (!valid) {
|
|
|
- reject(false);
|
|
|
- } else {
|
|
|
- resolve(true);
|
|
|
- }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ discountInput() {
|
|
|
+ this.$refs.inventoryTable.discountInputByOrder(this.form.payAmount);
|
|
|
+ },
|
|
|
+ //产品清单修改单价或者数量重置优惠金额
|
|
|
+ orderDiscountAmount(val = 0) {
|
|
|
+ this.form.payAmount = val;
|
|
|
+ },
|
|
|
+ //选择供应商
|
|
|
+ changeSupplier(obj) {
|
|
|
+ this.form = Object.assign({}, this.form, {
|
|
|
+ partbId: obj.id,
|
|
|
+ partbName: obj.name,
|
|
|
+ partbAddress: obj.addressName + obj.address,
|
|
|
+ partbLinkId: '',
|
|
|
+ partbLinkName: '',
|
|
|
+ partbEmail: '',
|
|
|
+ partbTel: ''
|
|
|
+ });
|
|
|
+ this.getLinkInfo(obj.id);
|
|
|
+ },
|
|
|
+ //选择合同获取合同的详情
|
|
|
+ async getDetailData(id) {
|
|
|
+ this.loading = true;
|
|
|
+ const data = await getDetail(id);
|
|
|
+ this.loading = false;
|
|
|
+ if (data) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ let { contractVO } = data;
|
|
|
+ // this.form=contractVOform.receiveAddress
|
|
|
+ let {
|
|
|
+ partaAddress,
|
|
|
+ partaEmail,
|
|
|
+ partaFax,
|
|
|
+ partaId,
|
|
|
+ partaLinkId,
|
|
|
+ partaLinkName,
|
|
|
+ partaName,
|
|
|
+ partaTel,
|
|
|
+ partbAddress,
|
|
|
+ partbEmail,
|
|
|
+ partbFax,
|
|
|
+ partbId,
|
|
|
+ partbLinkId,
|
|
|
+ partbLinkName,
|
|
|
+ partbName,
|
|
|
+ partbTel,
|
|
|
+ totalPrice,
|
|
|
+ discountTotalPrice,
|
|
|
+ partaUnifiedSocialCreditCode,
|
|
|
+ partbUnifiedSocialCreditCode,
|
|
|
+ settlementMode,
|
|
|
+ settlementModeName,
|
|
|
+ pricingWay
|
|
|
+ } = contractVO;
|
|
|
+ this.form = Object.assign({}, this.form, {
|
|
|
+ partaAddress,
|
|
|
+ partaEmail,
|
|
|
+ partaFax,
|
|
|
+ partaId,
|
|
|
+ partaLinkId,
|
|
|
+ partaLinkName,
|
|
|
+ partaName,
|
|
|
+ partaTel,
|
|
|
+ partbAddress,
|
|
|
+ partbEmail,
|
|
|
+ partbFax,
|
|
|
+ partbId,
|
|
|
+ partbLinkId,
|
|
|
+ partbLinkName,
|
|
|
+ partbName,
|
|
|
+ partbTel,
|
|
|
+ totalPrice,
|
|
|
+ discountTotalPrice,
|
|
|
+ partaUnifiedSocialCreditCode,
|
|
|
+ partbUnifiedSocialCreditCode,
|
|
|
+ pricingWay,
|
|
|
+ totalAmount: totalPrice,
|
|
|
+ payAmount: discountTotalPrice,
|
|
|
+ receiveAddress: partaAddress,
|
|
|
+ settlementMode,
|
|
|
+ settlementModeName
|
|
|
+ });
|
|
|
+ this.getLinkInfo(partaId);
|
|
|
+
|
|
|
+ this.$refs.inventoryTable &&
|
|
|
+ this.$refs.inventoryTable.putTableValue(
|
|
|
+ data.productList,
|
|
|
+ contractVO.contractStartDate
|
|
|
+ );
|
|
|
+ this.$store.commit('order/setAllcountAmount', totalPrice);
|
|
|
});
|
|
|
- })
|
|
|
- ]);
|
|
|
- },
|
|
|
- async getTableValue() {
|
|
|
- try {
|
|
|
- await this.getValidate();
|
|
|
- // 表单验证通过,执行保存操作
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取订单详情
|
|
|
+ async getpurchaseorderDetail(id) {
|
|
|
this.loading = true;
|
|
|
+ const data = await getpurchaseorderDetail(id);
|
|
|
+ this.loading = false;
|
|
|
+ if (data) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.form = data;
|
|
|
+ this.$refs.inventoryTable &&
|
|
|
+ this.$refs.inventoryTable.putTableValue(data.productList);
|
|
|
+ this.$refs.rawDetailListRef &&
|
|
|
+ this.$refs.rawDetailListRef.putTableValue(data.rawDetailList); //原料
|
|
|
+ this.$refs.outputDetailListRef &&
|
|
|
+ this.$refs.outputDetailListRef.putTableValue(
|
|
|
+ data.outputDetailList
|
|
|
+ ); //产成品
|
|
|
+ this.getLinkInfo(data.partaId);
|
|
|
+ this.getrequireUser(this.form.requireDeptId);
|
|
|
+
|
|
|
+ this.$store.commit('order/setAllcountAmount', data.totalAmount);
|
|
|
+ this.$store.commit('order/setContractId', data.contractId);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- if (!this.form.contractId) {
|
|
|
- this.form.totalAmount = this.allcountAmount;
|
|
|
+ //更新联系人数据
|
|
|
+ async getLinkInfo(contactId) {
|
|
|
+ const data = await getcontactlink({ contactId });
|
|
|
+ if (data && data?.length) {
|
|
|
+ this.linkNameOptions = data;
|
|
|
}
|
|
|
+ },
|
|
|
+ selectFocus() {
|
|
|
+ if (this.linkNameOptions.length === 0) {
|
|
|
+ return this.$message.error('请先选择名称');
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- let commitData = Object.assign({}, this.form, {
|
|
|
- productList: this.$refs.inventoryTable.getTableValue(),
|
|
|
- // purchaseTypeName: this.getDictValue(
|
|
|
- // '采购订单类型',
|
|
|
- // this.form.purchaseType
|
|
|
- // ),
|
|
|
- sourceTypeName: this.getDictValue(
|
|
|
- '需求来源类型',
|
|
|
- this.form.sourceType
|
|
|
- )
|
|
|
+ //选择下拉框
|
|
|
+ onchangeLink(selectedOptions) {
|
|
|
+ const option = this.linkNameOptions.find(
|
|
|
+ (opt) => opt.id === selectedOptions
|
|
|
+ );
|
|
|
+ this.form = Object.assign({}, this.form, {
|
|
|
+ partbEmail: option?.email,
|
|
|
+ partbLinkName: option?.linkName || '',
|
|
|
+ partbTel: option?.mobilePhone || option?.phone || '',
|
|
|
+ partbLinkId: option?.id
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ handHead() {
|
|
|
+ let item = {
|
|
|
+ id: this.form.partaLinkId
|
|
|
+ };
|
|
|
+ this.$refs.headRef.open(item);
|
|
|
+ },
|
|
|
+
|
|
|
+ //选择供采购方人回调
|
|
|
+ changePersonel(obj) {
|
|
|
+ this.$set(this.form, 'partaLinkId', obj.id);
|
|
|
+ this.$set(this.form, 'partaLinkName', obj.name);
|
|
|
+ this.$set(this.form, 'partaTel', obj.phone);
|
|
|
+ this.$set(this.form, 'partaEmail', obj.email);
|
|
|
+ },
|
|
|
+ //选择供应商回调
|
|
|
+ changeParent(obj) {
|
|
|
+ this.form = Object.assign({}, this.form, {
|
|
|
+ partbId: obj.id,
|
|
|
+ partbName: obj.name,
|
|
|
+ partbAddress: obj.addressName + obj.address,
|
|
|
+ partbLinkId: '',
|
|
|
+ partbLinkName: '',
|
|
|
+ partbEmail: '',
|
|
|
+ partbTel: ''
|
|
|
+ });
|
|
|
+ this.getLinkInfo(obj.id);
|
|
|
+ },
|
|
|
+
|
|
|
+ //选择合同回调
|
|
|
+ changeContract(obj) {
|
|
|
+ this.form = Object.assign({}, this.form, {
|
|
|
+ contractId: obj.id,
|
|
|
+ contractName: obj.contractName,
|
|
|
+ contractNo: obj.contractNo
|
|
|
});
|
|
|
- return commitData;
|
|
|
- } catch (error) {
|
|
|
- console.log(error);
|
|
|
- // 表单验证未通过,不执行保存操作
|
|
|
- }
|
|
|
- },
|
|
|
|
|
|
- //查找合同分类对应name
|
|
|
- findNameById(tree, targetId) {
|
|
|
- for (let i = 0; i < tree.length; i++) {
|
|
|
- const node = tree[i];
|
|
|
- if (node.id === targetId) {
|
|
|
- return node.name;
|
|
|
+ this.getDetailData(obj.id);
|
|
|
+ // //采购询价表
|
|
|
+ // this.getPurchaseinquiry(obj.sourceId);
|
|
|
+ //获取合同采购计划
|
|
|
+ this.getPlanInfo(this.form.contractId);
|
|
|
+ this.$store.commit('order/setContractId', obj.id);
|
|
|
+ },
|
|
|
+ async getPlanInfo(id) {
|
|
|
+ let res = await getPurchasePlanByContractIdAPI(id);
|
|
|
+ this.form = Object.assign({}, this.form, {
|
|
|
+ purchasePlanId: res.data?.id,
|
|
|
+ purchasePlanName: res.data?.planName,
|
|
|
+ purchasePlanNo: res.data?.planCode,
|
|
|
+ sourceType: res.data?.sourceType,
|
|
|
+ sourceTypeName: res.data?.sourceTypeName
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //选择合同弹框
|
|
|
+ handleContractBtn() {
|
|
|
+ if (this.clearing) return;
|
|
|
+ let item = {
|
|
|
+ id: this.form.contractId
|
|
|
+ };
|
|
|
+ this.$refs.selectContractRef.open(item);
|
|
|
+ },
|
|
|
+ //清除合同
|
|
|
+ clearContrcat() {
|
|
|
+ this.clearing = true;
|
|
|
+ this.isFlag = false;
|
|
|
+ let {
|
|
|
+ id,
|
|
|
+ projectName,
|
|
|
+ saleType,
|
|
|
+ saleTypeName,
|
|
|
+ deliveryDate,
|
|
|
+ orderFiles,
|
|
|
+ remark
|
|
|
+ } = this.form;
|
|
|
+ this.form = Object.assign({}, copyObj(this.formDef), {
|
|
|
+ id,
|
|
|
+ projectName,
|
|
|
+ saleType,
|
|
|
+ saleTypeName,
|
|
|
+ deliveryDate,
|
|
|
+ orderFiles,
|
|
|
+ remark
|
|
|
+ });
|
|
|
+
|
|
|
+ this.$store.commit('order/setContractId', '');
|
|
|
+ this.$store.commit('order/setAllcountAmount', 0);
|
|
|
+ this.$refs.inventoryTable.putTableValue([]);
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ this.clearing = false;
|
|
|
+ }, 500);
|
|
|
+ },
|
|
|
+
|
|
|
+ handParent() {
|
|
|
+ if (this.form.contractId) {
|
|
|
+ return this.$message.error('选择了合同不能更改供应商名称');
|
|
|
+ }
|
|
|
+ let item = {
|
|
|
+ id: this.form.contactId
|
|
|
+ };
|
|
|
+ this.$refs.parentRef.open(item);
|
|
|
+ },
|
|
|
+
|
|
|
+ settlementModeChange(info) {
|
|
|
+ this.form.settlementModeName = info.dictValue;
|
|
|
+ },
|
|
|
+ ifChiefChange(value, idx) {
|
|
|
+ if (value === 1) {
|
|
|
+ this.tableLinkData.forEach((e) => (e.ifChief = 0));
|
|
|
+ this.tableLinkData[idx].ifChief = 1;
|
|
|
}
|
|
|
- if (node.children && node.children.length > 0) {
|
|
|
- const name = this.findNameById(node.children, targetId);
|
|
|
- if (name) {
|
|
|
- return name;
|
|
|
+ },
|
|
|
+
|
|
|
+ getValidate() {
|
|
|
+ return Promise.all([
|
|
|
+ new Promise((resolve, reject) => {
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
+ if (!valid) {
|
|
|
+ reject(false);
|
|
|
+ } else {
|
|
|
+ resolve(true);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }),
|
|
|
+ new Promise((resolve, reject) => {
|
|
|
+ this.$refs.inventoryTable.validateForm((valid) => {
|
|
|
+ if (!valid) {
|
|
|
+ reject(false);
|
|
|
+ } else {
|
|
|
+ resolve(true);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ ]);
|
|
|
+ },
|
|
|
+ async getTableValue() {
|
|
|
+ try {
|
|
|
+ await this.getValidate();
|
|
|
+ // 表单验证通过,执行保存操作
|
|
|
+ this.loading = true;
|
|
|
+
|
|
|
+ if (!this.form.contractId) {
|
|
|
+ this.form.totalAmount = this.allcountAmount;
|
|
|
}
|
|
|
+ const rawDetailList =
|
|
|
+ (this.$refs.rawDetailListRef &&
|
|
|
+ this.$refs.rawDetailListRef.getTableValue()) ||
|
|
|
+ [];
|
|
|
+ const outputDetailList =
|
|
|
+ (this.$refs.outputDetailListRef &&
|
|
|
+ this.$refs.outputDetailListRef.getTableValue()) ||
|
|
|
+ [];
|
|
|
+
|
|
|
+ let commitData = Object.assign({}, this.form, {
|
|
|
+ productList: [...this.$refs.inventoryTable.getTableValue(),...rawDetailList,...outputDetailList],
|
|
|
+ // purchaseTypeName: this.getDictValue(
|
|
|
+ // '采购订单类型',
|
|
|
+ // this.form.purchaseType
|
|
|
+ // ),
|
|
|
+ sourceTypeName: this.getDictValue(
|
|
|
+ '需求来源类型',
|
|
|
+ this.form.sourceType
|
|
|
+ )
|
|
|
+ });
|
|
|
+ return commitData;
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error);
|
|
|
+ // 表单验证未通过,不执行保存操作
|
|
|
}
|
|
|
+ },
|
|
|
+
|
|
|
+ //查找合同分类对应name
|
|
|
+ findNameById(tree, targetId) {
|
|
|
+ for (let i = 0; i < tree.length; i++) {
|
|
|
+ const node = tree[i];
|
|
|
+ if (node.id === targetId) {
|
|
|
+ return node.name;
|
|
|
+ }
|
|
|
+ if (node.children && node.children.length > 0) {
|
|
|
+ const name = this.findNameById(node.children, targetId);
|
|
|
+ if (name) {
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
}
|
|
|
- return null;
|
|
|
}
|
|
|
- }
|
|
|
-};
|
|
|
+ };
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
-.TotalAmount {
|
|
|
- font-size: 16px;
|
|
|
- padding-right: 30px;
|
|
|
-}
|
|
|
+ .TotalAmount {
|
|
|
+ font-size: 16px;
|
|
|
+ padding-right: 30px;
|
|
|
+ }
|
|
|
</style>
|