1.取消月度计划审核生成工单号

2.优化处理结果显示
3.修复划线、切割报工未根据作业区获取数据的bug
4.增加作业计划作业区调整功能
5.调整上料摆放区域可拖动
master
董哲奇 4 months ago
parent 98b462a7d5
commit d3a278836d

@ -0,0 +1,17 @@
import request from "@/utils/request";
export function ycldwcx(data) {
return request({
url: "/ycldw/list",
method: "post",
data,
});
}
export function ycldwUpdate(data) {
return request({
url: "/ycldw/submit",
method: "post",
data,
});
}

@ -0,0 +1,9 @@
import request from "@/utils/request";
export function editZyq(data) {
return request({
url: "/dmYdjh/editZyq",
method: "post",
data,
});
}

@ -90,6 +90,7 @@ import XEUtils from 'xe-utils'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import ScrollPane from "@/layout/components/TagsView/ScrollPane.vue"; import ScrollPane from "@/layout/components/TagsView/ScrollPane.vue";
import {bgControl} from "@/api/zyjh"; import {bgControl} from "@/api/zyjh";
import {editZyq} from "@/api/jhzxgl/ydjh";
export default { export default {
name:'YdjhzxGL', name:'YdjhzxGL',
@ -114,6 +115,11 @@ export default {
yf:'', yf:'',
zt: '0' zt: '0'
}, },
zyqList:[
{label:'二区',value:'FP2Q'},
{label:'三区',value:'FP3Q'},
{label:'四区',value:'FP4Q'},
],
list: [], list: [],
list2: [], list2: [],
list3: [], list3: [],
@ -137,22 +143,22 @@ export default {
// { field: 'dcCh1', title: '',width: 90, // { field: 'dcCh1', title: '',width: 90,
// filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], // filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
// filterRender: { name: 'FilterCombination', }},// // filterRender: { name: 'FilterCombination', }},//
{ field: 'dcPl', title: '批量',width: 80, { field: 'dcPl', title: '批量',width: 60,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }}, filterRender: { name: 'FilterCombination', }},
{ field: 'dcFd', title: '分段号',width: 100, { field: 'dcFd', title: '分段号',width: 60,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }}, filterRender: { name: 'FilterCombination', }},
{ field: 'zl', title: '组立',width: 80,formatter: ['dictFormat','ZLLB'], { field: 'zl', title: '组立',width: 70,formatter: ['dictFormat','ZLLB'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }}, filterRender: { name: 'FilterCombination', }},
{ field: 'kw', title: '跨位',width: 80,formatter: ['dictFormat','QGKW'], { field: 'kw', title: '跨位',width: 80,formatter: ['dictFormat','QGKW'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }}, filterRender: { name: 'FilterCombination', }},
{ field: 'tzbh', title: '套料图号',width: 90, { field: 'tzbh', title: '套料图号',width: 70,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }}, filterRender: { name: 'FilterCombination', }},
{ field: 'ylbs', title: '余料',width: 90, { field: 'ylbs', title: '余料',width: 80,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }}, filterRender: { name: 'FilterCombination', }},
{ field: 'jssj', title: '前方需求时间',width: 110, { field: 'jssj', title: '前方需求时间',width: 110,
@ -178,6 +184,11 @@ export default {
filterRender: { name: 'FilterCombination', }, filterRender: { name: 'FilterCombination', },
editRender:{ name: '$input', props: { type: 'date',labelFormat:"yyyy/MM/dd",valueFormat:"yyyy/MM/dd" }} editRender:{ name: '$input', props: { type: 'date',labelFormat:"yyyy/MM/dd",valueFormat:"yyyy/MM/dd" }}
}, },
{ field: 'zyq', title: '作业区',width: 100,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
editRender:{ name: '$select', options:[],events:{change:this.zyqChange,}},
},
{ field: 'lqlb', title: '领取类型',width: 90,formatter: ['dictFormat','CLlQ'], { field: 'lqlb', title: '领取类型',width: 90,formatter: ['dictFormat','CLlQ'],
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }], filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', }}, filterRender: { name: 'FilterCombination', }},
@ -737,6 +748,22 @@ export default {
this.initBase() this.initBase()
}, },
methods: { methods: {
zyqChange({row}){
for (const item of this.zyqList) {
if(item.value===row.zyq){
row.zyq1=item.label
const data={
id:row.id,
zyq:row.zyq,
zyq1:item.label
}
editZyq(data).then(res=>{
this.$message.success('处理成功')
})
break
}
}
},
bgControlChange(val){ bgControlChange(val){
bgControl({gx:val}) bgControl({gx:val})
}, },
@ -858,11 +885,12 @@ export default {
return return
} }
getYdjh(this.queryParam).then((res) => { getYdjh(this.queryParam).then((res) => {
const zyqColumn=this.$refs.xGrid.getColumnByField('zyq')
zyqColumn.editRender.options=this.zyqList
this.list = res.data this.list = res.data
if (this.$refs.xGrid) { if (this.$refs.xGrid) {
this.$refs.xGrid.loadData(this.list) this.$refs.xGrid.loadData(this.list)
} }
}) })
this.activeName='first' this.activeName='first'
}, },
@ -873,7 +901,6 @@ export default {
this.height = window.innerHeight - 190 this.height = window.innerHeight - 190
}, },
rowClassName({ row, rowIndex ,column}){ rowClassName({ row, rowIndex ,column}){
console.log(row.color)
if(row.color==='red'){ if(row.color==='red'){
return 'row-red' return 'row-red'
}else if(row.color==='yellow'){ }else if(row.color==='yellow'){

@ -0,0 +1,305 @@
<template>
<!-- <el-dialog title="收货地址" :visible.sync="dialogFormVisible">-->
<el-container>
<el-header style="width: 100%; height: 80px;font-size: 12px">
<el-form :inline="true" label-width="65px" label-position="left">
<el-row>
<el-col :span="22">
</el-col>
<el-col :span="2">
<el-form-item style="float: right" >
<el-button type="success" @click="initList"></el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="14"></el-col>
<el-col :span="10" >
<el-form-item style="float: right" >
<el-button
type="success"
@click="toolbarButtonClickEvent('save')"
>保存</el-button>
<el-button type="success" @click="toolbarButtonClickEvent('insert')"></el-button>
<el-button
type="danger"
@click="toolbarButtonClickEvent('delete')"
>删除
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-header>
<el-container style="padding-top: 0px">
<el-container>
<el-main>
<div class="mytable">
<vxe-grid
id="id"
ref="xGrid"
border
resizable
keep-source
:align="'center'"
:height="height"
:auto-resize="true"
:columns="tableColumn"
highlight-current-row
:data="list"
:custom-config="{ storage: true }"
:edit-config="{ trigger: 'click', mode: 'cell', showStatus: true}"
highlight-hover-row
:scroll-y="{enabled: true}"
show-overflow
show-header-overflow
/>
</div>
</el-main>
</el-container>
</el-container>
</el-container>
</template>
<script>
import {getPgdBase,} from '@/api/jhzxgl/pgd'
import { mapGetters } from 'vuex'
import {ycldwcx, ycldwUpdate} from "@/api/jhzxgl/ycldw";
export default {
name:'Ycldw',
data() {
return {
queryParam: {
dcCh:'',
},
inParam:{
rqfw:'',
zt:""
},
list: [],
deptList: [],
clickList: [],
projectData:[],
projectColumns: [
{field: 'cbbm', title: '船号',width: 110},
{ field: 'wgbs', title: '完工标识', width: 80,
slots:{
default: 'wgbsEdit'
},
},
],
dictData:{},
height: '500px',
tableColumn: [
{ type: 'checkbox', width: 50 },
{ type: 'seq', width: 40, title: '序号' },
{
field: 'kw',
title: '所属垮位',editRender: { name: 'input' },
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
{
field: 'name',
title: '垛位名称',editRender: { name: 'input' },
width: 120,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination' }
},
]
}
},
computed: {
...mapGetters(['name', 'bmbm','apbm'])
},
created() {
window.addEventListener('resize', this.getHeight)
this.getHeight()
this.initBase()
},
methods: {
cellClickEvent({row}) {
this.queryParam.dcCh = row.cbbm
this.$refs.xDown4.hidePanel()
},
focusEvent4() {
this.$refs.xDown4.showPanel()
},
keyupEvent4() {
if (this.queryParam.dcCh) {
this.projectData = this.projectData1.filter(row => row.cbbm.indexOf(this.queryParam.dcCh.toUpperCase()) > -1)
} else {
this.projectData = this.projectData1.slice(0)
}
},
initBase(){
getPgdBase({}).then(res=>{
this.dictData = res.data
this.dictData = res.data
this.projectData=res.data.cbbm
this.projectData1=res.data.cbbm
const select=this.$refs.xGrid.getColumnByField('dcCh')
const chList=[]
res.data.cbbm.forEach(item=>{
const data={
label:item.cbbm,
value:item.cbbm
}
chList.push(data)
})
select.editRender.options=chList
const sldw = this.$refs.xGrid.getColumnByField('kw')
sldw.editRender.options = this.dictData.qgkw
})
},
initList() {
ycldwcx(this.queryParam).then((res) => {
this.list = res.data
})
},
getHeight() {
this.height = window.innerHeight - 190
},
toolbarButtonClickEvent(code) {
const {
insertRecords,
removeRecords,
updateRecords
} = this.$refs.xGrid.getRecordset()
switch (code) {
case 'insert':
this.$refs.xGrid.insertAt({
}, -1).then(({ row }) => {
this.$refs.xGrid.setActiveRow(row)
})
break
case 'delete':
this.$confirm('删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then((type) => {
this.$refs.xGrid.removeCheckboxRow()
})
break
case 'save':
if (removeRecords.length !== 0) {
ycldwUpdate({"remove":removeRecords}).then((response) => {
if (response.success) {
for (let i = 0; i < this.list.length; i++) {
if (removeRecords.indexOf(this.list[i]) !== -1) {
this.list.splice(i, 1)
i--
}
}
this.$message({ message: '保存成功!', type: 'success' })
const xTable = this.$refs.xGrid
xTable.loadData(this.initList())
}
})
}
if (updateRecords.length !== 0) {
ycldwUpdate({"edit":updateRecords}).then((response) => {
if (response.success) {
const xTable = this.$refs.xGrid
xTable.loadData(this.initList())
this.$message({message: '保存成功!', type: 'success'})
}
})
}
if (insertRecords.length !== 0) {
ycldwUpdate({"add":insertRecords}).then((response) => {
if (response.success) {
this.list = this.list.concat(insertRecords)
const xTable = this.$refs.xGrid
xTable.loadData(this.initList())
this.$message({ message: '保存成功!', type: 'success' })
}
})
}
this.$message(
`新增 ${insertRecords.length} 条,删除 ${removeRecords.length} 条,更新 ${updateRecords.length}`
)
this.clickList = []
break
}
}
}
}
</script>
<style lang="scss" scoped >
.el-header{margin:0;padding: 5px;height:auto;
.el-input{
width: 140px;
}
.el-select{
width: 140px;
}
}
.el-container{padding: 0;margin:0;}
.el-main{padding: 0;}
.el-col{padding: 0;height: 32px;}
.el-aside{background: #fff;padding: 0}
.el-container{padding: 0}
.el-row {}
.el-row:last-child {margin-bottom: 0; }
.tableStyles{
background: #0a76a4;
}
.my-dropdown {
width: 400px;
height: 400px;
background-color: #fff;
border: 1px solid #dcdfe6;
box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
font-size: 12px;
}
.mytable1{
}
.borderClass{
}
.vxe-input {
display: inline-block !important;
position: relative !important;
width: auto;
}
.el-input {
display: inline-block !important;
position: relative !important;
width: auto;
}
.keyword-lighten {
color: #000;
background-color: #FFFF00;
}
.vxe-textarea--inner {
line-height: inherit;
}
.el-form-item__label-wrap {
margin-left: 0px !important;
float: left;
}
.fontClass{
font-size: 12px;
font-weight: bold;
}
</style>

@ -3,6 +3,7 @@
<ProjectSelect ref="projectSelectRef" clearable :_style="{width:'115px'}"/> <ProjectSelect ref="projectSelectRef" clearable :_style="{width:'115px'}"/>
<VxeInput v-model="queryParam.dcPl" clearable placeholder="请输入批量"/> <VxeInput v-model="queryParam.dcPl" clearable placeholder="请输入批量"/>
<VxeInput v-model="queryParam.sllsh" clearable placeholder="单据号"/> <VxeInput v-model="queryParam.sllsh" clearable placeholder="单据号"/>
<VxeSelect v-model="queryParam.zylx" ref="gylxSelectRef" clearable :options="zylx" :style="{width:'110px'}" placeholder="选择流向"/>
<VxeInput v-if="ljbs" v-model="queryParam.fd" clearable placeholder="请输入分段"/> <VxeInput v-if="ljbs" v-model="queryParam.fd" clearable placeholder="请输入分段"/>
<VxeButton status="primary" content="查询" @click="search" /> <VxeButton status="primary" content="查询" @click="search" />
<VxeSelect v-if="ljbs" v-model="gylxSelectData" ref="gylxSelectRef" clearable :options="gylx" placeholder="选择工艺路线"/> <VxeSelect v-if="ljbs" v-model="gylxSelectData" ref="gylxSelectRef" clearable :options="gylx" placeholder="选择工艺路线"/>
@ -15,6 +16,7 @@
</template> </template>
<script> <script>
import ProjectSelect from "@/components/ProjectSelect/index.vue"; import ProjectSelect from "@/components/ProjectSelect/index.vue";
import {dict} from "@/api/zyjh";
export default { export default {
name:'SliaoSearch', name:'SliaoSearch',
@ -40,9 +42,11 @@ export default {
dcCh:'', dcCh:'',
dcPl:'', dcPl:'',
dcFd:'', dcFd:'',
sllsh:'' sllsh:'',
zylx:'',
}, },
gylxSelectData:'', gylxSelectData:'',
zylx:[],
gylx:[ gylx:[
{label:'坡口',value:['pkbs']}, {label:'坡口',value:['pkbs']},
{label:'打磨',value:['dmbs']}, {label:'打磨',value:['dmbs']},
@ -60,8 +64,19 @@ export default {
this.sgry=this.$props.workers.map(item=>{ this.sgry=this.$props.workers.map(item=>{
return {label:item.userName,value:item.userCode} return {label:item.userName,value:item.userCode}
}) })
this.initZylxBm()
}, },
methods:{ methods:{
initZylxBm(){
dict({bmlb:'ZYLX'}).then(res=>{
const zylx=[]
res.data.forEach(item=>{
const data={label:item.bmsm,value:item.bm}
zylx.push(data)
})
this.zylx=zylx
})
},
plGylx(){ plGylx(){
this.$emit('plGylx',this.gylxSelectData,this.worker) this.$emit('plGylx',this.gylxSelectData,this.worker)
}, },

@ -37,6 +37,17 @@ const search=function (){
}) })
group.add(fdRect) group.add(fdRect)
const lxRect=new Konva.Rect({
x: 345,
y: 0,
fill:'#ffffff',
width: 100,
height:20,
stroke:'white',
strokeWidth:1,
})
group.add(lxRect)
// const sljhrqRect=new Konva.Rect({ // const sljhrqRect=new Konva.Rect({
// x: 345, // x: 345,
// y: 0, // y: 0,

@ -29,6 +29,7 @@ export default {
gridOptions:{}, gridOptions:{},
list:{}, list:{},
setExt:null, setExt:null,
zyq:null,
} }
}, },
sockets:{ sockets:{
@ -72,6 +73,7 @@ export default {
this.setExt=setExt this.setExt=setExt
this.gridOptions=options this.gridOptions=options
this.gridOptions.columns=columns this.gridOptions.columns=columns
this.zyq=this.$route.query.zyq
}, },
methods:{ methods:{
checkboxAll({checked}) { checkboxAll({checked}) {
@ -161,7 +163,7 @@ export default {
getDw({type:'llj'}).then(res=>{ getDw({type:'llj'}).then(res=>{
this.gridOptions.ycldw=res.data this.gridOptions.ycldw=res.data
getForemanByWorker({worker:worker}).then(res=>{ getForemanByWorker({worker:worker}).then(res=>{
getYdjhByZtOrForeman({foreman:res.data.userCode,zt:zt,field:'hxpgry'}).then(res=>{ getYdjhByZtOrForeman({foreman:res.data.userCode,zt:zt,field:'hxpgry',zyq:this.zyq}).then(res=>{
this.list=res.data this.list=res.data
this.gridOptions.data=res.data this.gridOptions.data=res.data
this.setExt('workers',this.$props.workers) this.setExt('workers',this.$props.workers)

@ -31,6 +31,7 @@ export default {
currentWorker:null, currentWorker:null,
zt:null, zt:null,
setExt:null, setExt:null,
zyq:null,
} }
}, },
sockets:{ sockets:{
@ -74,6 +75,7 @@ export default {
this.setExt=setExt this.setExt=setExt
this.gridOptions = options this.gridOptions = options
this.gridOptions.columns = columns this.gridOptions.columns = columns
this.zyq=this.$route.query.zyq
}, },
methods: { methods: {
baogong(tmpArr,data){ baogong(tmpArr,data){
@ -107,7 +109,7 @@ export default {
getForemanByWorker({worker:worker}).then(result=>{ getForemanByWorker({worker:worker}).then(result=>{
getDw({type:'llj'}).then(res=>{ getDw({type:'llj'}).then(res=>{
this.gridOptions.ycldw=res.data this.gridOptions.ycldw=res.data
getYdjhByZtOrForeman({foreman:result.data.userCode,zt:zt,field:'qgpgry'}).then(res => { getYdjhByZtOrForeman({foreman:result.data.userCode,zt:zt,field:'qgpgry',zyq:this.zyq}).then(res => {
this.list=res.data this.list=res.data
this.gridOptions.data = res.data this.gridOptions.data = res.data
this.setExt('workers',this.$props.workers) this.setExt('workers',this.$props.workers)

@ -6,50 +6,50 @@ const baifang=function (option={}) {
const _width=width*0.4-50,_height=height*0.715 const _width=width*0.4-50,_height=height*0.715
const x=width*0.6+40,y=262 const x=width*0.6+40,y=262
const bg=function (){ const slGroup=new Konva.Group({
const group=new Konva.Group({ x:0,
x:x, y:0,
y:y, width:_width,
width:_width, height:_height,
height:_height draggable:true,
}) dragBoundFunc:function (pos){
return {
x:x,
y:pos.y
}
},
})
const imageObj = new Image(); const bgGroup=new Konva.Group({
imageObj.src = require('@/assets/sliao/personbg.png'); x:x,
imageObj.onload = function () { y:y,
const shape = new Konva.Image({ width:_width,
x: 0, height:_height
y: 0, })
width: _width,
height:_height,
image: this,
});
bgGroup.add(shape)
shape.zIndex(0)
}
return group
}
const container=function (){ bgGroup.add(slGroup)
return new Konva.Group({
x:0, const imageObj = new Image();
y:0, imageObj.src = require('@/assets/sliao/personbg.png');
width:_width, imageObj.onload = function () {
height:_height const shape = new Konva.Image({
}) x: 0,
y: 0,
width: _width,
height:_height,
image: this,
});
bgGroup.add(shape)
shape.zIndex(0)
} }
const bgGroup=bg();
const slGroup=container()
bgGroup.add(slGroup)
slGroup.zIndex(1)
const thatHeight=height const thatHeight=height
const gangban=function (index,item,slList){ const gangban=function (index,item,slList){
const group=new Konva.Group({ const group=new Konva.Group({
x:0, x:0,
y:thatHeight-280-index*40, y:thatHeight-280-index*40,
draggable:true // draggable:true
}) })
group.setAttr('item',item) group.setAttr('item',item)
@ -218,7 +218,7 @@ const baifang=function (option={}) {
} }
return { return {
container,slGroup,handler,bgGroup slGroup,handler,bgGroup
} }
} }

Loading…
Cancel
Save