From 42520a28119137034753a002a2c2004a11af8b5d Mon Sep 17 00:00:00 2001
From: "hongrui.an" <297504645@qq.com>
Date: Thu, 12 Jun 2025 17:31:11 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90EQI=E5=89=8D=E7=AB=AF=E3=80=91?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=A1=B5=E9=9D=A2+table=E7=BC=96=E8=BE=91?=
=?UTF-8?q?=E6=96=B9=E5=BC=8F=E6=9A=82=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Web/src/api/common/index.js | 13 +-
Web/src/components/ediTtablePage/index.vue | 790 ++++++++++++++++++
Web/src/components/elPager/index.vue | 18 +-
Web/src/components/elTable/index.vue | 73 +-
Web/src/components/tablePage/index.vue | 3 +-
Web/src/utils/common/apiTableColumns.js | 33 +
.../logisticsPlan/supplierConMmrp/index.vue | 11 +-
7 files changed, 909 insertions(+), 32 deletions(-)
create mode 100644 Web/src/components/ediTtablePage/index.vue
diff --git a/Web/src/api/common/index.js b/Web/src/api/common/index.js
index 6f413b5..ef189f8 100644
--- a/Web/src/api/common/index.js
+++ b/Web/src/api/common/index.js
@@ -84,4 +84,15 @@ export function getCommonDeatailPaged(urlName,data) {
method: 'post',
data
})
-}
\ No newline at end of file
+}
+
+// 通过id获取详情实体
+export function getCommonDetailById(urlName,id) {
+ return request({
+ url: `/api/${urlName}/getdetialbyid`,
+ method: 'get',
+ params:{id:id}
+ })
+}
+
+// getCommonInfoById
\ No newline at end of file
diff --git a/Web/src/components/ediTtablePage/index.vue b/Web/src/components/ediTtablePage/index.vue
new file mode 100644
index 0000000..1de87e0
--- /dev/null
+++ b/Web/src/components/ediTtablePage/index.vue
@@ -0,0 +1,790 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{state.searchBtnOptions[btn].label}}
+
+
+
+
+ {{btn.label}}
+
+
+
+
+
+
+ {getItemDetail(item.type,scope.row,'focus')}"
+ @editItemChangeHandle="editItemChangeHandle"
+ @cell-click="(row,column,cell,event)=>{getItemDetail('cell',row,'cellClick')}"
+ @editItemClearHandle="(item,scope)=>{getItemDetail(item.type,scope.row,'clear')}"
+ :getEditItemDisabled="getEditItemDisabled"
+ :selectableDisabled="selectableDisabled"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Web/src/components/elPager/index.vue b/Web/src/components/elPager/index.vue
index e35d924..55a7c77 100644
--- a/Web/src/components/elPager/index.vue
+++ b/Web/src/components/elPager/index.vue
@@ -1,7 +1,7 @@
{
- state.currentPage = val.page
- state.pageSize = val.pageSize
- })
// size-change
function pageSizeChange(pageSize){
- state.pageSize = pageSize
emits('pageSizeChange',pageSize)
}
// current-change
function pageCurrentChange(page){
- state.currentPage = page
emits('pageCurrentChange',page)
}
diff --git a/Web/src/components/elTable/index.vue b/Web/src/components/elTable/index.vue
index 33d16ff..0cbc993 100644
--- a/Web/src/components/elTable/index.vue
+++ b/Web/src/components/elTable/index.vue
@@ -6,6 +6,7 @@
:border="true"
@sort-change="sortChange"
@selection-change="tableSelectionHandle"
+ :row-class-name="'setDisabledStyle'"
>
{editItemFocusHandle(item,scope,event)}"
+ @change="editItemChangeHandle(item,scope,arguments)"
+ @clear="editItemClearHandle(item,scope)"
/>
+ :disabled="getEditItemDisabled(item,scope.row,scope)"
+ :clearable="!item.noClear"
+ @focus="(event)=>{editItemFocusHandle(item,scope,event)}"
+ @change="editItemChangeHandle(item,scope,arguments)"
+ @clear="editItemClearHandle(item,scope)">
{editItemFocusHandle(item,scope,event)}"
+ @change="editItemChangeHandle(item,scope,arguments)"
+ @clear="editItemClearHandle(item,scope)"
/>
{editItemFocusHandle(item,scope,event)}"
+ @change="editItemChangeHandle(item,scope,arguments)"
/>
{{ scope.row[item.prop] }}
@@ -185,18 +197,26 @@
type: String,
default: 'center'
},
- // 是否为可编辑tabel
- isEditTable:{
- type: Boolean,
+ // 可编辑单元格判断禁用
+ getEditItemDisabled:{
+ type: [Function,Boolean],
default: false
},
+ // table的复选框是否禁用判断
+ selectableDisabled:{
+ type: [Function,Boolean],
+ default: true
+ }
})
const emits = defineEmits([
'sortChange',
'leftOperationHadel',
'rightOperationHadel',
- 'tableSelectionHandle'
+ 'tableSelectionHandle',
+ 'editItemFocusHandle',
+ 'editItemChangeHandle',
+ 'editItemClearHandle',
])
// 多选
@@ -240,6 +260,39 @@
return _arr
}
+ // 判断可编辑元素是否禁用
+ function getEditItemDisabled(item,row,scope){
+ if(typeof props.getEditItemDisabled == 'boolean'){
+ return props.getEditItemDisabled
+ }else{
+ return props.getEditItemDisabled(item,row,scope.$index)
+ }
+ }
+
+ // table的复选框是否禁用判断
+ function selectableDisabled(row,index){
+ if(typeof props.selectableDisabled == 'function'){
+ return props.selectableDisabled(row,index)
+ }else{
+ return props.selectableDisabled
+ }
+ }
+
+ // 可编辑元素Focus事件
+ function editItemFocusHandle(item,scope,event) {
+ emits('editItemFocusHandle',item,scope,event)
+ }
+
+ // 可编辑元素change事件
+ function editItemChangeHandle(item,scope,data) {
+ emits('editItemChangeHandle',item,scope,data)
+ }
+
+ // 可编辑元素clear事件
+ function editItemClearHandle(item,scope) {
+ emits('editItemClearHandle',item,scope)
+ }
+
// 右侧操作列
function rightOperationHadel(btn,scope) {
emits('rightOperationHadel',btn,scope)
diff --git a/Web/src/components/tablePage/index.vue b/Web/src/components/tablePage/index.vue
index 21c9296..9530657 100644
--- a/Web/src/components/tablePage/index.vue
+++ b/Web/src/components/tablePage/index.vue
@@ -191,8 +191,7 @@
default: null
},
// 右侧通用按钮特殊字段判断隐藏规则,默认为编辑删除,writeState=true不可操作,
- // 如:风险页面是根据readState,则使用该方法特殊处理,
- // 当前判断方式为“=”,如后期有其他需求再进行封装
+ // 如有特殊规则,则使用该方法特殊处理,当前判断方式为“=”,如后期有其他需求再进行封装
apiRightHideConfig:{
type: Object,
default: {
diff --git a/Web/src/utils/common/apiTableColumns.js b/Web/src/utils/common/apiTableColumns.js
index 2af2a04..92449ca 100644
--- a/Web/src/utils/common/apiTableColumns.js
+++ b/Web/src/utils/common/apiTableColumns.js
@@ -117,6 +117,39 @@ const apiTableColumns = {
{prop:'quantityMeet11',title:'满足数量11',type:'numberInput'},
{prop:'quantityMeet12',title:'满足数量12',type:'numberInput'},
],
+ // M+6月物料需求计划风险确认-明细
+ cherysupplierconmmrpDetail:[
+ {prop:'releaseEdition',title:'需求发布版次',width:150},
+ {prop:'materialCode',title:'零件号'},
+ {prop:'materialDescription',title:'零件名称'},
+ {prop:'plantId',title:'工厂代码'},
+ {prop:'plantName',title:'工厂名称'},
+ {prop:'startMonth',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',width:130},
+ {prop:'quantityDemand11',title:'需求数量11',width:130},
+ {prop:'quantityDemand12',title:'需求数量12',width:130},
+ {prop:'requestDate',title:'请求日期',width:180},
+ // {prop:'remark',title:'备注',align:'left',width:300},
+ {prop:'createByUser',title:'创建人'},
+ {prop:'createTime',title:'创建时间',width:180},
+ // {prop:'creationTime',title:'创建时间(接收)',width:180},
+ {prop:'updateByUser',title:'修改人'},
+ {prop:'updateTime',title:'修改时间',width:180},
+ {prop:'version',title:'版本号'},
+ // {prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
+ // {prop:'isUpdate',title:'是否更新',type:'tagFilter',options:EnumList.whether},
+ // {prop:'writeState',title:'writeState',type:'tagFilter',options:EnumList.whetherBoolean},
+ // {prop:'readState',title:'readState',type:'tagFilter',options:EnumList.whetherBoolean},
+ ],
// 日物料需求计划
cherysuppliermrpdata:[
{prop:'releaseEdition',title:'需求发布版次',width:150},
diff --git a/Web/src/views/logisticsPlan/supplierConMmrp/index.vue b/Web/src/views/logisticsPlan/supplierConMmrp/index.vue
index ff65421..da640a1 100644
--- a/Web/src/views/logisticsPlan/supplierConMmrp/index.vue
+++ b/Web/src/views/logisticsPlan/supplierConMmrp/index.vue
@@ -1,19 +1,22 @@
-
+ :detailColumName="'cherysupplierconmmrpDetail'"
+ :searchButtons="['search','export','outputMany']"
+ :multipleTable="true"
+ >
+