问题修改

dev-scheduling
zhangdi 4 weeks ago
parent b6e3fc154e
commit 0a2d92c906
  1. 10
      src/api/basicData/assignConfigApprove.js
  2. 118
      src/views/approvalRecord/index.vue
  3. 24
      src/views/basicData/assignConfigApprove/index.vue
  4. 60
      src/views/inboundOutboundManagement/components/editMaterial.vue
  5. 13
      src/views/inboundOutboundManagement/materialIssuing.vue
  6. 11
      src/views/oem/oemOrderSettlement/components/inReview.vue
  7. 29
      src/views/oem/oemOrderSettlement/components/settlementAnomaly.vue
  8. 28
      src/views/oem/oemOrderSettlement/components/settlementCompleted.vue
  9. 8
      src/views/oem/oemOrderSettlement/components/settlementIn.vue
  10. 28
      src/views/oem/oemOrderSettlement/components/underReview.vue
  11. 43
      src/views/oem/oemOrderSettlement/components/unsettled.vue
  12. 33
      src/views/processManagement/components/processMainte/processPlanning.vue
  13. 527
      src/views/warehouseManagement/teamRequest/components/addEditDialog.vue
  14. 665
      src/views/warehouseManagement/teamRequest/index.vue

@ -57,4 +57,12 @@ export const submitAudit = (params) => {
method: 'post',
params: params,
});
};
};
// 查询记录
export const auditHistory = (id) =>{
return request({
url:`/api/blade-desk/QA/DispatchConfigApproval/auditHistory/${id}`,
method:'get',
})
}

@ -0,0 +1,118 @@
<template>
<el-dialog
title="审批记录"
append-to-body
:modelValue="openShow"
width="50%"
@close="closeDialog"
>
<el-timeline class="horizontal-timeline">
<el-timeline-item
v-for="(activity, index) in rowData"
:key="index"
:timestamp="activity.time"
>
{{ activity.label }}{{ activity.value }}
</el-timeline-item>
</el-timeline>
<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>
export default {
props: {
showDialog: {
type: Boolean,
default: false,
},
rowData: {
type: Array,
default: [],
},
},
data() {
return {
openShow: false,
};
},
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.$route.query.id,
// approvalStatus: '',
// };
// updateProcess(params).then((res) => {
// if (res.code == 200) {
// this.$message.success('');
// this.closeDialog();
// }
// });
}
});
},
},
};
</script>
<style lang="scss" scoped>
.horizontal-timeline {
display: flex;
justify-content: center; /* 关键:水平居中 */
align-items: center; /* 垂直居中(可选) */
flex-wrap: nowrap;
overflow-x: auto;
padding: 20px 0;
width: 100%; /* 确保占满容器宽度 */
// 线
::v-deep(.el-timeline-item__tail) {
display: none;
}
//
::v-deep(.el-timeline-item) {
display: flex;
flex-direction: column;
align-items: center;
min-width: 160px; //
padding: 0 12px;
flex-shrink: 0; /* 防止被压缩 */
}
::v-deep(.el-timeline-item__timestamp) {
position: static;
margin-top: 8px;
font-size: 12px;
color: #909399;
white-space: nowrap; /* 防止时间戳换行 */
}
::v-deep(.el-timeline-item__content) {
text-align: center;
padding: 8px 12px;
border-radius: 4px;
background-color: #f5f7fa;
min-height: 40px;
display: flex;
align-items: center;
justify-content: center;
}
::v-deep(.el-timeline-item__node) {
margin-bottom: 8px;
}
}
</style>

