parent
cb616ea329
commit
d869fd790d
7 changed files with 773 additions and 38 deletions
@ -0,0 +1,60 @@ |
||||
import request from '@/axios'; |
||||
|
||||
// 获取列表数据
|
||||
export const getList = (current, size, params) => { |
||||
return request({ |
||||
url: '/blade-desk/QA/DispatchConfigApproval/page', |
||||
method: 'get', |
||||
params: { |
||||
...params, |
||||
current, |
||||
size, |
||||
}, |
||||
}); |
||||
}; |
||||
|
||||
|
||||
// 删除
|
||||
export const del = (params) => { |
||||
return request({ |
||||
url: '/blade-desk/QA/DispatchConfigApproval/remove', |
||||
method: 'post', |
||||
params: params, |
||||
}); |
||||
}; |
||||
|
||||
// 修改
|
||||
export const update = (params) => { |
||||
return request({ |
||||
url: '/blade-desk/QA/DispatchConfigApproval/update', |
||||
method: 'post', |
||||
data: params, |
||||
}); |
||||
}; |
||||
|
||||
// 新增
|
||||
export const add = (params) => { |
||||
return request({ |
||||
url: '/blade-desk/QA/DispatchConfigApproval/save', |
||||
method: 'post', |
||||
data: params, |
||||
}); |
||||
}; |
||||
|
||||
// 提交审批
|
||||
export const submitApproval = (params) => { |
||||
return request({ |
||||
url: '/blade-desk/QA/DispatchConfigApproval/submitApproval', |
||||
method: 'post', |
||||
params: params, |
||||
}); |
||||
}; |
||||
|
||||
// 审批结果提交
|
||||
export const submitAudit = (params) => { |
||||
return request({ |
||||
url: '/blade-desk/QA/DispatchConfigApproval/audit', |
||||
method: 'post', |
||||
params: params, |
||||
}); |
||||
}; |
||||
@ -0,0 +1,14 @@ |
||||
import request from '@/axios'; |
||||
|
||||
// 获取列表数据
|
||||
export const getList = (current, size, params) => { |
||||
return request({ |
||||
url: '/blade-desk/QA/DispatchConfigApproval/page', |
||||
method: 'get', |
||||
params: { |
||||
...params, |
||||
current, |
||||
size, |
||||
}, |
||||
}); |
||||
}; |
||||
@ -0,0 +1,92 @@ |
||||
<template> |
||||
<el-dialog :title="title" append-to-body :modelValue="openShow" width="30%" @close="closeDialog"> |
||||
<avue-form ref="form" v-model="form" :option="option"></avue-form> |
||||
|
||||
<template #footer> |
||||
<span class="dialog-footer"> |
||||
<el-button @click="closeDialog">取 消</el-button> |
||||
<el-button type="primary" @click="submit">确 定</el-button> |
||||
</span> |
||||
</template> |
||||
</el-dialog> |
||||
</template> |
||||
<script> |
||||
import { update, add } from '@/api/basicData/assignConfigApprove'; |
||||
export default { |
||||
props: { |
||||
showDialog: { |
||||
type: Boolean, |
||||
default: false, |
||||
}, |
||||
title: { |
||||
type: String, |
||||
default: '新增', |
||||
}, |
||||
rowItem: { |
||||
type: Object, |
||||
default: {}, |
||||
}, |
||||
}, |
||||
data() { |
||||
return { |
||||
form: {}, |
||||
openShow: false, |
||||
option: { |
||||
submitBtn: false, |
||||
emptyBtn: false, |
||||
column: [ |
||||
{ |
||||
label: '备注', |
||||
prop: 'remark', |
||||
type: 'textarea', |
||||
span: 24, |
||||
labelWidth: 'auto', |
||||
}, |
||||
], |
||||
}, |
||||
}; |
||||
}, |
||||
mounted() { |
||||
this.openShow = this.showDialog; |
||||
if (this.title == '修改') { |
||||
this.form.remark = this.rowItem.remark; |
||||
} |
||||
}, |
||||
methods: { |
||||
closeDialog() { |
||||
this.openShow = false; |
||||
this.$emit('closeDialog'); |
||||
}, |
||||
submit() { |
||||
this.$refs.form.validate(async valid => { |
||||
if (valid) { |
||||
let params = { |
||||
id: this.$route.query.id, |
||||
approvalStatus: '', |
||||
}; |
||||
if (this.title == '新增') { |
||||
let query = { |
||||
remark: this.form.remark, |
||||
}; |
||||
add(query).then(res => { |
||||
this.$message.success('操作成功'); |
||||
this.closeDialog(); |
||||
}); |
||||
} else { |
||||
let query = { |
||||
id: this.rowItem.id, |
||||
remark: this.form.remark, |
||||
}; |
||||
|
||||
update(query).then(res => { |
||||
this.$message.success('操作成功'); |
||||
this.closeDialog(); |
||||
}); |
||||
} |
||||
} |
||||
}); |
||||
}, |
||||
}, |
||||
}; |
||||
</script> |
||||
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,80 @@ |
||||
<template> |
||||
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog"> |
||||
<avue-form ref="form" v-model="form" :option="option"></avue-form> |
||||
|
||||
<template #footer> |
||||
<span class="dialog-footer"> |
||||
<el-button @click="closeDialog">取 消</el-button> |
||||
<el-button type="primary" @click="submit">确 定</el-button> |
||||
</span> |
||||
</template> |
||||
</el-dialog> |
||||
</template> |
||||
<script> |
||||
import { submitAudit } from '@/api/basicData/assignConfigApprove'; |
||||
export default { |
||||
props: { |
||||
showDialog: { |
||||
type: Boolean, |
||||
default: false, |
||||
}, |
||||
rowItem: { |
||||
type: Object, |
||||
default: {}, |
||||
}, |
||||
}, |
||||
data() { |
||||
return { |
||||
openShow: false, |
||||
form: {}, |
||||
option: { |
||||
submitBtn: false, |
||||
emptyBtn: false, |
||||
column: [ |
||||
{ |
||||
label: '审批结果', |
||||
prop: 'result', |
||||
span: 24, |
||||
type: 'radio', |
||||
dicData: [ |
||||
{ label: '通过', value: 1 }, |
||||
{ label: '不通过', value: 2 }, |
||||
], |
||||
rules: [{ required: true, message: '请选择', trigger: 'blur' }], |
||||
}, |
||||
{ |
||||
label: '审批意见', |
||||
prop: 'remark', |
||||
type: 'textarea', |
||||
span: 24, |
||||
}, |
||||
], |
||||
}, |
||||
}; |
||||
}, |
||||
mounted() { |
||||
this.openShow = this.showDialog; |
||||
}, |
||||
methods: { |
||||
closeDialog() { |
||||
this.openShow = false; |
||||
this.$emit('closeDialog'); |
||||
}, |
||||
submit() { |
||||
this.$refs.form.validate(async valid => { |
||||
if (valid) { |
||||
let params = { |
||||
id: this.rowItem.id, |
||||
...this.form, |
||||
}; |
||||
submitAudit(params).then(res => { |
||||
this.$message.success('操作成功'); |
||||
this.closeDialog(); |
||||
}); |
||||
} |
||||
}); |
||||
}, |
||||
}, |
||||
}; |
||||
</script> |
||||
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,311 @@ |
||||
<template> |
||||
<basic-container> |
||||
<avue-crud |
||||
:option="option" |
||||
: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> |
||||
<el-button type="primary" @click="addFn()" v-if="permission.assignConfig_add" |
||||
>新增</el-button |
||||
> |
||||
</template> |
||||
<template #menu-right> </template> |
||||
<template #menu="scope"> |
||||
<el-button |
||||
type="text" |
||||
v-if="permission.assignConfig_update && (scope.row.status == 0 || scope.row.status == 3)" |
||||
@click="addEdit(scope.row)" |
||||
>修改</el-button |
||||
> |
||||
<el-button |
||||
v-if="scope.row.status == 0 && permission.assignConfig_send_check" |
||||
type="text" |
||||
@click="sendApprovalFn(scope.row)" |
||||
>发送审批</el-button |
||||
> |
||||
<el-button |
||||
v-if="scope.row.status == 1 && permission.assignConfig_check" |
||||
type="text" |
||||
@click="approvalFn(scope.row)" |
||||
>审批</el-button |
||||
> |
||||
<el-button |
||||
v-if="scope.row.status == 0 && permission.assignConfig_del" |
||||
type="text" |
||||
@click="deletePart(scope.row)" |
||||
>删除</el-button |
||||
> |
||||
</template> |
||||
|
||||
<template #applicationTimeArr="scope"> |
||||
{{ scope.row.applicationTime }} |
||||
</template> |
||||
</avue-crud> |
||||
|
||||
<!-- 新增和修改 --> |
||||
<addOrEditDialog |
||||
v-if="showDialog" |
||||
:showDialog="showDialog" |
||||
:title="title" |
||||
:rowItem="rowItem" |
||||
@closeDialog="closeDialog" |
||||
></addOrEditDialog> |
||||
<!-- 审核 --> |
||||
<checkDialog |
||||
v-if="checkShow" |
||||
:showDialog="checkShow" |
||||
:rowItem="rowItem" |
||||
@closeDialog="closeDialog" |
||||
></checkDialog> |
||||
</basic-container> |
||||
</template> |
||||
|
||||
<script> |
||||
import addOrEditDialog from './addOrEditDialog.vue'; |
||||
import checkDialog from './checkDialog.vue'; |
||||
import { getList, del, submitApproval } from '@/api/basicData/assignConfigApprove'; |
||||
import { mapGetters } from 'vuex'; |
||||
export default { |
||||
components: { |
||||
addOrEditDialog, |
||||
checkDialog, |
||||
}, |
||||
computed: { |
||||
...mapGetters(['permission']), |
||||
}, |
||||
data() { |
||||
return { |
||||
checkShow: false, |
||||
showDialog: false, |
||||
title: '新增', |
||||
form: {}, |
||||
selectionList: [], |
||||
query: {}, |
||||
loading: false, |
||||
page: { |
||||
pageSize: 10, |
||||
currentPage: 1, |
||||
total: 0, |
||||
}, |
||||
option: { |
||||
columnSort: true, |
||||
tip: false, |
||||
height: 'auto', |
||||
calcHeight: 32, |
||||
simplePage: false, |
||||
searchShow: true, |
||||
searchMenuSpan: 6, |
||||
searchIcon: true, |
||||
searchIndex: 3, |
||||
tree: false, |
||||
border: true, |
||||
index: true, |
||||
selection: false, |
||||
addBtn: false, |
||||
editBtn: false, |
||||
viewBtn: false, |
||||
delBtn: false, |
||||
editBtnText: '修改', |
||||
menuWidth: 160, |
||||
dialogWidth: 900, |
||||
dialogClickModal: false, |
||||
searchEnter: true, |
||||
excelBtn: false, |
||||
filterBtn: true, |
||||
searchShowBtn: false, |
||||
excelBtn: true, |
||||
showOverflowTooltip: true, |
||||
addBtnIcon: ' ', |
||||
viewBtnIcon: ' ', |
||||
delBtnIcon: ' ', |
||||
editBtnIcon: ' ', |
||||
gridBtn: false, |
||||
searchLabelPosition: 'left', |
||||
searchGutter: 24, |
||||
searchSpan: 6, |
||||
menuAlign: 'left', |
||||
gridBtn: false, |
||||
searchMenuPosition: 'right', |
||||
searchLabelWidth: 'auto', |
||||
align: 'center', |
||||
column: [ |
||||
{ |
||||
label: '申请单号', |
||||
prop: 'applicationNo', |
||||
search: true, |
||||
sortable: true, |
||||
span: 12, |
||||
}, |
||||
{ |
||||
label: '申请人', |
||||
prop: 'applicantName', |
||||
search: true, |
||||
sortable: true, |
||||
span: 12, |
||||
}, |
||||
{ |
||||
label: '申请时间', |
||||
prop: 'applicationTimeArr', |
||||
search: true, |
||||
sortable: true, |
||||
span: 12, |
||||
type: 'date', |
||||
searchRange: true, |
||||
format: 'YYYY-MM-DD', |
||||
valueFormat: 'YYYY-MM-DD', |
||||
startPlaceholder: '开始时间', |
||||
endPlaceholder: '结束时间', |
||||
}, |
||||
{ |
||||
label: '申请描述', |
||||
prop: 'remark', |
||||
search: true, |
||||
sortable: true, |
||||
span: 12, |
||||
width: 360, |
||||
}, |
||||
// 状态: 0-草稿, 1-审批中, 2-审批通过, 3-审批驳回, 4-已撤销 |
||||
{ |
||||
label: '审批状态', |
||||
prop: 'status', |
||||
search: false, |
||||
sortable: true, |
||||
span: 12, |
||||
type: 'select', |
||||
dicData: [ |
||||
{ |
||||
label: '草稿', |
||||
value: 0, |
||||
}, |
||||
{ |
||||
label: '审批中', |
||||
value: 1, |
||||
}, |
||||
{ |
||||
label: '审批通过', |
||||
value: 2, |
||||
}, |
||||
{ |
||||
label: '审批驳回', |
||||
value: 3, |
||||
}, |
||||
{ |
||||
label: '已撤销', |
||||
value: 4, |
||||
}, |
||||
], |
||||
}, |
||||
], |
||||
}, |
||||
|
||||
data: [], |
||||
rowItem: {}, |
||||
}; |
||||
}, |
||||
methods: { |
||||
addFn() { |
||||
this.showDialog = true; |
||||
this.title = '新增'; |
||||
}, |
||||
addEdit(row) { |
||||
this.showDialog = true; |
||||
this.title = '修改'; |
||||
this.rowItem = row; |
||||
}, |
||||
sendApprovalFn(row) { |
||||
this.$confirm('确定将数据发送审批?', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}).then(() => { |
||||
submitApproval({ id: row.id }).then(res => { |
||||
this.onLoad(this.page); |
||||
this.$message({ |
||||
type: 'success', |
||||
message: '操作成功!', |
||||
}); |
||||
}); |
||||
}); |
||||
}, |
||||
approvalFn(row) { |
||||
this.checkShow = true; |
||||
this.rowItem = row; |
||||
}, |
||||
deletePart(row) { |
||||
this.$confirm('确定将选择数据删除?', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}).then(() => { |
||||
del({ ids: [row.id] }).then(res => { |
||||
this.onLoad(this.page, this.query); |
||||
this.$message({ |
||||
type: 'success', |
||||
message: '操作成功!', |
||||
}); |
||||
}); |
||||
}); |
||||
}, |
||||
closeDialog() { |
||||
this.showDialog = false; |
||||
this.checkShow = false; |
||||
this.onLoad(this.page, this.query); |
||||
}, |
||||
|
||||
searchReset() { |
||||
this.query = {}; |
||||
this.onLoad(this.page); |
||||
}, |
||||
searchChange(params, done) { |
||||
this.query = params; |
||||
this.page.currentPage = 1; |
||||
this.onLoad(this.page, params); |
||||
done(); |
||||
}, |
||||
selectionChange(list) { |
||||
this.selectionList = list; |
||||
}, |
||||
selectionClear() { |
||||
this.selectionList = []; |
||||
this.$refs.crud.toggleSelection(); |
||||
}, |
||||
|
||||
currentChange(currentPage) { |
||||
this.page.currentPage = currentPage; |
||||
}, |
||||
sizeChange(pageSize) { |
||||
this.page.pageSize = pageSize; |
||||
}, |
||||
refreshChange() { |
||||
this.onLoad(this.page, this.query); |
||||
}, |
||||
|
||||
onLoad(page, params = {}) { |
||||
this.loading = true; |
||||
if (!!params.applicationTimeArr) { |
||||
this.query.applicationTimeStart = params.applicationTimeArr[0]; |
||||
this.query.applicationTimeEnd = params.applicationTimeArr[1]; |
||||
} |
||||
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
||||
this.data = res.data.data.records; |
||||
this.loading = false; |
||||
this.page.total = res.data.data.total; |
||||
}); |
||||
}, |
||||
}, |
||||
mounted() {}, |
||||
}; |
||||
</script> |
||||
d |
||||
@ -0,0 +1,191 @@ |
||||
<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" |
||||
@current-change="currentChange" |
||||
@size-change="sizeChange" |
||||
@refresh-change="refreshChange" |
||||
@on-load="onLoad" |
||||
> |
||||
<template #menu-left> </template> |
||||
<template #menu-right> </template> |
||||
<template #menu="{ row }"> |
||||
<el-button |
||||
v-if="scope.row.approvalStatus == 0" |
||||
type="text" |
||||
@click="addEdit(scope.row.pasmId)" |
||||
>修改</el-button |
||||
> |
||||
</template> |
||||
</avue-crud> |
||||
</basic-container> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
components: {}, |
||||
data() { |
||||
return { |
||||
form: {}, |
||||
selectionList: [], |
||||
query: {}, |
||||
loading: false, |
||||
page: { |
||||
pageSize: 10, |
||||
currentPage: 1, |
||||
total: 0, |
||||
}, |
||||
option: { |
||||
columnSort: true, |
||||
tip: false, |
||||
height: 'auto', |
||||
calcHeight: 32, |
||||
simplePage: false, |
||||
searchShow: true, |
||||
searchMenuSpan: 6, |
||||
searchIcon: true, |
||||
searchIndex: 3, |
||||
tree: false, |
||||
border: true, |
||||
index: true, |
||||
selection: false, |
||||
addBtn: false, |
||||
editBtn: false, |
||||
viewBtn: false, |
||||
delBtn: false, |
||||
editBtnText: '修改', |
||||
labelWidth: 120, |
||||
menuWidth: 80, |
||||
dialogWidth: 900, |
||||
dialogClickModal: false, |
||||
searchEnter: true, |
||||
excelBtn: false, |
||||
filterBtn: true, |
||||
searchShowBtn: false, |
||||
excelBtn: true, |
||||
showOverflowTooltip: true, |
||||
addBtnIcon: ' ', |
||||
viewBtnIcon: ' ', |
||||
delBtnIcon: ' ', |
||||
editBtnIcon: ' ', |
||||
gridBtn: false, |
||||
searchLabelPosition: 'left', |
||||
searchGutter: 24, |
||||
searchSpan: 6, |
||||
menuAlign: 'left', |
||||
gridBtn: false, |
||||
searchMenuPosition: 'right', |
||||
align: 'center', |
||||
column: [ |
||||
{ |
||||
label: '工艺能力', |
||||
prop: 'caName', |
||||
search: true, |
||||
sortable: true, |
||||
span: 12, |
||||
}, |
||||
{ |
||||
label: '申请人', |
||||
prop: 'userName', |
||||
search: false, |
||||
sortable: true, |
||||
span: 12, |
||||
}, |
||||
{ |
||||
label: '申请时间', |
||||
prop: 'createTime', |
||||
search: false, |
||||
sortable: true, |
||||
span: 12, |
||||
}, |
||||
{ |
||||
label: '备注', |
||||
prop: 'pasmMemo', |
||||
search: false, |
||||
sortable: true, |
||||
span: 12, |
||||
}, |
||||
{ |
||||
label: '当前状态', |
||||
prop: 'approvalStatus', |
||||
search: true, |
||||
sortable: true, |
||||
span: 12, |
||||
}, |
||||
], |
||||
}, |
||||
|
||||
data: [], |
||||
}; |
||||
}, |
||||
methods: { |
||||
|
||||
rowDel(row) { |
||||
this.$confirm('确定将选择数据删除?', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}) |
||||
.then(() => { |
||||
// return removePersonAbility(row.id); |
||||
}) |
||||
.then(() => { |
||||
this.onLoad(this.page); |
||||
this.$message({ |
||||
type: 'success', |
||||
message: '操作成功!', |
||||
}); |
||||
}); |
||||
}, |
||||
|
||||
searchReset() { |
||||
this.query = {}; |
||||
this.onLoad(this.page); |
||||
}, |
||||
searchChange(params, done) { |
||||
this.query = params; |
||||
this.page.currentPage = 1; |
||||
this.onLoad(this.page, params); |
||||
done(); |
||||
}, |
||||
|
||||
currentChange(currentPage) { |
||||
this.page.currentPage = currentPage; |
||||
}, |
||||
sizeChange(pageSize) { |
||||
this.page.pageSize = pageSize; |
||||
}, |
||||
refreshChange() { |
||||
this.onLoad(this.page, this.query); |
||||
}, |
||||
handleChange(file, fileList) { |
||||
// proxy.$Export.xlsx(file.raw).then((data) => { |
||||
// data.value = data.results; |
||||
// }); |
||||
this.$message({ |
||||
type: 'success', |
||||
message: '操作成功!', |
||||
}); |
||||
}, |
||||
|
||||
onLoad(page, params = {}) { |
||||
// this.loading = true; |
||||
// getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
||||
// this.data = res.data.data.records; |
||||
// this.loading = false; |
||||
// this.page.total = res.data.data.total; |
||||
// this.selectionClear(); |
||||
// }); |
||||
}, |
||||
}, |
||||
mounted() {}, |
||||
}; |
||||
</script> |
||||
d |
||||
Loading…
Reference in new issue