parent
6d50393ad7
commit
c5409d6303
1 changed files with 395 additions and 355 deletions
@ -1,369 +1,409 @@ |
||||
<template> |
||||
<basic-container> |
||||
<avue-crud |
||||
:option="option" |
||||
:table-loading="loading" |
||||
:data="data" |
||||
v-model="form" |
||||
v-model:page="page" |
||||
ref="crud" |
||||
@search-change="searchChange" |
||||
@search-reset="searchReset" |
||||
@selection-change="selectionChange" |
||||
@current-change="currentChange" |
||||
@size-change="sizeChange" |
||||
@refresh-change="refreshChange" |
||||
@on-load="onLoad" |
||||
<basic-container> |
||||
<avue-crud |
||||
:option="option" |
||||
:table-loading="loading" |
||||
:data="data" |
||||
v-model="form" |
||||
v-model:page="page" |
||||
ref="crud" |
||||
@search-change="searchChange" |
||||
@search-reset="searchReset" |
||||
@selection-change="selectionChange" |
||||
@current-change="currentChange" |
||||
@size-change="sizeChange" |
||||
@refresh-change="refreshChange" |
||||
@on-load="onLoad" |
||||
@sort-change="sortChange" |
||||
:permission="permissionList" |
||||
> |
||||
<template #singleArea="{ row }"> |
||||
{{ row.lowArea + '~' + row.upArea }} |
||||
</template> |
||||
<template #batchArea="{ row }"> |
||||
{{ row.singleDownArea + '~' + row.singleUpArea }} |
||||
</template> |
||||
<template #menu-left> |
||||
<el-button type="primary" v-if="permission.ruleMaintenance_add" @click="handleAdd" |
||||
>新增</el-button |
||||
> |
||||
<template #singleArea="{row}"> |
||||
{{row.lowArea + '~' + row.upArea }} |
||||
</template> |
||||
<template #batchArea="{row}"> |
||||
{{row.singleDownArea + '~' + row.singleUpArea }} |
||||
</template> |
||||
<template #menu-left> |
||||
<el-button type="primary" @click="handleAdd">新增</el-button> |
||||
<el-button type="danger" @click="handleDelete">删除</el-button> |
||||
</template> |
||||
<template #menu-right> |
||||
<el-button type="primary" @click="handleImport">导入</el-button> |
||||
</template> |
||||
<template #menu="scope"> |
||||
<el-button type="text" @click="editRow(scope.row)">修改</el-button> |
||||
<el-button type="text" @click="rowDel(scope.row)">删除</el-button> |
||||
</template> |
||||
</avue-crud> |
||||
<add-rule-dialog v-if="showDialog" :isOpen="showDialog" :row="checkRow" :moldAddMore="moldAddMore" @closeDialog="closeDialog"></add-rule-dialog> |
||||
<!-- 导入 --> |
||||
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" |
||||
templateUrl="/blade-desk/bsAssign/downloadExcelTemplate" |
||||
templateName="分派规则模板.xls" |
||||
importUrl="/blade-desk/bsAssign/importExcel" |
||||
@closeDialog="closeDialog" |
||||
></basic-import> |
||||
</basic-container> |
||||
<el-button type="danger" v-if="permission.ruleMaintenance_del" @click="handleDelete" |
||||
>删除</el-button |
||||
> |
||||
</template> |
||||
<template #menu-right> |
||||
<el-button type="primary" v-if="permission.ruleMaintenance_import" @click="handleImport" |
||||
>导入</el-button |
||||
> |
||||
</template> |
||||
<template #menu="scope"> |
||||
<el-button type="text" v-if="permission.ruleMaintenance_edit" @click="editRow(scope.row)" |
||||
>修改</el-button |
||||
> |
||||
<el-button type="text" v-if="permission.ruleMaintenance_del" @click="rowDel(scope.row)" |
||||
>删除</el-button |
||||
> |
||||
</template> |
||||
</avue-crud> |
||||
<add-rule-dialog |
||||
v-if="showDialog" |
||||
:isOpen="showDialog" |
||||
:row="checkRow" |
||||
:moldAddMore="moldAddMore" |
||||
@closeDialog="closeDialog" |
||||
></add-rule-dialog> |
||||
<!-- 导入 --> |
||||
<basic-import |
||||
v-if="isShowImport" |
||||
title="导入" |
||||
:isShow="isShowImport" |
||||
templateUrl="/blade-desk/bsAssign/downloadExcelTemplate" |
||||
templateName="分派规则模板.xls" |
||||
importUrl="/blade-desk/bsAssign/importExcel" |
||||
@closeDialog="closeDialog" |
||||
></basic-import> |
||||
</basic-container> |
||||
</template> |
||||
|
||||
<script> |
||||
import addRuleDialog from './components/addRuleDialog.vue' |
||||
import basicImport from '@/components/basic-import/main.vue' |
||||
import {getList,deleteRules} from "@/api/basicData/ruleMaintenance" |
||||
import addRuleDialog from './components/addRuleDialog.vue'; |
||||
import basicImport from '@/components/basic-import/main.vue'; |
||||
import { getList, deleteRules } from '@/api/basicData/ruleMaintenance'; |
||||
import { mapGetters } from 'vuex'; |
||||
export default { |
||||
components: { addRuleDialog,basicImport }, |
||||
data() { |
||||
return { |
||||
moldAddMore:false, |
||||
loading: false, |
||||
showDialog:false, |
||||
isShowImport:false, |
||||
page: { |
||||
total: 0, |
||||
currentPage: 1, |
||||
pageSize: 10, |
||||
components: { addRuleDialog, basicImport }, |
||||
data() { |
||||
return { |
||||
moldAddMore: false, |
||||
loading: false, |
||||
showDialog: false, |
||||
isShowImport: false, |
||||
page: { |
||||
total: 0, |
||||
currentPage: 1, |
||||
pageSize: 10, |
||||
}, |
||||
data: [], |
||||
form: {}, |
||||
selectionList: [], |
||||
option: { |
||||
height: 'auto', |
||||
calcHeight: 32, |
||||
tip: false, |
||||
// size: "medium", |
||||
simplePage: true, |
||||
searchShow: true, |
||||
searchMenuSpan: 6, |
||||
searchIcon: true, |
||||
searchIndex: 3, |
||||
tree: false, |
||||
border: true, |
||||
index: true, |
||||
selection: true, |
||||
viewBtn: false, |
||||
delBtn: false, |
||||
editBtn: false, |
||||
addBtn: false, |
||||
editBtnText: '修改', |
||||
viewBtnIcon: ' ', |
||||
delBtnIcon: ' ', |
||||
editBtnIcon: ' ', |
||||
viewBtnText: '详情', |
||||
labelWidth: 120, |
||||
menuWidth: 120, |
||||
dialogWidth: 1040, |
||||
dialogClickModal: false, |
||||
searchEnter: true, |
||||
excelBtn: false, |
||||
filterBtn: true, |
||||
searchShowBtn: false, |
||||
columnSort: true, |
||||
excelBtn: true, |
||||
columnSort: true, |
||||
index: false, |
||||
showOverflowTooltip: true, |
||||
searchLabelPosition: 'left', |
||||
searchLabelPosition: 'left', |
||||
searchGutter: 24, |
||||
searchSpan: 6, |
||||
menuAlign: 'center', |
||||
gridBtn: false, |
||||
searchMenuPosition: 'right', |
||||
addBtnIcon: ' ', |
||||
viewBtnIcon: ' ', |
||||
delBtnIcon: ' ', |
||||
editBtnIcon: ' ', |
||||
align: 'center', |
||||
column: [ |
||||
{ |
||||
label: '工艺能力', |
||||
prop: 'craftAbilityId', |
||||
type: 'select', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
filterable: true, |
||||
dicUrl: '/blade-desk/BA/craftAbility/findList', |
||||
props: { |
||||
label: 'caName', |
||||
value: 'id', |
||||
}, |
||||
width: 200, |
||||
}, |
||||
{ |
||||
label: '零件号', |
||||
prop: 'partCode', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
width: 150, |
||||
search: true, |
||||
}, |
||||
{ |
||||
label: '生产标识', |
||||
prop: 'prodMark', |
||||
// type:"select", |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
width: 150, |
||||
search: false, |
||||
multiple: true, |
||||
// dicUrl:"/blade-scheduling/qualityGrade/getGrades", |
||||
// props:{ |
||||
// label:"qualityGrade", |
||||
// value:"id" |
||||
// } |
||||
}, |
||||
{ |
||||
label: '单件面积上下限(dm²)', |
||||
prop: 'singleArea', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
width: 200, |
||||
search: false, |
||||
multiple: true, |
||||
}, |
||||
{ |
||||
label: '单批面积上下限(dm²)', |
||||
prop: 'batchArea', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
width: 200, |
||||
span: 12, |
||||
search: false, |
||||
multiple: true, |
||||
}, |
||||
{ |
||||
label: '限制类型', |
||||
prop: 'limitType', |
||||
type: 'select', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width: 200, |
||||
dicUrl: '/api/blade-system/dict/dictionary?code=AssignLimit', |
||||
props: { |
||||
label: 'dictValue', |
||||
value: 'dictKey', |
||||
}, |
||||
// dicData:[ |
||||
// {label:"必须",value:1} |
||||
// ] |
||||
}, |
||||
{ |
||||
label: '指定类型', |
||||
prop: 'pointType', |
||||
type: 'select', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width: 200, |
||||
dicUrl: '/api/blade-system/dict/dictionary?code=AssignPoint', |
||||
props: { |
||||
label: 'dictValue', |
||||
value: 'dictKey', |
||||
}, |
||||
data: [], |
||||
form: {}, |
||||
selectionList:[], |
||||
option: { |
||||
height: "auto", |
||||
calcHeight: 32, |
||||
tip: false, |
||||
// size: "medium", |
||||
simplePage: true, |
||||
searchShow: true, |
||||
searchMenuSpan: 6, |
||||
searchIcon: true, |
||||
searchIndex: 3, |
||||
tree: false, |
||||
border: true, |
||||
index: true, |
||||
selection: true, |
||||
viewBtn: false, |
||||
delBtn: false, |
||||
editBtn: false, |
||||
addBtn: false, |
||||
editBtnText: "修改", |
||||
viewBtnIcon: " ", |
||||
delBtnIcon: " ", |
||||
editBtnIcon: " ", |
||||
viewBtnText: "详情", |
||||
labelWidth: 120, |
||||
menuWidth: 120, |
||||
dialogWidth: 1040, |
||||
dialogClickModal: false, |
||||
searchEnter: true, |
||||
excelBtn: false, |
||||
filterBtn: true, |
||||
searchShowBtn: false, |
||||
columnSort: true, |
||||
excelBtn: true, |
||||
columnSort: true, |
||||
index: false, |
||||
showOverflowTooltip: true, |
||||
searchLabelPosition: "left", |
||||
searchLabelPosition: "left", |
||||
searchGutter: 24, |
||||
searchSpan: 6, |
||||
menuAlign: "center", |
||||
gridBtn: false, |
||||
searchMenuPosition: "right", |
||||
addBtnIcon: " ", |
||||
viewBtnIcon: " ", |
||||
delBtnIcon: " ", |
||||
editBtnIcon: " ", |
||||
align: "center", |
||||
column: [ |
||||
{ |
||||
label: "工艺能力", |
||||
prop: "craftAbilityId", |
||||
type:"select", |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
filterable: true, |
||||
dicUrl:"/blade-desk/BA/craftAbility/findList", |
||||
props:{ |
||||
label:"caName", |
||||
value:"id" |
||||
}, |
||||
width:200, |
||||
}, |
||||
{ |
||||
label: "零件号", |
||||
prop: "partCode", |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
width:150, |
||||
search: true, |
||||
}, |
||||
{ |
||||
label: "生产标识", |
||||
prop: "prodMark", |
||||
// type:"select", |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
width:150, |
||||
search: false, |
||||
multiple: true, |
||||
// dicUrl:"/blade-scheduling/qualityGrade/getGrades", |
||||
// props:{ |
||||
// label:"qualityGrade", |
||||
// value:"id" |
||||
// } |
||||
}, |
||||
{ |
||||
label: "单件面积上下限(dm²)", |
||||
prop: "singleArea", |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
width:200, |
||||
search: false, |
||||
multiple: true, |
||||
}, |
||||
{ |
||||
label: "单批面积上下限(dm²)", |
||||
prop: "batchArea", |
||||
sortable: false, |
||||
filter: true, |
||||
width:200, |
||||
span: 12, |
||||
search: false, |
||||
multiple: true, |
||||
}, |
||||
{ |
||||
label: "限制类型", |
||||
prop: "limitType", |
||||
type:"select", |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width:200, |
||||
dicUrl:'/api/blade-system/dict/dictionary?code=AssignLimit', |
||||
props:{ |
||||
label:"dictValue", |
||||
value:"dictKey" |
||||
} |
||||
// dicData:[ |
||||
// {label:"必须",value:1} |
||||
// ] |
||||
}, |
||||
{ |
||||
label: "指定类型", |
||||
prop: "pointType", |
||||
type:"select", |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width:200, |
||||
dicUrl:'/api/blade-system/dict/dictionary?code=AssignPoint', |
||||
props:{ |
||||
label:"dictValue", |
||||
value:"dictKey" |
||||
} |
||||
// dicData:[ |
||||
// {label:"厂内",value:1}, |
||||
// {label:"外协",value:2}, |
||||
// ] |
||||
}, |
||||
{ |
||||
label: "外协厂商", |
||||
prop: "oemId", |
||||
type:'select', |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width:200, |
||||
dicUrl:"/api/blade-desk/BA/Oem/listForSelect", |
||||
props:{ |
||||
label:"ocName", |
||||
value:"id" |
||||
} |
||||
}, |
||||
{ |
||||
label: "作业中心", |
||||
prop: "centerId", |
||||
type:'select', |
||||
sortable: false, |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width:200, |
||||
dicUrl:"/api/blade-desk/BA/WorkCenter/listForSelect", |
||||
props:{ |
||||
label:"wcName", |
||||
value:"id" |
||||
} |
||||
}, |
||||
{ |
||||
label: "备注", |
||||
prop: "remark", |
||||
sortable: false, |
||||
filter: true, |
||||
width:150, |
||||
span: 12, |
||||
search: false, |
||||
}, |
||||
{ |
||||
label: "维护人", |
||||
prop: "createUserName", |
||||
sortable: false, |
||||
filter: true, |
||||
width:150, |
||||
span: 12, |
||||
search: false, |
||||
}, |
||||
{ |
||||
label: "维护时间", |
||||
prop: "updateTime", |
||||
sortable: false, |
||||
width:200, |
||||
filter: true, |
||||
span: 12, |
||||
search: false, |
||||
}, |
||||
] |
||||
// dicData:[ |
||||
// {label:"厂内",value:1}, |
||||
// {label:"外协",value:2}, |
||||
// ] |
||||
}, |
||||
{ |
||||
label: '外协厂商', |
||||
prop: 'oemId', |
||||
type: 'select', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width: 200, |
||||
dicUrl: '/api/blade-desk/BA/Oem/listForSelect', |
||||
props: { |
||||
label: 'ocName', |
||||
value: 'id', |
||||
}, |
||||
checkRow:{} |
||||
} |
||||
}, |
||||
{ |
||||
label: '作业中心', |
||||
prop: 'centerId', |
||||
type: 'select', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
span: 12, |
||||
search: true, |
||||
width: 200, |
||||
dicUrl: '/api/blade-desk/BA/WorkCenter/listForSelect', |
||||
props: { |
||||
label: 'wcName', |
||||
value: 'id', |
||||
}, |
||||
}, |
||||
{ |
||||
label: '备注', |
||||
prop: 'remark', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
width: 150, |
||||
span: 12, |
||||
search: false, |
||||
}, |
||||
{ |
||||
label: '维护人', |
||||
prop: 'createUserName', |
||||
sortable: 'custom', |
||||
filter: true, |
||||
width: 150, |
||||
span: 12, |
||||
search: false, |
||||
}, |
||||
{ |
||||
label: '维护时间', |
||||
prop: 'updateTime', |
||||
sortable: 'custom', |
||||
width: 200, |
||||
filter: true, |
||||
span: 12, |
||||
search: false, |
||||
}, |
||||
], |
||||
}, |
||||
checkRow: {}, |
||||
}; |
||||
}, |
||||
computed: { |
||||
...mapGetters(['permission']), |
||||
permissionList() { |
||||
return { |
||||
addBtn: this.validData(this.permission.ruleMaintenance_add, false), |
||||
editBtn: this.validData(this.permission.ruleMaintenance_edit, false), |
||||
delBtn: this.validData(this.permission.ruleMaintenance_del, false), |
||||
}; |
||||
}, |
||||
}, |
||||
methods: { |
||||
handleImport() { |
||||
this.isShowImport = true; |
||||
}, |
||||
handleAdd() { |
||||
this.checkRow = {}; |
||||
this.moldAddMore = true; |
||||
this.showDialog = true; |
||||
}, |
||||
selectionChange(list) { |
||||
this.selectionList = list; |
||||
}, |
||||
handleDelete() { |
||||
if (this.selectionList.length == 0) { |
||||
this.$message.error('请至少选择一条数据'); |
||||
return; |
||||
} |
||||
this.$confirm('确定删除数据吗?', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}).then(() => { |
||||
deleteRules({ |
||||
ids: this.selectionList.map(item => item.id).join(','), |
||||
}).then(res => { |
||||
this.$message.success('删除成功'); |
||||
this.onLoad(); |
||||
}); |
||||
}); |
||||
}, |
||||
mounted() { |
||||
editRow(row) { |
||||
this.moldAddMore = false; |
||||
this.checkRow = row; |
||||
this.showDialog = true; |
||||
}, |
||||
methods:{ |
||||
handleImport(){ |
||||
this.isShowImport = true |
||||
}, |
||||
handleAdd(){ |
||||
this.checkRow = {} |
||||
this.moldAddMore = true |
||||
this.showDialog = true |
||||
}, |
||||
selectionChange(list){ |
||||
this.selectionList = list |
||||
}, |
||||
handleDelete(){ |
||||
if(this.selectionList.length == 0){ |
||||
this.$message.error('请至少选择一条数据') |
||||
return |
||||
} |
||||
this.$confirm('确定删除数据吗?', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}).then(() => { |
||||
deleteRules({ |
||||
ids:this.selectionList.map(item => item.id).join(',') |
||||
}).then(res =>{ |
||||
this.$message.success('删除成功') |
||||
this.onLoad() |
||||
}) |
||||
}) |
||||
}, |
||||
editRow(row){ |
||||
this.moldAddMore = false |
||||
this.checkRow = row |
||||
this.showDialog = true |
||||
}, |
||||
rowDel(row){ |
||||
this.$confirm('确定删除数据吗?', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}).then(() => { |
||||
deleteRules({ |
||||
ids:row.id |
||||
}).then(res =>{ |
||||
this.$message.success('删除成功') |
||||
this.onLoad() |
||||
}) |
||||
}) |
||||
}, |
||||
closeDialog(val){ |
||||
this.showDialog = false |
||||
this.isShowImport = false |
||||
if(val){ |
||||
this.onLoad() |
||||
} |
||||
}, |
||||
searchChange(params, done){ |
||||
this.query = params; |
||||
this.page.currentPage = 1 |
||||
this.onLoad() |
||||
done() |
||||
}, |
||||
searchReset(){ |
||||
this.query = {} |
||||
this.onLoad() |
||||
}, |
||||
currentChange(currentPage){ |
||||
this.page.currentPage = currentPage |
||||
}, |
||||
sizeChange( pageSize){ |
||||
this.page.pageSize = pageSize |
||||
}, |
||||
refreshChange(){ |
||||
this.onLoad() |
||||
}, |
||||
onLoad(){ |
||||
getList({ |
||||
current:this.page.currentPage, |
||||
size:this.page.pageSize, |
||||
...this.query |
||||
}).then(res =>{ |
||||
this.data = res.data.data.records |
||||
this.page.total = res.data.data.total |
||||
}) |
||||
} |
||||
} |
||||
} |
||||
rowDel(row) { |
||||
this.$confirm('确定删除数据吗?', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}).then(() => { |
||||
deleteRules({ |
||||
ids: row.id, |
||||
}).then(res => { |
||||
this.$message.success('删除成功'); |
||||
this.onLoad(); |
||||
}); |
||||
}); |
||||
}, |
||||
closeDialog(val) { |
||||
this.showDialog = false; |
||||
this.isShowImport = false; |
||||
if (val) { |
||||
this.onLoad(); |
||||
} |
||||
}, |
||||
searchChange(params, done) { |
||||
this.query = params; |
||||
this.page.currentPage = 1; |
||||
this.onLoad(); |
||||
done(); |
||||
}, |
||||
searchReset() { |
||||
this.query = {}; |
||||
this.onLoad(); |
||||
}, |
||||
currentChange(currentPage) { |
||||
this.page.currentPage = currentPage; |
||||
}, |
||||
sizeChange(pageSize) { |
||||
this.page.pageSize = pageSize; |
||||
}, |
||||
refreshChange() { |
||||
this.onLoad(); |
||||
}, |
||||
// 排序 |
||||
sortChange({ prop, order }) { |
||||
this.query.descs = undefined; |
||||
this.query.ascs = undefined; |
||||
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs'; |
||||
this.query[orderByFieldKey] = !prop |
||||
? undefined |
||||
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase(); |
||||
// // 重新加载数据 |
||||
this.onLoad(this.page, this.query); |
||||
}, |
||||
onLoad() { |
||||
getList({ |
||||
current: this.page.currentPage, |
||||
size: this.page.pageSize, |
||||
...this.query, |
||||
}).then(res => { |
||||
this.data = res.data.data.records; |
||||
this.page.total = res.data.data.total; |
||||
}); |
||||
}, |
||||
}, |
||||
}; |
||||
</script> |
||||
|
||||
<style> |
||||
|
||||
</style> |
||||
Loading…
Reference in new issue