@ -23,6 +23,9 @@
</template>
<template #menu-right> </template>
<template #menu="scope">
<el-button type="text" v-if="permission.assignConfig_record" @click="recordFn(scope.row)"
>记录</el-button
>
<el-button
type="text"
v-if="permission.assignConfig_update && (scope.row.status == 0 || scope.row.status == 3)"
@ -69,24 +72,29 @@
:rowItem="rowItem"
@closeDialog="closeDialog"
></checkDialog>
<!-- 记录 -->
<approvalRecord v-if="approvalShow" :show-dialog="approvalShow" :rowData="rowData"></approvalRecord>
</basic-container>
</template>
<script>
import addOrEditDialog from './addOrEditDialog.vue';
import checkDialog from './checkDialog.vue';
import { getList, del, submitApproval } from '@/api/basicData/assignConfigApprove';
import { getList, del, submitApproval, auditHistory } from '@/api/basicData/assignConfigApprove';
import { mapGetters } from 'vuex';
import approvalRecord from '@/views/approvalRecord/index.vue';
export default {
components: {
addOrEditDialog,
checkDialog,
approvalRecord,
},
computed: {
...mapGetters(['permission']),
},
data() {
return {
approvalShow: false,
checkShow: false,
showDialog: false,
title: '新增',
@ -118,7 +126,7 @@ export default {
viewBtn: false,
delBtn: false,
editBtnText: '修改',
menuWidth: 160,
menuWidth: 200,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
@ -212,9 +220,17 @@ export default {
data: [],
rowItem: {},
rowData:[],
};
},
methods: {
recordFn(row) {
auditHistory(row.id).then(res => {
this.approvalShow = true;
this.rowData = res.data.data
console.log(res.data);
});
},
addFn() {
this.showDialog = true;
this.title = '新增';
@ -295,8 +311,8 @@ export default {
onLoad(page, params = {}) {
this.loading = true;
if (!!params.applicationTimeArr) {
this.query.applicationTimeStart = params.applicationTimeArr[0]+' 00:00:00';
this.query.applicationTimeEnd = params.applicationTimeArr[1]+' 23:59:59';
this.query.applicationTimeStart = params.applicationTimeArr[0] + ' 00:00:00';
this.query.applicationTimeEnd = params.applicationTimeArr[1] + ' 23:59:59';
}
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
this.data = res.data.data.records;

@ -1,5 +1,33 @@
<template>
<el-dialog title="出库" append-to-body :modelValue="openShow" fullscreen @close="closeDialog">
<el-form
ref="ruleFormRef"
style="max-width: 300px"
:model="ruleForm"
:rules="rules"
label-width="auto"
>
<el-form-item label="领用人" prop="picker">
<jhSelect
v-model="ruleForm.picker"
placeholder="请搜索选择"
api-url="/blade-system/user/page"
echo-api="/blade-system/user/page"
echoParamsKey="ids"
echo-method="get"
api-method="get"
list-key="records"
total-key="total"
label-key="realName"
value-key="id"
search-key="realName"
:debounce-time="500"
@change="projectHeadChange"
:title="title"
:disabled="isDetail"
/>
</el-form-item>
</el-form>
<el-table :data="tableData" highlight-current-row @current-change="handleCurrentChange">
<el-table-column label="提请物料" prop="goodsCode" align="center"></el-table-column>
<el-table-column label="材料名称" prop="goodsName" align="center"></el-table-column>
@ -53,6 +81,15 @@ export default {
openShow: false,
tableData: [],
currentRow: null,
ruleForm: {
picker: '',
pickerName:''
},
rules:{
picker: [
{ required: true, message: '请选择领用人', trigger: 'change' },
],
}
};
},
mounted() {
@ -60,6 +97,9 @@ export default {
this.init();
},
methods: {
projectHeadChange(value, item) {
this.ruleForm.pickerName = item.name
},
handleCurrentChange(val) {
this.currentRow = val;
},
@ -70,21 +110,29 @@ export default {
},
closeDialog(val) {
this.openShow = false;
let query={
let query = {
...val,
index: this.checkIndex,
}
...this.ruleForm
};
this.$emit('closeDialog', query);
},
submit() {
console.log('this.currentRow', this.currentRow);
if (this.currentRow.currentOutQty >= 0) {
this.closeDialog(this.currentRow);
if(this.currentRow==null){
this.$message.error('请选择需要出库的数据');
return
}
if (this.currentRow.currentOutQty > 0) {
this.$refs.ruleFormRef.validate((validate) => {
if(validate){
this.closeDialog(this.currentRow);
}
});
} else {
this.$message.error('请输入出库数量');
}
},
},
};

@ -188,6 +188,7 @@ export default {
search: false,
},
{
label: '批次号',
prop: 'piNo',
@ -204,6 +205,14 @@ export default {
width: 150,
search: false,
},
{
label: '领料人',
prop: 'pickerName',
span: 8,
overflow: true,
width: 150,
search: false,
},
{
label: '总库存',
prop: 'currentStock',
@ -344,6 +353,8 @@ export default {
crId: row.id,
currentOutQty: row.currentOutQty,
rlsId: row.rlsId,
// pickerName:row.pickerName,
picker:row.picker
},
];
batchIssue(query).then(res => {
@ -423,6 +434,8 @@ export default {
this.data[val.index].piNo = val.piNo;
this.data[val.index].currentOutQty = val.currentOutQty;
this.data[val.index].rlsId = val.id;
this.data[val.index].picker = val.picker
this.data[val.index].pickerName = val.pickerName
},
onLoad() {

@ -72,7 +72,7 @@ export default {
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
searchLabelWidth:90,
searchLabelWidth:'auto',
menuWidth: 100,
dialogWidth: 640,
dialogClickModal: false,
@ -139,7 +139,7 @@ export default {
label: '审核状态',
prop: 'approvalStatus',
sortable: true,
filter: true,
filterable: true,
span: 24,
width: 120,
search:true,
@ -171,7 +171,7 @@ export default {
label: '提交人',
prop: 'createUserName',
sortable: true,
filter: true,
filterable: true,
span: 24,
width: 120,
},
@ -179,7 +179,7 @@ export default {
label: '提交时间',
prop: 'submitTime',
sortable: true,
filter: true,
filterable: true,
span: 24,
width: 150,
},
@ -292,6 +292,9 @@ export default {
}
approvalList(params).then(res =>{
this.data = res.data.data.records
this.data.forEach(item =>{
item.ppsId = item.ppsId?item.ppsId+'':''
})
this.page.total = res.data.data.total
this.loading = false
})

@ -6,7 +6,7 @@
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange">
<template #menu-left>
<el-form ref="form" :model="form" label-width="100px" :inline="true">
<el-form ref="form" :model="form" label-width="auto" :inline="true">
<el-form-item label="现执行价格:">
<el-input v-model="form.price"></el-input>
</el-form-item>
@ -87,6 +87,7 @@ export default {
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
searchLabelWidth: 'auto',
column: [
{
label: '计划单号',
@ -157,7 +158,7 @@ export default {
label: '工序',
prop: 'psId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -175,7 +176,7 @@ export default {
label: '工艺能力',
prop: 'caId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
searchOrder:9,
@ -186,6 +187,17 @@ export default {
label:"caName",
value:"id"
},
},
{
label: '结算大类',
prop: 'statementCategory',
sortable: 'custom',
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:19,
},
{
label: '流程卡号',
@ -330,13 +342,13 @@ export default {
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:16,
searchOrder:20,
},
{
label: '异常原因',
prop: 'memo',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -403,7 +415,7 @@ export default {
label: '结算状态',
prop: 'rosStatusList',
sortable: true,
filter: true,
filterable: true,
span: 24,
hide: true,
search: true,
@ -423,7 +435,7 @@ export default {
label: '外协厂商',
prop: 'ocId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
hide: true,
@ -613,6 +625,9 @@ export default {
if(params.putStoreTime) delete params.putStoreTime;
getStatement(params).then(res =>{
this.data = res.data.data.records
this.data.forEach(item =>{
item.ppsId = item.ppsId?item.ppsId+'':''
})
this.page.total = res.data.data.total
this.loading = false
}).catch(() => {

@ -60,7 +60,6 @@ export default {
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
searchLabelWidth:90,
menuWidth: 180,
dialogWidth: 640,
dialogClickModal: false,
@ -82,6 +81,7 @@ export default {
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
searchLabelWidth:'auto',
column: [
{
label: '计划单号',
@ -151,7 +151,7 @@ export default {
label: '工序',
prop: 'ppsId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -170,7 +170,7 @@ export default {
prop: 'caId',
type:"select",
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -180,6 +180,17 @@ export default {
value:"id"
},
searchOrder:9,
},
{
label: '结算大类',
prop: 'statementCategory',
sortable: 'custom',
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:19,
},
{
label: '厂家代码',
@ -324,7 +335,7 @@ export default {
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:12,
searchOrder:20,
},
{
@ -425,7 +436,7 @@ export default {
label: '外协厂商',
prop: 'ocId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: false,
hide: true,
@ -443,7 +454,7 @@ export default {
label: '结算状态',
prop: 'rosStatusList',
sortable: true,
filter: true,
filterable: true,
span: 24,
hide: true,
search: true,
@ -467,7 +478,7 @@ export default {
label: '外协厂商',
prop: 'ocIds',
sortable: true,
filter: true,
filterable: true,
span: 24,
hide: true,
search: true,
@ -630,6 +641,9 @@ export default {
if(params.putStoreTime) delete params.putStoreTime;
getStatement(params).then(res =>{
this.data = res.data.data.records
this.data.forEach(item =>{
item.ppsId = item.ppsId?item.ppsId+'':''
})
this.page.total = res.data.data.total
this.loading = false
}).catch(() => {

@ -76,6 +76,7 @@ export default {
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
searchMenuWidth: 'auto',
column: [
{
label: '外协单号',
@ -131,7 +132,7 @@ export default {
label: '生产标识',
prop: 'prodIdent',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -147,7 +148,7 @@ export default {
label: '工序',
prop: 'psCode',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -168,6 +169,7 @@ export default {
span: 24,
search: false,
width: 120,
searchOrder:19,
},
{
label: '镀后入库时间',
@ -218,7 +220,7 @@ export default {
label: '外协厂商',
prop: 'ocId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,

@ -105,7 +105,7 @@ export default {
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
searchLabelWidth:90,
searchLabelWidth:'auto',
menuWidth: 180,
dialogWidth: 640,
dialogClickModal: false,
@ -196,7 +196,7 @@ export default {
label: '工序',
prop: 'ppsId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -213,9 +213,9 @@ export default {
label: '工艺能力',
prop: 'caId',
sortable: true,
filter: true,
filterable: true,
span: 24,
search: true,
search: false,
searchOrder:8,
width: 120,
type:'select',
@ -224,6 +224,17 @@ export default {
label:"caName",
value:"id"
},
},
{
label: '结算大类',
prop: 'statementCategory',
sortable: 'custom',
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:19,
},
{
label: '厂家代码',
@ -367,7 +378,7 @@ export default {
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:11,
searchOrder:20,
},
{
label: '报价单号',
@ -437,7 +448,7 @@ export default {
label: '结算状态',
prop: 'rosStatusList',
sortable: true,
filter: true,
filterable: true,
span: 24,
hide: true,
search: true,
@ -461,7 +472,7 @@ export default {
label: '外协厂商',
prop: 'ocIds',
sortable: true,
filter: true,
filterable: true,
span: 24,
hide: true,
search: true,
@ -596,6 +607,9 @@ export default {
if(params.putStoreTime) delete params.putStoreTime
getStatement(params).then(res =>{
this.data = res.data.data.records
this.data.forEach(item =>{
item.ppsId = item.ppsId?item.ppsId+'':''
})
this.page.total = res.data.data.total
this.loading = false
})

@ -7,7 +7,7 @@
@refresh-change="refreshChange" @sort-change="sortChange">
<!-- @on-load="onLoad" -->
<template #menu-left>
<el-form ref="form" :model="form" label-width="100px" :inline="true">
<el-form ref="form" :model="form" label-width="auto" :inline="true">
<el-form-item label="现执行价格:">
<el-input v-model="form.price"></el-input>
</el-form-item>
@ -156,6 +156,7 @@ export default {
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
searchLabelWidth:'auto',
column: [
{
// label: '',
@ -236,7 +237,7 @@ export default {
label: '工序',
prop: 'ppsId',
// sortable: 'custom',
filter: true,
filterable: true,
span: 24,
search: true,
width: 120,
@ -250,21 +251,32 @@ export default {
searchOrder:9,
},
// {
// label: '',
// prop: 'caId',
// type:"select",
// sortable: 'custom',
// filterable: true,
// span: 24,
// search: true,
// width: 120,
// dicUrl:"/api/blade-desk/BA/craftAbility/findList",
// props:{
// label:"caName",
// value:"id"
// },
// searchOrder:8,
// },
{
label: '工艺能力',
prop: 'caId',
type:"select",
label: '结算大类',
prop: 'statementCategory',
sortable: 'custom',
filter: true,
span: 24,
search: true,
width: 120,
dicUrl:"/api/blade-desk/BA/craftAbility/findList",
props:{
label:"caName",
value:"id"
},
searchOrder:8,
searchOrder:19,
},
{
label: '厂家代码',
@ -405,7 +417,7 @@ export default {
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:11,
searchOrder:20,
},
{
label: '结算状态',
@ -430,7 +442,7 @@ export default {
label: '结算状态',
prop: 'rosStatusList',
sortable: true,
filter: true,
filterable: true,
span: 24,
hide: true,
search: true,
@ -451,7 +463,7 @@ export default {
label: '外协厂商',
prop: 'ocIds',
sortable: 'custom',
filter: true,
filterable: true,
span: 24,
hide: true,
search: true,
@ -757,6 +769,9 @@ export default {
if(params.putStoreTime) delete params.putStoreTime
getStatement(params).then(res =>{
this.data = res.data.data.records
this.data.forEach(item =>{
item.ppsId = item.ppsId?item.ppsId+'':''
})
this.page.total = res.data.data.total
this.loading = false
})

@ -106,7 +106,7 @@
<el-button type="primary" @click="saveInfo()" :loading="craftLoading">保存</el-button>
</div>
<div class="table-btn-right" v-if="activeName == '1'">
<el-select
<!-- <el-select
v-model="modelLevel"
placeholder="选择工艺模板"
style="width: 220px; margin-right: 12px"
@ -120,7 +120,18 @@
:label="item.name"
:value="item.id"
/>
</el-select>
</el-select> -->
<el-cascader
v-model="modelLevel"
:options="filteredList"
:props="{ expandTrigger: 'hover' }"
placeholder="选择工艺模板"
style="width: 220px; margin-right: 12px"
clearable
filterable
:filter-method="handleFilter"
></el-cascader>
<el-button type="primary" @click="modelLevelChange()" :loading="modelLevelLoading"
>导入模板</el-button
>
@ -506,7 +517,7 @@ import {
} from '@/api/processManagement/taskProcessing';
import { getPqList } from '@/api/qualityManagement/remindRedeem/remindRedeem';
import { getDictionary } from '@/api/system/dict';
import {craftBatchCopy} from '@/api/processManagement/procepssPlanning';
import { craftBatchCopy } from '@/api/processManagement/procepssPlanning';
export default {
name: 'CraftIndex',
components: {},
@ -751,7 +762,18 @@ export default {
//
async getModelList() {
await getModelList().then(res => {
this.modelOption = res.data.data;
let data_ = res.data.data;
data_.forEach(item => {
item.label = item.platingTypeStr;
if(item.children.length>0){
item.children.forEach(item_=>{
item_.label = item_.name;
item_.value = item_.id;
})
}
});
this.modelOption = data_;
this.filteredList = [...this.modelOption];
});
},
@ -1151,10 +1173,9 @@ export default {
};
console.log(9999999, node.data.id);
craftBatchCopy(query).then(res => {
craftBatchCopy(query).then(res => {
this.$message.success('复制成功');
});
})
.catch(() => {
this.$message({

@ -1,274 +1,275 @@
<template>
<el-dialog title="新增" append-to-body :modelValue="openShow" width="70%" @close="closeDialog" fullscreen>
<!-- <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="申报人" prop="userId">
<el-select v-model="ruleForm.userId" placeholder="请选择" disabled>
<el-option label="申报人一" value="1">
</el-option>
<el-option label="申报人二" value="2">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申报日期" prop="declareDate">
<el-date-picker v-model="ruleForm.declareDate" type="date" placeholder="选择日期"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="需求日期" prop="needDate">
<el-date-picker v-model="ruleForm.needDate" type="date" placeholder="选择日期" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="采购部门" prop="buyDept">
<el-select v-model="ruleForm.buyDept" placeholder="请选择">
<el-option label="采购部门一" value="1">
</el-option>
<el-option label="采购部门二" value="2">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="需求部门" prop="needDept">
<el-select v-model="ruleForm.needDept" placeholder="请选择">
<el-option label="需求部门一" value="1">
</el-option>
<el-option label="需求部门二" value="2">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form> -->
<div style="margin-bottom: 12px;" v-if="moldAddMore">
<el-button type="primary" @click="addTable">插入一行</el-button>
<el-button type="danger" @click="handleDelete">删除行</el-button>
</div>
<el-table :data="tableData" style="width: 100%" @select="selectChange" border>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="goodsId" label="物料编号" align="center">
<template #header>
<span><i style="color:red">*</i>物料编号</span>
</template>
<template #default="scope">
<!-- <el-select v-model="scope.row.goodsCode" placeholder="请选择" style="width: 100%"
@change="(val) => changeGoods(val,scope.$index)">
<el-option v-for="item in goodsList" :key="item.id" :label="item.goodsCode" :value="item.goodsCode"></el-option>
</el-select> -->
<jhSelect
v-model="scope.row.goodsCode"
placeholder="请搜索选择"
api-url="/blade-wms/stGoods/list"
echo-api="/blade-wms/stGoods/list"
echoParamsKey="goodsCode"
echo-method="get"
api-method="get"
list-key="records"
total-key="total"
label-key="goodsCode"
value-key="goodsCode"
search-key="goodsCode"
:debounce-time="100"
@change="(val, item) => changeGoods(val, item, scope.row, scope.$index)"
/>
</template>
</el-table-column>
<el-table-column prop="goodsName" label="物料名称" align="center"></el-table-column>
<el-table-column prop="materialModel" label="型号/牌号" align="center"></el-table-column>
<el-table-column prop="specifications" label="物料规格" align="center"></el-table-column>
<el-table-column prop="currentQuantity" label="库存数量" align="center"></el-table-column>
<el-table-column prop="avlQuantity" label="可用数量" align="center"></el-table-column>
<el-table-column prop="quantity" label="提请数量" align="center">
<template #header>
<span><i style="color:red">*</i>提请数量</span>
</template>
<template #default="scope">
<el-input-number v-model="scope.row.quantity" :min="1" controls-position="right" @change="handleChange"
style="width: 100%" />
</template>
</el-table-column>
<el-table-column prop="woCode" label="关联订单号" align="center">
<template #default="scope">
<el-input v-model="scope.row.woCode" style="width: 100%" placeholder="请输入" />
</template>
</el-table-column>
<el-table-column prop="memo" label="备注" align="center">
<template #default="scope">
<el-input v-model="scope.row.memo" style="width: 100%" placeholder="请输入" />
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" min-width="40">
<template #default="scope">
<el-button link type="primary" size="small" @click.prevent="delTable(scope.row, scope.$index)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="新增"
append-to-body
:modelValue="openShow"
width="70%"
@close="closeDialog"
fullscreen
>
<div style="margin-bottom: 12px" v-if="moldAddMore">
<el-button type="primary" @click="addTable">插入一行</el-button>
<el-button type="danger" @click="handleDelete">删除行</el-button>
</div>
<el-table
:data="tableData"
:height="tableHeight"
style="width: 100%"
@select="selectChange"
border
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="goodsId" label="物料编号" align="center">
<template #header>
<span><i style="color: red">*</i>物料编号</span>
</template>
<template #default="scope">
<jhSelect
v-model="scope.row.goodsCode"
placeholder="请搜索选择"
api-url="/blade-wms/stGoods/list"
echo-api="/blade-wms/stGoods/list"
echoParamsKey="goodsCode"
echo-method="get"
api-method="get"
list-key="records"
total-key="total"
label-key="goodsCode"
value-key="goodsCode"
search-key="goodsCode"
:debounce-time="100"
@change="(val, item) => changeGoods(val, item, scope.row, scope.$index)"
/>
</template>
</el-table-column>
<el-table-column prop="goodsName" label="物料名称" align="center"></el-table-column>
<el-table-column prop="materialModel" label="型号/牌号" align="center"></el-table-column>
<el-table-column prop="specifications" label="物料规格" align="center"></el-table-column>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
<el-table-column prop="currentQuantity" label="库存数量" align="center"></el-table-column>
<el-table-column prop="avlQuantity" label="可用数量" align="center"></el-table-column>
<el-table-column prop="quantity" label="提请数量" align="center">
<template #header>
<span><i style="color: red">*</i>提请数量</span>
</template>
<template #default="scope">
<el-input-number
v-model="scope.row.quantity"
:min="1"
controls-position="right"
@change="handleChange"
style="width: 100%"
/>
</template>
</el-table-column>
<el-table-column prop="woCode" label="关联订单号" align="center">
<template #default="scope">
<el-input v-model="scope.row.woCode" style="width: 100%" placeholder="请输入" />
</template>
</el-table-column>
<el-table-column prop="memo" label="备注" align="center">
<template #default="scope">
<el-input v-model="scope.row.memo" style="width: 100%" placeholder="请输入" />
</template>
</el-dialog>
</el-table-column>
<el-table-column prop="approver" label="审批人" align="center">
<template #header>
<span><i style="color: red">*</i>审批人</span>
</template>
<template #default="scope">
<el-select
v-model="scope.row.approver"
clearable
filterable
placeholder="请选择"
style="width: 100%"
@change="val => handleApproverChange(val, scope.row, scope.$index)"
>
<el-option
v-for="item in approverList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" min-width="40">
<template #default="scope">
<el-button
link
type="primary"
size="small"
@click.prevent="delTable(scope.row, scope.$index)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog" :loading="submitLoading"> </el-button>
<el-button type="primary" @click="submit" :loading="submitLoading"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import {getMaterialList,addRequests} from "@/api/storeManagement/teamRequest"
import { getMaterialList, addRequests } from '@/api/storeManagement/teamRequest';
import { getUserByRoleAlias } from '@/api/storeManagement/warehouseMaintenance';
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
moldAddMore: {
type: Boolean,
default: false
},
buyCycle: {
type: Number,
default: 0
}
props: {
showDialog: {
type: Boolean,
default: false,
},
moldAddMore: {
type: Boolean,
default: false,
},
buyCycle: {
type: Number,
default: 0,
},
},
data() {
return {
openShow: false,
ruleForm: {
userId: '1',
declareDate: '',
needDate: '',
buyDept: '',
needDept: null,
},
rules: {
userId: [{ required: true, message: '请选择', trigger: 'blur' }],
declareDate: [{ required: true, message: '请选择', trigger: 'blur' }],
needDate: [{ required: true, message: '请选择', trigger: 'blur' }],
buyDept: [{ required: true, message: '请选择', trigger: 'blur' }],
needDept: [{ required: true, message: '请选择', trigger: 'blur' }],
approver: [{ required: true, message: '请选择', trigger: 'blur' }],
},
tableData: [],
boCode: 'BO-2025001',
goodsList: [],
tableHeight: 0,
approverList: [], //
submitLoading: false,
};
},
mounted() {
this.openShow = this.showDialog;
this.getApproverList();
this.getMaterialList();
this.$nextTick(() => {
this.calcTableHeight();
});
window.addEventListener('resize', this.calcTableHeight);
},
beforeDestroy() {
window.removeEventListener('resize', this.calcTableHeight);
},
methods: {
getApproverList() {
getUserByRoleAlias({ roleAlias: 'sj_craft,rb_craft' }).then(res => {
this.approverList = res.data.data;
});
},
handleApproverChange(val, row, index) {
const selectedItem = this.approverList.find(item => item.id === val);
const label = selectedItem ? selectedItem.name : '';
this.tableData[index].approverName = label;
},
calcTableHeight() {
const headerHeight = 50; //
const footerHeight = 60; // footer
const padding = 40; // padding
this.tableHeight = window.innerHeight - headerHeight - footerHeight - padding - 40;
},
changeGoods(val, item, row, index) {
if (item != undefined) {
this.tableData[index].goodsName = item.goodsName;
this.tableData[index].goodsId = item.id;
this.tableData[index].specifications = item.specifications;
this.tableData[index].currentQuantity = item.currentQuantity;
this.tableData[index].materialModel = item.materialModel;
this.tableData[index].avlQuantity = item.avlQuantity;
}
},
getMaterialList() {
getMaterialList().then(res => {
this.goodsList = res.data.data.records;
});
},
closeDialog(val) {
this.openShow = false;
this.$emit('closeDialog', val);
},
//
addTable() {
let boCode = '';
const len = this.tableData;
if (len.length === 0) {
boCode = this.boCode;
} else {
const newBoCode = len[len.length - 1].boCode;
const codeArr = newBoCode.split('-');
const num = Number(codeArr[1]) + 1;
boCode = codeArr[0] + '-' + num;
}
//
const record = { _select: false, boCode, buyCycle: this.buyCycle, planArea: '洛阳新区' };
this.tableData.push(record);
},
selectChange(list, row) {
row._select = !row._select;
},
handleDelete() {
let tmp = this.tableData.find(item => item._select === true);
if (!tmp) {
this.$message.error('请先选择数据');
return;
}
this.$confirm('确定删除数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
this.tableData = this.tableData.filter(row => !row._select);
});
},
data() {
return {
openShow: false,
ruleForm: {
userId: '1',
declareDate: '',
needDate: '',
buyDept: '',
needDept: null,
},
rules: {
userId: [
{ required: true, message: '请选择', trigger: 'blur' },
],
declareDate: [
{ required: true, message: '请选择', trigger: 'blur' },
],
needDate: [
{ required: true, message: '请选择', trigger: 'blur' },
],
buyDept: [
{ required: true, message: '请选择', trigger: 'blur' },
],
needDept: [
{ required: true, message: '请选择', trigger: 'blur' },
],
},
tableData: [],
boCode: 'BO-2025001',
goodsList:[]
}
//
delTable(row, index) {
this.$confirm('确定删除数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
this.tableData.splice(index, 1);
});
},
mounted() {
this.openShow = this.showDialog
this.getMaterialList()
submit() {
if (this.tableData.length == 0) {
this.$message.error('请至少添加数据');
return;
}
this.submitLoading = true;
addRequests(this.tableData)
.then(res => {
if (res.data.code == 200) {
this.$message.success('新增成功');
this.closeDialog(true);
this.submitLoading = false;
}
})
.catch(err => {
this.submitLoading = false;
});
},
methods: {
changeGoods(val, item, row, index){
console.log(val, item, row, index);
if (item != undefined) {
this.tableData[index].goodsName = item.goodsName;
this.tableData[index].goodsId = item.id
this.tableData[index].specifications = item.specifications;
this.tableData[index].currentQuantity = item.currentQuantity
this.tableData[index].materialModel = item.materialModel;
this.tableData[index].avlQuantity = item.avlQuantity
}
// let tmp = this.goodsList.find(item => item.goodsCode == val)
// this.tableData[index].goodsName = tmp.goodsName
// this.tableData[index].goodsId = tmp.id
// this.tableData[index].materialModel = tmp.materialModel
// this.tableData[index].specifications = tmp.specifications
// this.tableData[index].currentQuantity = tmp.currentQuantity
// this.tableData[index].avlQuantity = tmp.avlQuantity
},
getMaterialList(){
getMaterialList().then(res => {
this.goodsList = res.data.data.records
})
},
closeDialog(val) {
this.openShow = false
this.$emit('closeDialog',val);
},
//
addTable() {
let boCode = '';
const len = this.tableData;
if (len.length === 0) {
boCode = this.boCode;
} else {
const newBoCode = len[len.length - 1].boCode;
const codeArr = newBoCode.split('-');
const num = Number(codeArr[1]) + 1;
boCode = codeArr[0] + '-' + num;
}
//
const record = { _select:false, boCode, buyCycle: this.buyCycle, planArea: '洛阳新区' };
this.tableData.push(record)
},
selectChange(list, row) {
row._select = !row._select;
},
handleDelete(){
let tmp = this.tableData.find(item => item._select === true);
if(!tmp){
this.$message.error('请先选择数据');
return
}
this.$confirm('确定删除数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
this.tableData = this.tableData.filter(row => !row._select);
})
},
//
delTable(row, index) {
this.$confirm('确定删除数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
this.tableData.splice(index, 1)
})
},
submit(){
if(this.tableData.length == 0){
this.$message.error('请至少添加数据');
return
}
console.log('提交数据:', this.tableData);
addRequests(this.tableData).then(res =>{
if(res.data.code == 200){
this.$message.success('新增成功')
this.closeDialog(true)
}
})
},
}
}
},
};
</script>
<style lang="scss" scoped></style>

@ -1,362 +1,323 @@
<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="handleAdd">新增
</el-button>
<el-button type="danger" @click="handleDelete">删除
</el-button>
</template>
<template #menu="scope">
<el-button type="text" @click="handeExamine(scope.row)" v-if="scope.row.approvalStatus == 0">审批</el-button>
</template>
<template #menu-right>
<!-- <el-button type="success" icon="el-icon-upload" @click="handleImport">导入
<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="handleAdd">新增 </el-button>
<el-button type="danger" @click="handleDelete">删除 </el-button>
</template>
<template #menu="scope">
<el-button type="text" @click="handeExamine(scope.row)" v-if="scope.row.approvalStatus == 0"
>审批</el-button
>
</template>
<template #menu-right>
<!-- <el-button type="success" icon="el-icon-upload" @click="handleImport">导入
</el-button> -->
</template>
</avue-crud>
<addEditDialog v-if="isOpen" :showDialog="isOpen" @closeDialog="closeDialog" :moldAddMore="moldAddMore">
</addEditDialog>
<el-dialog width="30%" v-model="approveDialog" title="审批">
<el-form :model="auditForm" :rules="auditRules" ref="auditForm">
<el-form-item label="是否审核通过" prop="approvalResult">
<el-radio v-model="auditForm.approvalResult" label="1"></el-radio>
<el-radio v-model="auditForm.approvalResult" label="10"></el-radio>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="approveDialog = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</basic-container>
</template>
</avue-crud>
<addEditDialog
v-if="isOpen"
:showDialog="isOpen"
@closeDialog="closeDialog"
:moldAddMore="moldAddMore"
>
</addEditDialog>
<el-dialog width="30%" v-model="approveDialog" title="审批">
<el-form :model="auditForm" :rules="auditRules" ref="auditForm">
<el-form-item label="是否审核通过" prop="approvalResult">
<el-radio v-model="auditForm.approvalResult" label="1"></el-radio>
<el-radio v-model="auditForm.approvalResult" label="10"></el-radio>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="approveDialog = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</basic-container>
</template>
<script>
import {getList,delRequests,approve} from "@/api/storeManagement/teamRequest"
import addEditDialog from './components/addEditDialog.vue'
import { getList, delRequests, approve } from '@/api/storeManagement/teamRequest';
import addEditDialog from './components/addEditDialog.vue';
export default {
components: { addEditDialog },
data() {
return {
selectionList: [],
loading:false,
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,
addBtn: false,
editBtnText: '修改',
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
menuWidth: 80,
dialogWidth: 1040,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
columnSort: true,
excelBtn: true,
columnSort: true,
index: false,
showOverflowTooltip: true,
menu: true,
searchLabelPosition: 'left',
searchLabelWidth: 'auto',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'center',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
editBtn:false,
column: [
{
label: '提请单号',
prop: 'crCode',
sortable: true,
filter: true,
span: 12,
width:180,
search: false,
searchOrder: 19,
rules: [
{
required: true,
message: '请输入提请单号',
trigger: 'blur',
},
],
},
{
label: '物料编号',
prop: 'goodsCode',
search: true,
sortable: true,
filter: true,
width:180,
span: 12,
searchOrder: 20,
// dicData: [
// {
// label: ''
// },
// {
// label: ''
// }
// ],
rules: [
{
required: true,
message: '请输入物料编号',
trigger: 'blur',
},
],
},
{
label: '物料名称',
prop: 'goodsName',
search: false,
sortable: true,
filter: true,
span: 12,
rules: [
{
required: true,
message: '请输入物料名称',
trigger: 'blur',
},
],
},
{
label: '规格',
prop: 'specifications',
search: false,
sortable: true,
filter: true,
searchLabelWidth: 60,
span: 12,
rules: [
{
required: true,
message: '请输入规格',
trigger: 'blur',
},
],
},
{
label: '提请数量',
prop: 'quantity',
search: false,
sortable: true,
filter: true,
span: 12,
rules: [
{
required: true,
message: '请输入提请数量',
trigger: 'blur',
},
],
},
{
label: '提请人',
prop: 'crManName',
// bind: 'crMan.userName',
search: true,
sortable: true,
filter: true,
span: 12,
rules: [
{
required: true,
message: '请输入提请人',
trigger: 'blur',
},
],
},
{
label: '提请日期',
prop: 'crDate',
search: true,
sortable: true,
filter: true,
span: 12,
searchOrder: 16,
width:180,
searchRange: true,
type: 'date',
format:"YYYY-MM-DD",
valueFormat:"YYYY-MM-DD",
startPlaceholder: '开始时间',
endPlaceholder: "结束时间",
},
{
label: '关联订单号',
prop: 'woCode',
search: false,
sortable: true,
filter: true,
span: 12,
searchOrder: 17,
},
{
label: '备注',
prop: 'memo',
search: false,
sortable: true,
filter: true,
span: 12,
},
{
label: '出库状态',
prop: 'curStatus',
search: true,
sortable: true,
filter: true,
span: 12,
searchOrder: 17,
type: 'select',
dicData: [
{label: '新建',value:1},
{label: '待出库',value:15},
{label: '已完成',value:20},
{label: '已删除',value:21},
]
},
]
},
form: {
},
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
isOpen: false,
moldAddMore: false,
buyCycle: 0,
query:{},
approveDialog:false,
auditForm:{},
auditRules:{
approvalResult:[{ required: true, message: '请选择是否通过审核', trigger: 'blur' }]
},
}
components: { addEditDialog },
data() {
return {
selectionList: [],
loading: false,
option: {
height: 'auto',
calcHeight: 32,
tip: false,
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: true,
viewBtn: false,
delBtn: false,
addBtn: false,
editBtnText: '修改',
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
menuWidth: 80,
dialogWidth: 1040,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
columnSort: true,
excelBtn: true,
columnSort: true,
index: false,
showOverflowTooltip: true,
menu: true,
searchLabelPosition: 'left',
searchLabelWidth: 'auto',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'center',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
editBtn: false,
searchLabelWidth: 'auto',
column: [
{
label: '提请单号',
prop: 'crCode',
sortable: true,
filter: true,
span: 12,
width: 180,
search: false,
searchOrder: 19,
},
{
label: '物料编号',
prop: 'goodsCode',
search: true,
sortable: true,
filter: true,
width: 140,
span: 12,
searchOrder: 20,
},
{
label: '物料名称',
prop: 'goodsName',
search: false,
sortable: true,
filter: true,
span: 12,
width: 140,
},
{
label: '规格',
prop: 'specifications',
search: false,
sortable: true,
filter: true,
span: 12,
width: 100,
},
{
label: '提请数量',
prop: 'quantity',
search: false,
sortable: true,
filter: true,
span: 12,
width: 100,
},
{
label: '提请人',
prop: 'crManName',
search: true,
sortable: true,
filter: true,
span: 12,
},
{
label: '提请日期',
prop: 'crDate',
search: true,
sortable: true,
filter: true,
span: 12,
searchOrder: 16,
width: 150,
searchRange: true,
type: 'date',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
},
{
label: '关联订单号',
prop: 'woCode',
search: false,
sortable: true,
filter: true,
span: 12,
searchOrder: 17,
width: 140,
},
{
label: '备注',
prop: 'memo',
search: false,
sortable: true,
filter: true,
span: 12,
},
{
label: '出库状态',
prop: 'curStatus',
search: true,
sortable: true,
filter: true,
span: 12,
searchOrder: 17,
type: 'select',
width: 100,
dicData: [
{ label: '新建', value: 1 },
{ label: '待出库', value: 15 },
{ label: '已完成', value: 20 },
{ label: '已删除', value: 21 },
],
},
],
},
form: {},
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
isOpen: false,
moldAddMore: false,
buyCycle: 0,
query: {},
approveDialog: false,
auditForm: {},
auditRules: {
approvalResult: [{ required: true, message: '请选择是否通过审核', trigger: 'blur' }],
},
};
},
methods: {
//
handleAdd() {
this.isOpen = true;
this.moldAddMore = true;
},
methods: {
//
handleAdd() {
this.isOpen = true
this.moldAddMore = true
},
closeDialog(val) {
this.isOpen = false
if(val){
this.onLoad()
}
},
handeExamine(row){
this.auditForm = {}
this.auditForm.id = row.id
this.approveDialog = true
},
submit(){
this.$refs.auditForm.validate(valid => {
if(valid){
approve({...this.auditForm}).then(res =>{
if(res.data.code == 200){
this.$message.success('审批成功')
this.approveDialog = false
this.onLoad()
}
})
}
})
},
searchChange(params, done){
this.query = params
this.page.currentPage = 1;
this.onLoad()
done()
},
searchReset(){
this.query = {}
this.onLoad()
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
delRequests({
ids:this.selectionList.map(item => item.id).join(',')
}).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
}
})
})
},
//
selectionChange(list) {
this.selectionList = list;
},
onLoad() {
this.loading = true
let params = {
...this.query,
startCrDate:this.query.crDate && this.query.crDate.length != 0 && this.query.crDate[0],
endCrDate:this.query.crDate && this.query.crDate.length != 0 && this.query.crDate[1],
closeDialog(val) {
this.isOpen = false;
if (val) {
this.onLoad();
}
},
handeExamine(row) {
this.auditForm = {};
this.auditForm.id = row.id;
this.approveDialog = true;
},
submit() {
this.$refs.auditForm.validate(valid => {
if (valid) {
approve({ ...this.auditForm }).then(res => {
if (res.data.code == 200) {
this.$message.success('审批成功');
this.approveDialog = false;
this.onLoad();
}
// const {crDate,...validParams} = params
if(params.crDate) delete params.crDate
getList({
current:this.page.currentPage,
size:this.page.pageSize,
...params
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false
})
});
}
}
}
});
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done();
},
searchReset() {
this.query = {};
this.onLoad();
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
delRequests({
ids: this.selectionList.map(item => item.id).join(','),
}).then(res => {
if (res.data.code == 200) {
this.$message.success('删除成功');
this.onLoad();
}
});
});
},
//
selectionChange(list) {
this.selectionList = list;
},
onLoad() {
this.loading = true;
let params = {
...this.query,
startCrDate: this.query.crDate && this.query.crDate.length != 0 && this.query.crDate[0],
endCrDate: this.query.crDate && this.query.crDate.length != 0 && this.query.crDate[1],
};
// const {crDate,...validParams} = params
if (params.crDate) delete params.crDate;
getList({
current: this.page.currentPage,
size: this.page.pageSize,
...params,
}).then(res => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.loading = false;
});
},
},
};
</script>
<style lang="scss" scoped></style>
Loading…
Cancel
Save