<template>
|
<el-dialog
|
custom-class="sy-modal"
|
|
:title="title"
|
:close-on-click-modal="false"
|
top="4vh"
|
width="90%"
|
:before-close="onClose"
|
>
|
<template #default>
|
<div class="tasks-of-output-plan-form-modal-content" v-loading="loading">
|
<el-scrollbar>
|
<div class="plan-rate-row" v-if="type==='info'">
|
<div class="text">计划进度</div>
|
<div class="view">
|
<el-progress :text-inside="true" :stroke-width="32" :percentage="rate" />
|
</div>
|
</div>
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="110px" class="plan-form">
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="计划号">
|
<el-input v-model.trim="form.planNo" disabled></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="计划优先级" prop="planSequence">
|
<el-input-number v-model="form.planSequence" :disabled="type==='info'" class="full-width" :min="0" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="预计开始日期">
|
<el-date-picker v-model="form.startTime" class="full-width" :disabled="type==='info'" clearable value-format="YYYY-MM-DD" type="date"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="计划完成日期">
|
<el-date-picker v-model="form.finishTime" class="full-width" :disabled="type==='info'" clearable value-format="YYYY-MM-DD" type="date"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="计划类型" prop="planType">
|
<el-select placeholder="请选择..." :disabled="type==='info'" clearable class="full-width" v-model="form.planType">
|
<el-option v-for="(item,index) in selectList.types" :key="'types-'+index" :label="item.name" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="计划模式" prop="outTaskMode">
|
<el-select placeholder="请选择..." :disabled="type==='info' || type==='import'" clearable class="full-width" v-model="form.outTaskMode">
|
<el-option v-for="(item,index) in selectList.outTypes" :key="'types-'+index" :label="item.name" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="创建人">
|
<el-input v-model="form.CreateBy" disabled></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="创建时间">
|
<el-input v-model="form.CreateTime" disabled></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="总数量">
|
<el-input :model-value="totalNumber" disabled></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
|
<pannel title="计划出库物资">
|
<div class="table-header-row">
|
<template v-if="type!=='info'">
|
<el-button type="primary" @click="onOpenChooseModal">新增物料</el-button>
|
<el-button type="primary" @click="addNewList">手动新增物料</el-button>
|
</template>
|
<template v-else>
|
<el-button type="primary" @click="onExportDetail">导出明细</el-button>
|
<el-button type="danger" :disabled="infoChoosen.length<1" @click="onDel">删除明细</el-button>
|
<el-button type="warning" @click="onExportMissing">导出缺料信息</el-button>
|
</template>
|
</div>
|
<!-- orderNumberList -->
|
<template v-if="form.outTaskMode===2">
|
<!-- ******************************** -->
|
<template v-if="type==='info'">
|
<!-- ******************************** -->
|
<el-table :data="orderNumberList" class="info-order-table" border stripe>
|
<el-table-column width="55" label="序号" fixed>
|
<template #default="scope">{{scope.$index+1}}</template>
|
</el-table-column>
|
<el-table-column prop="materialModel" label="型号" />
|
<el-table-column prop="orderNo" label="订货号" />
|
<el-table-column prop="qty" label="出库数" />
|
<el-table-column prop="supplier" label="主机厂" />
|
<el-table-column prop="remark" label="备注" />
|
<el-table-column prop="CreateTime" label="创建时间" width="160" />
|
<el-table-column prop="ModifyTime" label="修改时间" width="160" />
|
<el-table-column prop="CreateBy" label="创建人" width="100" />
|
<el-table-column prop="ModifyBy" label="修改人" width="100" />
|
</el-table>
|
<!-- ******************************** -->
|
<el-table :data="list" border stripe @selection-change="onInfoSelect">
|
<el-table-column type="selection" width="55" fixed align="center" />
|
<el-table-column width="55" label="序号" fixed>
|
<template #default="scope">{{scope.$index+1}}</template>
|
</el-table-column>
|
<el-table-column prop="orderNo" label="订货号" />
|
<el-table-column prop="materialModel" label="型号" />
|
<el-table-column prop="serialNumber" label="序列号" />
|
<el-table-column prop="supplier" label="主机厂" />
|
<el-table-column prop="remark" label="备注" />
|
<el-table-column prop="outTaskDetailStateName" label="状态" />
|
<el-table-column prop="CreateTime" label="创建时间" width="160" />
|
<el-table-column prop="ModifyTime" label="修改时间" width="160" />
|
<el-table-column prop="CreateBy" label="创建人" width="100" />
|
<el-table-column prop="ModifyBy" label="修改人" width="100" />
|
</el-table>
|
|
<!-- ******************************** -->
|
</template>
|
<!-- ******************************** -->
|
<el-table :data="orderNumberList" border stripe v-else>
|
<el-table-column width="55" label="序号" fixed>
|
<template #default="scope">{{scope.$index+1}}</template>
|
</el-table-column>
|
<el-table-column label="型号">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.materialModel"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="订货号">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.orderNo"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="出库数">
|
<template #default="scope">
|
<el-input-number v-model="scope.row.qty" :min="1" @change="onStepNumberChange" />
|
</template>
|
</el-table-column>
|
<el-table-column label="主机厂">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.supplier"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="备注">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.remark"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" width="210" align="center" fixed="right">
|
<template #default="scope">
|
<el-button
|
type="primary" size="small" :disabled="scope.$index===0" @click="onListUp('order',scope.$index)">上移</el-button>
|
<el-button type="primary" size="small" :disabled="scope.$index===orderNumberList.length-1" @click="onListDown('order',scope.$index)">下移</el-button>
|
<el-button type="danger" size="small" @click="onCancelList('order',scope.$index)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</template>
|
|
<!-- List -->
|
<template v-else>
|
<el-table :data="list" border stripe v-if="type==='info'" @selection-change="onInfoSelect">
|
<el-table-column type="selection" width="55" fixed align="center" />
|
<el-table-column width="55" label="序号" fixed>
|
<template #default="scope">{{scope.$index+1}}</template>
|
</el-table-column>
|
<el-table-column prop="orderNo" label="订货号" />
|
<el-table-column prop="materialModel" label="型号" />
|
<el-table-column prop="serialNumber" label="序列号" />
|
<el-table-column prop="supplier" label="主机厂" />
|
<el-table-column prop="remark" label="备注" />
|
<el-table-column prop="outTaskDetailStateName" label="状态" />
|
<el-table-column prop="CreateTime" label="创建时间" width="160" />
|
<el-table-column prop="ModifyTime" label="修改时间" width="160" />
|
<el-table-column prop="CreateBy" label="创建人" width="100" />
|
<el-table-column prop="ModifyBy" label="修改人" width="100" />
|
</el-table>
|
<!-- ************************************** -->
|
<el-table :data="list" border stripe v-else>
|
<el-table-column width="55" label="序号" fixed>
|
<template #default="scope">{{scope.$index+1}}</template>
|
</el-table-column>
|
<el-table-column label="订货号">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.orderNo"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="型号">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.materialModel"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="序列号">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.serialNumber"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="主机厂">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.supplier"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="备注">
|
<template #default="scope">
|
<el-input v-model.trim="scope.row.remark"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" width="210" align="center" fixed="right">
|
<template #default="scope">
|
<el-button type="primary" size="small" :disabled="scope.$index===0" @click="onListUp('default',scope.$index)">上移</el-button>
|
<el-button type="primary" size="small" :disabled="scope.$index===list.length-1" @click="onListDown('default',scope.$index)">下移</el-button>
|
<el-button type="danger" size="small" @click="onCancelList('default',scope.$index)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</template>
|
<!-- ******************************** -->
|
</pannel>
|
</el-scrollbar>
|
</div>
|
|
<choose-inventory-modal v-model:visible="chooseVisible" @submitCallback="chooseBack('default',$event)" />
|
<choose-order-inventory-modal v-model:visible="orderChooseVisible" @submitCallback="chooseBack('order',$event)" />
|
</template>
|
<!-- ************************************ -->
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="onClose">取 消</el-button>
|
<el-button type="primary" @click="onSubmit(false)" v-if="type!=='info'">提 交</el-button>
|
<el-button v-if="type==='add' || type==='import'" type="primary" @click="onSubmit(true)">提交并下发</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</template>
|
|
<script>
|
import SearchBar from '@/components/SearchBar.vue'
|
import Pannel from '@/components/Pannel1.vue'
|
import ChooseInventoryModal from '@/pages/statistics/inventory/components/Choose.vue'
|
import ChooseOrderInventoryModal from '@/pages/statistics/inventory/components/OrderChoose.vue'
|
import dayjs from 'dayjs'
|
const defaultForm = {
|
outTaskMode:null,
|
planNo:'',
|
planType:null,
|
planSequence:10,
|
startTime:'',
|
finishTime:'',
|
CreateTime:'',
|
CreateBy:''
|
}
|
export default {
|
name:'tasksOfOutputPlanFormModalCompontent',
|
emits:['submitCallback','update:visible','infoDelCallback'],
|
components:{SearchBar,Pannel,ChooseInventoryModal,ChooseOrderInventoryModal},
|
props:{
|
visible:{
|
type:Boolean,
|
default:false
|
},
|
type:{
|
type:String,
|
default:'add'
|
},
|
row:{
|
type:Object,
|
default:function(){
|
return {}
|
}
|
},
|
selectList:{
|
type:Object,
|
default:function(){
|
return {
|
types:[],
|
status:[]
|
}
|
}
|
},
|
importResult:{
|
type:Object,
|
default:function(){
|
return {
|
OutTaskType:null,
|
plan_OutTaskImportParams:[]
|
}
|
}
|
}
|
},
|
data(){
|
return {
|
title:'',
|
loading:false,
|
rate:0,
|
totalNumber:0,
|
form:{...defaultForm},
|
rules:{
|
planSequence:[
|
{ required: true, message: '请输入计划优先级!', trigger: 'change' }
|
],
|
planType:[
|
{ required: true, message: '请选择计划类型!', trigger: 'change' }
|
],
|
outTaskMode:[
|
{ required: true, message: '请选择计划模式!', trigger: 'change' }
|
]
|
},
|
list:[],
|
orderNumberList:[],
|
chooseVisible:false,
|
orderChooseVisible:false,
|
newId:null,
|
infoChoosen:[],
|
infoDelFlag:false
|
}
|
},
|
watch:{
|
visible(newVal,oldVal){
|
if (newVal!==oldVal) {
|
if (newVal) {
|
this.initShow();
|
} else {
|
this.closeHandle()
|
}
|
}
|
}
|
},
|
methods:{
|
initShow(){
|
if (this.type==='add' || this.type==='import') {
|
this.title = '出库计划新增'
|
this.restForm()
|
this.$nextTick(()=>{
|
this.$refs.form.clearValidate()
|
})
|
this.list = []
|
if (this.type==='add') {
|
this.orderNumberList=[]
|
} else {
|
this.setImportOrderDetailList()
|
}
|
if (this.selectList.types[0]){
|
this.form.planType = this.selectList.types[0].id
|
}
|
} else {
|
if (this.type==='modify') {
|
this.title = '出库计划修改'
|
} else {
|
this.title = '出库计划详情'
|
}
|
this.getDetailInfo();
|
}
|
},
|
closeHandle(){
|
this.infoChoosen = [];
|
this.list = [];
|
this.orderNumberList = [];
|
this.totalNumber = 0;
|
if (this.infoDelFlag) {
|
this.$emit('infoDelCallback')
|
this.infoDelFlag = false;
|
}
|
},
|
restForm(){
|
let tempObj = {...defaultForm}
|
if (this.selectList && this.selectList.outTypes && this.selectList.outTypes instanceof Array && this.selectList.outTypes.length>0) {
|
if (this.type==='add') {
|
tempObj.outTaskMode = this.selectList.outTypes[0].id
|
} else {
|
tempObj.outTaskMode = 2
|
}
|
}
|
tempObj.planNo = this.generatePlanNumber()
|
this.form = tempObj
|
},
|
generatePlanNumber(){
|
return 'OP_'+dayjs().format('YYYYMMDDHHmmssSSS')+'-'+this.$utils.createUuid(6)
|
},
|
getDetailInfo(){
|
this.rate = this.row.PlanRate;
|
this.form.planNo = this.row.PlanNo
|
this.form.planSequence = this.row.PlanSequence
|
this.form.startTime = this.$utils.project.parseTimeStr(this.row.StartTime,'YYYY-MM-DD')
|
this.form.finishTime = this.$utils.project.parseTimeStr(this.row.FinishTime,'YYYY-MM-DD')
|
this.form.planType = this.row.PlanType
|
this.form.CreateTime = this.$utils.project.parseTimeStr(this.row.CreateTime)
|
this.form.CreateBy = this.row.CreateBy
|
this.form.outTaskMode = this.row.OutTaskMode
|
if (this.form.outTaskMode===2) {
|
this.loading = true;
|
this.getOrderDetailList(false,(f1)=>{
|
if (f1) {
|
if (this.type==='info'){
|
this.getDetailList(false,()=>{
|
this.loading = false;
|
},false)
|
} else {
|
this.loading = false;
|
}
|
} else {
|
this.loading = false;
|
}
|
})
|
} else {
|
this.getDetailList()
|
}
|
},
|
getDetailList(needloading=true,callback,calTotal=true){
|
if (needloading) {
|
this.loading = true;
|
}
|
let params = {outTaskId:this.row.Id}
|
this.$api.get('GetOutTaskDetailListByOutTaskId',params,{block:'outPlanDetail'}).then((d)=>{
|
this.list = d.map((item)=>{
|
return {
|
"id":item.Id,
|
"orderNo":item.OrderNo,
|
"outTaskDetailStateName":item.OutTaskDetailStateName,
|
"serialNumber": item.SerialNumber,
|
"materialModel": item.MaterialModel,
|
"supplier": item.Supplier,
|
"remark": item.Remark,
|
"CreateTime":this.$utils.project.parseTimeStr(item.CreateTime),
|
"ModifyTime":this.$utils.project.parseTimeStr(item.ModifyTime),
|
"CreateBy":item.CreateBy,
|
"ModifyBy":item.ModifyBy
|
}
|
})
|
if (calTotal) {
|
this.totalNumber = this.list.length
|
}
|
this.infoChoosen = []
|
if (needloading) {
|
this.loading = false;
|
}
|
callback && callback(true)
|
}).catch(()=>{
|
if (needloading) {
|
this.loading = false;
|
}
|
callback && callback(false)
|
})
|
},
|
getOrderDetailList(needloading=true,callback){
|
if (needloading) {
|
this.loading = true;
|
}
|
this.list = []
|
let params = {outTaskId:this.row.Id}
|
this.$api.get('GetOutTaskDetailListByOutTaskIdGroupOrderNo',params,{block:'outPlanDetail'}).then((d)=>{
|
this.orderNumberList = d.map((item)=>{
|
return {
|
"id":item.Id,
|
"orderNo":item.OrderNo,
|
"materialModel":item.MaterialModel,
|
"supplier":item.Supplier,
|
"remark":item.Remark,
|
"qty":item.Qty,
|
"CreateTime":this.$utils.project.parseTimeStr(item.CreateTime),
|
"ModifyTime":this.$utils.project.parseTimeStr(item.ModifyTime),
|
"CreateBy":item.CreateBy,
|
"ModifyBy":item.ModifyBy
|
}
|
})
|
this.calToTalAtOrder();
|
if (needloading) {
|
this.loading = false;
|
}
|
callback && callback(true)
|
}).catch(()=>{
|
if (needloading) {
|
this.loading = false;
|
}
|
callback && callback(false)
|
})
|
},
|
setImportOrderDetailList(){
|
this.form.outTaskMode = this.importResult.OutTaskType;
|
if (this.form.outTaskMode===1) {
|
this.list = this.importResult.plan_OutTaskImportParams.map((item)=>{
|
return {
|
"orderNo":item.OrderNo,
|
"serialNumber": item.SerialNumber,
|
"materialModel": item.MaterialModel,
|
"supplier": item.Supplier,
|
"remark": item.Remark
|
}
|
})
|
this.totalNumber = this.list.length
|
} else {
|
let _numTotal = 0;
|
this.orderNumberList = this.importResult.plan_OutTaskImportParams.map((item)=>{
|
_numTotal = _numTotal + (item.Qty || 1)
|
return {
|
orderNo:item.OrderNo,
|
materialModel:item.MaterialModel,
|
supplier:item.Supplier,
|
remark:item.Remark,
|
qty:item.Qty || 1
|
}
|
})
|
this.totalNumber = _numTotal
|
}
|
},
|
close(){
|
this.$emit('update:visible',false)
|
},
|
onClose(){
|
this.close();
|
},
|
onOpenChooseModal(){
|
if (this.form.outTaskMode===2) {
|
this.orderChooseVisible = true
|
} else {
|
this.chooseVisible = true
|
}
|
},
|
chooseBack(type,res){
|
if (type==='default') {
|
this.setBackList(res)
|
} else {
|
this.setBackOrderList(res)
|
}
|
},
|
setBackList(arr){
|
let _exits = []
|
arr.forEach(item=>{
|
if (this.$utils.getObjectArrayIndex(this.list,item,'SerialNumber')<0) {
|
this.list.push({
|
"orderNo":item.OrderNo,
|
"serialNumber": item.SerialNumber,
|
"materialModel": item.MaterialModel,
|
"supplier": item.Supplier,
|
"remark": ""
|
})
|
} else {
|
_exits.push(item.SerialNumber)
|
}
|
})
|
if (_exits.length>0) {
|
this.$message({
|
message:`序列号${_exits.join('、')}已存在`,
|
type: 'warning'
|
})
|
}
|
this.totalNumber = this.list.length;
|
},
|
setBackOrderList(arr){
|
arr.forEach(item=>{
|
this.orderNumberList.push({
|
orderNo:item.OrderNo,
|
materialModel:item.MaterialModel,
|
supplier:'',
|
remark:'',
|
qty:item.Qty
|
})
|
})
|
this.calToTalAtOrder();
|
},
|
addNewList(){
|
if (this.form.outTaskMode===2) {
|
this.orderNumberList.push({
|
orderNo:'',
|
materialModel:'',
|
supplier:'',
|
remark:'',
|
qty:1
|
})
|
this.calToTalAtOrder();
|
} else {
|
this.list.push({
|
"orderNo":"",
|
"serialNumber": "",
|
"materialModel": "",
|
"supplier": "",
|
"remark": ""
|
})
|
this.totalNumber = this.list.length;
|
}
|
},
|
onCancelList(type,index){
|
if (type==='default') {
|
this.list.splice(index,1)
|
this.totalNumber = this.list.length;
|
} else {
|
this.orderNumberList.splice(index,1)
|
this.calToTalAtOrder();
|
}
|
},
|
onListUp(type,index){
|
if (type==='default') {
|
let obj = this.list[index-1];
|
let list = [...this.list];
|
list.splice(index-1,1)
|
list.splice(index,0,obj)
|
this.list = list;
|
} else {
|
let obj = this.orderNumberList[index-1];
|
let list = [...this.orderNumberList];
|
list.splice(index-1,1)
|
list.splice(index,0,obj)
|
this.orderNumberList = list;
|
}
|
},
|
onListDown(type,index){
|
if (type==='default') {
|
let obj = this.list[index+1];
|
let list = [...this.list];
|
list.splice(index+1,1)
|
list.splice(index,0,obj)
|
this.list = list;
|
} else {
|
let obj = this.orderNumberList[index+1];
|
let list = [...this.orderNumberList];
|
list.splice(index+1,1)
|
list.splice(index,0,obj)
|
this.orderNumberList = list;
|
}
|
},
|
calToTalAtOrder(){
|
let res = 0;
|
this.orderNumberList.forEach((item)=>{
|
res+=item.qty
|
})
|
this.totalNumber = res;
|
},
|
onChangeRowSerNumber(index,val){
|
this.list[index] = val
|
},
|
onStepNumberChange(){
|
this.calToTalAtOrder();
|
},
|
onSubmit(needStart){
|
this.validateBeforeSubmit((f)=>{
|
if (f) {
|
this.loading = true
|
this.dealSubmit((fs)=>{
|
this.loading = false;
|
if (fs) {
|
this.close();
|
let response = null;
|
if (needStart) {
|
response = this.newId
|
}
|
this.$emit('submitCallback',response)
|
}
|
})
|
}
|
})
|
},
|
validateBeforeSubmit(callback){
|
this.$refs.form.validate((valid) => {
|
if (valid) {
|
if (this.totalNumber<=0) {
|
this.$message({message:'物料总数量必须大于0!',type: 'warning'})
|
callback(false)
|
} else if (this.form.outTaskMode===2) {
|
if (this.orderNumberList.length<=0) {
|
this.$message({message:'请添加物料!',type: 'warning'})
|
callback(false)
|
} else {
|
callback(true)
|
}
|
} else {
|
if (this.list.length<=0) {
|
this.$message({message:'请添加物料!',type: 'warning'})
|
callback(false)
|
} else {
|
callback(true)
|
}
|
}
|
} else {
|
callback(false)
|
}
|
})
|
},
|
dealSubmit(callback){
|
let type = '', method = '', params = {...this.form}
|
if (params.startTime){
|
params.startTime = params.startTime + ' 00:00:00'
|
}
|
if (params.finishTime){
|
params.finishTime = params.finishTime + ' 23:59:59'
|
}
|
if (params.outTaskMode===2) {
|
params.orderNoList = this.orderNumberList;
|
params.serialNumberList = [];
|
} else {
|
params.orderNoList = [];
|
params.serialNumberList = this.list;
|
}
|
if (this.type==='add' || this.type==='import') {
|
type = 'post'
|
method = 'CreateNewOutPlan'
|
} else {
|
type = 'put'
|
method = 'UpdateOutPlanTask'
|
params['m_PlanId'] = this.row.Id
|
}
|
this.$api[type](method,params,{block:'outPlan'}).then((d)=>{
|
if (this.type==='add' || this.type==='import') {
|
this.newId = d;
|
} else {
|
this.newId = null;
|
}
|
callback && callback(true)
|
}).catch((err)=>{
|
this.loading = false
|
callback && callback(false)
|
})
|
},
|
onInfoSelect(selection){
|
this.infoChoosen = selection || []
|
},
|
onDel(){
|
this.$confirm('删除操作需要谨慎,确认要删除吗?', '系统提示').then(()=>{
|
this.dealDetailDelete()
|
}).catch(()=>{});
|
},
|
dealDetailDelete() {
|
this.loading = true
|
let listId = [];
|
this.infoChoosen.forEach((arrItem)=>{
|
listId.push(arrItem.id)
|
})
|
let params = {listId}
|
this.$api.post('BatchDelete',params,{block:'outPlanDetail'}).then(()=>{
|
this.$message({
|
message:'删除成功!',
|
type: 'success'
|
})
|
this.infoDelFlag = true;
|
if (this.form.outTaskMode===2) {
|
this.getOrderDetailList(false,(f1)=>{
|
if (f1) {
|
this.getDetailList(false,(f2)=>{
|
this.loading = false;
|
if (f2) {
|
if (this.totalNumber<=0) {
|
this.close();
|
}
|
} else {
|
this.close();
|
}
|
},false)
|
} else {
|
this.loading = false;
|
this.close();
|
}
|
})
|
} else {
|
this.getDetailList(false,(ff3)=>{
|
this.loading = false
|
if (ff3) {
|
if (this.totalNumber<=0) {
|
this.close();
|
}
|
} else {
|
this.close();
|
}
|
})
|
}
|
}).catch(()=>{
|
this.loading = false
|
})
|
},
|
onExportDetail(){
|
this.$loading();
|
let params = {TaskPlanId:this.row.Id}
|
this.$api.downFile('GetOutTaskLackDetail_Export',{},{block:'outPlan'},params,'post').then((d)=>{
|
this.$loading().close();
|
this.$utils.project.downLoadFile(d,'出库计划明细'+new Date().getTime()+'.xls')
|
}).catch(()=>{
|
this.$loading().close();
|
})
|
},
|
onExportMissing(){
|
this.$loading();
|
let listId = [this.row.Id];
|
let params = {listId}
|
this.$api.downFile('GetOutTaskDetail_Export',params,{block:'outPlan'},{},'post').then((d)=>{
|
this.$loading().close();
|
this.$utils.project.downLoadFile(d,'出库计划缺料'+new Date().getTime()+'.xls')
|
}).catch(()=>{
|
this.$loading().close();
|
})
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
.tasks-of-output-plan-form-modal-content{
|
padding-top: 8px;
|
height: 680px;
|
.plan-rate-row{
|
width: 70%;
|
margin: 0 auto;
|
padding-bottom: 8px;
|
.text{
|
text-align: center;
|
padding: 2px 0 10px 0;
|
}
|
}
|
.plan-form{
|
padding: 12px 12px 0 2px;
|
}
|
.info-order-table{
|
margin-bottom: 16px;
|
}
|
}
|
</style>
|