|
@@ -9,7 +9,7 @@ import { CommonDynamicSelect } from "@/api/modules/common";
|
|
|
import SoftBedSelect from "@/views/system/selector/softbedTemplate/select.vue";
|
|
|
import { cloneDeep } from "lodash-es";
|
|
|
import { getCurrentRecords } from "@/utils/index";
|
|
|
-import MtrldefSelect from "@/views/system/selector/mtrldefNoPrice/select.vue";
|
|
|
+import MtrldefErpSelect from "@/views/system/selector/mtrldefErp/select.vue";
|
|
|
interface defaultState {
|
|
|
/**
|
|
|
* @description 单据当前状态
|
|
@@ -775,7 +775,19 @@ export const useHooks = (t?: any) => {
|
|
|
width: 80,
|
|
|
align: "center",
|
|
|
datatype: "checkbox",
|
|
|
- editRender: {}
|
|
|
+ editRender: {},
|
|
|
+ editColRender: (scope: any) => {
|
|
|
+ const { column, row, status } = scope;
|
|
|
+ if (Number(row.allow_edit) == 0) {
|
|
|
+ row.allow_edit = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <el-checkbox v-model={row.allow_edit} true-value={1} false-value={0} class="vxe-edit-col-middle"></el-checkbox>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
field: "pzname",
|
|
@@ -785,12 +797,31 @@ export const useHooks = (t?: any) => {
|
|
|
{
|
|
|
field: "pznamemx",
|
|
|
title: "部件选配项值",
|
|
|
- visible: false
|
|
|
+ editRender: {},
|
|
|
+ editColRender: (scope: any) => {
|
|
|
+ const { row } = scope;
|
|
|
+ const { _mainData } = state.LjDetailRef;
|
|
|
+ const _disabled = !row.allow_edit && !_mainData.is_template;
|
|
|
+
|
|
|
+ const partTypes = {
|
|
|
+ 1: "headboardConfigOptions",
|
|
|
+ 2: "nightstandConfigOptions",
|
|
|
+ 8: "bedframeConfigOptions"
|
|
|
+ };
|
|
|
+ const targetArray = partTypes[row.has_type] || "headboardConfigOptions";
|
|
|
+
|
|
|
+ const options = state[targetArray]?.map(item => <el-option key={item.pzid} label={item.pzname} value={item} />) || [];
|
|
|
+
|
|
|
+ return (
|
|
|
+ <el-select v-model={row.pzid} disabled={_disabled} valueKey={"pzid"} clearable={true}>
|
|
|
+ {options}
|
|
|
+ </el-select>
|
|
|
+ );
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
field: "mtrlcode",
|
|
|
- title: "物料编码",
|
|
|
- visible: false
|
|
|
+ title: "物料编码"
|
|
|
},
|
|
|
{
|
|
|
field: "mtrlname",
|
|
@@ -798,56 +829,71 @@ export const useHooks = (t?: any) => {
|
|
|
width: 400,
|
|
|
editRender: {},
|
|
|
editColRender: (scope: any) => {
|
|
|
- const { $table, column, row } = scope;
|
|
|
+ const { $table, column, row, status } = scope;
|
|
|
+ let field = column.field;
|
|
|
let _label = column.title;
|
|
|
- let params = {};
|
|
|
+ let params = {
|
|
|
+ keyword: row.mtrlcode
|
|
|
+ };
|
|
|
|
|
|
return (
|
|
|
- <>
|
|
|
- <MtrldefSelect
|
|
|
- value={row.mtrlid}
|
|
|
- {...params}
|
|
|
- clearable
|
|
|
- placeholder={_label}
|
|
|
- onOpenModal={() => fModelChoseMtrl(row, params)}
|
|
|
- onSelect={val => rModelSetMtrl(row, val)}
|
|
|
- onClear={() => rModelClearMtrl(row)}
|
|
|
- >
|
|
|
- {{
|
|
|
- label: () => row.mtrlname
|
|
|
- }}
|
|
|
- </MtrldefSelect>
|
|
|
- </>
|
|
|
+ <MtrldefErpSelect
|
|
|
+ value={row.mtrlid}
|
|
|
+ {...params}
|
|
|
+ clearable
|
|
|
+ placeholder={_label}
|
|
|
+ onOpenModal={() => fModelChoseMtrlErp(row, params)}
|
|
|
+ onSelect={val => rModelSetMtrlErp(row, val)}
|
|
|
+ onClear={() => rModelClearMtrlErp(row)}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ label: () => `${row.mtrlname} ${row.mtrlmode}`
|
|
|
+ }}
|
|
|
+ </MtrldefErpSelect>
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "unit",
|
|
|
- title: "物料单位",
|
|
|
- visible: false
|
|
|
+ title: "物料单位"
|
|
|
},
|
|
|
{
|
|
|
field: "cutting_length",
|
|
|
title: "下料长(mm)",
|
|
|
datatype: "number",
|
|
|
- editRender: {
|
|
|
- name: "$input"
|
|
|
+ editRender: {},
|
|
|
+ editColRender: (scope: any) => {
|
|
|
+ const { $table, column, row, status } = scope;
|
|
|
+ const { _mainData } = state.LjDetailRef;
|
|
|
+
|
|
|
+ let _disabled = !Boolean(row.allow_edit) && !Boolean(_mainData.is_template);
|
|
|
+ return <el-input v-model={scope.row.cutting_length} type="number" disabled={_disabled}></el-input>;
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "cutting_width",
|
|
|
title: "下料宽(mm)",
|
|
|
datatype: "number",
|
|
|
- editRender: {
|
|
|
- name: "$input"
|
|
|
+ editRender: {},
|
|
|
+ editColRender: (scope: any) => {
|
|
|
+ const { $table, column, row, status } = scope;
|
|
|
+ const { _mainData } = state.LjDetailRef;
|
|
|
+
|
|
|
+ let _disabled = !Boolean(row.allow_edit) && !Boolean(_mainData.is_template);
|
|
|
+ return <el-input v-model={scope.row.cutting_width} type="number" disabled={_disabled}></el-input>;
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "cutting_qty",
|
|
|
title: "下料数量",
|
|
|
datatype: "number",
|
|
|
- editRender: {
|
|
|
- name: "$input"
|
|
|
+ editRender: {},
|
|
|
+ editColRender: (scope: any) => {
|
|
|
+ const { $table, column, row, status } = scope;
|
|
|
+ const { _mainData } = state.LjDetailRef;
|
|
|
+
|
|
|
+ let _disabled = !Boolean(row.allow_edit) && !Boolean(_mainData.is_template);
|
|
|
+ return <el-input v-model={scope.row.cutting_qty} type="number" disabled={_disabled}></el-input>;
|
|
|
}
|
|
|
},
|
|
|
{
|
|
@@ -872,12 +918,27 @@ export const useHooks = (t?: any) => {
|
|
|
field: "loss_rate",
|
|
|
title: "损耗率",
|
|
|
datatype: "number",
|
|
|
- editRender: {}
|
|
|
+ editRender: {},
|
|
|
+ editColRender: (scope: any) => {
|
|
|
+ const { $table, column, row, status } = scope;
|
|
|
+ const { _mainData } = state.LjDetailRef;
|
|
|
+
|
|
|
+ let _disabled = !Boolean(row.allow_edit) && !Boolean(_mainData.is_template);
|
|
|
+ return <el-input v-model={scope.row.loss_rate} type="number" disabled={_disabled}></el-input>;
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
field: "price",
|
|
|
title: "材料单价",
|
|
|
- datatype: "number"
|
|
|
+ datatype: "number",
|
|
|
+ editRender: {},
|
|
|
+ editColRender: (scope: any) => {
|
|
|
+ const { $table, column, row, status } = scope;
|
|
|
+ const { _mainData } = state.LjDetailRef;
|
|
|
+
|
|
|
+ let _disabled = !Boolean(row.allow_edit) && !Boolean(_mainData.is_template);
|
|
|
+ return <el-input v-model={scope.row.loss_rate} type="number" disabled={_disabled}></el-input>;
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
field: "price_formula",
|
|
@@ -920,6 +981,10 @@ export const useHooks = (t?: any) => {
|
|
|
const { _mainData } = state.LjDetailRef;
|
|
|
const result = await GetSoftBedConfigureList({ softbed: _mainData });
|
|
|
|
|
|
+ state.nightstandConfigOptions = [];
|
|
|
+ state.bedframeConfigOptions = [];
|
|
|
+ state.headboardConfigOptions = [];
|
|
|
+
|
|
|
if (result.typeList?.length > 0) {
|
|
|
for (const item of result.typeList) {
|
|
|
if (item.contfigtypename.includes("床头柜")) {
|
|
@@ -1182,7 +1247,9 @@ export const useHooks = (t?: any) => {
|
|
|
allow_edit: 0,
|
|
|
cutting_length: 0,
|
|
|
cutting_width: 0,
|
|
|
- cutting_qty: 0
|
|
|
+ cutting_qty: 0,
|
|
|
+ loss_rate: 0,
|
|
|
+ price: 0
|
|
|
};
|
|
|
const { row } = await $table.insertAt(records, -1);
|
|
|
await $table.setCurrentRow(row);
|
|
@@ -1218,7 +1285,7 @@ export const useHooks = (t?: any) => {
|
|
|
* @param status 当前订单状态
|
|
|
* @returns Promise
|
|
|
*/
|
|
|
- const fModelChoseMtrl = (data: any, params: any) => {
|
|
|
+ const fModelChoseMtrlErp = (data: any, params: any) => {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
// if (!ALLOW_EDIT_STATE.includes(status)) return;
|
|
|
|
|
@@ -1230,7 +1297,7 @@ export const useHooks = (t?: any) => {
|
|
|
// submit
|
|
|
console.log("openCustDialog res", res);
|
|
|
nextTick(() => {
|
|
|
- rModelSetMtrl(data, res.value[0]);
|
|
|
+ rModelSetMtrlErp(data, res.value[0]);
|
|
|
resolve(1);
|
|
|
});
|
|
|
},
|
|
@@ -1248,19 +1315,19 @@ export const useHooks = (t?: any) => {
|
|
|
* @param data 当前数据
|
|
|
* @param item 当前选择的数据
|
|
|
*/
|
|
|
- const rModelSetMtrl = (data: any, item: any) => {
|
|
|
+ const rModelSetMtrlErp = (data: any, item: any) => {
|
|
|
data.mtrlid = Number(item.mtrlid);
|
|
|
- data.mtrlname = item.name;
|
|
|
- // data.mtrlcode = item.mtrlcode;
|
|
|
- // data.mtrlmode = item.mtrlmode;
|
|
|
- data.unit = item.priceunit;
|
|
|
+ data.mtrlname = item.mtrlname;
|
|
|
+ data.mtrlcode = item.mtrlcode;
|
|
|
+ data.mtrlmode = item.mtrlmode;
|
|
|
+ data.unit = item.unit;
|
|
|
};
|
|
|
|
|
|
- const rModelClearMtrl = (data: any) => {
|
|
|
+ const rModelClearMtrlErp = (data: any) => {
|
|
|
data.mtrlid = 0;
|
|
|
data.mtrlname = "";
|
|
|
- // data.mtrlcode = "";
|
|
|
- // data.mtrlmode = "";
|
|
|
+ data.mtrlcode = "";
|
|
|
+ data.mtrlmode = "";
|
|
|
data.unit = "";
|
|
|
};
|
|
|
|