Browse Source

工单取消

langfang-develop
liwei 3 years ago
parent
commit
f0019ed05d
3 changed files with 206 additions and 6 deletions
  1. +16
    -0
      src/api/productplan/base.js
  2. +165
    -0
      src/views/productplan/workbench/order/closeOrder.vue
  3. +25
    -6
      src/views/productplan/workbench/order/index.vue

+ 16
- 0
src/api/productplan/base.js View File

@ -189,6 +189,22 @@ export function getSerialOrder (query) {
params: query params: query
}) })
} }
// 未完成工单列表
export function getUncomplete (params) {
return request({
url: '/admin/om/workorder/getuncomplete',
method: 'get',
params
})
}
// 取消未完成工单
export function cancelUncomplete (data) {
return request({
url: '/admin/om/workorder/canceluncomplete',
method: 'post',
data
})
}
// 返工列表查询 // 返工列表查询
export function queryDefectRecord (query) { export function queryDefectRecord (query) {
return request({ return request({


+ 165
- 0
src/views/productplan/workbench/order/closeOrder.vue View File

@ -0,0 +1,165 @@
<template>
<el-dialog title="明细" visible width="90%" :close-on-click-modal="false">
<el-table
:data="tableData"
border
tooltip-effect="dark"
height="410"
ref="multipleTable"
class="order-table-content-wrap"
@select="handleSelectionChange"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column v-for="item in headers" :key="item" :label="getColumnName(item)" :show-overflow-tooltip="true" align="center">
<template slot-scope="scope">
<div v-if="item === 'OM_SerialOrder-SerialOrderStatus'"
:class="['bg-div',{'not-plan-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 10},
{'has-plan-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 20},
{'has-lock-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 24},
{'has-issued-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 26},
{'interrupt-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 39},
{'in-production-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 40},
{'has-complete-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 80},
{'has-shipment-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 90},
{'freeze-bg': scope.row[item]['OM_SerialOrderStatus-Status'] == 95},
{'has-cancel-bg': scope.row[item]['OM_SerialOrderStatus-Status'] == 98}]"> {{ fieldTrans(scope.row[item]['OM_SerialOrderStatus-Status']) }} </div>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
<el-table-column
v-for="(item, index) in timeHeaders"
:key="index"
:label="getColumnName(item)"
:show-overflow-tooltip="true"
width="170"
align="center">
<template slot-scope="scope">
<span v-if="item === 'OM_SerialOrder-ActEndTime' && scope.row[item] === '19000101000000'"></span>
<span v-else>{{ parseTime(scope.row[item]) }}</span>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="clearSelect">取消选择</el-button>
<el-button type="primary" @click="submit"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</template>
<script>
import {getUncomplete, cancelUncomplete} from '@/api/productplan/base'
export default {
props:{
item:{
default:{}
}
},
data(){
return{
tableData:[],
headers:[
'OM_SerialOrder-WorkOrderId',
'OM_SerialOrder-SerialOrderId',
'OM_SerialOrder-PlanResourceId',
'OM_SerialOrder-UsedResourceId',
'OM_SerialOrder-PlanQty',
'OM_SerialOrder-ProjectId',
'OM_SerialOrder-SerialOrderStatus'
],
timeHeaders:[
'OM_SerialOrder-PlanStartTime',
'OM_SerialOrder-PlanEndTime',
'OM_SerialOrder-ActEndTime',
],
orderStatusArray: [], //
selectionValue:[], //
}
},
methods:{
submit(){
if(this.selectionValue.length<=0){
this.msgError('请选择工单');
}else{
cancelUncomplete(this.selectionValue.map(e=>e['OM_SerialOrderStatus-SerialOrderId'])).then(({code})=>{
if(code==200){
this.msgSuccess('取消成功');
this.cancel();
}
})
}
},
//
cancel(){
this.$emit('setIsCloseOrder', {});
},
//
fieldTrans(value) {
if (this.orderStatusArray.length > 0) {
let fieldValue = ''
this.orderStatusArray.forEach(el => {
if (value === Number(el['stdeftab-stdeftyp'])) {
fieldValue = el['stdeftab-bez']
}
})
return fieldValue
}
},
//
sortby(a,b){return a['OM_SerialOrder-Sort']-b['OM_SerialOrder-Sort']},
//
handleSelectionChange(value){
if(value.length<=1){
this.selectionValue=value;
}else{
//
this.$refs.multipleTable.clearSelection();
//
const newData=value.sort(this.sortby);
//
this.selectionValue=this.tableData.filter(e=>{
return parseInt(e['OM_SerialOrder-Sort'])>=parseInt(newData[0]['OM_SerialOrder-Sort']) && parseInt(e['OM_SerialOrder-Sort'])<=parseInt(newData[newData.length-1]['OM_SerialOrder-Sort']);
});
//
this.selectionValue.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row);
});
}
},
//
clearSelect(){
this.$refs.multipleTable.clearSelection();
},
//
getUncomplete(){
getUncomplete({workOrderId: this.item['OM_WorkOrder-WorkOrderId']}).then(({code, data=[]}) => {
this.tableData=(data || []).sort(this.sortby);
})
},
//
getOrderStatus(){
this.getStanderOne({ statid: 'WorkOrderStatus' }).then(res => {
this.orderStatusArray = res.data
})
}
},
mounted(){
this.getUncomplete();
this.getOrderStatus();
}
}
</script>
<style lang="scss">
.order-table-content-wrap{
.el-table__header-wrapper{
.el-table-column--selection{
.el-checkbox{
display: none;
}
}
}
}
</style>

src/views/productplan/workbench/order.vue → src/views/productplan/workbench/order/index.vue View File

@ -110,7 +110,7 @@
<span v-else>{{ scope.row[item] }}</span> <span v-else>{{ scope.row[item] }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="210" fixed="right">
<el-table-column label="操作" align="center" width="300" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@ -120,6 +120,13 @@
>明细</el-button> >明细</el-button>
<el-button <el-button
size="mini" size="mini"
type="text"
:disabled="scope.row['OM_WorkOrderStatus-Status'] < 26 || scope.row['OM_WorkOrderStatus-Status'] > 80"
icon="el-icon-s-order"
@click="setIsCloseOrder(scope.row)"
>取消工单</el-button>
<el-button
size="mini"
type="text" type="text"
:disabled="scope.row['OM_WorkOrderStatus-Status'] >= 80" :disabled="scope.row['OM_WorkOrderStatus-Status'] >= 80"
icon="el-icon-s-order" icon="el-icon-s-order"
@ -354,12 +361,14 @@
</div> </div>
</el-dialog> </el-dialog>
<InsertOrder v-if="isInsertOrder" @showInsertOrder="showInsertOrder" /> <InsertOrder v-if="isInsertOrder" @showInsertOrder="showInsertOrder" />
<SplistOrder v-if="item['OM_WorkOrder-WorkOrderId']" :item="item" @setItem="setItem"/>
<CloseOrder v-if="isCloseOrder" :item="item" @setIsCloseOrder="setIsCloseOrder"/>
<SplistOrder v-if="!isCloseOrder && item['OM_WorkOrder-WorkOrderId']" :item="item" @setItem="setItem"/>
</div> </div>
</template> </template>
<script> <script>
import InsertOrder from './insertOrder'
import InsertOrder from '../insertOrder'
import CloseOrder from './closeOrder.vue';
import { import {
getWorkorderList, getWorkorderList,
getWorkorder, getWorkorder,
@ -378,12 +387,13 @@ import {
import { getProjectList } from '@/api/system/project' import { getProjectList } from '@/api/system/project'
import { getWorkshopList } from '@/common/workshop' import { getWorkshopList } from '@/common/workshop'
import { deepCopy } from "@/common/timeCycle.js" import { deepCopy } from "@/common/timeCycle.js"
import SplistOrder from './insertOrder/splitOrder.vue'
import SplistOrder from '../insertOrder/splitOrder.vue'
import moment from 'moment' import moment from 'moment'
export default { export default {
components:{ components:{
InsertOrder, InsertOrder,
SplistOrder
SplistOrder,
CloseOrder
}, },
name: 'order', name: 'order',
data() { data() {
@ -459,7 +469,8 @@ export default {
detailsHeaders: [], detailsHeaders: [],
detailsTimeHeaders: [], detailsTimeHeaders: [],
detailsLoading: true, detailsLoading: true,
item:{}
item:{},
isCloseOrder:false, //
} }
}, },
created() { created() {
@ -496,6 +507,14 @@ export default {
this.item=item; this.item=item;
if(Object.keys(item).length==0){ if(Object.keys(item).length==0){
this.getList(); this.getList();
}
},
//
setIsCloseOrder(item){
this.isCloseOrder = !this.isCloseOrder;
this.item=item;
if(Object.keys(item).length==0){
this.getList();
} }
}, },
// //

Loading…
Cancel
Save