|
@@ -1,132 +1,135 @@
|
|
|
<script>
|
|
|
-import useColumns from "./columns";
|
|
|
-import { EXIST } from "@/api/business/purchase/catalogue";
|
|
|
-import { ITEM, SAVE } from "@/api/business/purchase/apply";
|
|
|
-import { tax, unit, currency } from "@/components/popover-select-v2/fetch";
|
|
|
+ import useColumns from "./columns";
|
|
|
+ import {EXIST} from "@/api/business/purchase/catalogue";
|
|
|
+ import {ITEM, SAVE} from "@/api/business/purchase/apply";
|
|
|
+ import {tax, unit, currency} from "@/components/popover-select-v2/fetch";
|
|
|
|
|
|
-const fetchExist = async (prop) => {
|
|
|
- try {
|
|
|
- // try
|
|
|
- const { code, data } = await EXIST(prop);
|
|
|
- if (code === 200) return data;
|
|
|
- } catch (err) {
|
|
|
- // catch
|
|
|
- console.error(err);
|
|
|
- } finally {
|
|
|
- // finally
|
|
|
- }
|
|
|
-};
|
|
|
+ const fetchExist = async (prop) => {
|
|
|
+ try {
|
|
|
+ // try
|
|
|
+ const {code, data} = await EXIST(prop);
|
|
|
+ if (code === 200) return data;
|
|
|
+ } catch (err) {
|
|
|
+ // catch
|
|
|
+ console.error(err);
|
|
|
+ } finally {
|
|
|
+ // finally
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
-export default {
|
|
|
- name: "CopyDrawer",
|
|
|
- props: {
|
|
|
- dict: {
|
|
|
- type: Object,
|
|
|
+ export default {
|
|
|
+ name: "CopyDrawer",
|
|
|
+ props: {
|
|
|
+ dict: {
|
|
|
+ type: Object,
|
|
|
+ },
|
|
|
+ selectData: {
|
|
|
+ type: [Array],
|
|
|
+ require: true,
|
|
|
+ },
|
|
|
},
|
|
|
- selectData: {
|
|
|
- type: [Array],
|
|
|
- require: true,
|
|
|
+ components: {
|
|
|
+ ElSuperForm: () => import("@/components/super-form/index.vue"),
|
|
|
+ ElSuperTable: () => import("@/components/super-table/index.vue"),
|
|
|
+ ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ const {
|
|
|
+ TabColumns,
|
|
|
+ TableColumns,
|
|
|
+ TabColumns: [
|
|
|
+ {
|
|
|
+ item: {key: tabName},
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ } = useColumns();
|
|
|
+ const rules = this.$init.rules([...TabColumns, ...TableColumns]);
|
|
|
+ const params = this.$init.params([...TabColumns, ...TableColumns]);
|
|
|
+ return {
|
|
|
+ title: "复 制",
|
|
|
+ width: "100%",
|
|
|
+ visible: false,
|
|
|
+ loading: false,
|
|
|
+ rules: rules,
|
|
|
+ params: params,
|
|
|
+ tabName: tabName,
|
|
|
+ TabColumns: TabColumns,
|
|
|
+ TableColumns: TableColumns,
|
|
|
+ };
|
|
|
},
|
|
|
- },
|
|
|
- components: {
|
|
|
- ElSuperForm: () => import("@/components/super-form/index.vue"),
|
|
|
- ElSuperTable: () => import("@/components/super-table/index.vue"),
|
|
|
- ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
|
|
|
- },
|
|
|
- data() {
|
|
|
- const {
|
|
|
- TabColumns,
|
|
|
- TableColumns,
|
|
|
- TabColumns: [
|
|
|
- {
|
|
|
- item: { key: tabName },
|
|
|
+ computed: {
|
|
|
+ disabled: {
|
|
|
+ get() {
|
|
|
+ const {
|
|
|
+ selectData: {length},
|
|
|
+ } = this.$props;
|
|
|
+ if (length !== 1) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ set() {
|
|
|
},
|
|
|
- ],
|
|
|
- } = useColumns();
|
|
|
- const rules = this.$init.rules([...TabColumns, ...TableColumns]);
|
|
|
- const params = this.$init.params([...TabColumns, ...TableColumns]);
|
|
|
- return {
|
|
|
- title: "复 制",
|
|
|
- width: "100%",
|
|
|
- visible: false,
|
|
|
- loading: false,
|
|
|
- rules: rules,
|
|
|
- params: params,
|
|
|
- tabName: tabName,
|
|
|
- TabColumns: TabColumns,
|
|
|
- TableColumns: TableColumns,
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- disabled: {
|
|
|
- get() {
|
|
|
- const {
|
|
|
- selectData: { length },
|
|
|
- } = this.$props;
|
|
|
- if (length !== 1) {
|
|
|
- return true;
|
|
|
- }
|
|
|
},
|
|
|
- set() {},
|
|
|
},
|
|
|
- },
|
|
|
- watch: {},
|
|
|
- methods: {
|
|
|
- //
|
|
|
- async changeMaterialName(prop) {
|
|
|
- const { selectData } = prop;
|
|
|
- const {
|
|
|
- puOrg,
|
|
|
- customer,
|
|
|
- supplier,
|
|
|
- currency,
|
|
|
- currencyCode,
|
|
|
- currencyName,
|
|
|
- } = this.params;
|
|
|
- const { nickName: createByName } = this.$store.state.user;
|
|
|
- if (selectData.length) {
|
|
|
- this.params[this.tabName].splice(-1);
|
|
|
- }
|
|
|
- for (const item of selectData) {
|
|
|
- this.loading = true;
|
|
|
- const { tax: taxName, unitName, code: materialCode } = item;
|
|
|
- // task 1
|
|
|
- const { ntaxrate } = await tax(taxName);
|
|
|
- // task 2
|
|
|
+ watch: {},
|
|
|
+ methods: {
|
|
|
+ //
|
|
|
+ async changeMaterialName(prop) {
|
|
|
+ const {selectData} = prop;
|
|
|
const {
|
|
|
- id: puUnit,
|
|
|
- code: puUnitCode,
|
|
|
- name: puUnitName,
|
|
|
- } = await unit(unitName);
|
|
|
- // task 3
|
|
|
- const {
|
|
|
- recentlyPrice = "0",
|
|
|
- isApprovalFirst = "N",
|
|
|
- purchasequantity
|
|
|
- } = await fetchExist({ puOrg, customer, supplier, materialCode, priceType: prop.row.priceType });
|
|
|
- this.loading = false;
|
|
|
- await this.onRowAdd(this.tabName, {
|
|
|
- ...item,
|
|
|
- currency: currency,
|
|
|
- currencyCode: currencyCode,
|
|
|
- currencyName: currencyName,
|
|
|
- unit: puUnit,
|
|
|
- unitCode: puUnitCode,
|
|
|
- unitName: puUnitName,
|
|
|
- puUnit: puUnit,
|
|
|
- puUnitCode: puUnitCode,
|
|
|
- puUnitName: puUnitName,
|
|
|
- recentlyPrice,
|
|
|
- isApprovalFirst,
|
|
|
- yPurchaseQuantity: purchasequantity,
|
|
|
- tax: Number(ntaxrate === "0E-8" ? 0 : ntaxrate),
|
|
|
- createByName: createByName,
|
|
|
- updateByName: createByName,
|
|
|
- id: null,
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- //
|
|
|
+ puOrg,
|
|
|
+ customer,
|
|
|
+ supplier,
|
|
|
+ currency,
|
|
|
+ currencyCode,
|
|
|
+ currencyName,
|
|
|
+ } = this.params;
|
|
|
+ const {nickName: createByName} = this.$store.state.user;
|
|
|
+ if (selectData.length) {
|
|
|
+ this.params[this.tabName].splice(-1);
|
|
|
+ }
|
|
|
+ for (const item of selectData) {
|
|
|
+ this.loading = true;
|
|
|
+ const {tax: taxName, unitName, code: materialCode} = item;
|
|
|
+ // task 1
|
|
|
+ const {ntaxrate} = await tax(taxName);
|
|
|
+ // task 2
|
|
|
+ const {
|
|
|
+ id: puUnit,
|
|
|
+ code: puUnitCode,
|
|
|
+ name: puUnitName,
|
|
|
+ } = await unit(unitName);
|
|
|
+ // task 3
|
|
|
+ const {
|
|
|
+ recentlyPrice = "0",
|
|
|
+ isApprovalFirst = "N",
|
|
|
+ purchasequantity,
|
|
|
+ recentlyPriceDate
|
|
|
+ } = await fetchExist({puOrg, customer, supplier, materialCode, priceType: prop.row.priceType});
|
|
|
+ this.loading = false;
|
|
|
+ await this.onRowAdd(this.tabName, {
|
|
|
+ ...item,
|
|
|
+ currency: currency,
|
|
|
+ currencyCode: currencyCode,
|
|
|
+ currencyName: currencyName,
|
|
|
+ unit: puUnit,
|
|
|
+ unitCode: puUnitCode,
|
|
|
+ unitName: puUnitName,
|
|
|
+ puUnit: puUnit,
|
|
|
+ puUnitCode: puUnitCode,
|
|
|
+ puUnitName: puUnitName,
|
|
|
+ recentlyPrice,
|
|
|
+ recentlyPriceDate: recentlyPriceDate,
|
|
|
+ isApprovalFirst,
|
|
|
+ yPurchaseQuantity: purchasequantity,
|
|
|
+ tax: Number(ntaxrate === "0E-8" ? 0 : ntaxrate),
|
|
|
+ createByName: createByName,
|
|
|
+ updateByName: createByName,
|
|
|
+ id: null,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //
|
|
|
async changeCustomerName(prop) {
|
|
|
console.log("prop", prop)
|
|
|
const {
|
|
@@ -139,124 +142,136 @@ export default {
|
|
|
const {
|
|
|
recentlyPrice,
|
|
|
isApprovalFirst,
|
|
|
- purchasequantity
|
|
|
- } = await fetchExist({puOrg, supplier, materialCode: prop.row.materialCode, customer:prop.row.customer,customerName: prop.row.customerName, priceType: prop.row.priceType});
|
|
|
- prop.row.yPurchaseQuantity = purchasequantity
|
|
|
- prop.row.recentlyPrice = recentlyPrice
|
|
|
- prop.row.isApprovalFirst = isApprovalFirst
|
|
|
+ purchasequantity,
|
|
|
+ recentlyPriceDate
|
|
|
+ } = await fetchExist({
|
|
|
+ puOrg,
|
|
|
+ supplier,
|
|
|
+ materialCode: prop.row.materialCode,
|
|
|
+ customer: prop.row.customer,
|
|
|
+ customerName: prop.row.customerName,
|
|
|
+ priceType: prop.row.priceType
|
|
|
+ });
|
|
|
+ prop.row.yPurchaseQuantity = purchasequantity
|
|
|
+ prop.row.recentlyPrice = recentlyPrice
|
|
|
+ prop.row.isApprovalFirst = isApprovalFirst
|
|
|
+ prop.row.recentlyPriceDate = recentlyPriceDate
|
|
|
},
|
|
|
- //
|
|
|
- async fetchItem(prop) {
|
|
|
- try {
|
|
|
- // try
|
|
|
- this.loading = true;
|
|
|
- const { tabName, TabColumns } = this;
|
|
|
- const { TableColumns } = TabColumns.find(
|
|
|
- ({ item: { key } }) => key === tabName
|
|
|
- );
|
|
|
- console.log('看看prop', prop)
|
|
|
- const { code, data } = await ITEM(prop, true);
|
|
|
- if (code === 200) {
|
|
|
- this.params = data;
|
|
|
- this.params.priceApplyItems = data.priceApplyItems.map((item) => ({
|
|
|
- ...this.$init.params(TableColumns),
|
|
|
- ...item,
|
|
|
- id: null,
|
|
|
- }));
|
|
|
- this.params.id = null;
|
|
|
- } else {
|
|
|
+ //
|
|
|
+ async fetchItem(prop) {
|
|
|
+ try {
|
|
|
+ // try
|
|
|
+ this.loading = true;
|
|
|
+ const {tabName, TabColumns} = this;
|
|
|
+ const {TableColumns} = TabColumns.find(
|
|
|
+ ({item: {key}}) => key === tabName
|
|
|
+ );
|
|
|
+ console.log('看看prop', prop)
|
|
|
+ const {code, data} = await ITEM(prop, true);
|
|
|
+ if (code === 200) {
|
|
|
+ this.params = data;
|
|
|
+ this.params.priceApplyItems = data.priceApplyItems.map((item) => ({
|
|
|
+ ...this.$init.params(TableColumns),
|
|
|
+ ...item,
|
|
|
+ id: null,
|
|
|
+ }));
|
|
|
+ this.params.id = null;
|
|
|
+ } else {
|
|
|
+ this.visible = false;
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ // catch
|
|
|
+ console.error(err);
|
|
|
this.visible = false;
|
|
|
+ } finally {
|
|
|
+ // finally
|
|
|
+ this.loading = false;
|
|
|
}
|
|
|
- } catch (err) {
|
|
|
- // catch
|
|
|
- console.error(err);
|
|
|
+ },
|
|
|
+ //
|
|
|
+ async onOpen() {
|
|
|
+ this.visible = true;
|
|
|
+ const {
|
|
|
+ selectData: [{id}],
|
|
|
+ } = this.$props;
|
|
|
+ this.params.id = null;
|
|
|
+ this.params.createBy = null;
|
|
|
+ this.params.priceCode = null;
|
|
|
+ this.params.createByName = null;
|
|
|
+ this.params.effectiveDate = null;
|
|
|
+ this.params.priceApplyOrgs = [];
|
|
|
+ this.params.priceApplyItems = this.params.priceApplyItems.map((item) => ({
|
|
|
+ ...item,
|
|
|
+ id: null,
|
|
|
+ applyId: null,
|
|
|
+ createByName: null,
|
|
|
+ updateByName: null,
|
|
|
+ delFlag: 0,
|
|
|
+ }));
|
|
|
+ await this.fetchItem(id);
|
|
|
+ },
|
|
|
+ //
|
|
|
+ async onHide() {
|
|
|
+ const {TabColumns, TableColumns} = useColumns();
|
|
|
this.visible = false;
|
|
|
- } finally {
|
|
|
- // finally
|
|
|
- this.loading = false;
|
|
|
- }
|
|
|
- },
|
|
|
- //
|
|
|
- async onOpen() {
|
|
|
- this.visible = true;
|
|
|
- const {
|
|
|
- selectData: [{ id }],
|
|
|
- } = this.$props;
|
|
|
- this.params.id = null;
|
|
|
- this.params.createBy = null;
|
|
|
- this.params.priceCode = null;
|
|
|
- this.params.createByName = null;
|
|
|
- this.params.effectiveDate = null;
|
|
|
- this.params.priceApplyOrgs = [];
|
|
|
- this.params.priceApplyItems = this.params.priceApplyItems.map((item) => ({
|
|
|
- ...item,
|
|
|
- id: null,
|
|
|
- applyId: null,
|
|
|
- createByName: null,
|
|
|
- updateByName: null,
|
|
|
- delFlag: 0,
|
|
|
- }));
|
|
|
- await this.fetchItem(id);
|
|
|
- },
|
|
|
- //
|
|
|
- async onHide() {
|
|
|
- const { TabColumns, TableColumns } = useColumns();
|
|
|
- this.visible = false;
|
|
|
- this.params = this.$init.params([...TabColumns, ...TableColumns]);
|
|
|
- this.$emit("success");
|
|
|
+ this.params = this.$init.params([...TabColumns, ...TableColumns]);
|
|
|
+ this.$emit("success");
|
|
|
+ },
|
|
|
+ //
|
|
|
+ async onRowAdd(prop, pushParams = {}) {
|
|
|
+ this.$refs.superForm.validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ const {TabColumns} = this;
|
|
|
+ const {TableColumns} = TabColumns.find(
|
|
|
+ ({item: {key}}) => key === prop
|
|
|
+ );
|
|
|
+ this.params[prop].push({
|
|
|
+ delFlag: "0",
|
|
|
+ ...this.$init.params(TableColumns),
|
|
|
+ ...pushParams,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //
|
|
|
+ async onRowRemove(prop, scope) {
|
|
|
+ const {$index} = scope;
|
|
|
+ this.params[prop].splice($index, 1);
|
|
|
+ },
|
|
|
+ //
|
|
|
+ async useSubmit(prop) {
|
|
|
+ this.$refs[prop].validate(async (valid) => {
|
|
|
+ console.log(this.params);
|
|
|
+ if (valid) {
|
|
|
+ try {
|
|
|
+ this.loading = true;
|
|
|
+ this.params.priceApplyOrgs = [];
|
|
|
+ const {msg, code} = await SAVE(this.params);
|
|
|
+ if (code === 200) {
|
|
|
+ this.onHide();
|
|
|
+ this.$emit("success");
|
|
|
+ this.$notify.success(msg);
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ // catch
|
|
|
+ console.error(err);
|
|
|
+ } finally {
|
|
|
+ // finally
|
|
|
+ this.loading = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
},
|
|
|
- //
|
|
|
- async onRowAdd(prop, pushParams = {}) {
|
|
|
- this.$refs.superForm.validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- const { TabColumns } = this;
|
|
|
- const { TableColumns } = TabColumns.find(
|
|
|
- ({ item: { key } }) => key === prop
|
|
|
- );
|
|
|
- this.params[prop].push({
|
|
|
- delFlag: "0",
|
|
|
- ...this.$init.params(TableColumns),
|
|
|
- ...pushParams,
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
+ created() {
|
|
|
},
|
|
|
- //
|
|
|
- async onRowRemove(prop, scope) {
|
|
|
- const { $index } = scope;
|
|
|
- this.params[prop].splice($index, 1);
|
|
|
+ mounted() {
|
|
|
},
|
|
|
- //
|
|
|
- async useSubmit(prop) {
|
|
|
- this.$refs[prop].validate(async (valid) => {
|
|
|
- console.log(this.params);
|
|
|
- if (valid) {
|
|
|
- try {
|
|
|
- this.loading = true;
|
|
|
- this.params.priceApplyOrgs = [];
|
|
|
- const { msg, code } = await SAVE(this.params);
|
|
|
- if (code === 200) {
|
|
|
- this.onHide();
|
|
|
- this.$emit("success");
|
|
|
- this.$notify.success(msg);
|
|
|
- }
|
|
|
- } catch (err) {
|
|
|
- // catch
|
|
|
- console.error(err);
|
|
|
- } finally {
|
|
|
- // finally
|
|
|
- this.loading = false;
|
|
|
- }
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
+ destroyed() {
|
|
|
},
|
|
|
- },
|
|
|
- created() {},
|
|
|
- mounted() {},
|
|
|
- destroyed() {},
|
|
|
-};
|
|
|
+ };
|
|
|
</script>
|
|
|
<template>
|
|
|
<el-button
|