|
@@ -1,4 +1,4 @@
|
|
|
-import { ref, reactive, computed, toRefs } from "vue";
|
|
|
+import { ref, reactive, computed, toRefs, nextTick } from "vue";
|
|
|
import { Table } from "@/hooks/interface";
|
|
|
import { ColumnProps } from "@/components/LjVxeTable/interface";
|
|
|
import { ALLOW_EDIT_STATE } from "@/config/index";
|
|
@@ -6,6 +6,7 @@ import { SaveMtrlDef, DeleteMtrlDef, BanMtrlDef, getMtrlType } from "@/api/modul
|
|
|
import { getPriceList } from "@/api/modules/saleprice";
|
|
|
import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
import { transformTreeData } from "@/utils/index";
|
|
|
+import ErpMtrlPriceSelect from "@/views/system/selector/erpMtrlPrice/select.vue";
|
|
|
interface defaultState {
|
|
|
/**
|
|
|
* @description 单据当前状态
|
|
@@ -32,6 +33,8 @@ interface defaultState {
|
|
|
priceListFormParams: any;
|
|
|
priceListVisiable: boolean;
|
|
|
initParams: any;
|
|
|
+ MtrldefDialogRef: any;
|
|
|
+ MtrldefDialogProps: any;
|
|
|
}
|
|
|
|
|
|
const state = reactive<defaultState>({
|
|
@@ -101,7 +104,9 @@ const state = reactive<defaultState>({
|
|
|
rate: 1 as number
|
|
|
},
|
|
|
priceListVisiable: false,
|
|
|
- initParams: { mtrltypeids: undefined as Number[] }
|
|
|
+ initParams: { mtrltypeids: undefined as Number[] },
|
|
|
+ MtrldefDialogRef: null,
|
|
|
+ MtrldefDialogProps: {}
|
|
|
});
|
|
|
/**
|
|
|
* @description 表格多选数据操作
|
|
@@ -282,35 +287,81 @@ export const useHooks = (t?: any) => {
|
|
|
field: "erp_mtrlcode",
|
|
|
title: "L1物料编码",
|
|
|
basicinfo: {
|
|
|
- visible: false
|
|
|
+ el: "select",
|
|
|
+ span: 2,
|
|
|
+ editable: ALLOW_EDIT_STATE,
|
|
|
+ render: (scope: any) => {
|
|
|
+ const { column, searchParam: row, status } = scope;
|
|
|
+ let params = {};
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <ErpMtrlPriceSelect
|
|
|
+ value={row.erp_mtrlid}
|
|
|
+ {...params}
|
|
|
+ clearable
|
|
|
+ placeholder={row.erp_mtrlcode}
|
|
|
+ onOpenModal={() => fModelChoseMtrl(row, params)}
|
|
|
+ onSelect={(val: any) => rModelSetMtrl(row, val)}
|
|
|
+ onClear={() => rModelClearMtrl(scope.searchParam)}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ label: () => row.erp_mtrlcode
|
|
|
+ }}
|
|
|
+ </ErpMtrlPriceSelect>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "erp_mtrlname",
|
|
|
title: "L1物料名称",
|
|
|
basicinfo: {
|
|
|
- visible: false
|
|
|
+ el: "select",
|
|
|
+ span: 2,
|
|
|
+ editable: ALLOW_EDIT_STATE,
|
|
|
+ render: (scope: any) => {
|
|
|
+ const { column, searchParam: row, status } = scope;
|
|
|
+ let params = {};
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <ErpMtrlPriceSelect
|
|
|
+ value={row.erp_mtrlid}
|
|
|
+ {...params}
|
|
|
+ clearable
|
|
|
+ placeholder={row.erp_mtrlname}
|
|
|
+ onOpenModal={() => fModelChoseMtrl(row, params)}
|
|
|
+ onSelect={(val: any) => rModelSetMtrl(row, val)}
|
|
|
+ onClear={() => rModelClearMtrl(scope.searchParam)}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ label: () => row.erp_mtrlname
|
|
|
+ }}
|
|
|
+ </ErpMtrlPriceSelect>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "erp_mtrlmode",
|
|
|
title: "L1物料规格",
|
|
|
basicinfo: {
|
|
|
- visible: false
|
|
|
+ span: 2
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "erp_unit",
|
|
|
title: "L1物料单位",
|
|
|
basicinfo: {
|
|
|
- visible: false
|
|
|
+ span: 2
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "erp_mtrlengname",
|
|
|
title: "L1英文名称",
|
|
|
basicinfo: {
|
|
|
- visible: false
|
|
|
+ span: 2
|
|
|
}
|
|
|
},
|
|
|
{
|
|
@@ -562,6 +613,62 @@ export const useHooks = (t?: any) => {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+ /**
|
|
|
+ * @description 弹窗模块:客户选择
|
|
|
+ * @param data 当前数据
|
|
|
+ * @param status 当前订单状态
|
|
|
+ * @returns Promise
|
|
|
+ */
|
|
|
+ const fModelChoseMtrl = (data: any, params: any) => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ // if (!ALLOW_EDIT_STATE.includes(status)) return;
|
|
|
+
|
|
|
+ let _params = {
|
|
|
+ keyword: ""
|
|
|
+ };
|
|
|
+ state.MtrldefDialogProps = {
|
|
|
+ onSubmit: (res: any) => {
|
|
|
+ // submit
|
|
|
+ console.log("openCustDialog res", res);
|
|
|
+ nextTick(() => {
|
|
|
+ rModelSetMtrl(data, res.value[0]);
|
|
|
+ resolve(1);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onCancel: (error: any) => {
|
|
|
+ // cancel 回调
|
|
|
+ console.log("openCustDialog error", error);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ state.MtrldefDialogRef.show(_params);
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description 数据赋值: 联系人
|
|
|
+ * @param data 当前数据
|
|
|
+ * @param item 当前选择的数据
|
|
|
+ */
|
|
|
+ const rModelSetMtrl = (data: any, item: any) => {
|
|
|
+ data.erp_mtrlid = Number(item.mtrlid);
|
|
|
+ data.erp_mtrlname = item.mtrlname;
|
|
|
+ data.erp_mtrlcode = item.mtrlcode;
|
|
|
+ data.erp_mtrlmode = item.mtrlmode;
|
|
|
+ data.erp_unit = item.unit;
|
|
|
+ data.erp_mtrlengname = item.mtrlengname;
|
|
|
+ // data.price = item.price;
|
|
|
+ };
|
|
|
+
|
|
|
+ const rModelClearMtrl = (data: any) => {
|
|
|
+ data.erp_mtrlid = 0;
|
|
|
+ data.erp_mtrlname = "";
|
|
|
+ data.erp_mtrlcode = "";
|
|
|
+ data.erp_mtrlmode = "";
|
|
|
+ data.erp_unit = "";
|
|
|
+ data.erp_mtrlengname = "";
|
|
|
+ // data.price = 0;
|
|
|
+ };
|
|
|
+
|
|
|
return {
|
|
|
...toRefs(state),
|
|
|
columns,
|