From bf1dd3ccde79ca2b20b4663fc476ecd74782c0e9 Mon Sep 17 00:00:00 2001
From: "hongrui.an" <297504645@qq.com>
Date: Mon, 16 Jun 2025 17:27:30 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90EQI=E5=89=8D=E7=AB=AF=E3=80=91?=
=?UTF-8?q?=E9=83=A8=E5=88=86=E6=9A=82=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Web/src/components/ediTtablePage/index.vue | 23 ++--
Web/src/utils/common/apiTableColumns.js | 130 +++++++++++++++---
.../logisticsPlan/supplierConDate/index.vue | 38 +++++
3 files changed, 161 insertions(+), 30 deletions(-)
create mode 100644 Web/src/views/logisticsPlan/supplierConDate/index.vue
diff --git a/Web/src/components/ediTtablePage/index.vue b/Web/src/components/ediTtablePage/index.vue
index 4de5f4f..0da2817 100644
--- a/Web/src/components/ediTtablePage/index.vue
+++ b/Web/src/components/ediTtablePage/index.vue
@@ -636,20 +636,24 @@
function searchRightBtnHandle(btn){
// 保存页面
if(btn.name == 'pageSave'){
- table_Ref.value.tableForm_Ref.validate((valid)=>{
- if(valid){
+ // table_Ref.value.tableForm_Ref.validate((valid)=>{
+ // if(valid){
let _idEditData = checkPageEditList()
if(!_idEditData || _idEditData.length <= 0)return ElMessage.warning('暂无数据修改')
// 判断规则 目前风险页面通用,暂时写在通用方式中,如果后期有区别,可拿到页面外处理
- // 规则:反馈结果[feedbackResults]=1时,风险类型[ventureType],具体风险[ventureSpecific]必填
+ // 规则:反馈结果[feedbackResults]=1时,风险类型[ventureType],具体风险[ventureSpecific],应对措施[measures]必填
let _indexs = []
_idEditData.forEach(item=>{
- if(item.feedbackResults == '1' && (!item.ventureType || !item.ventureSpecific || item.ventureSpecifi == '')){
+ if(item.feedbackResults == '1' && (
+ !item.ventureType || item.ventureType == '' ||
+ !item.ventureSpecific || item.ventureSpecific == '' ||
+ !item.measures || item.measures == ''
+ )){
_indexs.push(getIndexById(item.id))
}
})
if(_indexs && _indexs.length > 0){
- return ElMessage.error(`修改数据中【第${_indexs}行】数据中,【反馈结果】为异常,但【风险类型】或【具体风险】为空,请修改后重新提交!`)
+ return ElMessage.error(`修改数据中【第${_indexs}行】数据中,【反馈结果】为异常,但【风险类型】或【具体风险】或【应对措施】为空,请修改后重新提交!`)
}
ElMessageBox.confirm('是否确定提交更改?', '提示', {
confirmButtonText: '确定',
@@ -664,10 +668,9 @@
})
.finally(()=>{state.loading = false})
})
- }
- })
+ // }
+ // })
}
-
}
// 排序
@@ -775,6 +778,7 @@
// 可编辑元素Focus事件 todo:如果加上表单验证后,需要处理表单点击
function getItemDetail(type,row,eventType) {
+ if(!row.id){return ElMessage.error('该数据无id')}
// 如果是相同id,避免重复:阻止接口
if(row.id == state.currentDetailId){return}
let _focuseExt = ['input','numberInput']
@@ -846,12 +850,11 @@
// 行变色
function tableRowClassName(data){
- if(data.row.id == state.currentDetailId){return 'current-select-tableRow'}
+ if(data.row.id && (data.row.id == state.currentDetailId)){return 'current-select-tableRow'}
else{return 'normal-tableRow'}
}
// 根据apiTableColumns转义table内表单默认规则
- // todo:feedbackResults相应的特殊规则处理,measures也需要处理
function getTableFormRules(){
if(props.tableFormRules) {
state.tableFormRulesData = props.tableFormRules
diff --git a/Web/src/utils/common/apiTableColumns.js b/Web/src/utils/common/apiTableColumns.js
index 84a09aa..d5dd73b 100644
--- a/Web/src/utils/common/apiTableColumns.js
+++ b/Web/src/utils/common/apiTableColumns.js
@@ -93,7 +93,7 @@ const apiTableColumns = {
],
// M+6月物料需求计划风险确认
cherysupplierconmmrp:[
- {prop:'supplierCode',title:'供应商代码',width:150,align:'left'},
+ {prop:'supplierCode',title:'供应商代码',width:120},
{prop:'releaseEdition',title:'需求发布版次',width:150},
{prop:'materialCode',title:'零件号'},
{prop:'plantId',title:'工厂代码',width:120},
@@ -101,12 +101,12 @@ const apiTableColumns = {
{prop:'ventureType',title:'风险类型',type:'filterSelect',options:EnumList.ventureType},
{prop:'ventureSpecific',title:'具体风险',type:'input'},
{prop:'measures',title:'应对措施',type:'input'},
- {prop:'quantityMeet1',title:'满足数量1',type:'numberInput',required:true},
- {prop:'quantityMeet2',title:'满足数量2',type:'numberInput',required:true},
- {prop:'quantityMeet3',title:'满足数量3',type:'numberInput',required:true},
- {prop:'quantityMeet4',title:'满足数量4',type:'numberInput',required:true},
- {prop:'quantityMeet5',title:'满足数量5',type:'numberInput',required:true},
- {prop:'quantityMeet6',title:'满足数量6',type:'numberInput',required:true},
+ {prop:'quantityMeet1',title:'满足数量1',type:'numberInput'},
+ {prop:'quantityMeet2',title:'满足数量2',type:'numberInput'},
+ {prop:'quantityMeet3',title:'满足数量3',type:'numberInput'},
+ {prop:'quantityMeet4',title:'满足数量4',type:'numberInput'},
+ {prop:'quantityMeet5',title:'满足数量5',type:'numberInput'},
+ {prop:'quantityMeet6',title:'满足数量6',type:'numberInput'},
{prop:'quantityMeet7',title:'满足数量7',type:'numberInput'},
{prop:'quantityMeet8',title:'满足数量8',type:'numberInput'},
{prop:'quantityMeet9',title:'满足数量9',type:'numberInput'},
@@ -196,6 +196,96 @@ const apiTableColumns = {
{prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
{prop:'version',title:'版本号'},
],
+ // 日物料需求计划风险确认
+ cherysuppliercondate:[
+ {prop:'supplierCode',title:'供应商代码',width:120},
+ {prop:'releaseEdition',title:'需求发布版次',width:150},
+ {prop:'materialCode',title:'零件号'},
+ {prop:'plantId',title:'工厂代码',width:120},
+ {prop:'feedbackResults',title:'反馈结果',type:'filterSelect',options:EnumList.feedbackResults,required:true},
+ {prop:'ventureType',title:'风险类型',type:'filterSelect',options:EnumList.ventureType},
+ {prop:'ventureSpecific',title:'具体风险',type:'input'},
+ {prop:'measures',title:'应对措施',type:'input'},
+ {prop:'quantityMeet1',title:'满足数量1',type:'numberInput'},
+ {prop:'quantityMeet2',title:'满足数量2',type:'numberInput'},
+ {prop:'quantityMeet3',title:'满足数量3',type:'numberInput'},
+ {prop:'quantityMeet4',title:'满足数量4',type:'numberInput'},
+ {prop:'quantityMeet5',title:'满足数量5',type:'numberInput'},
+ {prop:'quantityMeet6',title:'满足数量6',type:'numberInput'},
+ {prop:'quantityMeet7',title:'满足数量7',type:'numberInput'},
+ {prop:'quantityMeet8',title:'满足数量8',type:'numberInput'},
+ {prop:'quantityMeet9',title:'满足数量9',type:'numberInput'},
+ {prop:'quantityMeet10',title:'需求数量10',type:'numberInput'},
+ {prop:'quantityMeet11',title:'需求数量11',type:'numberInput'},
+ {prop:'quantityMeet12',title:'需求数量12',type:'numberInput'},
+ {prop:'quantityMeet13',title:'需求数量13',type:'numberInput'},
+ {prop:'quantityMeet14',title:'需求数量14',type:'numberInput'},
+ {prop:'quantityMeet15',title:'需求数量15',type:'numberInput'},
+ {prop:'quantityMeet16',title:'需求数量16',type:'numberInput'},
+ {prop:'quantityMeet17',title:'需求数量17',type:'numberInput'},
+ {prop:'quantityMeet18',title:'需求数量18',type:'numberInput'},
+ {prop:'quantityMeet19',title:'需求数量19',type:'numberInput'},
+ {prop:'quantityMeet20',title:'需求数量20',type:'numberInput'},
+ {prop:'quantityMeet21',title:'需求数量21',type:'numberInput'},
+ {prop:'quantityMeet22',title:'需求数量22',type:'numberInput'},
+ {prop:'quantityMeet23',title:'需求数量23',type:'numberInput'},
+ {prop:'quantityMeet24',title:'需求数量24',type:'numberInput'},
+ {prop:'quantityMeet25',title:'需求数量25',type:'numberInput'},
+ {prop:'quantityMeet26',title:'需求数量26',type:'numberInput'},
+ {prop:'quantityMeet27',title:'需求数量27',type:'numberInput'},
+ {prop:'quantityMeet28',title:'需求数量28',type:'numberInput'},
+ {prop:'quantityMeet29',title:'需求数量29',type:'numberInput'},
+ {prop:'quantityMeet30',title:'需求数量30',type:'numberInput'},
+ {prop:'quantityMeet31',title:'需求数量31',type:'numberInput'},
+ {prop:'startDate',title:'起始日期',width:180},
+ ],
+ // 日物料需求计划风险确认-明细
+ cherysuppliercondateDetail:[
+ {prop:'releaseEdition',title:'需求发布版次',width:150},
+ {prop:'materialCode',title:'零件号'},
+ {prop:'materialDescription',title:'零件名称'},
+ {prop:'plantId',title:'工厂代码'},
+ {prop:'plantName',title:'工厂名称'},
+ {prop:'startDate',title:'起始日期'},
+ {prop:'quantityDemand1',title:'需求数量1'},
+ {prop:'quantityDemand2',title:'需求数量2'},
+ {prop:'quantityDemand3',title:'需求数量3'},
+ {prop:'quantityDemand4',title:'需求数量4'},
+ {prop:'quantityDemand5',title:'需求数量5'},
+ {prop:'quantityDemand6',title:'需求数量6'},
+ {prop:'quantityDemand7',title:'需求数量7'},
+ {prop:'quantityDemand8',title:'需求数量8'},
+ {prop:'quantityDemand9',title:'需求数量9'},
+ {prop:'quantityDemand10',title:'需求数量10'},
+ {prop:'quantityDemand11',title:'需求数量11'},
+ {prop:'quantityDemand12',title:'需求数量12'},
+ {prop:'quantityDemand13',title:'需求数量13'},
+ {prop:'quantityDemand14',title:'需求数量14'},
+ {prop:'quantityDemand15',title:'需求数量15'},
+ {prop:'quantityDemand16',title:'需求数量16'},
+ {prop:'quantityDemand17',title:'需求数量17'},
+ {prop:'quantityDemand18',title:'需求数量18'},
+ {prop:'quantityDemand19',title:'需求数量19'},
+ {prop:'quantityDemand20',title:'需求数量20'},
+ {prop:'quantityDemand21',title:'需求数量21'},
+ {prop:'quantityDemand22',title:'需求数量22'},
+ {prop:'quantityDemand23',title:'需求数量23'},
+ {prop:'quantityDemand24',title:'需求数量24'},
+ {prop:'quantityDemand25',title:'需求数量25'},
+ {prop:'quantityDemand26',title:'需求数量26'},
+ {prop:'quantityDemand27',title:'需求数量27'},
+ {prop:'quantityDemand28',title:'需求数量28'},
+ {prop:'quantityDemand29',title:'需求数量29'},
+ {prop:'quantityDemand30',title:'需求数量30'},
+ {prop:'quantityDemand31',title:'需求数量31'},
+ // {prop:'is_update',title:'是否更新',type:'tagFilter',options:EnumList.whether},
+ {prop:'createByUser',title:'创建人'},
+ {prop:'creationTime',title:'创建时间'},
+ {prop:'updateByUser',title:'修改人'},
+ {prop:'updateTime',title:'修改时间'},
+ // {prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
+ {prop:'version',title:'版本号'},
+ ],
// 计划协议
cherysuppliersaweek:[
{prop:'scheduleAgreement',title:'计划协议号',width:120},
@@ -244,14 +334,14 @@ const apiTableColumns = {
// 采购订单风险确认
cherysupplierconpo:[
{prop:'supplierCode',title:'供应商代码'},
- {prop:'purchaseOrder',title:'采购订单号',type:'input',required:true,width:120},
- {prop:'serialNumber',title:'行项目号',type:'input',required:true},
- {prop:'quantityMeet',title:'满足数量',type:'numberInput',required:true},
+ {prop:'purchaseOrder',title:'采购订单号',width:120},
+ {prop:'serialNumber',title:'行项目号'},
{prop:'feedbackResults',title:'反馈结果',type:'filterSelect',options:EnumList.feedbackResults,required:true},
{prop:'ventureType',title:'风险类型',type:'filterSelect',options:EnumList.ventureType},
{prop:'ventureSpecific',title:'具体风险',type:'input'},
{prop:'measures',title:'应对措施',type:'input'},
{prop:'creationTime',title:'创建时间',width:180},
+ {prop:'quantityMeet',title:'满足数量',type:'numberInput'},
],
// 过焊装未过总装
cherysupplierporhschedul:[
@@ -428,7 +518,7 @@ const apiTableColumns = {
{prop:'vendorFieldDesc',title:'控制项描述'},
{prop:'vendorFieldCode',title:'控制项代码',required:true},
{prop:'deadLine',title:'库存有效日期',type:'datetime',width:180,required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 排产数据
cherysupplierproscheduling:[
@@ -473,7 +563,7 @@ const apiTableColumns = {
{prop:'vendorProductName',title:'供应商总成零件名称',width:180,required:true},
{prop:'cheryProductNo',title:'奇瑞零件号',required:true},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180,required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 人员资质信息
cherysupplieremployee:[
@@ -496,7 +586,7 @@ const apiTableColumns = {
{prop:'qualificationLevel',title:'资质等级',required:true},
{prop:'checkInTime',title:'资质获取时间',width:180,type:'datetime',required:true},
{prop:'checkOutTime',title:'资质失去时间',width:180,type:'datetime',required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// BOM主数据
cherysupplierbom:[
@@ -569,7 +659,7 @@ const apiTableColumns = {
{prop:'checkMode',title:'检测方式',type:'filter',options:EnumList.checkMode,required:true},
{prop:'deviceCode',title:'检测设备编号',required:true},
{prop:'deviceName',title:'检测设备名称',required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 生产过程数据
cherysupplierprodata:[
@@ -617,7 +707,7 @@ const apiTableColumns = {
{prop:'parentSoftwareRevision',title:'父件软件版本号',width:180},
{prop:'childHardwareRevision',title:'子件硬件版本号',width:180},
{prop:'childSoftwareRevision',title:'子件软件版本号',width:180},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 产品一次合格率
cherysupplierprofirstpassyield:[
@@ -643,7 +733,7 @@ const apiTableColumns = {
{prop:'workShift',title:'班次',type:'filter',options:EnumList.workShift,required:true},
{prop:'statisticalTime',title:'生产日期',width:180,type:'datetime',required:true},
{prop:'dateTime',title:'值统计时间',width:180,type:'datetime',required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 工位一次合格率
cherysupplierprostationfirstpassyield:[
@@ -671,7 +761,7 @@ const apiTableColumns = {
{prop:'workShift',title:'班次',type:'filter',options:EnumList.workShift,required:true},
{prop:'statisticalTime',title:'生产日期',width:180,type:'datetime',required:true},
{prop:'dateTime',title:'值统计时间',width:180,type:'datetime',required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 缺陷业务数据
cherysupplierproflaw:[
@@ -702,7 +792,7 @@ const apiTableColumns = {
{prop:'defectsDesc',title:'缺陷描述',required:true},
{prop:'defectsLevel',title:'缺陷等级',type:'filter',options:EnumList.defectsLevel,required:true},
{prop:'statisticalTime',title:'缺陷录入时间',width:180,type:'datetime',required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 物料主数据
cherysupplierpromaterialdata:[
@@ -747,7 +837,7 @@ const apiTableColumns = {
{prop:'cheryProductNo',title:'奇瑞零件号',required:true},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180,required:true},
{prop:'vendorProductSn',title:'供应商总成SN码',width:180},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 工艺装备
cherysupplierproprocessequipment:[
@@ -781,7 +871,7 @@ const apiTableColumns = {
{prop:'wearThreshold',title:'磨损阈值',required:true},
{prop:'detectionRange',title:'检测范围',required:true},
{prop:'unitType',title:'检测单位',required:true},
- {prop:'creationTime',title:'创建时间',width:180},
+ {prop:'creationTime',title:'创建时间',width:180,noEdit:true},
],
// 工艺
cherysupplierproprocess:[
diff --git a/Web/src/views/logisticsPlan/supplierConDate/index.vue b/Web/src/views/logisticsPlan/supplierConDate/index.vue
new file mode 100644
index 0000000..91e10d7
--- /dev/null
+++ b/Web/src/views/logisticsPlan/supplierConDate/index.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
\ No newline at end of file