Browse Source

tableform扩展操作按钮

master
陈薪名 11 months ago
parent
commit
f4ef0f9db1
  1. 6
      src/api/wms/bomDismantle/index.ts
  2. 24
      src/components/BasicForm/src/BasicForm.vue
  3. 23
      src/components/TableForm/src/TableForm.vue
  4. 105
      src/views/wms/productionManage/productrepair/productrepairRequestMain/index.vue
  5. 62
      src/views/wms/productionManage/productrepair/productrepairRequestMain/productrepairRequestMain.data.ts

6
src/api/wms/bomDismantle/index.ts

@ -0,0 +1,6 @@
import request from '@/config/axios'
// 查询制品返修申请子列表
export const getBomDismantlePage = async (params) => {
return await request.get({ url: `/wms/productrepair-request-main/bomPage`, params })
}

24
src/components/BasicForm/src/BasicForm.vue

@ -78,6 +78,7 @@
@selectCallback="selectCallback" @selectCallback="selectCallback"
@handleTableSelect="handleTableSelect" @handleTableSelect="handleTableSelect"
@inpuFocus="inpuFocus" @inpuFocus="inpuFocus"
@buttonOperationClick="buttonOperationClick"
/> />
</div> </div>
<div v-if="isBusiness && formType == 'create' && fromeWhere == 'countPlan'"> <div v-if="isBusiness && formType == 'create' && fromeWhere == 'countPlan'">
@ -234,6 +235,21 @@ const tableAllSchemas = ref(props.tableAllSchemas)
const tableFormRules = ref(props.tableFormRules) const tableFormRules = ref(props.tableFormRules)
console.log('fromeWhere', props.fromeWhere) console.log('fromeWhere', props.fromeWhere)
// -
const buttondata = [
defaultButtons.mainListEditBtn(null), //
defaultButtons.mainListDeleteBtn(null)
]
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') {
} else if (val == 'delete') {
} else {
}
}
/** 弹层操作 */ /** 弹层操作 */
// formField form // formField form
// searchField // searchField
@ -426,7 +442,8 @@ const emit = defineEmits([
'submitForm', 'submitForm',
'selectChange', 'selectChange',
'selectChangeDetail', 'selectChangeDetail',
'tableFormChange' 'tableFormChange',
'buttonOperationClick'
]) ])
// //
const formSelectChange = (field, val, row) => { const formSelectChange = (field, val, row) => {
@ -490,6 +507,11 @@ const selectChangeDetail = (field, val,formSchema) => {
const tableFormChange = (field, val, row) => { const tableFormChange = (field, val, row) => {
emit('tableFormChange', field, val, row) emit('tableFormChange', field, val, row)
} }
const buttonOperationClick = (row, label, index)=> {
emit("buttonOperationClick", row, label, index);
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.table { .table {

23
src/components/TableForm/src/TableForm.vue

@ -39,7 +39,7 @@
v-if="isShowIndex" v-if="isShowIndex"
/> />
<el-table-column <el-table-column
v-slot="{ row }" v-slot="{ row, $index }"
v-for="(headerItem,index) in tableFields" v-for="(headerItem,index) in tableFields"
:key="headerItem" :key="headerItem"
:fixed="headerItem.tableForm?.fixed" :fixed="headerItem.tableForm?.fixed"
@ -242,9 +242,20 @@
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<!-- table表添加操作列 -->
<!-- <el-form-item> -->
<div v-if="headerItem?.tableForm?.type == 'action'">
<el-button
v-for="(itemButton, indexButton) in headerItem?.tableForm?.buttonText.split('|')"
:key="indexButton"
type="text"
style="padding-top: 0px;align-items:unsafe;"
@click="buttonOperationClick(row, headerItem?.tableForm?.buttonName.split('|')[indexButton], $index)"
>{{itemButton}}</el-button>
</div>
<!-- </el-form-item> -->
</el-form> </el-form>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="button flex" v-if="isShowButton"> <div class="button flex" v-if="isShowButton">
<div class="p-12px" @click="handleAddTable"> <div class="p-12px" @click="handleAddTable">
@ -330,7 +341,8 @@ const emit = defineEmits([
'handleTableSelect', 'handleTableSelect',
'handleDeleteTable', 'handleDeleteTable',
'handleAddTable', 'handleAddTable',
'inpuFocus' 'inpuFocus',
'buttonOperationClick'
]) ])
// | type = radio | type = select // | type = radio | type = select
const initSelectOptions = (item) => { const initSelectOptions = (item) => {
@ -400,6 +412,11 @@ const inpuFocus = (headerItem, row, index)=>{
} }
} }
//table
const buttonOperationClick = (row, label, index)=> {
emit("buttonOperationClick", row, label, index);
}
// setup // setup
defineExpose({ defineExpose({
TableBaseComponents_Ref, TableBaseComponents_Ref,

105
src/views/wms/productionManage/productrepair/productrepairRequestMain/index.vue

@ -54,6 +54,7 @@
@handleDeleteTable="handleDeleteTable" @handleDeleteTable="handleDeleteTable"
@searchTableSuccess="searchTableSuccess" @searchTableSuccess="searchTableSuccess"
@submitForm="submitForm" @submitForm="submitForm"
@buttonOperationClick="buttonOperationClick"
/> />
<!-- 详情 --> <!-- 详情 -->
@ -67,10 +68,30 @@
:apiUpdate="ProductrepairRequestDetailApi.updateProductrepairRequestDetaila" :apiUpdate="ProductrepairRequestDetailApi.updateProductrepairRequestDetaila"
:apiPage="ProductrepairRequestDetailApi.getProductrepairRequestDetailaPage" :apiPage="ProductrepairRequestDetailApi.getProductrepairRequestDetailaPage"
:apiDelete="ProductrepairRequestDetailApi.deleteProductrepairRequestDetaila" :apiDelete="ProductrepairRequestDetailApi.deleteProductrepairRequestDetaila"
:Echo="Echo"
@searchTableSuccessDetail="searchTableSuccessDetail" @searchTableSuccessDetail="searchTableSuccessDetail"
/> />
<!-- bom列表 -->
<Dialog
:title="DialogTitle"
v-model="bomModelVisible"
width="80%"
:scroll="true"
max-height="450px"
>
<TableForm
ref="tableFormRef"
class="w-[100%]"
:tableFields="BomDismantle.allSchemas.tableColumns"
:tableData="detatableDataBom.tableList"
:isShowButton="false"
:isShowReduceButton="false"
/>
<template #footer>
<ButtonBase :Butttondata="ButttondataBom" @button-base-click="buttonBaseClickBom" />
</template>
</Dialog>
<!-- 导入 --> <!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/productrepair-request-main/import" :importTemplateData="importTemplateData" <ImportForm ref="importFormRef" url="/wms/productrepair-request-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" /> @success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" />
@ -78,10 +99,12 @@
<script setup lang="ts"> <script setup lang="ts">
import download from '@/utils/download' import download from '@/utils/download'
import { ProductrepairRequestMain,ProductrepairRequestMainRules,ProductrepairRequestDetaila,ProductrepairRequestDetailaRules } from './productrepairRequestMain.data' import { ProductrepairRequestMain,ProductrepairRequestMainRules,ProductrepairRequestDetaila,ProductrepairRequestDetailaRules, ConsumereRequestDetailb, BomDismantle } from './productrepairRequestMain.data'
import * as ProductrepairRequestMainApi from '@/api/wms/productrepairRequestMain' import * as ProductrepairRequestMainApi from '@/api/wms/productrepairRequestMain'
import * as ProductrepairRequestDetailApi from '@/api/wms/productrepairRequestDetaila' import * as ProductrepairRequestDetailApi from '@/api/wms/productrepairRequestDetaila'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as BomDismantleApi from '@/api/wms/bomDismantle'
// //
defineOptions({ name: 'ProductrepairRequestMain' }) defineOptions({ name: 'ProductrepairRequestMain' })
@ -94,6 +117,61 @@ const routeName = ref()
routeName.value = route.name routeName.value = route.name
const tableColumns = ref(ProductrepairRequestMain.allSchemas.tableColumns) const tableColumns = ref(ProductrepairRequestMain.allSchemas.tableColumns)
// Bom
const DialogTitle = ref('Bom信息')
const bomModelVisible = ref(false)
const tableListBom = ref()
const { tableObject: detatableDataBom, tableMethods: detatableMethodsBom } =useTable({
getListApi: BomDismantleApi.getBomDismantlePage
})
const { getList:getDetailListBom } = detatableMethodsBom
/** bom 列表 表单 按钮 */
const ButttondataBom = [
defaultButtons.formSaveBtn(null), //
defaultButtons.formCloseBtn(null) //
]
// bom
const buttonBaseClickBom = (val) => {
//
if (val == 'save') {
//
tableListBom.value = detatableDataBom.tableList.filter(item => (item.qty!=0))
tableData.value.forEach((item, index) => {
if(tableListBom.value[0].rowId == index) {
item.childList = tableListBom.value
}
})
console.log(157, tableData.value)
bomModelVisible.value = false
}
//
else if (val == 'close') {
bomModelVisible.value = false
}
}
// tableform
const buttonOperationClick = async (row, label, index)=> {
if (row.itemCode == '') {
message.warning('请选择物品代码!')
return
}
detatableDataBom.params.itemCode = row.itemCode
DialogTitle.value = '物品代码:【' + row.itemCode + '】 Bom 信息'
bomModelVisible.value = true
await getDetailListBom()
detatableDataBom.tableList.map(item => {
item.rowId = index
if(tableData.value[index].childList) {
tableData.value[index].childList.forEach(itemChild => {
if (itemChild.itemCode == item.itemCode) {
item.qty = itemChild.qty
}
})
}
})
}
// //
const updataTableColumns = (val) => { const updataTableColumns = (val) => {
tableColumns.value = val tableColumns.value = val
@ -138,10 +216,6 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
}) })
} }
//
// const Echo = ['ppNumber','poLine', 'batch', 'altBatch', 'itemCode', 'itemName', 'itemDesc1', 'itemDesc2', 'projectCode', 'qty', 'uom']
const Echo = []
const { tableObject, tableMethods } = useTable({ const { tableObject, tableMethods } = useTable({
getListApi: ProductrepairRequestMainApi.getProductrepairRequestMainPage // getListApi: ProductrepairRequestMainApi.getProductrepairRequestMainPage //
}) })
@ -195,18 +269,17 @@ const isShowMainButton = (row,val) => {
// - // -
const butttondata = (row) => { const butttondata = (row) => {
return [ return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6'])}), // defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4']), hasPermi:'wms:productrepair-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5'])}), // defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']), hasPermi:'wms:productrepair-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1'])}), // defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productrepair-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2'])}), // defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productrepair-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2'])}), // defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productrepair-request-main:handle'}), //
defaultButtons.mainListEditBtn({hasPermi:'wms:productrepair-request-main:update'}), // defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']), hasPermi:'wms:productrepair-request-main:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:productrepair-request-main:delete'}), // defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productrepair-request-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:issue-request-main:delete'}), //
] ]
} }
// - // -
const buttonTableClick = async (val, row) => { const buttonTableClick = async (val, row) => {
if (val == 'mainClose') { // if (val == 'mainClose') { //
@ -331,6 +404,8 @@ const searchFormClick = (searchData) => {
getList() // getList() //
} }
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
getList() getList()

62
src/views/wms/productionManage/productrepair/productrepairRequestMain/productrepairRequestMain.data.ts

@ -839,7 +839,12 @@ export const ProductrepairRequestDetaila = useCrudSchemas(reactive<CrudSchema[]>
width: 150, width: 150,
fixed: 'right' fixed: 'right'
}, },
isTableForm:false, isTableForm:true,
tableForm: {
type: 'action',
buttonText: 'Bom',
buttonName: 'Bom'
}
} }
])) ]))
@ -1037,6 +1042,17 @@ export const ConsumereRequestDetailb = useCrudSchemas(reactive<CrudSchema[]>([
table: { table: {
width: 150 width: 150
}, },
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false ,
table: {
width: 150,
fixed: 'right'
},
isTableForm:true,
} }
])) ]))
@ -1066,4 +1082,46 @@ export const ConsumereRequestDetailbRules = reactive({
creator: [ creator: [
{ required: true, message: '请输入创建者', trigger: 'blur' } { required: true, message: '请输入创建者', trigger: 'blur' }
], ],
}) })
/**
* @returns {Array} bom
*/
export const BomDismantle = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '行标记',
field: 'rowId',
isTableForm: false,
isForm: false,
tableForm:{
disabled: true
}
},
{
label: '物品代码',
field: 'itemCode',
tableForm:{
disabled: true
}
},
{
label: '数量',
field: 'qty',
tableForm: {
type: 'InputNumber',
min: 0,
precision: 6
}
},
{
label: '计量单位',
field: 'uom',
dictType: DICT_TYPE.UOM,
dictClass: 'string',
tableForm:{
type: 'Select',
disabled: true
}
},
]))
Loading…
Cancel
Save