Browse Source

update 混料订单编辑里加一个配方

docs_0727
lb 1 year ago
parent
commit
0d8bd350fa
5 changed files with 137 additions and 64 deletions
  1. +8
    -3
      src/views/modules/pms/blenderBatch/config.js
  2. +14
    -7
      src/views/modules/pms/blenderOrder/components/ListViewWithHead.vue
  3. +95
    -36
      src/views/modules/pms/blenderOrder/components/edit-dialog.vue
  4. +20
    -4
      src/views/modules/pms/blenderOrder/config.js
  5. +0
    -14
      src/views/modules/pms/blenderOrder/index.vue

+ 8
- 3
src/views/modules/pms/blenderBatch/config.js View File

@@ -32,9 +32,14 @@ export default function () {
width: 90, width: 90,
subcomponent: TableOperaionComponent, subcomponent: TableOperaionComponent,
options: [ options: [
{ name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
{ name: 'delete', icon: 'delete', enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
] // 只有 injectRow.task 为手动时,才允许编辑
// 只有 injectRow.task 为手动时,才允许编辑
// { name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
// { name: 'delete', icon: 'delete', enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
// 只有 injectRow.status 为 waiting 时,才允许编辑
{ name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'status' in injectRow && injectRow.status === 'Waiting' } },
{ name: 'delete', icon: 'delete', emitFull: true, promptField: 'batchNo', enable: injectRow => { return 'status' in injectRow && injectRow.status === 'Waiting' } },
]
}, },
]; ];




+ 14
- 7
src/views/modules/pms/blenderOrder/components/ListViewWithHead.vue View File

@@ -31,7 +31,8 @@
:dialog-visible.sync="dialogVisible" :dialog-visible.sync="dialogVisible"
:configs="dialogConfigs" :configs="dialogConfigs"
@refreshDataList="getList" @refreshDataList="getList"
/>
/>
<!-- :bom-code="dialogBomCode" -->
</div> </div>
</template> </template>


@@ -81,6 +82,7 @@ export default {
dataList: [], dataList: [],
tableLoading: false, tableLoading: false,
refreshLayoutKey: null, refreshLayoutKey: null,
dialogBomCode: "",
}; };
}, },
inject: ["urls"], inject: ["urls"],
@@ -138,7 +140,7 @@ export default {
} else this.dataList = res.data.list; } else this.dataList = res.data.list;


