Merge branch 'dev-scheduling' of http://42.192.7.176:3000/suojin/jonhon-mes-web into dev-scheduling

dev-scheduling
zhangdi 4 days ago
commit 58d187c8d4
  1. 66
      src/api/orderManagement/moldPlan.js
  2. 74
      src/api/productionManagement/coatingMaterial.js
  3. 42
      src/utils/dict.js
  4. 30
      src/utils/dictData.json
  5. 253
      src/views/orderManagement/components/mold/addMoldDailog.vue
  6. 130
      src/views/orderManagement/components/mold/detailsInfoDialog.vue
  7. 143
      src/views/orderManagement/components/mold/moldAddOneDialog.vue
  8. 658
      src/views/orderManagement/components/mold/moldRecord.vue
  9. 398
      src/views/orderManagement/components/mold/moldRequire.vue
  10. 23
      src/views/orderManagement/moldPlan.vue
  11. 51
      vite.config.mjs

@ -0,0 +1,66 @@
import request from '@/axios';
//列表接口
export const getList = (current, size, params) => {
return request({
url: '/blade-desk/order/moldPlan/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
//新增
export const add = row => {
return request({
url: '/blade-desk/order/moldPlan/save',
method: 'post',
data: row,
});
};
// 修改
export const update = row => {
return request({
url: '/blade-desk/order/moldPlan/update',
method: 'post',
data: row,
});
};
// 获取详情
export const getOrderMoldPlanCaDeatils = (params) => {
return request({
url: `/blade-desk/order/moldPlan/detail`,
method: 'get',
params,
});
};
//逻辑删除
export const removeByIds = ids => {
return request({
url: '/blade-desk/order/moldPlan/remove',
method: 'post',
data: ids,
});
};
//批量关闭
export const closeBatchs = ids => {
return request({
url: '/blade-desk/order/moldPlan/closeBatch',
method: 'post',
data: ids,
});
};
//列表接口
export const getListpageNearlyMonth = (current, size, params) => {
return request({
url: '/blade-desk/order/moldPlan/pageNearlyMonth',
method: 'get',
params: {
...params,
current,
size,
},
});
};

@ -0,0 +1,74 @@
import request from '@/axios';
//列表接口
export const getList = (current, size, params) => {
return request({
url: '/blade-desk/order/plateGoodsRecord/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
//新增
export const add = row => {
return request({
url: '/blade-desk/order/plateGoodsRecord/save',
method: 'post',
data: row,
});
};
// 修改
export const update = row => {
return request({
url: '/blade-desk/order/plateGoodsRecord/update',
method: 'post',
data: row,
});
};
//批量审核
export const confirmBatch = row => {
return request({
url: '/blade-desk/order/plateGoodsRecord/confirmBatch',
method: 'post',
data: row,
});
};
// 获取详情
export const getOrderMoldPlanCaDeatils = (params) => {
return request({
url: `/blade-desk/order/plateGoodsRecord/detail`,
method: 'get',
params,
});
};
//逻辑删除
export const removeByIds = ids => {
return request({
url: '/blade-desk/order/plateGoodsRecord/remove',
method: 'post',
data: ids,
});
};
//批量关闭
export const closeBatchs = ids => {
return request({
url: '/blade-desk/order/plateGoodsRecord/closeBatch',
method: 'post',
data: ids,
});
};
//列表接口
export const getListlistNoFinished = (current, size, params) => {
return request({
url: '/blade-desk//order/plateGoodsRecord/listNoFinished',
method: 'get',
params: {
...params,
current,
size,
},
});
};

@ -0,0 +1,42 @@
import dictData from './dictData.json';
/**
* @param {*} keys
* @returns
* 处理本地文件字典 对应查找
* 使用方法可定义全局变量 简化简化代码工程
* [this.departments, this.materials]= getSelectData(['departments', 'materials']);
*/
export function getSelectData(keys) {
const dict = dictData || {};
if (!keys && keys !== '') return null;
//处理单个字典值
if (typeof keys === 'string') {
return dict[keys] || null;
}
//处理多个本地字典值
if (Array.isArray(keys)) {
return keys.map(k => dict[k] || null);
}
if (typeof keys === 'object') {
const result = {};
for (const [key, value] of Object.entries(keys)) {
const list = dict[key];
if (!Array.isArray(list)) {
result[key] = null;
continue;
}
if (typeof value === 'undefined') {
result[key] = list;
} else if (Array.isArray(value)) {
result[key] = value.map(v => list.find(item => String(item.value) === String(v)) || null);
} else {
result[key] = list.find(item => String(item.value) === String(value)) || null;
}
}
return result;
}
return null;
}

@ -0,0 +1,30 @@
{
"materials": [
{
"label": "钢材",
"value": "steel"
},
{
"label": "塑料",
"value": "plastic"
},
{
"label": "涂料",
"value": "coating"
}
],
"departments": [
{
"label": "生产部",
"value": "production"
},
{
"label": "质检部",
"value": "qc"
},
{
"label": "研发部",
"value": "rd"
}
]
}

@ -1,29 +1,43 @@
<template>
<el-dialog title="新增" append-to-body :modelValue="openShow" width="90%" @close="closeDialog" fullscreen>
<el-dialog
title="新增"
append-to-body
:modelValue="openShow"
width="90%"
@close="closeDialog"
fullscreen
>
<div style="margin-bottom: 12px" v-if="moldAddMore">
<el-button type="primary" @click="addTable">插入一行</el-button>
<el-button type="danger" @click="delTable">删除选中行</el-button>
</div>
<el-form ref="tableForm" :model="form" :rules="formRules" label-width="0px">
<div v-if="formError" class="error-message" style="color: #f56c6c; margin-bottom: 10px;">
<div v-if="formError" class="error-message" style="color: #f56c6c; margin-bottom: 10px">
{{ formError }}
</div>
<el-table :data="form.tableData" @select="selectChange" style="width: 100%" border>
<el-table :data="form.moldPlan" @select="selectChange" style="width: 100%" border>
<el-table-column type="selection" width="55" v-if="moldAddMore"></el-table-column>
<el-table-column type="index" width="80" label="序号" align="center"></el-table-column>
<el-table-column prop="partCode" label="零件编码" align="center">
<template #header>
<span><i style="color:red">*</i>零件编码</span>
<span><i style="color: red">*</i>零件编码</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].partCode`" :rules="formRules.partCode">
<el-select v-model="scope.row.partCode" :filterable="true" allow-create
@change="partCodeChange(scope.row)">
<el-option label="零件一" value="1" />
<el-option label="零件二" value="2" />
<el-form-item :prop="`moldPlan[${scope.$index}].partCode`" :rules="formRules.partCode">
<el-select
v-model="scope.row.partCode"
:filterable="true"
allow-create
@change="partCodeChange(scope.row.partCode, scope.$index)"
>
<el-option
v-for="(item, index) in partCodeList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</template>
@ -37,14 +51,22 @@
<el-table-column prop="moCode" label="工装号" align="center">
<template #header>
<span><i style="color:red">*</i>工装号</span>
<span><i style="color: red">*</i>工装号</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].moCode`" :rules="formRules.moCode">
<el-select v-model="scope.row.moCode" :filterable="true" allow-create
@change="frockChange(scope.row)">
<el-option label="工装一" value="1" />
<el-option label="工装二" value="2" />
<el-form-item :prop="`moldPlan[${scope.$index}].moCode`" :rules="formRules.moCode">
<el-select
v-model="scope.row.moCode"
:filterable="true"
allow-create
@change="frockChange(scope.row.moCode, scope.$index)"
>
<el-option
v-for="(item, index) in moCodeList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</template>
@ -58,22 +80,27 @@
<el-table-column prop="quantity" label="数量" align="center">
<template #header>
<span><i style="color:red">*</i>数量</span>
<span><i style="color: red">*</i>数量</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].shuliang`" :rules="formRules.shuliang">
<el-input-number v-model="scope.row.shuliang" :min="1" controls-position="right"
style="width: 90%;" @change="handleChange" />
<el-form-item :prop="`moldPlan[${scope.$index}].shuliang`" :rules="formRules.shuliang">
<el-input-number
v-model="scope.row.shuliang"
:min="1"
controls-position="right"
style="width: 90%"
@change="handleChange"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="planType" label="计划类型" align="center">
<template #header>
<span><i style="color:red">*</i>计划类型</span>
<span><i style="color: red">*</i>计划类型</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].planType`" :rules="formRules.planType">
<el-form-item :prop="`moldPlan[${scope.$index}].planType`" :rules="formRules.planType">
<el-select v-model="scope.row.planType" :filterable="true" allow-create>
<el-option label="计划类型一" value="1" />
<el-option label="计划类型二" value="2" />
@ -84,34 +111,40 @@
<el-table-column prop="needDate" label="需求日期" align="center">
<template #header>
<span><i style="color:red">*</i>需求日期</span>
<span><i style="color: red">*</i>需求日期</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].needDate`" :rules="formRules.needDate">
<el-date-picker v-model="scope.row.needDate" type="date" placeholder="请选择"
style="width: 80%;" />
<el-form-item :prop="`moldPlan[${scope.$index}].needDate`" :rules="formRules.needDate">
<el-date-picker
v-model="scope.row.needDate"
type="date"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
placeholder="请选择"
style="width: 80%"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="quaLevel" label="生产标识" align="center">
<template #header>
<span><i style="color:red">*</i>生产标识</span>
<span><i style="color: red">*</i>生产标识</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].quaLevel`" :rules="formRules.quaLevel">
<el-form-item :prop="`moldPlan[${scope.$index}].quaLevel`" :rules="formRules.quaLevel">
<el-input v-model="scope.row.quaLevel" />
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="keeper.userName" label="保管员" align="center">
<el-table-column prop="keeper" label="保管员" align="center">
<template #header>
<span><i style="color:red">*</i>保管员</span>
<span><i style="color: red">*</i>保管员</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].userName`" :rules="formRules.userName">
<el-select v-model="scope.row.userName" :filterable="true" allow-create>
<el-form-item :prop="`moldPlan[${scope.$index}].keeper`" :rules="formRules.keeper">
<el-select v-model="scope.row.keeper" :filterable="true" allow-create>
<el-option label="人员一" value="1" />
<el-option label="人员二" value="2" />
</el-select>
@ -127,7 +160,9 @@
<el-table-column fixed="right" label="操作" width="100" align="left" v-if="moldAddMore">
<template #default="scope">
<el-button type="text" @click.prevent="delTable(scope.row, scope.$index)">删除</el-button>
<el-button type="text" @click.prevent="delTable(scope.row, scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
@ -143,79 +178,92 @@
</template>
<script>
import { add } from '@/api/orderManagement/moldPlan';
import { index } from '@/views/plugin/workflow/api/statistics';
export default {
props: {
showDialog: {
type: Boolean,
default: false
default: false,
},
moldAddMore: {
type: Boolean,
default: false
}
default: false,
},
},
data() {
return {
moCodeList: [
{ label: '工装一', value: 1 },
{
label: '工装二',
value: 2,
},
],
partCodeList: [
{ label: '零件一', value: 1 },
{
label: '零件二',
value: 2,
},
],
openShow: false,
formError: '',
form: {
tableData: []
moldPlan: [],
},
formRules: {
tableData: [
{
required: true,
message: '请至少添加一行数据',
trigger: 'submit',
type: 'array'
// moldPlan: [
// {
// required: true,
// message: '',
// trigger: 'submit',
// type: 'array',
// },
// {
// validator: (rule, value, callback) => {
// if (value.length === 0) {
// callback(new Error(''));
// } else {
// callback();
// }
// },
// trigger: 'submit',
// },
// ],
// partCode: [{ required: true, message: '', trigger: ['change', 'submit'] }],
// moCode: [{ required: true, message: '', trigger: ['change', 'submit'] }],
// shuliang: [
// { required: true, message: '', trigger: ['change', 'submit'] },
// { type: 'number', min: 1, message: '1', trigger: ['change', 'submit'] },
// ],
// planType: [{ required: true, message: '', trigger: ['change', 'submit'] }],
// needDate: [{ required: true, message: '', trigger: ['change', 'submit'] }],
// quaLevel: [{ required: true, message: '', trigger: ['blur', 'submit'] }],
// keeper: [{ required: true, message: '', trigger: ['change', 'submit'] }],
},
{
validator: (rule, value, callback) => {
if (value.length === 0) {
callback(new Error('请至少添加一行数据'));
} else {
callback();
}
},
trigger: 'submit'
}
],
partCode: [
{ required: true, message: '请选择零件编码', trigger: ['change', 'submit'] }
],
moCode: [
{ required: true, message: '请选择工装号', trigger: ['change', 'submit'] }
],
shuliang: [
{ required: true, message: '请输入数量', trigger: ['change', 'submit'] },
{ type: 'number', min: 1, message: '数量不能小于1', trigger: ['change', 'submit'] }
],
planType: [
{ required: true, message: '请选择计划类型', trigger: ['change', 'submit'] }
],
needDate: [
{ required: true, message: '请选择需求日期', trigger: ['change', 'submit'] }
],
quaLevel: [
{ required: true, message: '请输入生产标识', trigger: ['blur', 'submit'] }
],
userName: [
{ required: true, message: '请选择保管员', trigger: ['change', 'submit'] }
]
}
};
},
mounted() {
this.openShow = this.showDialog;
if (this.moldAddMore && this.form.tableData.length === 0) {
if (this.moldAddMore && this.form.moldPlan.length === 0) {
this.addTable();
}
},
watch: {
showDialog(newVal) {
this.openShow = newVal;
if (newVal && this.moldAddMore && this.form.moldPlan.length === 0) {
this.addTable();
}
},
},
methods: {
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
this.form.tableData = [];
this.form.moldPlan = [];
this.formError = '';
this.$refs.tableForm?.resetFields();
},
@ -223,7 +271,7 @@ export default {
row._select = !row._select;
},
addTable() {
this.form.tableData.push({
this.form.moldPlan.push({
_select: false,
partCode: '',
partName: '',
@ -234,28 +282,31 @@ export default {
needDate: '',
quaLevel: '',
userName: '',
memo: ''
memo: '',
});
},
delTable(row, index) {
if (index !== undefined) {
this.form.tableData.splice(index, 1);
this.form.moldPlan.splice(index, 1);
} else {
this.form.tableData = this.form.tableData.filter(item => !item._select);
this.form.moldPlan = this.form.moldPlan.filter(item => !item._select);
}
},
partCodeChange(row) {
//
partCodeChange(val, i) {
this.form.moldPlan[i].partName =
this.partCodeList.find(item => item.value === val)?.label || '';
},
frockChange(row) {
frockChange(val, i) {
//
this.form.moldPlan[i].moName = this.moCodeList.find(item => item.value === val)?.label || '';
},
handleChange() {
//
},
submitForm() {
//
this.formError = '';
this.$refs.tableForm.validate((isValid) => {
this.$refs.tableForm.validate(isValid => {
if (!isValid) {
this.formError = '存在未完善的字段,请检查表格中的红色提示';
this.$nextTick(() => {
@ -265,21 +316,31 @@ export default {
}
});
return;
} else {
console.log('submitForm after validate', JSON.parse(JSON.stringify(this.form)));
add(JSON.parse(JSON.stringify(this.form))).then(res => {
if (res.code === 200) {
this.$message.success('提交成功');
this.closeDialog();
}
});
}
//
const submitData = this.form.tableData.map(row => {
const { _select, ...validData } = row;
return validData;
});
// const submitData = this.form.moldPlan.map(row => {
// const { _select, ...validData } = row;
// return validData;
// });
// 便
//
this.$message.success('提交成功');
this.closeDialog();
this.$emit('submitSuccess', submitData);
// this.$emit('submitSuccess', submitData);
});
}
}
},
},
};
</script>

@ -1,67 +1,61 @@
<template>
<el-dialog title="详情" append-to-body :modelValue="openShow" width="70%" @close="closeDialog" fullscreen>
<el-descriptions class="margin-top" :column="4" border title="需求信息" >
<el-dialog
title="详情"
append-to-body
:modelValue="openShow"
width="70%"
@close="closeDialog"
fullscreen
>
<el-descriptions class="margin-top" :column="4" border title="需求信息">
<el-descriptions-item label="需求编号">9999</el-descriptions-item>
<el-descriptions-item label="工装编号">9999</el-descriptions-item>
<el-descriptions-item label="工装名称">9999</el-descriptions-item>
<el-descriptions-item label="工装编号">{{ form.moCode }}</el-descriptions-item>
<el-descriptions-item label="工装名称">{{ form.moName}}</el-descriptions-item>
<el-descriptions-item label="关联订单数">9999</el-descriptions-item>
<el-descriptions-item label="订单需求量">9999</el-descriptions-item>
<el-descriptions-item label="订单需求量">{{ form.quantity || "-" }}</el-descriptions-item>
<el-descriptions-item label="库存数量">9999</el-descriptions-item>
<el-descriptions-item label="占用数量">9999</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" :column="4" border title="工装占用信息"></el-descriptions>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="shuliang" label="工作订单号" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="占用数" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="占用时间" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="工作订单号" align="center"> </el-table-column>
<el-table-column prop="shuliang" label="占用数" align="center"> </el-table-column>
<el-table-column prop="shuliang" label="占用时间" align="center"> </el-table-column>
</el-table>
<el-descriptions class="margin-top" :column="4" border title="关联订单"></el-descriptions>
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" width="80" label="序号" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="计划单号" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="零件号" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="产品名称" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="零件数量" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="需求交期" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="工装需求数量" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="已交付数量" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="未交付数量" align="center">
</el-table-column>
<el-table-column prop="shuliang" label="计划下达时间" align="center">
</el-table-column>
<el-table-column type="index" width="80" label="序号" align="center"> </el-table-column>
<el-table-column prop="id" label="计划单号" align="center"> </el-table-column>
<el-table-column prop="partCode" label="零件号" align="center"> </el-table-column>
<el-table-column prop="partName" label="产品名称" align="center"> </el-table-column>
<el-table-column prop="quantity" label="零件数量" align="center"> </el-table-column>
<el-table-column prop="needDate" label="需求交期" align="center"> </el-table-column>
<el-table-column prop="shuliang" label="工装需求数量" align="center"> </el-table-column>
<el-table-column prop="shuliang" label="已交付数量" align="center"> </el-table-column>
<el-table-column prop="shuliang" label="未交付数量" align="center"> </el-table-column>
<el-table-column prop="shuliang" label="计划下达时间" align="center"> </el-table-column>
</el-table>
<el-descriptions class="margin-top" :column="4" border title="申报记录(近一个的记录)"></el-descriptions>
<el-descriptions
class="margin-top"
:column="4"
border
title="申报记录(近一个的记录)"
></el-descriptions>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="shuliang" label="零件号" align="center"></el-table-column>
<el-table-column prop="shuliang" label="零件名称" align="center"></el-table-column>
<el-table-column prop="shuliang" label="对应工装号" align="center"></el-table-column>
<el-table-column prop="shuliang" label="工装名称" align="center"></el-table-column>
<el-table-column prop="shuliang" label="数量" align="center"></el-table-column>
<el-table-column prop="partCode" label="零件号" align="center"></el-table-column>
<el-table-column prop="partName" label="零件名称" align="center"></el-table-column>
<el-table-column prop="moCode" label="对应工装号" align="center"></el-table-column>
<el-table-column prop="moName" label="工装名称" align="center"></el-table-column>
<el-table-column prop="quantity" label="数量" align="center"></el-table-column>
<el-table-column prop="shuliang" label="计划类型" align="center"></el-table-column>
<el-table-column prop="shuliang" label="需求日期" align="center"></el-table-column>
<el-table-column prop="shuliang" label="生产标识" align="center"></el-table-column>
<el-table-column prop="shuliang" label="保管员" align="center"></el-table-column>
<el-table-column prop="shuliang" label="下达人" align="center"></el-table-column>
<el-table-column prop="shuliang" label="建立时间" align="center"></el-table-column>
<el-table-column prop="shuliang" label="建立人员" align="center"></el-table-column>
<el-table-column prop="shuliang" label="备注" align="center"></el-table-column>
<el-table-column prop="shuliang" label="状态" align="center"></el-table-column>
<el-table-column prop="needDate" label="需求日期" align="center"></el-table-column>
<el-table-column prop="quaLevel" label="生产标识" align="center"></el-table-column>
<el-table-column prop="keeper" label="保管员" align="center"></el-table-column>
<el-table-column prop="releaser" label="下达人" align="center"></el-table-column>
<el-table-column prop="createTime" label="建立时间" align="center"></el-table-column>
<el-table-column prop="creatUser" label="建立人员" align="center"></el-table-column>
<el-table-column prop="memo" label="备注" align="center"></el-table-column>
<el-table-column prop="mafStatusTitle" label="状态" align="center"></el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
@ -72,11 +66,16 @@
</el-dialog>
</template>
<script>
import { getOrderMoldPlanCaDeatils } from '@/api/orderManagement/moldPlan';
export default {
props: {
showDialog: {
type: Boolean,
default: false
default: false,
},
id: {
type: String,
default: '1',
},
},
data() {
@ -84,36 +83,27 @@ export default {
openShow: false,
form: {},
tableData: [],
}
};
},
mounted() {
this.openShow = this.showDialog
this.openShow = this.showDialog;
getOrderMoldPlanCaDeatils({ id: this.id }).then(res => {
if (res.code == 200) {
this.form = { ...res.data };
}
});
},
methods: {
closeDialog() {
this.openShow = false
this.openShow = false;
this.$emit('closeDialog');
},
addTable() {
this.tableData.push({
code: '3',
No: '3',
number: '3',
shuliang: '',
shuliang: 0
})
},
delTable(row, index) {
this.tableData.splice(index, 1)
},
}
}
};
</script>
<style lang="scss" scoped>
.margin-top{
.margin-top {
margin-top: 24px;
}
</style>

@ -1,28 +1,44 @@
<template>
<el-dialog title="模具申报" append-to-body :modelValue="openShow" width="40%" @close="closeDialog">
<el-dialog
title="模具申报"
append-to-body
:modelValue="openShow"
width="40%"
@close="closeDialog"
>
<el-form ref="form" :model="form" label-width="100px" :rules="rules">
<el-row>
<el-col :span="12">
<el-form-item label="零件编码:">21E8-040-17188-A1</el-form-item>
<el-form-item label="零件编码:">{{ form.partCode }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="零件名称:">21E8-040-17188-A1</el-form-item>
<el-form-item label="零件名称:">{{ form.partName }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工装号:">21E8-040-17188-A1</el-form-item>
<el-form-item label="工装号:">{{ form.moCode }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工装名称:">21E8-040-17188-A1</el-form-item>
<el-form-item label="工装名称:">{{ form.moName }}</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数量:" prop="shuliang">
<el-input-number v-model="form.shuliang" :min="1" controls-position="right" style="width: 80%;"
@change="handleChange" />
<el-form-item label="数量:" prop="quaLevel">
<el-input-number
v-model="form.quaLevel"
:min="1"
controls-position="right"
style="width: 80%"
@change="handleChange"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划类型:" prop="moCode">
<el-select v-model="form.moCode" :filterable="true" allow-create @change="frockChange(form)" style="width: 80%;">
<el-form-item label="计划类型:" prop="moCodes">
<el-select
v-model="form.moCodes"
:filterable="true"
allow-create
style="width: 80%"
>
<el-option label="计划类型一" value="1" />
<el-option label="计划类型二" value="2" />
</el-select>
@ -30,17 +46,29 @@
</el-col>
<el-col :span="12">
<el-form-item label="需求日期:" prop="needDate">
<el-date-picker v-model="form.needDate" type="date" placeholder="请选择" style="width: 80%;" />
<el-date-picker
v-model="form.needDate"
type="date"
placeholder="请选择"
style="width: 80%"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产标识:" prop="quaLevel">
<el-input v-model="form.quaLevel" style="width: 80%;" />
<el-form-item label="生产标识:" prop="quaLevels">
<el-input v-model="form.quaLevels" style="width: 80%" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="保管员:" prop="userName">
<el-select v-model="form.userName" :filterable="true" allow-create @change="frockChange(form)" style="width: 80%;">
<el-form-item label="保管员:" prop="keeper">
<el-select
v-model="form.keeper"
:filterable="true"
allow-create
style="width: 80%"
>
<el-option label="人员一" value="1" />
<el-option label="人员二" value="2" />
</el-select>
@ -51,12 +79,9 @@
<el-input v-model="form.memo" type="textarea" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
@ -66,63 +91,71 @@
</el-dialog>
</template>
<script>
import { getOrderMoldPlanCaDeatils,update } from '@/api/orderManagement/moldPlan';
export default {
props: {
showDialog: {
type: Boolean,
default: false
default: false,
},
id: {
type: String,
default: '1',
},
},
data() {
return {
openShow: false,
form: {
},
form: {},
tableData: [],
rules: {
shuliang: [
{ required: true, message: '请输入', trigger: 'blur' },
],
moCode: [
{ required: true, message: '请选择', trigger: 'blur' },
],
needDate:[
{ required: true, message: '请选择', trigger: 'blur' },
],
quaLevel:[
{ required: true, message: '请输入', trigger: 'blur' },
],
userName:[
{ required: true, message: '请输入', trigger: 'blur' },
],
}
}
quaLevel: [{ required: true, message: '请输入数量', trigger: 'blur' }],
moCodes: [{ required: true, message: '请选择计划类型', trigger: 'change' }],
needDate: [{ required: true, message: '请选择需求日期', trigger: 'change' }],
keeper: [{ required: true, message: '请输入保管员', trigger: 'change' }],
},
};
},
mounted() {
this.openShow = this.showDialog
this.openShow = this.showDialog;
getOrderMoldPlanCaDeatils({ id: this.id }).then(res => {
if (res.code == 200) {
this.form = { ...res.data };
}
});
},
methods: {
closeDialog() {
this.openShow = false
this.openShow = false;
this.$emit('closeDialog');
},
addTable() {
this.tableData.push({
code: '3',
No: '3',
number: '3',
shuliang: '',
shuliang: 0
submit() {
//
this.$refs.form.validate(valid => {
if (!valid) {
this.$message.error('表单校验未通过,请检查必填项');
return;
}
// //
const submitData = { ...this.form ,...{id:this.id}};
//
update(submitData)
.then(res => {
if (res && res.code === 200) {
this.$message.success('保存成功');
this.closeDialog();
//
this.$emit('updateSuccess', submitData);
} else {
this.$message.error( '保存失败');
}
})
.catch(() => {
this.$message.error('请求失败,请稍后重试');
});
});
},
delTable(row, index) {
this.tableData.splice(index, 1)
},
}
}
};
</script>
<style lang="scss" scoped></style>

@ -1,12 +1,22 @@
<template>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
</template>
<template #menu-right>
</template>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #poCode="{ row }">
<el-text type="primary">{{ row.poCode }}</el-text>
@ -14,17 +24,13 @@
<template #prodIdent="{ row }">
<el-tag>{{ row.prodIdent }}</el-tag>
</template>
<template #menu="{ row }">
</template>
<template #menu="{ row }"> </template>
</avue-crud>
</template>
<script>
import { getListpageNearlyMonth } from '@/api/orderManagement/moldPlan';
export default {
components: {
},
components: {},
data() {
return {
activeName: 'first',
@ -107,7 +113,7 @@ export default {
headerAlign: 'center',
align: 'center',
width: 120,
searchLabelWidth:60,
searchLabelWidth: 60,
},
{
label: '零件名称',
@ -128,7 +134,7 @@ export default {
headerAlign: 'center',
align: 'center',
width: 180,
searchLabelWidth:90,
searchLabelWidth: 90,
},
{
label: '工装名称',
@ -138,7 +144,7 @@ export default {
span: 12,
headerAlign: 'center',
align: 'left',
width:140,
width: 140,
},
{
label: '数量',
@ -148,7 +154,7 @@ export default {
span: 12,
headerAlign: 'center',
align: 'center',
width:120,
width: 120,
},
{
label: '计划类型',
@ -158,7 +164,7 @@ export default {
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
{
@ -169,7 +175,7 @@ export default {
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
{
label: '生产标识',
@ -179,27 +185,27 @@ export default {
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
{
label: '保管员',
prop: 'keeper.userName',
prop: 'keeper',
search: false,
sortable: true,
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
{
label: '下达人',
prop: 'releaser.userName',
prop: 'releaser',
search: false,
sortable: true,
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
{
label: '建立时间',
@ -209,17 +215,17 @@ export default {
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
{
label: '建立人员',
prop: 'createMan.userName',
prop: 'createMan',
search: false,
sortable: true,
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
{
label: '备注',
@ -229,7 +235,7 @@ export default {
span: 12,
headerAlign: 'center',
align: 'left',
width:150,
width: 150,
},
{
label: '状态',
@ -239,7 +245,7 @@ export default {
span: 12,
headerAlign: 'center',
align: 'center',
width:150,
width: 150,
},
],
},
@ -451,304 +457,312 @@ export default {
onLoad(page, params = {}) {
this.loading = true;
this.data = [
{
"createMan": {
"accountId": 541,
"card": null,
"createTime": "2023-05-04",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 102,
"head": 0,
"jobName": "MES开发",
"keyValue": 541,
"ldapName": "cdl",
"mail": null,
"mobile": null,
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "CUIDIANLONG,CDL",
"ucUserId": null,
"updateTime": "2023-05-04 09:16:54",
"userCode": "cdl",
"userId": 541,
"userName": "崔殿龙",
"userSex": 1,
"userSources": "崔殿龙",
"userString": "541:A:崔殿龙",
"userType": "A"
},
"createTime": "2024-01-25 16:06:40",
"erpWoCode": null,
"keeper": {
"userName": "崔殿龙",
"accountId": 602,
"card": null,
"createTime": "2023-04-06",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 1,
"head": 0,
"jobName": "软件工程师",
"keyValue": 521,
"ldapName": null,
"mail": null,
"mobile": null,
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "CESHI,CS",
"ucUserId": null,
"updateTime": "2023-04-06 16:23:38",
"userCode": "0001",
"userId": 521,
"userName": "测试",
"userSex": 1,
"userSources": "测试",
"userString": "521:A:测试",
"userType": "A"
},
"keyValue": 104,
"mafId": 104,
"mafStatus": 1,
"mafStatusTitle": "新建",
"mafType": 1,
"memo": null,
"moCode": "21E6-002-4245-B1",
"moName": "21E6-002-4245-B1",
"moldStock": null,
"needDate": "2024-01-25 00:00:00",
"partCode": "21E6-002-4245-B1",
"partName": "外购插座部件",
"planType": "21E6-002-4245-B1",
"planTypeName": 1,
"poId": null,
"quaLevel": "11",
"quantity": 1,
"releaser": null,
"urgentType": "0"
},
{
"createMan": {
"accountId": 541,
"card": null,
"createTime": "2023-05-04",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 102,
"head": 0,
"jobName": "MES开发",
"keyValue": 541,
"ldapName": "cdl",
"mail": null,
"mobile": null,
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "CUIDIANLONG,CDL",
"ucUserId": null,
"updateTime": "2023-05-04 09:16:54",
"userCode": "cdl",
"userId": 541,
"userName": "崔殿龙",
"userSex": 1,
"userSources": "崔殿龙",
"userString": "541:A:崔殿龙",
"userType": "A"
},
"createTime": "2024-01-25 15:41:11",
"erpWoCode": null,
"keeper": {
"accountId": 602,
"card": null,
"createTime": "2023-04-06",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 1,
"head": 0,
"jobName": "软件工程师",
"keyValue": 521,
"ldapName": null,
"mail": null,
"mobile": null,
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "CESHI,CS",
"ucUserId": null,
"updateTime": "2023-04-06 16:23:38",
"userCode": "0001",
"userId": 521,
"userName": "测试",
"userSex": 1,
"userSources": "测试",
"userString": "521:A:测试",
"userType": "A"
},
"keyValue": 103,
"mafId": 103,
"mafStatus": 1,
"mafStatusTitle": "新建",
"mafType": 1,
"memo": null,
"moCode": "21E6-002-4245-B1",
"moName": "21E6-002-4245-B1",
"moldStock": null,
"needDate": "2024-01-01 00:00:00",
"partCode": "21E6-002-4245-B1",
"partName": "外购插座部件",
"planType": "21E6-002-4245-B1",
"planTypeName": null,
"poId": null,
"quaLevel": "11",
"quantity": 1,
"releaser": null,
"urgentType": "0"
},
{
"createMan": {
"accountId": null,
"card": null,
"createTime": "2023-02-08",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 41,
"head": 0,
"jobName": "生产调度员",
"keyValue": 445,
"ldapName": "00083",
"mail": null,
"mobile": null,
"pfDepartment": {
"appLink": null,
"createTime": "2023-02-08",
"deleted": false,
"deptCode": "23",
"deptId": 65,
"deptName": "外协业务交付管理室",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 65,
"memo": null,
"orders": "23",
"parentDeptId": 41,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2023-02-08 16:41:39"
},
"pinyinIndex": "00083,00083",
"ucUserId": null,
"updateTime": "2023-02-08 17:25:13",
"userCode": "00083",
"userId": 445,
"userName": "测试2",
"userSex": 1,
"userSources": "测试2",
"userString": "445:A:测试2",
"userType": "A"
},
"createTime": "2024-01-03 15:27:56",
"erpWoCode": null,
"keeper": null,
"keyValue": 85,
"mafId": 85,
"mafStatus": 1,
"mafStatusTitle": "新建",
"mafType": 1,
"memo": null,
"moCode": "vfrd",
"moName": "压饼模",
"moldStock": null,
"needDate": null,
"partCode": "21E6-575-11732-B1",
"partName": "J70AHL-25封接插座部件0.38",
"planType": null,
"planTypeName": null,
"poId": null,
"quaLevel": null,
"quantity": 11,
"releaser": null,
"urgentType": "0"
}
]
this.page.total = this.data.length
// this.data = [
// {
// createMan: {
// accountId: 541,
// card: null,
// createTime: '2023-05-04',
// curStatus: 1,
// deleted: false,
// deptName: null,
// dimissionTime: null,
// factoryId: 102,
// head: 0,
// jobName: 'MES',
// keyValue: 541,
// ldapName: 'cdl',
// mail: null,
// mobile: null,
// pfDepartment: {
// appLink: null,
// createTime: '2022-08-31',
// deleted: false,
// deptCode: '001',
// deptId: 1,
// deptName: 'MES',
// deptType: 1,
// deptTypeTitle: '',
// keyValue: 1,
// memo: null,
// orders: '00',
// parentDeptId: null,
// parentPath: null,
// ucDeptId: null,
// updateTime: '2022-08-31 16:32:46',
// },
// pinyinIndex: 'CUIDIANLONG,CDL',
// ucUserId: null,
// updateTime: '2023-05-04 09:16:54',
// userCode: 'cdl',
// userId: 541,
// userName: '殿',
// userSex: 1,
// userSources: '殿',
// userString: '541:A:殿',
// userType: 'A',
// },
// createTime: '2024-01-25 16:06:40',
// erpWoCode: null,
// keeper: {
// userName: '殿',
// accountId: 602,
// card: null,
// createTime: '2023-04-06',
// curStatus: 1,
// deleted: false,
// deptName: null,
// dimissionTime: null,
// factoryId: 1,
// head: 0,
// jobName: '',
// keyValue: 521,
// ldapName: null,
// mail: null,
// mobile: null,
// pfDepartment: {
// appLink: null,
// createTime: '2022-08-31',
// deleted: false,
// deptCode: '001',
// deptId: 1,
// deptName: 'MES',
// deptType: 1,
// deptTypeTitle: '',
// keyValue: 1,
// memo: null,
// orders: '00',
// parentDeptId: null,
// parentPath: null,
// ucDeptId: null,
// updateTime: '2022-08-31 16:32:46',
// },
// pinyinIndex: 'CESHI,CS',
// ucUserId: null,
// updateTime: '2023-04-06 16:23:38',
// userCode: '0001',
// userId: 521,
// userName: '',
// userSex: 1,
// userSources: '',
// userString: '521:A:',
// userType: 'A',
// },
// keyValue: 104,
// mafId: 104,
// mafStatus: 1,
// mafStatusTitle: '',
// mafType: 1,
// memo: null,
// moCode: '21E6-002-4245-B1',
// moName: '21E6-002-4245-B1',
// moldStock: null,
// needDate: '2024-01-25 00:00:00',
// partCode: '21E6-002-4245-B1',
// partName: '',
// planType: '21E6-002-4245-B1',
// planTypeName: 1,
// poId: null,
// quaLevel: '11',
// quantity: 1,
// releaser: null,
// urgentType: '0',
// },
// {
// createMan: {
// accountId: 541,
// card: null,
// createTime: '2023-05-04',
// curStatus: 1,
// deleted: false,
// deptName: null,
// dimissionTime: null,
// factoryId: 102,
// head: 0,
// jobName: 'MES',
// keyValue: 541,
// ldapName: 'cdl',
// mail: null,
// mobile: null,
// pfDepartment: {
// appLink: null,
// createTime: '2022-08-31',
// deleted: false,
// deptCode: '001',
// deptId: 1,
// deptName: 'MES',
// deptType: 1,
// deptTypeTitle: '',
// keyValue: 1,
// memo: null,
// orders: '00',
// parentDeptId: null,
// parentPath: null,
// ucDeptId: null,
// updateTime: '2022-08-31 16:32:46',
// },
// pinyinIndex: 'CUIDIANLONG,CDL',
// ucUserId: null,
// updateTime: '2023-05-04 09:16:54',
// userCode: 'cdl',
// userId: 541,
// userName: '殿',
// userSex: 1,
// userSources: '殿',
// userString: '541:A:殿',
// userType: 'A',
// },
// createTime: '2024-01-25 15:41:11',
// erpWoCode: null,
// keeper: {
// accountId: 602,
// card: null,
// createTime: '2023-04-06',
// curStatus: 1,
// deleted: false,
// deptName: null,
// dimissionTime: null,
// factoryId: 1,
// head: 0,
// jobName: '',
// keyValue: 521,
// ldapName: null,
// mail: null,
// mobile: null,
// pfDepartment: {
// appLink: null,
// createTime: '2022-08-31',
// deleted: false,
// deptCode: '001',
// deptId: 1,
// deptName: 'MES',
// deptType: 1,
// deptTypeTitle: '',
// keyValue: 1,
// memo: null,
// orders: '00',
// parentDeptId: null,
// parentPath: null,
// ucDeptId: null,
// updateTime: '2022-08-31 16:32:46',
// },
// pinyinIndex: 'CESHI,CS',
// ucUserId: null,
// updateTime: '2023-04-06 16:23:38',
// userCode: '0001',
// userId: 521,
// userName: '',
// userSex: 1,
// userSources: '',
// userString: '521:A:',
// userType: 'A',
// },
// keyValue: 103,
// mafId: 103,
// mafStatus: 1,
// mafStatusTitle: '',
// mafType: 1,
// memo: null,
// moCode: '21E6-002-4245-B1',
// moName: '21E6-002-4245-B1',
// moldStock: null,
// needDate: '2024-01-01 00:00:00',
// partCode: '21E6-002-4245-B1',
// partName: '',
// planType: '21E6-002-4245-B1',
// planTypeName: null,
// poId: null,
// quaLevel: '11',
// quantity: 1,
// releaser: null,
// urgentType: '0',
// },
// {
// createMan: {
// accountId: null,
// card: null,
// createTime: '2023-02-08',
// curStatus: 1,
// deleted: false,
// deptName: null,
// dimissionTime: null,
// factoryId: 41,
// head: 0,
// jobName: '',
// keyValue: 445,
// ldapName: '00083',
// mail: null,
// mobile: null,
// pfDepartment: {
// appLink: null,
// createTime: '2023-02-08',
// deleted: false,
// deptCode: '23',
// deptId: 65,
// deptName: '',
// deptType: 1,
// deptTypeTitle: '',
// keyValue: 65,
// memo: null,
// orders: '23',
// parentDeptId: 41,
// parentPath: null,
// ucDeptId: null,
// updateTime: '2023-02-08 16:41:39',
// },
// pinyinIndex: '00083,00083',
// ucUserId: null,
// updateTime: '2023-02-08 17:25:13',
// userCode: '00083',
// userId: 445,
// userName: '2',
// userSex: 1,
// userSources: '2',
// userString: '445:A:2',
// userType: 'A',
// },
// createTime: '2024-01-03 15:27:56',
// erpWoCode: null,
// keeper: null,
// keyValue: 85,
// mafId: 85,
// mafStatus: 1,
// mafStatusTitle: '',
// mafType: 1,
// memo: null,
// moCode: 'vfrd',
// moName: '',
// moldStock: null,
// needDate: null,
// partCode: '21E6-575-11732-B1',
// partName: 'J70AHL-250.38',
// planType: null,
// planTypeName: null,
// poId: null,
// quaLevel: null,
// quantity: 11,
// releaser: null,
// urgentType: '0',
// },
// ];
this.page.total = this.data.length;
// getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
// this.data = res.data.data.records;
getListpageNearlyMonth(
page.currentPage,
page.pageSize,
Object.assign(params, this.query)
).then(res => {
this.data = res.data.data.records;
this.page.total = res.data.data.total
this.selectionClear();
});
this.loading = false;
// this.page.total = res.data.data.total
// this.selectionClear();
// });
},
},
mounted() {
}
mounted() {},
};
</script>

@ -1,17 +1,26 @@
<template>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left>
<el-button type="primary" @click="moldAddFn(null, true)">新增</el-button>
<!-- <el-button type="primary" @click="moldAddFn(null,true)">模具申报</el-button> -->
<el-button type="primary" @click="closeNeed()">关闭需求</el-button>
</template>
<template #menu-right>
</template>
<template #menu-right> </template>
<template #poCode="{ row }">
<el-text type="primary">{{ row.poCode }}</el-text>
@ -20,35 +29,64 @@
<el-tag>{{ row.prodIdent }}</el-tag>
</template>
<template #menu="{ row }">
<el-button type="primary" text plain style="border: 0; background-color: transparent !important"
@click="detailsFn(row)">详情
<el-button
type="primary"
text
plain
style="border: 0; background-color: transparent !important"
@click="detailsFn(row)"
>详情
</el-button>
<el-button type="primary" text plain style="border: 0; background-color: transparent !important"
@click="moldAddOneFn(row, false)">模具申报
<el-button
type="primary"
text
plain
style="border: 0; background-color: transparent !important"
@click="moldAddOneFn(row, false)"
>模具申报
</el-button>
</template>
</avue-crud>
<!-- 模具申报 -->
<addMoldDailog v-if="addOpen" :showDialog="addOpen" @closeDialog="closeDialog" :moldAddMore="moldAddMore">
<addMoldDailog
v-if="addOpen"
:showDialog="addOpen"
@closeDialog="closeDialog"
:moldAddMore="moldAddMore"
>
</addMoldDailog>
<!-- 详情 -->
<detailsInfoDialog v-if="detailsOpen" :showDialog="detailsOpen" @closeDialog="closeDialog"></detailsInfoDialog>
<detailsInfoDialog
v-if="detailsOpen"
:showDialog="detailsOpen"
@closeDialog="closeDialog"
:id="Id"
></detailsInfoDialog>
<!-- 单个模具申报 -->
<moldAddOneDialog v-if="moldAddOneOpen" :showDialog="moldAddOneOpen" @closeDialog="closeDialog"></moldAddOneDialog>
<moldAddOneDialog
v-if="moldAddOneOpen"
:showDialog="moldAddOneOpen"
@closeDialog="closeDialog"
:id="moldId"
></moldAddOneDialog>
</template>
<script>
import addMoldDailog from './addMoldDailog.vue'
import detailsInfoDialog from './detailsInfoDialog.vue'
import moldAddOneDialog from './moldAddOneDialog.vue'
import { getSelectData } from '@/utils/dict';
import { getList, closeBatchs } from '@/api/orderManagement/moldPlan';
import addMoldDailog from './addMoldDailog.vue';
import detailsInfoDialog from './detailsInfoDialog.vue';
import moldAddOneDialog from './moldAddOneDialog.vue';
export default {
components: {
addMoldDailog,
detailsInfoDialog,
moldAddOneDialog
moldAddOneDialog,
},
data() {
return {
Id: null,
departments: [],
materials: [],
activeName: 'first',
inBatchesOpen: false,
platingSmallOpen: false,
@ -123,7 +161,7 @@ export default {
column: [
{
label: '需求单号',
prop: 'poCode',
prop: 'partCode',
search: false,
sortable: true,
span: 12,
@ -132,7 +170,7 @@ export default {
},
{
label: '零件号',
prop: 'poCode2',
prop: 'partCode',
search: true,
sortable: true,
span: 12,
@ -142,7 +180,7 @@ export default {
},
{
label: '零件名称',
prop: 'poCode1',
prop: 'partName',
search: false,
sortable: true,
span: 12,
@ -152,7 +190,7 @@ export default {
},
{
label: '工装号',
prop: 'toolingNo',
prop: 'moCode',
search: true,
sortable: true,
span: 12,
@ -162,7 +200,7 @@ export default {
},
{
label: '工装名称',
prop: 'partCode',
prop: 'moName',
search: false,
sortable: true,
span: 12,
@ -171,7 +209,7 @@ export default {
},
{
label: '订单需求量',
prop: 'productType',
prop: 'quantity',
search: false,
sortable: true,
span: 12,
@ -209,10 +247,10 @@ export default {
},
data: [],
addOpen: false,//
addOpen: false, //
moldAddMore: false,
detailsOpen: false,//
moldAddOneOpen:false,//
detailsOpen: false, //
moldAddOneOpen: false, //
};
},
@ -221,7 +259,7 @@ export default {
closeNeed() {
//
if (this.selectionList.length === 0) {
this.$message.error('请至少选择一条数据!')
this.$message.error('请至少选择一条数据!');
return;
}
this.$confirm('确定将选择数据批量关闭?', {
@ -230,35 +268,48 @@ export default {
type: 'error',
})
.then(() => {
// return remove(row.id);
})
.then(() => {
const ids = this.selectionList.map(item => item.id).join(',');
closeBatchs({ ids }).then(res => {
if (res.code === 200) {
this.$message({
type: 'success',
message: '操作成功!',
});
}
this.onLoad();
});
// this.onLoad(this.page);
// this.$message({
// type: 'success',
// message: '!',
// });
// this.$refs.crud.toggleSelection();
})
.catch(() => {
this.$message.error('操作失败!');
this.$refs.crud.toggleSelection();
});
},
//
moldAddFn(row, flag) {
this.addOpen = true
this.moldAddMore = flag
this.addOpen = true;
this.moldAddMore = flag;
},
//
moldAddOneFn(){
this.moldAddOneOpen = true
moldAddOneFn(row) {
this.Id = row.id;
this.moldAddOneOpen = true;
},
//
detailsFn(row) {
this.detailsOpen = true
this.detailsOpen = true;
},
//
closeDialog() {
this.addOpen = false
this.detailsOpen = false
this.moldAddOneOpen = false
this.addOpen = false;
this.detailsOpen = false;
this.moldAddOneOpen = false;
},
inBatchesFn(row) {
this.rowItem = row;
@ -301,6 +352,7 @@ export default {
});
},
rowSave(row, done, loading) {
console.log(222222222, 111);
add(row).then(
() => {
this.onLoad(this.page);
@ -462,138 +514,140 @@ export default {
onLoad(page, params = {}) {
this.loading = true;
this.data = [
{
"alreadyBranchQty": 104.0,
"bsPlatingSmall": null,
"bsProcedureQua": null,
"closeMan": null,
"closeTime": null,
"curStatus": 4,
"curStatusText": "已派工",
"custodian": null,
"deliveryQty": 0.0,
"demandDate": "2025-03-13 00:00:00",
"dominantDept": "3400",
"dsPart": null,
"keyValue": 43933,
"memo": "最多三个批次0159BKFX",
"partCode": "21E6-575-1710_003-H14-C-N",
"partName": "09-J599_25烧结插座",
"planType": 2,
"planUser": "0300009",
"plate": "Ep.Ni3b",
"poArea": 0.0,
"poCode": "WO-2211134240",
"poCode1": "4240",
"poCode2": "40",
"toolingNo" :"888",
"poId": 43933,
"poQty": 104,
"primaryCraft": "4(封接、表、涂色带)-库2",
"priority": 1,
"prodIdent": "JHT",
"prodLine": null,
"productType": "JY599",
"releaseDate": "2022-11-24 11:59:21",
"roamNo": "B5199029",
"routeNo": "LX08-05-002",
"sureType": null,
"sureTypeTitle": "未确认",
"syncTime": "2023-02-10 20:58:11",
"undeliveredQty": 104.0,
"useDept": "3502",
"wcName": null
},
{
"alreadyBranchQty": 104.0,
"bsPlatingSmall": null,
"bsProcedureQua": null,
"closeMan": null,
"closeTime": null,
"curStatus": 4,
"curStatusText": "已派工",
"custodian": null,
"deliveryQty": 0.0,
"demandDate": "2025-03-13 00:00:00",
"dominantDept": "3400",
"dsPart": null,
"keyValue": 43948,
"memo": "最多三个批次0159BKFX",
"partCode": "21E6-575-1710_003-H14-C-N",
"partName": "09-J599_25烧结插座",
"planType": 2,
"planUser": "0300009",
"plate": "Ep.Ni3b",
"poArea": 0.0,
"poCode": "WO-2211134240",
"poId": 43948,
"poQty": 104,
"primaryCraft": "4(封接、表、涂色带)-库2",
"priority": 1,
"prodIdent": "JHT",
"prodLine": null,
"productType": "JY599",
"releaseDate": "2022-11-24 11:59:21",
"roamNo": null,
"routeNo": "LX08-05-002",
"sureType": null,
"sureTypeTitle": "未确认",
"syncTime": "2023-02-10 20:58:11",
"undeliveredQty": 104.0,
"useDept": "3502",
"wcName": null
},
{
"alreadyBranchQty": 19.0,
"bsPlatingSmall": null,
"bsProcedureQua": null,
"closeMan": null,
"closeTime": null,
"curStatus": 4,
"curStatusText": "已派工",
"custodian": null,
"deliveryQty": 0.0,
"demandDate": "2025-02-23 00:00:00",
"dominantDept": "3400",
"dsPart": null,
"keyValue": 43932,
"memo": "最多三个批次0159BKFX",
"partCode": "21E6-575-1710_002-H14-N-N",
"partName": "09-J599_25烧结插座",
"planType": 2,
"planUser": "0300009",
"plate": "Ep.Ni3b",
"poArea": 0.0,
"poCode": "WO-2211134211",
"poId": 43932,
"poQty": 19,
"primaryCraft": "4(封接、表、涂色带)-库2",
"priority": 1,
"prodIdent": "JHT",
"prodLine": null,
"productType": "JY599",
"releaseDate": "2022-11-24 11:59:21",
"roamNo": null,
"routeNo": "LX08-05-002",
"sureType": null,
"sureTypeTitle": "未确认",
"syncTime": "2023-02-10 20:58:11",
"undeliveredQty": 19.0,
"useDept": "3502",
"wcName": null
}
]
this.page.total = this.data.length
// getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
// this.data = res.data.data.records;
// this.data = [
// {
// id: 1,
// alreadyBranchQty: 104.0,
// bsPlatingSmall: null,
// bsProcedureQua: null,
// closeMan: null,
// closeTime: null,
// curStatus: 4,
// curStatusText: '',
// custodian: null,
// deliveryQty: 0.0,
// demandDate: '2025-03-13 00:00:00',
// dominantDept: '3400',
// dsPart: null,
// keyValue: 43933,
// memo: '0159BKFX',
// partCode: '21E6-575-1710_003-H14-C-N',
// partName: '09-J599_25',
// planType: 2,
// planUser: '0300009',
// plate: 'Ep.Ni3b',
// poArea: 0.0,
// poCode: 'WO-2211134240',
// poCode1: '4240',
// partCode: '40',
// toolingNo: '888',
// poId: 43933,
// poQty: 104,
// primaryCraft: '4-2',
// priority: 1,
// prodIdent: 'JHT',
// prodLine: null,
// quantity: 'JY599',
// releaseDate: '2022-11-24 11:59:21',
// roamNo: 'B5199029',
// routeNo: 'LX08-05-002',
// sureType: null,
// sureTypeTitle: '',
// syncTime: '2023-02-10 20:58:11',
// undeliveredQty: 104.0,
// useDept: '3502',
// wcName: null,
// },
// {
// id: 2,
// alreadyBranchQty: 104.0,
// bsPlatingSmall: null,
// bsProcedureQua: null,
// closeMan: null,
// closeTime: null,
// curStatus: 4,
// curStatusText: '',
// custodian: null,
// deliveryQty: 0.0,
// demandDate: '2025-03-13 00:00:00',
// dominantDept: '3400',
// dsPart: null,
// keyValue: 43948,
// memo: '0159BKFX',
// partCode: '21E6-575-1710_003-H14-C-N',
// partName: '09-J599_25',
// planType: 2,
// planUser: '0300009',
// plate: 'Ep.Ni3b',
// poArea: 0.0,
// poCode: 'WO-2211134240',
// poId: 43948,
// poQty: 104,
// primaryCraft: '4-2',
// priority: 1,
// prodIdent: 'JHT',
// prodLine: null,
// quantity: 'JY599',
// releaseDate: '2022-11-24 11:59:21',
// roamNo: null,
// routeNo: 'LX08-05-002',
// sureType: null,
// sureTypeTitle: '',
// syncTime: '2023-02-10 20:58:11',
// undeliveredQty: 104.0,
// useDept: '3502',
// wcName: null,
// },
// {
// id: 3,
// alreadyBranchQty: 19.0,
// bsPlatingSmall: null,
// bsProcedureQua: null,
// closeMan: null,
// closeTime: null,
// curStatus: 4,
// curStatusText: '',
// custodian: null,
// deliveryQty: 0.0,
// demandDate: '2025-02-23 00:00:00',
// dominantDept: '3400',
// dsPart: null,
// keyValue: 43932,
// memo: '0159BKFX',
// partCode: '21E6-575-1710_002-H14-N-N',
// partName: '09-J599_25',
// planType: 2,
// planUser: '0300009',
// plate: 'Ep.Ni3b',
// poArea: 0.0,
// poCode: 'WO-2211134211',
// poId: 43932,
// poQty: 19,
// primaryCraft: '4-2',
// priority: 1,
// prodIdent: 'JHT',
// prodLine: null,
// quantity: 'JY599',
// releaseDate: '2022-11-24 11:59:21',
// roamNo: null,
// routeNo: 'LX08-05-002',
// sureType: null,
// sureTypeTitle: '',
// syncTime: '2023-02-10 20:58:11',
// undeliveredQty: 19.0,
// useDept: '3502',
// wcName: null,
// },
// ];
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.selectionClear();
});
this.loading = false;
// this.page.total = res.data.data.total
// this.selectionClear();
// });
},
},
mounted() {
}
mounted() {},
};
</script>

@ -1,38 +1,35 @@
<template>
<basic-container>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="模具需求" name="1"></el-tab-pane>
<el-tab-pane label="申报记录" name="2"></el-tab-pane>
</el-tabs>
<el-tab-pane label="模具需求" name="1">
<moldRequire v-if="activeName == '1'"></moldRequire>
</el-tab-pane>
<el-tab-pane label="申报记录" name="2">
<moldRecord v-if="activeName == '2'"></moldRecord>
</el-tab-pane>
</el-tabs>
</basic-container>
</template>
<script>
import moldRequire from './components/mold/moldRequire.vue'
import moldRecord from './components/mold/moldRecord.vue'
import moldRequire from './components/mold/moldRequire.vue';
import moldRecord from './components/mold/moldRecord.vue';
export default {
components: {
moldRequire,
moldRecord
moldRecord,
},
data() {
return {
activeName: '1',
};
},
methods: {
handleClick() {
console.log(9999999,this.activeName)
console.log(9999999, this.activeName);
},
},
mounted() {
}
mounted() {},
};
</script>

@ -1,20 +1,20 @@
import { defineConfig, loadEnv } from "vite";
import { resolve } from "path";
import { defineConfig, loadEnv } from 'vite';
import { resolve } from 'path';
import path from "path";
import createVitePlugins from "./vite/plugins";
import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
import path from 'path';
import createVitePlugins from './vite/plugins';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
// https://vitejs.dev/config/
export default ({ mode, command }) => {
const env = loadEnv(mode, process.cwd());
const { VITE_APP_ENV, VITE_APP_BASE } = env;
// 判断是打生产环境包
const isProd = VITE_APP_ENV === "production";
const isProd = VITE_APP_ENV === 'production';
// 根据是否生产环境,动态设置压缩配置
const buildConfig = {
target: "esnext",
minify: isProd ? "terser" : "esbuild", // 根据环境选择压缩工具
target: 'esnext',
minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具
};
// 如果是生产环境,添加Terser的配置
@ -31,8 +31,8 @@ export default ({ mode, command }) => {
buildConfig.rollupOptions = {
output: {
manualChunks: {
"element-plus": ["element-plus"],
"@smallwei/avue": ["@smallwei/avue"],
'element-plus': ['element-plus'],
'@smallwei/avue': ['@smallwei/avue'],
},
},
};
@ -47,45 +47,50 @@ export default ({ mode, command }) => {
server: {
port: 2888,
proxy: {
"/api": {
target: "http://192.168.1.5:82",
'/api': {
// target: 'http://192.168.1.5:82',
// target: "http://192.168.1.4:82",
// target:'http://49.232.74.228:82',
// target: "http://192.168.0.120",
//target: 'https://saber3.bladex.cn/api',
// target: 'http://49.232.74.228:82',
// target: "http:192.168.0.220:80",
// target: 'http:49.232.74.228:49',
target: 'http://49.232.74.228:80', //测试环境的地址
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ""),
rewrite: path => path.replace(/^\/api/, ''),
},
},
},
resolve: {
alias: {
"~": resolve(__dirname, "./"),
"@": resolve(__dirname, "./src"),
components: resolve(__dirname, "./src/components"),
styles: resolve(__dirname, "./src/styles"),
utils: resolve(__dirname, "./src/utils"),
'~': resolve(__dirname, './'),
'@': resolve(__dirname, './src'),
components: resolve(__dirname, './src/components'),
styles: resolve(__dirname, './src/styles'),
utils: resolve(__dirname, './src/utils'),
},
},
css: {
preprocessorOptions: {
scss: {
api: "modern-compiler",
api: 'modern-compiler',
additionalData: `@use "@/styles/variables.scss" as *;`,
},
},
},
plugins: [
createVitePlugins(env, command === "build"),
createVitePlugins(env, command === 'build'),
createSvgIconsPlugin({
iconDirs: [path.resolve(process.cwd(), "src/assets/svg")],
symbolId: "icon-[dir]-[name]",
iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
symbolId: 'icon-[dir]-[name]',
}),
],
build: buildConfig,
optimizeDeps: {
esbuildOptions: {
target: "esnext",
target: 'esnext',
},
},
});

Loading…
Cancel
Save