From 5e18bf58d03f4b6830afddb92af9079dcc5587e2 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 11 三月 2024 09:25:26 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before into master
---
src/views/quality/rawMaterial/rawMaterial-form.vue | 105 +++++++++++---------
src/views/plan/customerorder/index.vue | 36 ++++---
src/views/quality/rawMaterial/testValue-select.vue | 64 ++++++++++++
src/api/technology/completeproductstructure.js | 9 +
src/api/plan/customerorder.js | 2
src/views/technology/completeproductstructure/index.vue | 25 ++++
6 files changed, 172 insertions(+), 69 deletions(-)
diff --git a/src/api/plan/customerorder.js b/src/api/plan/customerorder.js
index b6db926..2dc7524 100644
--- a/src/api/plan/customerorder.js
+++ b/src/api/plan/customerorder.js
@@ -266,7 +266,7 @@
export function downloadProduct(data){
return request({
- url: '/mes/plan/customerOrder/downloadProduct',
+ url: '/mes/plan/customerOrder/getProduct',
method: 'post',
responseType: 'blob',
data: data
diff --git a/src/api/technology/completeproductstructure.js b/src/api/technology/completeproductstructure.js
index 2f31570..383537a 100644
--- a/src/api/technology/completeproductstructure.js
+++ b/src/api/technology/completeproductstructure.js
@@ -90,3 +90,12 @@
data: obj
})
}
+
+export function exportBom(obj) {
+ return request({
+ url: '/mes/bom/exportBom',
+ method: 'post',
+ data: obj,
+ responseType: 'blob'
+ })
+}
diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue
index 3b0251a..4ba8c0f 100644
--- a/src/views/plan/customerorder/index.vue
+++ b/src/views/plan/customerorder/index.vue
@@ -586,7 +586,7 @@
sort: true,
isTrue: true,
isSearch: true,
- searchInfoType: 'text',
+ searchInfoType: 'date',
formatter: this.formatDutyDate,
},
{
@@ -1036,20 +1036,24 @@
permitArr: [],
})
}
- this.table.toolbar.push({
- text: '涓嬭浇宸ヨ壓鏂囦欢',
- disabled: false,
- type: 'primary',
- fun: this.downloadWord,
- permitArr: ['03plan','04planed'],
- })
- this.table.toolbar.push({
- text: '涓嬭浇鎺掍骇鍗�',
- disabled: false,
- type: 'primary',
- permitArr: [],
- fun: this.downloadProductionScheduling,
- })
+ if(this.permissions.plan_download_process_file){
+ this.table.toolbar.push({
+ text: '涓嬭浇宸ヨ壓鏂囦欢',
+ disabled: false,
+ type: 'primary',
+ fun: this.downloadWord,
+ permitArr: ['03plan','04planed'],
+ })
+ }
+ if(this.permissions.plan_download_product_file){
+ this.table.toolbar.push({
+ text: '涓嬭浇鎺掍骇鍗�',
+ disabled: false,
+ type: 'primary',
+ permitArr: [],
+ fun: this.downloadProductionScheduling,
+ })
+ }
this.table.toolbar.push({
text: '鍏宠仈璁㈠崟',
disabled: false,
@@ -1130,7 +1134,7 @@
this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�")
return
}
- downloadProduct({ids: ids}).then(res=>{
+ downloadProduct(ids).then(res=>{
if(res.status===200){
transform(res)
}
diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue
index c4c60ab..31e5075 100644
--- a/src/views/quality/rawMaterial/rawMaterial-form.vue
+++ b/src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -177,30 +177,22 @@
<el-table-column prop="testValue" label="妫�娴嬪��" min-width="160" v-for="(item,index) in empiricalValueAdd" :key="index">
<template slot-scope="scope">
<div v-if="!scope.row.children">
- <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start">
- <el-dropdown>
- <el-input placeholder="妫�娴嬪��"/>
- <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down el-icon--right"></i>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item>榛勯噾绯�</el-dropdown-item>
- <el-dropdown-item>鐙瓙澶�</el-dropdown-item>
- <el-dropdown-item>铻鸿洺绮�</el-dropdown-item>
- <el-dropdown-item>鍙岀毊濂�</el-dropdown-item>
- <el-dropdown-item>铓典粩鐓�</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- <!-- <el-autocomplete clearable
- :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))"
- @blur.stop="changeState(scope.row,scope.$index)"
- @select="changeState(scope.row,scope.$index)"
- v-model="scope.row.testValueList[index]"
- :fetch-suggestions="querySearch"
- placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" >
- <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down" slot="suffix"></i>
- <template slot-scope="{ item }">
- <div>{{ item.value }}</div>
- </template>
- </el-autocomplete> -->
+ <!-- :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" -->
+ <!-- @input="$nextTick(()=>{checkTestValues(scope.row)})" -->
+ <!-- @blur.capture.native="changeState(scope.row)" -->
+ <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start">
+ <el-autocomplete clearable
+ cache="false"
+ ref="testValueInput"
+ @blur="checkTestValues(scope.row,'blur',$event)"
+ @select="checkTestValues(scope.row,'select',$event)"
+ v-model="scope.row.testValueList[index]"
+ :fetch-suggestions="querySearch"
+ placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" >
+ <template slot-scope="{ item }">
+ <div>{{ item.value }}</div>
+ </template>
+ </el-autocomplete>
</el-tooltip>
</div>
</template>
@@ -225,7 +217,7 @@
<el-table-column prop="note" label="妫�楠屾弿杩�" width="160" >
<template slot-scope="scope">
<div v-if="!scope.row.children">
- <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input>
+ <el-input @blur="checkTestValues(scope.row,'blur',$event)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input>
</div>
</template>
</el-table-column>
@@ -415,11 +407,10 @@
import rawMaterialPartDialog from '@/views/common/rawMaterial-part'
import { getStore } from '@/util/store'
import qrCodeApp from '@/views/common/qrCodeApp'
- import transformImage from '@/util/fileTransform'
export default {
components:{
rawMaterialPartDialog,
- qrCodeApp
+ qrCodeApp,
},
computed:{},
data(){
@@ -485,7 +476,7 @@
}],
dataRule: {
code:[{ required: true, message: '璇锋壂鎻忛�夋嫨闆朵欢', trigger: 'blur' }],
- createTime: [{ required: true, message: '璇烽�夋嫨鎶ユ鏃ユ湡', trigger: 'change' }]
+ createTime: [{ required: true, message: '璇烽�夋嫨鎶ユ鏃ユ湡', trigger: 'blur' }]
},
deviceList: [],
}
@@ -748,7 +739,7 @@
required: null,
rpId: null,
name: null,
- unit: 'mm',
+ unit: '',
userName: null,
testValue: '',
testValueList: [],
@@ -891,27 +882,38 @@
console.log(e,e.target.tabIndex);
console.log(e.target.value);
},
- changeState(row, index) {
- this.$nextTick(()=>{
- if(row){
- let isTrue = true
- for(var i=0;i<row.testValueList.length;i++){
- let val = row.testValueList[i]
- if(!['鏄�','鍚�'].includes(val)){
- let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/
- if(!reg.test(val)){
- row.testValueList = ''
- this.$message.error("璇疯緭鍏�6浣嶆暟瀛楁垨閫夋嫨鏄惁")
- isTrue = false
+ checkTestValues(row,currentOption,event){
+ if(row){
+ let isTrue = true
+ if(currentOption==='blur'){
+ let targetVal = event.target.value
+ if( (targetVal && ['鏄�','鍚�'].includes(targetVal)) || !targetVal){
+ isTrue = false
+ }else{
+ for(var i=0;i<row.testValueList.length;i++){
+ let val = row.testValueList[i]
+ if(val != '' && val != null){
+ if(!['鏄�','鍚�'].includes(val)){
+ let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/
+ if(!reg.test(val)){
+ row.testValueList[i] = ''
+ event.target.value = ''
+ this.$message.error("璇疯緭鍏�6浣嶆暟瀛楁垨閫夋嫨鏄惁")
+ isTrue = false
+ }
+ }
+ }
}
}
- }
- if(!isTrue){
- return
- }
- }
- console.log(row.testValueList.join(","));
- return
+ }
+ if(!isTrue){
+ return
+ }
+ this.changeState(row)
+ }
+ },
+ changeState(row) {
+ this.$nextTick(()=>{
if (row.rpId != null && row.rpId != '') {
let val = row.testValueList.join(",")
if (val === undefined || val === '' || val === null) {
@@ -1205,6 +1207,13 @@
border: 1px solid #e4e7ed;
border-bottom: none;
}
+.dropdown{
+ position: relative;
+ right: 30px;
+ top: 5px;
+ color: #C0C4CC;
+ font-size: 14px;
+}
@media (max-width: 767px) {
.pad-addcol-btn{
font-size:12px;
diff --git a/src/views/quality/rawMaterial/testValue-select.vue b/src/views/quality/rawMaterial/testValue-select.vue
index 0e814c9..3435f79 100644
--- a/src/views/quality/rawMaterial/testValue-select.vue
+++ b/src/views/quality/rawMaterial/testValue-select.vue
@@ -1,13 +1,71 @@
<!-- 鍘熸潗鏂欐楠�-妫�娴嬪�艰緭鍏ユ缁勪欢 -->
<template>
+ <el-select v-model="selectedValue" @change="handleChange" clearable>
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ ></el-option>
+ <el-input
+ v-model="inputValue"
+ slot="prefix"
+ placeholder="鑷畾涔夎緭鍏�"
+ @input="handleInput"
+ ></el-input>
+ </el-select>
</template>
<script>
export default {
-
+ props:{
+ value: {
+ type: [String, Number],
+ default: ''
+ },
+ options: {
+ type: Array,
+ default: () => []
+ }
+ },
+ data(){
+ return {
+ selectedValue: '',
+ inputValue: '',
+ // options: [{
+ // label:'鏄�',
+ // value: '鏄�'
+ // },{
+ // label:'鍚�',
+ // value: '鍚�'
+ // }]
+ }
+ },
+ created() {
+ this.selectedValue = this.value;
+ },
+ watch: {
+ value(newValue) {
+ this.selectedValue = newValue;
+ }
+ },
+ methods: {
+ handleChange(value) {
+ this.$emit('input1', value);
+ },
+ handleInput(value) {
+ this.$emit('input1', value);
+ }
+ }
}
</script>
-<style>
-
+<style scope>
+ .dropdown{
+ position: relative;
+ right: 30px;
+ top: 5px;
+ color: #C0C4CC;
+ font-size: 14px;
+ }
</style>
diff --git a/src/views/technology/completeproductstructure/index.vue b/src/views/technology/completeproductstructure/index.vue
index 8af0091..3a79e2b 100644
--- a/src/views/technology/completeproductstructure/index.vue
+++ b/src/views/technology/completeproductstructure/index.vue
@@ -21,11 +21,13 @@
fetchList,
delObj,
addByStructure,
+ exportBom
} from '@/api/technology/completeproductstructure'
import ttable from '@/views/common/ztt-table.vue'
import { mapGetters } from 'vuex'
import { changeState } from '../../../api/technology/completeproductstructure'
import { remote } from '@/api/admin/dict'
+import { transform } from '@/util/fileTransform'
export default {
data() {
@@ -292,7 +294,14 @@
permitArr: [],
fun: ()=>{this.deleteAll()},
})
- }
+ }
+ this.table.toolbar.push({
+ text: 'BOM瀵煎嚭',
+ type:'primary',
+ disabled: false,
+ permitArr: [],
+ fun: ()=>{this.exportBomFun()},
+ })
if(this.permissions.technology_completeproductstructure_del){
this.table.operator = [
{
@@ -317,6 +326,20 @@
}
},
methods: {
+ exportBomFun(){
+ let ids = this.multipleSelection.map(ele=>ele.id)
+ if(ids.length<1){
+ this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�")
+ return
+ }
+ exportBom(ids).then(res=>{
+ if(res.status===200){
+ transform(res)
+ }
+ }).catch(error=>{
+ console.error(error)
+ })
+ },
getBomTypeDbOptions() {
remote('bom_type_db').then((response) => {
if (response.data.code === 0) {
--
Gitblit v1.9.3