this.totalPage = res.data.total; this.totalPage = res.data.total;
}
}
} else { } else {
this.$message({ this.$message({
message: `${res.code}: ${res.msg}`, message: `${res.code}: ${res.msg}`,
@@ -209,13 +211,13 @@ export default {
this.openDialog(data, true); this.openDialog(data, true);
break; break;
} }
case 'view-batch': {
case "view-batch": {
this.$router.push({ this.$router.push({
name: toRouter, name: toRouter,
query: {
id: data // 混料订单id
}
})
query: {
id: data, // 混料订单id
},
});
break; break;
} }
case "detach": { case "detach": {
@@ -302,6 +304,11 @@ export default {
openDialog(row_data) { openDialog(row_data) {
this.dialogVisible = true; this.dialogVisible = true;


// if ("bomCode" in row_data) {
// const { bomCode } = row_data;
// this.dialogBomCode = bomCode;
// }

this.$nextTick(() => { this.$nextTick(() => {
this.$refs["edit-dialog"].init(row_data); this.$refs["edit-dialog"].init(row_data);
}); });


+ 95
- 36
src/views/modules/pms/blenderOrder/components/edit-dialog.vue View File

@@ -85,7 +85,6 @@
<script> <script>
import { pick as __pick } from "@/utils/filters"; import { pick as __pick } from "@/utils/filters";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import moment from "moment";


export default { export default {
name: "DialogJustForm", name: "DialogJustForm",
@@ -102,43 +101,58 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
// 特殊需求
// bomCode: {
// type: String,
// default: "x",
// },
}, },
inject: ["urls"], inject: ["urls"],
data() { data() {
const dataForm = {}; const dataForm = {};
const delayList = [];


this.configs.form.rows.forEach((row) => { this.configs.form.rows.forEach((row) => {
row.forEach((col) => { row.forEach((col) => {
dataForm[col.prop] = col.default ?? null; dataForm[col.prop] = col.default ?? null;


if (col.fetchData)
col.fetchData().then(({ data: res }) => {
if (res.code === 0) {
if ("list" in res.data) {
this.$set(
col,
"options",
res.data.list.map((i) => ({
label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
value: col.optionValue ? i[col.optionValue] : i.id,
}))
);
} else if (Array.isArray(res.data)) {
this.$set(
col,
"options",
res.data.map((i) => ({
label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
value: col.optionValue ? i[col.optionValue] : i.id,
}))
);
if (col.fetchData && typeof col.fetchData === "function") {
if (col.delayRequest) delayList.push(col);
// let doRequest = null;
// if (col.fetchData.length) {
// console.log(`this.bomCode '${this.bomCode}'`);
// // 如果有参数
// doRequest = col.fetchData.bind(this.bomCode);
// } else doRequest = col.fetchData;
else
col.fetchData().then(({ data: res }) => {
if (res.code === 0) {
if ("list" in res.data) {
this.$set(
col,
"options",
res.data.list.map((i) => ({
label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
value: col.optionValue ? i[col.optionValue] : i.id,
}))
);
} else if (Array.isArray(res.data)) {
this.$set(
col,
"options",
res.data.map((i) => ({
label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
value: col.optionValue ? i[col.optionValue] : i.id,
}))
);
} else {
console.log("请检查返回的数据类型");
}
} else { } else {
console.log("请检查返回的数据类型");
col.options.splice(0);
} }
} else {
col.options.splice(0);
}
});
});
}
}); });
}); });
return { return {
@@ -146,6 +160,7 @@ export default {
dataForm, dataForm,
detailMode: false, detailMode: false,
baseDialogConfig: null, baseDialogConfig: null,
delayList,
}; };
}, },
computed: { computed: {
@@ -200,18 +215,61 @@ export default {
); );
}, },


init({ id, code, blender }) {
// id 和 混料机 ID 混料订单号
init(row) {
this.loadingStatus = true;
// id 和 混料机 ID 混料订单号 和 配方id
const { id, code, blender, bomId } = row;

// console.log(" { id, code, blender } = row;", row);

if (this.$refs.dataForm) { if (this.$refs.dataForm) {
this.$refs.dataForm.clearValidate(); this.$refs.dataForm.clearValidate();
} }


this.detailMode = false;
this.$nextTick(() => {
this.dataForm.id = id || null;
this.dataForm.blender = blender;
this.dataForm.code = code;
this.delayList.forEach((col) => {
// console.log("delay fetch", col);
// 需要延迟获取异步数据的 col 配置
if (col.fetchDataParam in row) {
// console.log("delay row ", row, row[col.fetchDataParam]);
col.fetchData(row[col.fetchDataParam]).then(({ data: res }) => {
if (res.code === 0) {
if ("list" in res.data) {
this.$set(
col,
"options",
res.data.list.map((i) => ({
label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
value: col.optionValue ? i[col.optionValue] : i.id,
}))
);
} else if (Array.isArray(res.data)) {
this.$set(
col,
"options",
res.data.map((i) => ({
label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
value: col.optionValue ? i[col.optionValue] : i.id,
}))
);
} else {
console.log("请检查返回的数据类型");
}
} else {
col.options.splice(0);
}

this.loadingStatus = false;
});
}
}); });

this.detailMode = false;

this.dataForm.id = id || null;
this.dataForm.blender = blender;
this.dataForm.code = code;
this.dataForm.bomId = bomId;
if (!this.delayList.length) this.loadingStatus = false;
}, },


/** handlers */ /** handlers */
@@ -234,9 +292,10 @@ export default {
if (passed) { if (passed) {
this.loadingStatus = true; this.loadingStatus = true;


const { id, blender } = this.dataForm
const { id, blender, bomId } = this.dataForm;


return this.$http.get(this.urls.changeBlender, { params: { id, blender } })
return this.$http
.get(this.urls.changeBlender, { params: { id, blender, bomId } })
.then(({ data: res }) => { .then(({ data: res }) => {
this.loadingStatus = false; this.loadingStatus = false;
if (res.code === 0) { if (res.code === 0) {


+ 20
- 4
src/views/modules/pms/blenderOrder/config.js View File

@@ -9,8 +9,9 @@ export default function () {
{ width: 160, prop: "createTime", label: "添加时间", filter: timeFilter }, { width: 160, prop: "createTime", label: "添加时间", filter: timeFilter },
// { prop: "kilnCode", label: "窑炉" }, // { prop: "kilnCode", label: "窑炉" },
{ width: 160, prop: "orderCode", label: "主订单号" }, { width: 160, prop: "orderCode", label: "主订单号" },
{ prop: "orderCate", label: "主订单子号" },
{ width: 60, prop: "orderCate", label: "子号" },
{ width: 160, prop: "code", label: "混料订单号" }, { width: 160, prop: "code", label: "混料订单号" },
{ width: 60, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
{ {
prop: "statusDictValue", prop: "statusDictValue",
label: "订单状态", label: "订单状态",
@@ -20,8 +21,7 @@ export default function () {
// { prop: "shapeCode", label: "砖型" }, // { prop: "shapeCode", label: "砖型" },
{ prop: "bomCode", label: "配方" }, { prop: "bomCode", label: "配方" },
{ width: 120, prop: "qty", label: "混料总量 [kg]" }, { width: 120, prop: "qty", label: "混料总量 [kg]" },
{ prop: "percent", label: "完成进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
{ prop: "ai", label: "版本号" },
{ width: 60, prop: "ai", label: "版本" },
{ prop: "blenderCode", label: "混料机" }, { prop: "blenderCode", label: "混料机" },
// { width: 120, prop: "badqty", label: "不合格数量" }, // { width: 120, prop: "badqty", label: "不合格数量" },
// { prop: "remark", label: "备注" }, // { prop: "remark", label: "备注" },
@@ -35,7 +35,7 @@ export default function () {
width: 120, width: 120,
subcomponent: TableOperaionComponent, subcomponent: TableOperaionComponent,
options: [ options: [
{ name:"edit", label: "编辑", emitFull: true, icon: 'edit-outline' },
{ name: "edit", label: "编辑", emitFull: true, icon: 'edit-outline' },
{ name: "view-batch", label: "查看批次", color: "#ff8000", toRouter: 'pms-blenderBatch', icon: 'document-copy' }, // 路由跳转至 pms-blenderBatch { name: "view-batch", label: "查看批次", color: "#ff8000", toRouter: 'pms-blenderBatch', icon: 'document-copy' }, // 路由跳转至 pms-blenderBatch
{ name: "detach", label: "下发", color: "#099", icon: 'bottom-right' }, { name: "detach", label: "下发", color: "#099", icon: 'bottom-right' },
], // , url: '/pms/trans/pressDeli' }] ], // , url: '/pms/trans/pressDeli' }]
@@ -96,6 +96,22 @@ export default function () {
label: '混料订单号' label: '混料订单号'
}, },
], ],
[
{
select: true,
label: "配方",
prop: "bomId",
options: [],
optionLabelProp: 'code',
/** ====== */
fetchData: (bomCode) => this.$http.get('/pms/bom/pageVersion', { params: { key: bomCode, limit: 999, page: 1 } }),
fetchDataParam: 'bomCode',
delayRequest: true,
/** ====== */
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { clearable: true, filterable: true, placeholder: "请选择配方" },
},
],
[ [
{ {
select: true, select: true,


+ 0
- 14
src/views/modules/pms/blenderOrder/index.vue View File

@@ -20,20 +20,6 @@ export default {
urls: this.allUrls, urls: this.allUrls,
}; };
}, },
// urls: {
// type: Object,
// required: true,
// default: () => ({
// /** 列表 url **/ list: null,
// /** 分页 url **/ page: null,
// /** 编辑保存 url **/ edit: null,
// /** 删除条目 url **/ delete: null,
// /** 详情 url **/ detail: null,
// /** 导出 url **/ export: null,
// /** 导入 url **/ import: null,
// /** 其他 url **/ other: null,
// }),
// },
data() { data() {
const { tableConfig, headFormConfigs, urls, dialogConfigs } = initConfig.call(this); const { tableConfig, headFormConfigs, urls, dialogConfigs } = initConfig.call(this);
return { return {


Loading…
Cancel
Save