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

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

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

@ -1,28 +1,44 @@
<template> <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-form ref="form" :model="form" label-width="100px" :rules="rules">
<el-row> <el-row>
<el-col :span="12"> <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>
<el-col :span="12"> <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>
<el-col :span="12"> <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>
<el-col :span="12"> <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>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="数量:" prop="shuliang"> <el-form-item label="数量:" prop="quaLevel">
<el-input-number v-model="form.shuliang" :min="1" controls-position="right" style="width: 80%;" <el-input-number
@change="handleChange" /> v-model="form.quaLevel"
:min="1"
controls-position="right"
style="width: 80%"
@change="handleChange"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划类型:" prop="moCode"> <el-form-item label="计划类型:" prop="moCodes">
<el-select v-model="form.moCode" :filterable="true" allow-create @change="frockChange(form)" style="width: 80%;"> <el-select
v-model="form.moCodes"
:filterable="true"
allow-create
style="width: 80%"
>
<el-option label="计划类型一" value="1" /> <el-option label="计划类型一" value="1" />
<el-option label="计划类型二" value="2" /> <el-option label="计划类型二" value="2" />
</el-select> </el-select>
@ -30,17 +46,29 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="需求日期:" prop="needDate"> <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-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="生产标识:" prop="quaLevel"> <el-form-item label="生产标识:" prop="quaLevels">
<el-input v-model="form.quaLevel" style="width: 80%;" /> <el-input v-model="form.quaLevels" style="width: 80%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="保管员:" prop="userName"> <el-form-item label="保管员:" prop="keeper">
<el-select v-model="form.userName" :filterable="true" allow-create @change="frockChange(form)" style="width: 80%;"> <el-select
v-model="form.keeper"
:filterable="true"
allow-create
style="width: 80%"
>
<el-option label="人员一" value="1" /> <el-option label="人员一" value="1" />
<el-option label="人员二" value="2" /> <el-option label="人员二" value="2" />
</el-select> </el-select>
@ -51,12 +79,9 @@
<el-input v-model="form.memo" type="textarea" /> <el-input v-model="form.memo" type="textarea" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="closeDialog"> </el-button> <el-button @click="closeDialog"> </el-button>
@ -66,63 +91,71 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { getOrderMoldPlanCaDeatils,update } from '@/api/orderManagement/moldPlan';
export default { export default {
props: { props: {
showDialog: { showDialog: {
type: Boolean, type: Boolean,
default: false default: false,
},
id: {
type: String,
default: '1',
}, },
}, },
data() { data() {
return { return {
openShow: false, openShow: false,
form: { form: {},
},
tableData: [], tableData: [],
rules: { rules: {
shuliang: [ quaLevel: [{ required: true, message: '请输入数量', trigger: 'blur' }],
{ required: true, message: '请输入', trigger: 'blur' }, moCodes: [{ required: true, message: '请选择计划类型', trigger: 'change' }],
], needDate: [{ required: true, message: '请选择需求日期', trigger: 'change' }],
moCode: [ keeper: [{ required: true, message: '请输入保管员', trigger: 'change' }],
{ required: true, message: '请选择', trigger: 'blur' }, },
], };
needDate:[
{ required: true, message: '请选择', trigger: 'blur' },
],
quaLevel:[
{ required: true, message: '请输入', trigger: 'blur' },
],
userName:[
{ required: true, message: '请输入', trigger: 'blur' },
],
}
}
}, },
mounted() { mounted() {
this.openShow = this.showDialog this.openShow = this.showDialog;
getOrderMoldPlanCaDeatils({ id: this.id }).then(res => {
if (res.code == 200) {
this.form = { ...res.data };
}
});
}, },
methods: { methods: {
closeDialog() { closeDialog() {
this.openShow = false this.openShow = false;
this.$emit('closeDialog'); this.$emit('closeDialog');
}, },
addTable() { submit() {
this.tableData.push({ //
code: '3', this.$refs.form.validate(valid => {
No: '3', if (!valid) {
number: '3', this.$message.error('表单校验未通过,请检查必填项');
shuliang: '', return;
shuliang: 0 }
// //
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> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>

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

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

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

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

Loading…
Cancel
Save