Browse Source

工序报告,生产订单工序维护 2022-06-14 sxm

master
[li_she] 4 years ago
parent
commit
c716fcd047
  1. 3
      src/api/shopOrder/productionReport.js
  2. 24
      src/api/shopOrder/shopOrder.js
  3. 4
      src/assets/scss/global.scss
  4. 2
      src/main.js
  5. 27
      src/utils/common.js
  6. 0
      src/utils/directives.js
  7. 353
      src/views/modules/shopOrder/productionReport/common/productionLineYieldReport.vue
  8. 253
      src/views/modules/shopOrder/productionReport/searchItemToBeProduct.vue
  9. 631
      src/views/modules/shopOrder/shopOrder/common/routing.vue
  10. 376
      src/views/modules/shopOrder/shopOrder/common/routingAddAndEdit.vue
  11. 3590
      src/views/modules/shopOrder/shopOrder/shopOrder.vue
  12. 6
      src/views/modules/sys/language/common.vue
  13. 4
      src/views/modules/sys/user.vue

3
src/api/shopOrder/productionReport.js

@ -29,3 +29,6 @@ export const searchReportInOrderNo = data => createAPI(`/productionReport/search
// 取消报工
export const cancelReport = data => createAPI(`/productionReport/cancelReport`,'post',data)
// 工序报工
export const saveYieldReport = data => createAPI(`/schedule/saveYieldReport`,'post',data)

24
src/api/shopOrder/shopOrder.js

@ -53,5 +53,29 @@ export const closeShopOrder = data => createAPI('/shopOrder/closeShopOrder', 'po
//打开工单
export const openShopOrder = data => createAPI('/shopOrder/openShopOrder', 'post', data)
// 获取 订单工序
export const getRouteInShopOrder = data => createAPI('/shopOrder/getRouteInShopOrder', 'post', data)
// 删除 订单工序
export const deleteRouteInShopOrder = data => createAPI('/shopOrder/deleteRouteInShopOrder', 'post', data)
// 保存 订单工序
export const insertRouteInShopOrder = data => createAPI('/shopOrder/insertRouteInShopOrder', 'post', data)
// 修改 工单工序
export const updateRouteInShopOrder = data => createAPI('/shopOrder/updateRouteInShopOrder', 'post', data)
// 获取工单工序需求时间
export const getRoutingTimeRequired = data => createAPI('/shopOrder/getRoutingTimeRequired', 'post', data)
// 获取 加工中心信息
export const getWorkCenterInfo = data => createAPI('/shopOrder/getWorkCenterInfo', 'post', data)
// 获取订单最大工序
export const getOrderNoRouteInMaxItemNo = data => createAPI('/shopOrder/getOrderNoRouteInMaxItemNo', 'post', data)
// 获取订单可用机台
export const getOrderNoItemNoCenter = data => createAPI('/shopOrder/getOrderNoItemNoCenter', 'post', data)

4
src/assets/scss/global.scss

@ -49,7 +49,7 @@
font-size: 12px;
}
.el-button--medium {
padding: 5px 11px;
padding: 3px 10px;
font-size: 12px;
border-radius: 4px;
}
@ -235,7 +235,7 @@ div.el-time-width{
}
/* 全局时间右边框*/
input.el-input__inner{
height: 22px !important;
height: 20px !important;
padding-right: 0px !important;
}

2
src/main.js

@ -13,7 +13,7 @@ import { isAuth } from '@/utils'
import cloneDeep from 'lodash/cloneDeep'
import JsonExcel from 'vue-json-excel'
import i18n from '@/i18n/i18n'
import './directives'
import './utils/directives'
import decimalUtil from '@/utils/decimalUtil.js'
import getLodop from '@/utils/LodopFuncs.js'
import pdf from 'vue-pdf'

27
src/utils/common.js

@ -1,34 +1,31 @@
// 防抖
export function debounce(fn,wait = 3000 ){
let timer = null;
export function debounce(fn, wait = 3000) {
let timer = null;
return function () {
console.log('开始抖')
console.log(wait)
let args = arguments;
let that = this;
if (timer){
let that = this;
if (timer) {
clearTimeout(timer)
}
console.log('开始防抖')
timer = setTimeout(function () {
timer = null;
console.log('开始防抖')
fn.apply(that,args)
},wait)
fn.apply(that, args)
}, wait)
}
}
// 节流
export function throttle(fn,wait = 3000 ){
let timer = null;
export function throttle(fn, wait = 3000) {
let timer = null;
return function () {
if (timer !=null ) return;
if (timer != null) return;
let args = arguments;
let that = this;
let that = this;
clearTimeout(timer)
fn.apply(that,args)
fn.apply(that, args)
timer = setTimeout(function () {
timer = null;
},wait)
}, wait)
}
}

0
src/directives.js → src/utils/directives.js

353
src/views/modules/shopOrder/productionReport/common/productionLineYieldReport.vue

@ -0,0 +1,353 @@
<template>
<div>
<el-dialog
v-drag
@close="closeDialog"
width="520px"
:title="'产量报告'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<fieldset class="customer-fieldset" style="width: 482px; height: 100% ;margin-top: -10px">
<legend class="customer-legend">产量报告</legend>
<fieldset class="customer-fieldset" style="width: 482px; height: 100%;margin-top: -5px">
<legend class="customer-legend">订单信息</legend>
<el-row class="customer-input-color-red">
<el-col :span="24" style="margin-top: -10px">
<el-form-item :label="'工厂'">
<el-input disabled v-model="itemData.site"></el-input>
</el-form-item>
<el-form-item :label="'生产订单号'">
<el-input disabled v-model="itemData.orderNo"></el-input>
</el-form-item>
<el-form-item :label="'物料编码'">
<el-input disabled v-model="itemData.partNo"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row class="customer-input-color-red">
<el-col :span="24" style="margin-top: -10px">
<el-form-item :label="'订单数量'">
<el-input disabled v-model="itemData.qtyRequired"></el-input>
</el-form-item>
<el-form-item :label="'工序号'">
<el-input disabled v-model="itemData.itemNo"></el-input>
</el-form-item>
<el-form-item :label="'工序名称'">
<el-input disabled v-model="itemData.operationDesc"></el-input>
</el-form-item>
</el-col>
</el-row>
</fieldset>
<div style="margin-left: 5px">
<el-row>
<el-col :span="24" style="margin-top: 0px">
<el-form-item>
<span slot="label"><el-link @click="getBaseList(26)">{{'操作员'}}</el-link></span>
<el-input v-model="itemData.operator"></el-input>
</el-form-item>
<el-form-item :label="'开工时间'">
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
style='width: 145px;' v-model="itemData.startTime"></el-date-picker>
</el-form-item>
<el-form-item :label="'生产时间'">
<el-input class="customer-input-color-red" disabled v-model="itemData.produceTime"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="margin-top: -10px">
<el-form-item :label="'操作员姓名'">
<el-input v-model="itemData.operatorName" disabled></el-input>
</el-form-item>
<el-form-item :label="'完工时间'">
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
style='width: 145px;' v-model="itemData.finishTime"></el-date-picker>
</el-form-item>
<el-form-item :label="'停机时间'">
<el-input type="number" oninput="value=value.replace(/[^0-9.]/g,'')" min="0"
v-model="itemData.downtime"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="margin-top: -10px">
<el-form-item :label="'合格数量'">
<el-input type="number" oninput="value=value.replace(/[^0-9.]/g,'')" min="0"
v-model="itemData.qualifiedQty"></el-input>
</el-form-item>
<el-form-item :label="'不合格数量'">
<el-input type="number" min="0" oninput="value=value.replace(/[^0-9.]/g,'')"
v-model="itemData.qualifiedNotQty"></el-input>
</el-form-item>
<el-form-item :label="'报告数量'">
<el-input disabled class="customer-input-color-red" v-model="itemData.reportQty"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row>
<el-col :span="24" style="margin-top: -10px">
<fieldset class="customer-fieldset" style="width: 482px; height: 100% ;margin-top: 5px">
<legend class="customer-legend">排产班次信息</legend>
<el-row>
<el-col :span="24" style="margin-top: -10px">
<el-form-item class="customer-item" label="排产日期:">
<el-input v-model="pageData.scheduledDate" disabled="disabled" style="width: 120px;"></el-input>
</el-form-item>
<el-form-item class="customer-item" label="班次:">
<el-input v-model="pageData.shiftDesc" class="customer-input-color-red" readonly="readonly"
style="width: 120px;"></el-input>
</el-form-item>
<el-button type="info" :disabled="buttonTags.selectShiftFlag" plain @click="selectSchduleShiftModal"
style="margin-left: -10px; margin-top: 20px; height: 20px; padding: 3px 3px;">
<icon-svg name="ellipsis" style="height: 10px; width: 10px;"></icon-svg>
</el-button>
</el-col>
</el-row>
</fieldset>
</el-col>
</el-row>
<div style="margin-left: 5px">
<el-row>
<el-col :span="24">
<el-form-item :label="'备注'">
<el-input v-model="itemData.remark" style="width:475PX"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</fieldset>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveYieldReport">保存</el-button>
<el-button @click="visible = false" type="primary">取消</el-button>
</span>
</el-dialog>
<!-- 班次选择组件 -->
<comSelectShift ref="comSelectShift" :close-on-click-modal="false"
:visible.sync="showShiftFlag"
@initScheduleShift="initScheduleShift">
</comSelectShift>
<!--基础列表-->
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import {
saveYieldReport
} from "@/api/shopOrder/productionReport.js"
import {getScheduleShiftData} from '@/api/yieldReport/com_finish_roll.js';
import comSelectShift from "../../../yieldReport/com_select_shift";
import Chooselist from '@/views/modules/common/Chooselist'
export default {
data() {
return {
visible: false,
showShiftFlag: false,
itemData: {
site: '',
orderNo: '',
itemNo: '',
rollNo: '*',
operator: '',
operatorName: '',
operationDesc: '',
qtyRequired: 0,
qualifiedQty: 1,
qualifiedNotQty: 0,
reportQty: 0,
startTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'),
finishTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'),
produceTime: 0,
downtime: 0,
partNo: '',
enterDate: '',
remark: ''
},
pageData: {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
resourceId: '',
reportedTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'),
reportedFlag: 'N',
scheduledDate: this.dayjs().format('YYYY-MM-DD'),
shiftDesc: '无班次'
},
buttonTags: {
selectShiftFlag: false,
}
}
},
watch: {
itemData: {
deep: true,
handler: function (newV, oldV) {
this.itemData.reportQty = Number(this.itemData.qualifiedQty) + Number(this.itemData.qualifiedNotQty)
let time = (this.dayjs(this.itemData.finishTime).diff(this.dayjs(this.itemData.startTime), 'minutes') / 60).toFixed(2)
this.itemData.produceTime = isNaN(time) ? 0 : time
}
}
},
components: {
comSelectShift,/*班次选择的组件*/
Chooselist,
},
mounted() {
this.$nextTick(() => {
this.height = window.innerHeight - 160;
})
},
methods: {
closeDialog() {
this.$nextTick(() => {
Object.assign(this.$data, this.$options.data.call(this));
})
},
init(row) {
this.visible = true
this.itemData = Object.assign(this.itemData, row)
// this.getScheduleShiftFlag()
},
//
saveYieldReport() {
if (!this.itemData.operator) {
this.$message.warning('请选择操作员!')
return
}
if (this.itemData.produceTime <= 0) {
this.$message.warning('生产时间必须大于0,请检查开工和完工时间是否正确!')
return
}
if (this.itemData.produceTime >= 12) {
this.$message.warning('生产时间不能大12个小时,请检查开工和完工时间是否正确!')
return
}
if (this.itemData.qualifiedQty.length == 0 || this.itemData.qualifiedQty <= 0) {
this.$message.warning('合格数量,必须输入,并且必须大于0!')
return
}
if (this.itemData.qualifiedNotQty.length == 0) {
this.$message.warning('不合格数量,必须输入!')
return
}
if (this.pageData.shiftDesc == '无班次') {
this.$message.warning('该时间段内没有匹配的班次信息,请联系相关人员!')
return
}
let reportDto = {
site: this.itemData.site,
orderNo: this.itemData.orderNo,
itemNo: this.itemData.itemNo,
seqNo: this.itemData.seqNo,
rollNo: '*',
sfdcReportedQty: this.itemData.reportQty,
sfdcApproveQty: this.itemData.qualifiedQty,
sfdcProdTime: this.itemData.produceTime,
sfdcDownTime: this.itemData.downtime,
startTime: this.itemData.startTime,
tillTime: this.itemData.finishTime,
remark: this.itemData.remark,
defectedQty: this.itemData.qualifiedNotQty,
operatorId: this.itemData.operator,
currentTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'),
scheduledDate: this.pageData.scheduleDate,
shiftNo: this.pageData.shiftNo,
sfdcSetupTime: 0,
sfdcSetupDownTime: 0,
sfdcProdSetupTime: 0,
sfdcManufactureTime: Number(this.itemData.produceTime)+Number(this.itemData.downtime)
}
saveYieldReport(reportDto).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
} else {
this.$message.warning(data.msg)
}
})
},
//
getBaseList(val) {
this.tagNo = val
this.$nextTick(() => {
let query = this.itemData.operator
this.$refs.baseList.init(val, query)
})
},
//
getBaseData(val) {
this.itemData.operator = val.OperatorID
this.itemData.operatorName = val.OperatorName
this.pageData.resourceId = val.OperatorID
this.getScheduleShiftFlag()
},
//
getScheduleShiftFlag() {
getScheduleShiftData(this.pageData).then(({data}) => {
let specialAuth = 'N';
//
if (data.code == 500) {
this.pageData.shiftDesc = '无班次';//
this.pageData.scheduledDate = '';//
this.pageData.shiftNo = '';
} else {
this.pageData.shiftDesc = data.row.shiftDesc;//
this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//
this.pageData.shiftNo = data.row.shiftNo;
//
specialAuth = data.row.specialAuth;
}
//
if ("Y" === specialAuth) {
this.buttonTags.selectShiftFlag = false;
} else {
this.buttonTags.selectShiftFlag = true;
}
});
},
/*打开班次选择页面*/
selectSchduleShiftModal() {
//1.
//checkProduceButton('produceMaterialFlag');
//
this.$nextTick(() => {
this.showShiftFlag = true;
this.$refs.comSelectShift.init(this.pageData);
});
},
/*修改页面的班次和排产的时间*/
initScheduleShift(scheduleDate, shiftDesc, username) {
//
this.pageData.scheduledDate = scheduleDate.substring(0, 10);
this.pageData.shiftDesc = shiftDesc;
this.pageData.shiftNo = shiftDesc;
this.pageData.remark = username + "更改了班次."
},
},
created() {
this.getScheduleShiftFlag()
}
}
</script>
<style scoped lang="scss">
/*统一的input内容颜色样式*/
.customer-input-color-red /deep/ .el-input__inner {
color: red;
}
.customer-fieldset /deep/ .el-input--prefix .el-input__inner {
padding-left: 20px;
}
.customer-fieldset /deep/ .el-input__prefix {
left: 0px;
}
</style>

253
src/views/modules/shopOrder/productionReport/searchItemToBeProduct.vue

@ -1,75 +1,119 @@
<template>
<div class="mod-config">
<el-row>
<el-col :span="24">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item>
<el-button @click="getData()" type="primary" style="margin-left: 2px;margin-top: 0px">{{ '查询' }}</el-button>
<download-excel
:fields="fields()"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
:before-generate="startDownload"
:before-finish="finishDownload"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ buttons.download }}
</download-excel>
</el-form-item>
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item >
<span slot="label" style="" @click="getBaseList(18)"><a herf="#">工厂编码</a></span>
<el-input v-model="searchData.site" style="width: 80px"></el-input>
</el-form-item>
<el-form-item :label="'生产订单号:'">
<el-input v-model="searchData.orderNo" style="width: 130px"></el-input>
</el-form-item>
<el-form-item >
<span slot="label" style="" @click="getBaseList(24)"><a herf="#">加工中心编码</a></span>
<el-input v-model="searchData.workCenterNo" style="width: 130px"></el-input>
<el-button @click="getData()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'查询'}}</el-button>
<download-excel
:fields="fields()"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
:before-generate="startDownload"
:before-finish="finishDownload"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ buttons.download }}
</download-excel>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed"
:width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item>
<span slot="label" style="" @click="getBaseList(18)"> <el-link type="primary">工厂编码</el-link></span>
<el-input v-model="searchData.site" style="width: 80px"></el-input>
</el-form-item>
<el-form-item :label="'生产订单号:'">
<el-input v-model="searchData.orderNo" style="width: 130px"></el-input>
</el-form-item>
<el-form-item>
<span slot="label" style="" @click="getBaseList(24)"><el-link type="primary" @click="getBaseList(24)">加工中心编码</el-link></span>
<el-input v-model="searchData.workCenterNo" style="width: 130px"></el-input>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form :inline="true">
<el-form-item label="查询结果">
<el-dropdown trigger="click" style="margin-top: 3px" class="customer-dropdown" @command="handleCommand">
<el-button type="primary">
主菜单<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item class="customer-li" :disabled="showFlag" command="0"><span>产量报告</span>
</el-dropdown-item>
<hr>
<el-dropdown-item class="customer-li" :disabled="showFlag" command="1"><span>产量查询</span>
</el-dropdown-item>
<el-divider></el-divider>
</el-dropdown-menu>
</el-dropdown>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-table
:height="height"
:data="dataList"
border
highlight-current-row
@current-change="handleCurrentChange"
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed"
:width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
<ProductionLineYieldReport ref="productionLineYieldReport" @getBaseData="getBaseData"></ProductionLineYieldReport>
</div>
</template>
<script>
import {
searchItemToBeProduct
} from "@/api/shopOrder/productionReport.js"
import Chooselist from '@/views/modules/common/Chooselist'
import ProductionLineYieldReport from './common/productionLineYieldReport'
export default {
//-
name: "searchItemToBeProduct",
components: {
Chooselist
Chooselist,
ProductionLineYieldReport
},
watch: {
searchData: {
@ -78,31 +122,41 @@
this.searchData.orderNo = this.searchData.orderNo.toUpperCase()
this.searchData.workCenterNo = this.searchData.workCenterNo.toUpperCase()
}
},
selectRow:{
deep: true,
handler: function (newV, oldV) {
if (newV == null){
this.showFlag = true
}
}
}
},
data() {
return {
tagNo:'',
tagNo: '',
showFlag: true,
selectRow: {},
// start
exportData: [],
exportName: "待生产工序"+this.dayjs().format('YYYYMMDDHHmmss'),
exportName: "待生产工序" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["待生产工序"],
exportFooter: [],
// end
height: 200,
modelFlag:false,
modelInputFlag:true,
selectList:[],
modelFlag: false,
modelInputFlag: true,
selectList: [],
searchData: {
site:'',
orderNo:'',
workCenterNo:'',
user:this.$store.state.user.name
site: '',
orderNo: '',
workCenterNo: '',
user: this.$store.state.user.name
},
dataList:[],
dataList: [],
dataListLoading: false,
buttons:{
download:'导出',
buttons: {
download: '导出',
},
columnList: [
{
@ -884,33 +938,62 @@
},
mounted() {
this.$nextTick(() => {
this.height = window.innerHeight - 150;
this.height = window.innerHeight - 160;
})
},
methods: {
getBaseData(val){
if (this.tagNo === 18){
//
handleCommand(command) {
if (!this.selectRow){
this.$message.warning('请选择工序')
return
}
switch (command) {
case '0':
this.productionLineYieldReport()
break
case '1':
break
}
},
// 线
productionLineYieldReport() {
let row = JSON.parse(JSON.stringify(this.selectRow))
this.$nextTick(() => {
this.$refs.productionLineYieldReport.init( row )
})
},
//
handleCurrentChange(val) {
if (!val) return
this.showFlag = false
this.selectRow = val
},
getBaseData(val) {
if (this.tagNo === 18) {
this.searchData.site = val.Site
}
if (this.tagNo === 24){
if (this.tagNo === 24) {
this.searchData.workCenterNo = val.WorkCenterNo
}
},
//
getBaseList(val){
getBaseList(val) {
this.tagNo = val
this.$nextTick(() => {
let strVal = "";
if (val === 18){
if (val === 18) {
strVal = this.searchData.site
}
if (val === 24){
if (val === 24) {
strVal = this.searchData.workCenterNo
}
this.$refs.baseList.init(val,strVal)
this.$refs.baseList.init(val, strVal)
})
},
getData(){
getData() {
this.selectRow = null
searchItemToBeProduct(this.searchData).then(({data}) => {
this.dataList = data.rows
})
@ -950,8 +1033,26 @@
}
</script>
<style >
<style scoped lang="scss">
.el-textarea__inner {
padding: 5px 5px;
}
.el-dropdown-menu--medium .el-dropdown-menu__item {
line-height: 18px;
padding: 0 17px;
font-size: 12px;
}
hr {
margin-top: 0px;
width: 95%;
}
.el-dropdown-link {
cursor: pointer;
color: #409EFF;
}
</style>

631
src/views/modules/shopOrder/shopOrder/common/routing.vue

@ -0,0 +1,631 @@
<template>
<div class="mod-config">
<el-dialog
v-drag
@close="closeDialog"
width="880px"
:title="'生产订单-工艺路线维护'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-row>
<el-col :span="24">
<el-button @click="routAddAndEdit(0)" type="primary" style="margin-left: 2px;margin-top: 0px">{{ '新增' }}
</el-button>
<el-button @click="routAddAndEdit(1)" :disabled="disabledFlag" type="primary"
style="margin-left: 2px;margin-top: 0px">{{ '修改' }}
</el-button>
<el-button @click="removeRouteInShopOrder" :disabled="disabledFlag" type="primary"
style="margin-left: 2px;margin-top: 0px">{{ '删除' }}
</el-button>
<el-button @click="copyRouting()" :disabled="disabledFlag" type="primary"
style="margin-left: 2px;margin-top: 0px">{{ '复制' }}
</el-button>
</el-col>
</el-row>
<el-row>
<el-col style="margin-top: -5px" :span="24">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="'订单号'">
<el-input class="customer-input-color-red" disabled v-model="itemData.orderNo"></el-input>
</el-form-item>
<el-form-item :label="'物料编码'">
<el-input class="customer-input-color-red" disabled v-model="itemData.partNo"></el-input>
</el-form-item>
<el-form-item :label="'物料名称/规格'">
<el-input class="customer-input-color-red" disabled style="width: 260px"
v-model="itemData.partDesc"></el-input>
</el-form-item>
<el-form-item :label="'工厂编号'">
<el-input class="customer-input-color-red" disabled style="width: 80px"
v-model="itemData.site"></el-input>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-table
ref="routingTable"
:height="height"
:data="dataList"
highlight-current-row
@current-change="handleCurrentChange"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed"
:width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</el-dialog>
<RoutingAddAndEdit ref="routingAddAndEdit" @searchRouteInShopOrder="searchRouteInShopOrder"></RoutingAddAndEdit>
</div>
</template>
<script>
import {
getRouteInShopOrder,
deleteRouteInShopOrder,
insertRouteInShopOrder,
getOrderNoRouteInMaxItemNo
} from "@/api/shopOrder/shopOrder.js"
import RoutingAddAndEdit from './routingAddAndEdit'
export default {
components: {
RoutingAddAndEdit
},
data() {
return {
visible: false,
height: 350,
dataListLoading: false,
disabledFlag: true,
columnList: [
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableItemNo',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "itemNo",
headerAlign: "center",
align: "left",
columnLabel: "序号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 40
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableOperationDesc',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "operationDesc",
headerAlign: "center",
align: "left",
columnLabel: "工序名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableWorkCenterNo',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "workCenterNo",
headerAlign: "center",
align: "left",
columnLabel: "加工中心",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableWorkCenterDesc',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "workCenterDesc",
headerAlign: "center",
align: "left",
columnLabel: "加工中心名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableMachSetupTime',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "machSetupTime",
headerAlign: "center",
align: "right",
columnLabel: "准备时间",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableMachRunFactor',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "machRunFactor",
headerAlign: "center",
align: "right",
columnLabel: "单位产出量",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableFactorUnit',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "factorUnit",
headerAlign: "center",
align: "left",
columnLabel: "产出单位",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableTimeRequired',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "timeRequired",
headerAlign: "center",
align: "right",
columnLabel: "需求时间",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableTimeReported',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "timeReported",
headerAlign: "center",
align: "right",
columnLabel: "报告时间",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableEfficiency',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "efficiency",
headerAlign: "center",
align: "right",
columnLabel: "效率",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableQtyRequired',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "qtyRequired",
headerAlign: "center",
align: "right",
columnLabel: "需求数量",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableQtyReported',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "qtyReported",
headerAlign: "center",
align: "right",
columnLabel: "报告数量",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableQtyApprove',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "qtyApprove",
headerAlign: "center",
align: "right",
columnLabel: "合格数量",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TablePlanStartTime',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "planStartTime",
headerAlign: "center",
align: "left",
columnLabel: "计划开工时间",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 140
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TablePlanFinishTime',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "planFinishTime",
headerAlign: "center",
align: "left",
columnLabel: "计划完工时间",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 140
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableBarcodeID',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "barcodeID",
headerAlign: "center",
align: "left",
columnLabel: "条形码",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 150
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableRemark',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "remark",
headerAlign: "center",
align: "left",
columnLabel: "备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableClosedFlag',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "closedFlag",
headerAlign: "center",
align: "left",
columnLabel: "是否关闭",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableActionNotes',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "actionNotes",
headerAlign: "center",
align: "left",
columnLabel: "打开/关闭备忘",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 200
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableWorkCenterType',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "workCenterType",
headerAlign: "center",
align: "left",
columnLabel: "加工中心类型",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 6031,
serialNumber: '6031TableAvailResource',
tableId: "6031Table",
tableName: "生产订单工艺路线表",
columnProp: "availResource",
headerAlign: "center",
align: "left",
columnLabel: "可用机台",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false,
columnWidth: 200
},
],
dataList: [],
itemData: {
orderNo: '',
partNo: '',
partDesc: '',
site: '',
lotSize: 0
},
selectRow: null
}
},
watch: {
selectRow: {
deep: true,
handler: function (newV, oldV) {
if (newV == null) {
this.disabledFlag = true
} else {
this.disabledFlag = false
}
}
}
},
methods: {
init(modelData) {
this.visible = true
this.itemData = modelData
this.searchRouteInShopOrder()
},
//
routAddAndEdit(val) {
this.$nextTick(() => {
if (val == 1) {
this.selectRow.lotSize = this.itemData.lotSize
this.$refs.routingAddAndEdit.init(JSON.parse(JSON.stringify(this.selectRow)), 1)
} else {
let selectRow = {
actionNotes: null,
availResource: '',
barcodeID: '',
closedFlag: 'N',
crewsize: 1,
efficiency: 100,
factorUnit: '',
factorUnit_DB: null,
itemNo: null,
machRunFactor: 0,
machSetupTime: 0.0,
operationDesc: '',
orderNo: this.itemData.orderNo,
partNo: this.itemData.partNo,
planFinishTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'),
planStartTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'),
qtyApprove: 0,
qtyReported: 0,
qtyRequired: 0,
remark: null,
site: this.itemData.site,
timeReported: 0.0,
timeRequired: 0.0,
workCenterDesc: '',
workCenterNo: '',
workCenterType: '',
lotSize: this.itemData.lotSize,
}
this.$refs.routingAddAndEdit.init(JSON.parse(JSON.stringify(selectRow)), 0)
}
})
},
//
searchRouteInShopOrder() {
getRouteInShopOrder(this.itemData).then(({data}) => {
if (data.code == 0) {
this.dataList = data.dataList
}
})
},
//
removeRouteInShopOrder() {
this.$confirm('确认删除该工序?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteRouteInShopOrder(this.selectRow).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
this.searchRouteInShopOrder()
} else {
this.$message.warning(data.msg)
}
})
})
},
//
copyRouting() {
//
getOrderNoRouteInMaxItemNo(this.itemData).then(({data}) => {
if (data.code == 0) {
let maxItem = JSON.parse(JSON.stringify(this.selectRow))
maxItem.itemNo = Number(data.data) + 10
//
this.addRouteInShopOrder(maxItem)
}
})
},
//
addRouteInShopOrder(val) {
insertRouteInShopOrder(val).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
this.searchRouteInShopOrder()
} else {
this.$message.warning(data.msg)
}
})
},
handleCurrentChange(val) {
this.selectRow = val
},
closeDialog() {
this.$nextTick(() => {
this.$emit('tableHanddle', this.itemData)
Object.assign(this.$data, this.$options.data.call(this));
})
}
},
created() {
}
}
</script>
<style scoped>
.mod-config /deep/ .el-card__header {
padding: 0px 2px;
font-size: 12px;
}
/*统一的input内容颜色样式*/
.customer-input-color-red /deep/ .el-input__inner {
color: red;
}
.mod-config /deep/ .el-form-item--medium .el-form-item__content {
height: 20px;
line-height: 20px;
}
</style>

376
src/views/modules/shopOrder/shopOrder/common/routingAddAndEdit.vue

@ -0,0 +1,376 @@
<template>
<div class="mod-config">
<el-dialog
v-drag
@close="closeDialog"
width="690px"
class="sxm"
:title="selectRow.itemNo?'编辑工序信息':'新增工序信息'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
<el-row>
<el-col :span="24">
<el-form-item :label="'工序号:'">
<el-input oninput="value=value.replace(/[^0-9]/g,'')" :class="itemNoFlag?'customer-input-color-red':''" v-model="selectRow.itemNo"
:disabled="itemNoFlag"
style="width: 150px;text-align: right"
type="number"></el-input>
</el-form-item>
<el-form-item :label="'工序名称:'">
<el-input v-model="selectRow.operationDesc" style="width: 150px"></el-input>
</el-form-item>
<el-form-item>
<span slot="label" style="" @click="getBaseList(24,0)"><a herf="#">加工中心编码</a></span>
<el-input @input="searchWorkCenterInfo()" v-model="selectRow.workCenterNo"
style="width: 100px"></el-input>
<el-input v-model="selectRow.workCenterType" class="customer-input-color-red" disabled
style="width: 46px"></el-input>
</el-form-item>
<el-form-item>
<span slot="label" style="">加工中心名称</span>
<el-input v-model="selectRow.workCenterDesc" class="customer-input-color-red" disabled
style="width: 150px"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="'准备时间:'">
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="selectRow.machSetupTime"
style="width: 150px"></el-input>
</el-form-item>
<el-form-item :label="'单位产出量:'">
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="selectRow.machRunFactor" type="number"
style="width: 150px"></el-input>
</el-form-item>
<el-form-item :label="'产出单位:'">
<el-select filterable v-model="selectRow.factorUnit" style="width: 150px">
<el-option label="单位/小时" value="单位/小时"></el-option>
<el-option label="小时" value="小时"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="'效率:'">
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="selectRow.efficiency"
style="width: 150px">
<span slot="suffix">%</span>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="'需求时间:'">
<el-input class="customer-input-color-red" disabled v-model="selectRow.timeRequired"
style="width: 150px"></el-input>
</el-form-item>
<el-form-item :label="'计划完工时间:'">
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" v-model="selectRow.planFinishTime" style="width: 150px"></el-date-picker>
</el-form-item>
<el-form-item :label="'计划开工时间:'">
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" v-model="selectRow.planStartTime" style="width: 150px"></el-date-picker>
</el-form-item>
<el-form-item :label="'操作工人数:'">
<el-input oninput="value=value.replace(/[^0-9]/g,'')" v-model="selectRow.crewsize" type="number"
style="width: 150px"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="'备注:'">
<el-input v-model="selectRow.remark" style="width: 150px"></el-input>
</el-form-item>
<el-form-item :label="'可用机台:'">
<el-input v-model="selectRow.availResource" class="customer-input-color-red" disabled
style="width: 478px"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveOrEdit">保存</el-button>
<el-button type="primary" @click="visible = false">关闭</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import {
getRouteInShopOrder,
insertRouteInShopOrder,
updateRouteInShopOrder,
getRoutingTimeRequired,
getWorkCenterInfo,
getOrderNoRouteInMaxItemNo,
getOrderNoItemNoCenter
} from "@/api/shopOrder/shopOrder.js"
import Chooselist from '@/views/modules/common/Chooselist'
import {debounce, throttle} from "../../../../../utils/common";
export default {
components: {
Chooselist
},
data() {
return {
visible: false,
itemNoFlag: true,
selectRow: {
actionNotes: null,
availResource: '',
barcodeID: '',
closedFlag: '',
crewsize: 1,
efficiency: 80,
factorUnit: '',
factorUnit_DB: null,
itemNo: null,
machRunFactor: 0,
machSetupTime: 0.0,
operationDesc: '',
orderNo: '',
partNo: '',
planFinishTime: '',
planStartTime: '',
qtyApprove: 0,
qtyReported: 0,
qtyRequired: 0,
remark: null,
site: '',
timeReported: 0.0,
timeRequired: 0.0,
workCenterDesc: '',
workCenterNo: '',
workCenterType: "内部",
lotSize: 0
}
}
},
watch: {
selectRow: {
deep: true,
handler: function (newV, oldV) {
this.getTimeRequired()
}
}
},
methods: {
init(selectRow, operationType) {
this.visible = true
this.selectRow = Object.assign(this.selectRow, selectRow);
if (operationType == 1) {
this.itemNoFlag = true
} else {
this.itemNoFlag = false
this.searchOrderNoRouteInMaxItemNo()
}
},
//
getTimeRequired() {
let dto = {
site:this.selectRow.site,
lotSize:this.selectRow.lotSize,
machSetupTime:this.selectRow.machSetupTime,
factorUnit:this.selectRow.factorUnit,
efficiency:this.selectRow.efficiency,
}
getRoutingTimeRequired(this.selectRow).then(({data}) => {
if (data.code == 0) {
this.selectRow.timeRequired = data.data
}
})
},
// ,
searchOrderNoRouteInMaxItemNo() {
let order = {
orderNo: this.selectRow.orderNo,
site: this.selectRow.site,
}
//
getOrderNoRouteInMaxItemNo(order).then(({data}) => {
if (data.code == 0) {
this.selectRow.itemNo = Number(data.data)+10
getOrderNoItemNoCenter( this.selectRow).then(({data})=>{
this.selectRow.availResource = data.data
})
}
})
},
//
saveOrEdit() {
if (!this.selectRow.itemNo) {
this.$message.warning('工序号不能为空!')
return
}
if (!this.selectRow.operationDesc) {
this.$message.warning('工序号名称不能为空!')
return
}
if (!this.selectRow.workCenterNo) {
this.$message.warning('加工中心编码不能为空!')
return
}
if (!this.selectRow.machSetupTime) {
this.$message.warning('准备时间不能为空!')
return
}
if (!this.selectRow.factorUnit) {
this.$message.warning('请选择产出单位!')
return
}
if (!this.selectRow.efficiency) {
this.$message.warning('效率不能为空!')
return
}
if (!this.selectRow.timeRequired) {
this.$message.warning('需求时间不能为空!')
return
}
if (!this.selectRow.planFinishTime) {
this.$message.warning('计划完工时间不能为空!')
return
} if (!this.selectRow.planStartTime) {
this.$message.warning('计划开工时间不能为空!')
return
}
if (this.selectRow.planFinishTime>this.selectRow.planStartTime){
this.$message.warning('计划开工时间不能早于计划完工时间!')
return
}
let centerInfo = {
workCenterNo: this.selectRow.workCenterNo,
active: 'Y',
site: this.$store.state.user.site
}
//
getWorkCenterInfo(centerInfo).then(({data}) => {
// itemNoFlag = true false
if (data.code == 0) {
if (this.itemNoFlag) {
updateRouteInShopOrder(this.selectRow).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
this.visible = false
} else {
this.$message.warning(data.msg)
}
})
} else {
this.selectRow.timeRequired = this.selectRow.lotSize
let barcodeID = '0000'+this.selectRow.itemNo
this.selectRow.barcodeID = this.selectRow.site+'-00000'+this.selectRow.orderNo+"-"+barcodeID.slice(-4)
insertRouteInShopOrder(this.selectRow).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
this.visible = false
} else {
this.$message.warning(data.msg)
}
})
}
} else {
this.$message.warning(data.msg)
}
})
},
//
searchRouteInShopOrder() {
getRouteInShopOrder(this.itemData).then(({data}) => {
if (data.code == 0) {
this.selectRow = data.dataList[0]
}
})
},
//
addRouteInShopOrder(val) {
insertRouteInShopOrder(val).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
this.searchRouteInShopOrder()
} else {
this.$message.warning(data.msg)
}
})
},
handleCurrentChange(val) {
this.selectRow = val
},
getBaseData(val) {
if (this.tagNo === 24) {
this.selectRow.workCenterNo = val.WorkCenterNo
}
this.searchWorkCenterInfo()
},
//
searchWorkCenterInfo: debounce(function () {
let centerInfo = {
workCenterNo: this.selectRow.workCenterNo,
active: 'Y',
site: this.$store.state.user.site
}
getWorkCenterInfo(centerInfo).then(({data}) => {
if (data.code == 0) {
this.selectRow.workCenterType = data.data.workCenterType
this.selectRow.workCenterNo = data.data.workCenterNo
this.selectRow.workCenterDesc = data.data.workCenterDesc
} else {
this.selectRow.workCenterNo = ''
this.selectRow.workCenterDesc = ''
}
})
}, 1000),
//
getBaseList(val, val2) {
this.tagNo = val
this.tagNo2 = val2
this.$nextTick(() => {
let strVal = "";
if (val === 24) {
strVal = this.selectRow.workCenterNo
}
this.$refs.baseList.init(val, strVal)
})
},
closeDialog() {
this.$nextTick(() => {
this.$emit('searchRouteInShopOrder')
Object.assign(this.$data, this.$options.data.call(this));
})
}
},
created() {
}
}
</script>
<style scoped>
.mod-config /deep/ .el-card__header {
padding: 0px 2px;
font-size: 12px;
}
.mod-config /deep/ .el-form-item--medium .el-form-item__content {
height: 20px;
line-height: 20px;
}
.customer-input-color-red /deep/ .el-input__inner {
color: red;
}
.sxm /deep/ .el-input--prefix .el-input__inner {
padding-left: 20px;
}
.sxm /deep/ .el-input__prefix {
left: 0px;
}
</style>

3590
src/views/modules/shopOrder/shopOrder/shopOrder.vue
File diff suppressed because it is too large
View File

6
src/views/modules/sys/language/common.vue

@ -1,5 +1,5 @@
<template>
<div class="hello">
<div class="hello">
<el-row>
<el-col :span="24">
@ -699,7 +699,7 @@ export default {
let sumColumnList = this.columnList.concat(this.columnList1);
sumColumnList = sumColumnList.map(item => {
return item = {
tableId: item.tableId,
tableId: item.tableId,
tableName: item.tableName,
columnProp: item.columnProp,
columnLabel: item.columnLabel,
@ -740,7 +740,7 @@ export default {
// this.showDefault = false
this.columnList = data.rows
} else {
// this.showDefault = true
// this.showDefault = true
}
})
},

4
src/views/modules/sys/user.vue

@ -444,7 +444,7 @@ export default {
})
},
//
getDataList :throttle( function () {
getDataList: throttle(function () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/sys/user/list'),
@ -464,7 +464,7 @@ export default {
}
this.dataListLoading = false
})
},1000),
}, 1000),
//
sizeChangeHandle(val) {
this.pageSize = val

Loading…
Cancel
Save