1.存货绑定工艺路线绑定显示优化2.生成工单修改优化
| | |
| | | |
| | | # 文件下载地址 下载数据模板地址 |
| | | # 本地服务器 |
| | | VUE_APP_BASE_API_FILE = 'http://192.168.1.21:9000/' |
| | | VUE_APP_BASE_API_FILE = 'http://121.196.36.24:8049/' |
| | | |
| | | # 客户 优步 |
| | | # VUE_APP_BASE_API_FILE = 'http://192.168.0.120:8000/' |
| | |
| | | "dependencies": { |
| | | "@jiaminghi/data-view": "^2.10.0", |
| | | "@microsoft/signalr": "^7.0.9", |
| | | "@vue-office/pdf": "^2.0.10", |
| | | "@vue/composition-api": "^1.7.2", |
| | | "array-to-tree": "^3.3.2", |
| | | "axios": "0.18.1", |
| | | "core-js": "3.6.5", |
| | |
| | | "vue-count-to": "^1.0.13", |
| | | "vue-cron": "^1.0.9", |
| | | "vue-cron-editor-buefy": "^0.2.17", |
| | | "vue-demi": "^0.14.10", |
| | | "vue-easy-print": "0.0.8", |
| | | "vue-pdf": "^4.3.0", |
| | | "vue-print-nb": "^1.7.5", |
| | | "vue-router": "3.0.6", |
| | | "vue-splitpane": "^1.0.6", |
| | | "vue-webview": "0.0.34", |
| | | "vuedraggable": "^2.24.3", |
| | | "xlsx": "0.14.1" |
| | | }, |
| | |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="islastreport" |
| | | label="是否末道报工" |
| | | label="是否只显示末道" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | |
| | | }} |
| | | </div> |
| | | <el-divider /> |
| | | <div style="margin-bottom: 10px"> |
| | | <div style="margin-bottom: 10px;display: flex;align-items: center"> |
| | | <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 工艺路线集合 |
| | | <el-input v-model="filterRoute" style="width: 200px;margin-left: 10px;" placeholder="请输入工艺路线进行过滤" @input="filterRouteChange" /> |
| | | |
| | | </div> |
| | | |
| | | <div class="myCheckboxGroup"> |
| | |
| | | <div style="width:calc(100% - 460px)"> |
| | | <div style="margin-bottom: 10px"> |
| | | <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 工艺路线集合 |
| | | <el-input v-model="filterRoute" style="width: 200px;margin-left: 10px;" placeholder="请输入工艺路线进行过滤" @input="filterRouteChange2" /> |
| | | </div> |
| | | |
| | | <div class="myCheckboxGroup"> |
| | |
| | | batchRouteDataSelectedIndex: 0, // 左侧产品选中值 带出右侧工艺路线 |
| | | |
| | | dialogVisibleBatchStep: false, |
| | | batchStepSelectedValue: [] |
| | | batchStepSelectedValue: [], |
| | | |
| | | filterRoute: '', |
| | | routeOperationArrTemp: [] |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | this.getSelectApi() |
| | | }, |
| | | methods: { |
| | | filterRouteChange(val) { |
| | | this.dialogFormRoute.routeOperationArr = this.routeOperationArrTemp.filter(i => i.name.includes(val)) |
| | | }, |
| | | filterRouteChange2(val) { |
| | | this.batchRouteDataSelected = this.routeOperationArrTemp.filter(i => i.routename.includes(val)) |
| | | }, |
| | | |
| | | // 工艺点击 ,按工序走 |
| | | async routeClick2(row) { |
| | | this.dialogVisibleStep = true |
| | |
| | | if (this.mesSetting.route) { // 按工艺路线 |
| | | this.batchRouteData = res.data |
| | | this.batchRouteDataSelected = this.batchRouteData[0].children |
| | | this.routeOperationArrTemp = this.batchRouteData[0].children |
| | | this.batchRouteDataSelectedIndex = 0 |
| | | this.batchRouteData[this.batchRouteDataSelectedIndex].children.forEach((item, index) => { |
| | | item.isSelected1 = false |
| | |
| | | this.defaultroute_code = '' |
| | | this.defaultroute_codeArr = [] |
| | | this.batchRouteData = [] |
| | | this.filterRoute = '' |
| | | }, |
| | | partcodeSelected(val, index) { |
| | | this.batchRouteDataSelected = val.children |
| | | this.batchRouteDataSelected = val.children.filter(i => i.routename.includes(this.filterRoute)) |
| | | this.batchRouteDataSelectedIndex = index |
| | | this.batchRouteData[this.batchRouteDataSelectedIndex].children.forEach((item, index) => { |
| | | item.isSelected1 = false |
| | |
| | | loading.close() |
| | | this.dialogVisibleRoute = true |
| | | this.dialogFormRoute.routeOperationArr = res.data |
| | | this.routeOperationArrTemp = res.data |
| | | // let waitFlag = false// 回显等待是否放行 |
| | | |
| | | this.dialogFormRoute.routeOperationArr.forEach((item, index) => { |
| | |
| | | handleCloseRoute() { |
| | | this.dialogFormRoute.routeOperationArr = [] |
| | | this.defaultroute_codeArr = [] |
| | | this.filterRoute = '' |
| | | }, |
| | | // 取消 |
| | | routeDialogVisibleCancel() { |
| | |
| | | .myCheckboxGroup { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | max-height: 200px; |
| | | overflow: auto; |
| | | |
| | | .myCheckbox { |
| | | //border: 1px solid $main_color; |
| | |
| | | saleOrderDeliveryDate: '', // 预计交付日期 |
| | | |
| | | paystartdate: '', // 预计开工日期 |
| | | payenddate: ''// 预计完工日期 |
| | | payenddate: '', // 预计完工日期 |
| | | islastreport: '' |
| | | }, |
| | | operation: '', |
| | | dialogFormRules: { |
| | |
| | | data.push({ |
| | | 'erporderid': i.id, |
| | | 'sbid': i.sbid, |
| | | 'islastreport': i.islastreport, |
| | | 'erpordercode': i.wo, |
| | | 'partcode': i.partcode, |
| | | 'wkshopcode': i.wkshp_code, |
| | |
| | | |
| | | this.$nextTick(() => { |
| | | this.dialogForm.sbid = row.sbid |
| | | this.dialogForm.islastreport = row.islastreport |
| | | this.dialogForm.erporderid = row.id |
| | | this.dialogForm.erpordercode = row.wo |
| | | this.dialogForm.saleordercode = row.saleOrderCode |
| | |
| | | this.dialogForm = { |
| | | erporderid: '', // 订单id |
| | | sbid: '', // 订单明细id |
| | | islastreport: '', // |
| | | erpordercode: '', // 订单编号 |
| | | saleordercode: '', // 销售订单 |
| | | |
| | |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | const data = { |
| | | 'sbid': this.dialogForm.sbid, |
| | | 'islastreport': this.dialogForm.islastreport, |
| | | 'erporderid': this.dialogForm.erporderid, |
| | | 'erpordercode': this.dialogForm.erpordercode, |
| | | 'saleordercode': this.dialogForm.saleordercode, |
| | |
| | | show-tooltip-when-overflow |
| | | prop="delive_qty" |
| | | /> |
| | | <!-- <el-table-column--> |
| | | <!-- label="操作"--> |
| | | <!-- width="120"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div class="operationClass">--> |
| | | <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="SOP预览" placement="top">--> |
| | | <!-- <i--> |
| | | <!-- v-if="mesSetting.tech"--> |
| | | <!-- class="el-icon-files"--> |
| | | <!-- style="cursor: pointer;color:#42b983;margin-right: 15px"--> |
| | | <!-- @click="pre(row,2)"--> |
| | | <!-- />--> |
| | | <!-- </el-tooltip>--> |
| | | <!-- </div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | label="操作" |
| | | width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-tooltip v-del-tab-index class="item" effect="dark" content="SOP预览" placement="top"> |
| | | <i |
| | | v-if="mesSetting.tech" |
| | | class="el-icon-files" |
| | | style="cursor: pointer;color:#42b983;margin-right: 15px" |
| | | @click="pre(row,2)" |
| | | /> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | |
| | | const flag2 = [] |
| | | const data = [] |
| | | this.formData3.forEach((i, index) => { |
| | | const islastreport = this.wkshopcodeArr.find(j => j.torg_code === i.wkshopcode).islastreport |
| | | const workListSub = [] |
| | | if (i.stepTableData.length > 0) { |
| | | i.stepTableData.forEach((it, j) => { |
| | |
| | | isbott: j === 0 ? 'Y' : 'N', |
| | | isend: j === i.stepTableData.length - 1 ? 'Y' : 'N', |
| | | ratio: it.ratio, |
| | | sumqty: it.sumqty |
| | | sumqty: it.sumqty, |
| | | isShow: islastreport === 'N' ? 'Y' : (j === i.stepTableData.length - 1 ? 'Y' : 'N') |
| | | } |
| | | ) |
| | | }) |
| | | console.log(JSON.parse(JSON.stringify(workListSub))) |
| | | |
| | | if (this.mesSetting.isOrder) { |
| | | const f = workListSub.every((item, index, array) => { |
| | |
| | | if (this.mesSetting.route && !this.dialogForm.routecode) { |
| | | return this.$message.error('请选择工艺路线!') |
| | | } |
| | | |
| | | const islastreport = this.wkshopcodeArr.find(i => i.torg_code === this.dialogForm.wkshopcode).islastreport |
| | | |
| | | // console.log(islastreport === 'N', islastreport) |
| | | const workListSub = [] |
| | | this.stepTableData.forEach((i, j) => { |
| | | workListSub.push( |
| | |
| | | isbott: j === 0 ? 'Y' : 'N', |
| | | isend: j === this.stepTableData.length - 1 ? 'Y' : 'N', |
| | | ratio: i.ratio, |
| | | sumqty: i.sumqty |
| | | sumqty: i.sumqty, |
| | | isShow: islastreport === 'N' ? 'Y' : (j === this.stepTableData.length - 1 ? 'Y' : 'N') |
| | | } |
| | | ) |
| | | }) |
| | |
| | | return this.$message.error('有序报工情况下,超报比例后道工序不能大于前道工序!') |
| | | } |
| | | } |
| | | console.log(isNaN(this.dialogForm.mesqty - this.dialogForm.mesqtyinit)) |
| | | // console.log(isNaN(this.dialogForm.mesqty - this.dialogForm.mesqtyinit)) |
| | | const data = { |
| | | wostatus: this.dialogForm.mesorderstus, // 工单状态 |
| | | wocode: this.dialogForm.mesordercode, // 工单号 |
| | |
| | | routecode: this.dialogForm.routecode, |
| | | workListSub |
| | | } |
| | | |
| | | // console.log(JSON.parse(JSON.stringify(data))) |
| | | |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | AddUpdateMesOrder(data, this.operation === 'add' ? 'Add' : 'Update').then(res => { |
| | |
| | | MesOrderPrintSearch(data2).then(res2 => { |
| | | if (res2.code === '200') { |
| | | this.dialogVisibleApprove = true |
| | | let res3 = [] |
| | | if (row.islastreport === 'Y') { |
| | | res3 = res2.data.recordset.filter(i => i.isshow === 'Y') |
| | | } else { |
| | | res3 = res2.data.recordset |
| | | } |
| | | |
| | | const res3 = res2.data.recordset |
| | | // this.tableDataPrint = res3 |
| | | this.tableDataPrint = this.chunkArray(res3, 8) |
| | | |
| | |
| | | data_sources: row.data_sources |
| | | } |
| | | const { data: res } = await UpdateMesOrderStepSearch(data) |
| | | |
| | | if (row.islastreport === 'Y') { |
| | | this.tableDataDetail = res.stepdata.filter(i => i.isend === 'Y') |
| | | } else { |
| | | this.tableDataDetail = res.stepdata |
| | | } |
| | | // if (row.islastreport === 'Y') { |
| | | // this.tableDataDetail = res.stepdata.filter(i => i.isend === 'Y') |
| | | // } else { |
| | | // this.tableDataDetail = res.stepdata |
| | | // } |
| | | }, |
| | | // 工序删除 |
| | | stepDel(row) { |
| | |
| | | $main_color: #42b983; |
| | | |
| | | .stepSelectedValueClass { |
| | | ::v-deep input { |
| | | //min-height: 34px !important; |
| | | height: 68px !important; |
| | | //::v-deep input { |
| | | // //min-height: 34px !important; |
| | | // height: 98px !important; |
| | | //} |
| | | |
| | | ::v-deep .el-input__inner{ |
| | | height: 120px!important; |
| | | } |
| | | |
| | | ::v-deep .el-select__tags>span{ |
| | | display: flex ; |
| | | align-items: center; |
| | | justify-content: flex-start; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | } |
| | | |
| | | .dialogVisibleRoute { |
| | |
| | | proxy: { |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | target: 'http://121.196.36.24:8049', // 本地 |
| | | // target: 'http://192.168.1.21:9000', // 浙江优步体育用品股份有限公司 |
| | | // target: 'http://192.168.0.120:8000', // 浙江优步体育用品股份有限公司 |
| | | changeOrigin: true, // 请求跨域时,需 配置此项 |
| | | pathRewrite: { // 路径重写,替换target中的请求地址 |
| | | ['^' + process.env.VUE_APP_BASE_API]: '/api/' |