From 26c4f7ae79ad5ad2300876b94f96f19e4f93d53a Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期一, 18 十二月 2023 16:02:12 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before
---
src/views/equipment/equipment/index.vue | 12
src/views/basic/location/index.vue | 4
vue.config.js | 2
src/views/technology/routing/routing-form.vue | 4
src/views/common/rawMaterial-part.vue | 2
src/views/admin/user/index.vue | 141 +++++++++++++++
src/views/equipment/metering/index.vue | 2
src/views/quality/finishedProductInspection/finishedProduct-form.vue | 54 +++++
src/views/common/qrCodeApp.vue | 17 -
src/views/common/ztt-table.vue | 16 +
src/views/quality/processInspect/processInspect-form.vue | 54 +++++
src/views/quality/rawMaterial/rawMaterial-form.vue | 161 +++++++++--------
src/views/basic/staff/index.vue | 6
src/views/basic/location/location-form.vue | 23 ++
14 files changed, 377 insertions(+), 121 deletions(-)
diff --git a/src/views/admin/user/index.vue b/src/views/admin/user/index.vue
index 68ef1e1..80f0b7f 100644
--- a/src/views/admin/user/index.vue
+++ b/src/views/admin/user/index.vue
@@ -66,6 +66,15 @@
@click="$refs.crud.rowAdd()"
>娣诲姞
</el-button>
+ <!-- <el-button
+ v-if="sys_user_add"
+ class="filter-item"
+ type="primary"
+ size="small"
+ icon="el-icon-upload"
+ @click="importDialogVisible=true"
+ >瀵煎叆
+ </el-button> -->
</template>
<template slot="username" slot-scope="scope">
<span>{{ scope.row.username }}</span>
@@ -147,6 +156,45 @@
:currshowlist.sync="showStaff"
@listenToStaffEvent="selectStaff"
/>
+ <el-dialog title="瀵煎叆" :visible.sync="importDialogVisible" width="30%">
+ <span>
+ <div>
+ <div>
+ <el-upload
+ style="margin-left:8px;display: inline;"
+ class="upload-demo"
+ drag
+ :headers="headers"
+ :action="uploadInfo.url"
+ :beforeUpload="beforeAvatarUpload"
+ :limit="1"
+ :show-file-list="false"
+ :file-list="fileList"
+ :on-success="fileSuccessUploadScan"
+ :on-error="handleError"
+ accept=".xlsx,.xls,.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+ :auto-upload="true"
+ ref="uploadScan"
+ multiple
+ >
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text"><em>鐐瑰嚮瀵煎叆鏁版嵁</em></div>
+ <div class="el-upload__tip" slot="tip" >
+ 鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button
+ type="text"
+ style="font-size:12px;"
+ @click="downDataTemplate(uploadInfo.fileName)"
+ v-if="uploadInfo.Download"
+ >涓嬭浇妯℃澘</el-button
+ >
+ </div>
+ </el-upload>
+ </div>
+ <div></div>
+ </div>
+ </span>
+ <span slot="footer" class="dialog-footer"> </span>
+ </el-dialog>
</div>
</template>
<script>
@@ -158,12 +206,26 @@
import { mapGetters } from 'vuex'
import Template from '../../quality/parts/template'
import { getObj } from '@/api/basic/staff'
-
+import { getStore } from '@/util/store.js'
+import { uploadTemplate } from '@/api/basic/template'
export default {
name: 'SysUser',
components: { Template, staffDialog },
data() {
return {
+ fileList: [], // 涓婁紶鏂囦欢鍒楄〃
+ // 涓婁紶澶翠俊鎭�
+ headers: {
+ Authorization: 'Bearer ' + getStore({ name: 'access_token' })
+ },
+ uploadInfo: {
+ // 鏄惁灞曠ず涓婁紶EXCEL浠ュ強瀵瑰簲鐨剈rl
+ isShow: true,
+ url: '/mes/user/upload',
+ Download: true,
+ fileName: '鐢ㄦ埛妯℃澘'
+ },
+ importDialogVisible: false,
showStaff: false,
searchForm: {},
treeOption: {
@@ -216,6 +278,77 @@
this.init()
},
methods: {
+ // 闄愬埗鏂囦欢涓婁紶澶у皬锛岀洰鍓嶉檺鍒朵负10M锛堝彟鍙互鍔犵被鍨嬮檺鍒讹級
+ beforeAvatarUpload(file) {
+ const fileName = file.name
+ const fileType = fileName.substring(fileName.lastIndexOf('.') + 1)
+ const isLt10M = file.size / 1024 / 1024 < 10
+ if (fileType !== 'xlsx' && fileType !== 'xls') {
+ this.$message.error('鏂囦欢鏍煎紡鍙兘涓簒lsx鎴杧ls,璇峰垹闄ゅ悗閲嶆柊涓婁紶')
+ }
+ if (!isLt10M) {
+ this.$message({
+ message: '鏂囦欢澶у皬',
+ type: 'warning'
+ })
+ }
+ return isLt10M
+ },
+ // 鏂囦欢涓婁紶鎴愬姛鍥炶皟浜嬩欢
+ fileSuccessUploadScan(response, file, fileList) {
+ if (response.code != '0') {
+ this.$message.warning(response.msg)
+ } else {
+ if(response.data!=""&&response.data!=[]&&response.data!=null){
+ this.$message({
+ message: response.data,
+ type: 'success',
+ dangerouslyUseHTMLString: true,
+ })
+ }else{
+ this.$message({
+ message: '涓婁紶鎴愬姛',
+ type: 'success'
+ })
+ }
+ this.importDialogVisible=false
+ this.fileList=[]
+ this.init()
+ // this.getDataList()
+ }
+ this.$refs.uploadScan.clearFiles()
+ },
+ // 涓婁紶澶辫触
+ handleError(err, file, fileList) {
+ const error = JSON.parse(err.message)
+ if (error.msg) {
+ this.$message.error(error.msg)
+ } else {
+ this.$message.error('涓婁紶澶辫触')
+ }
+ },
+ // 涓嬭浇鏁版嵁妯℃澘
+ downDataTemplate() {
+ uploadTemplate("user").then((response) => {
+ const blob = new Blob([response.data], {
+ type: 'application/force-download'
+ })
+ let fileName="妯℃澘鏂囦欢";
+ if(this.uploadInfo.fileName!=undefined&&this.uploadInfo.fileName!=''&&this.uploadInfo.fileName!=null){
+ fileName=this.uploadInfo.fileName
+ }
+ const filename = decodeURI(fileName+'.xlsx')
+ // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
+ const elink = document.createElement('a')
+ elink.download = filename
+ elink.style.display = 'none'
+ elink.href = URL.createObjectURL(blob)
+ document.body.appendChild(elink)
+ elink.click()
+ URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄
+ document.body.removeChild(elink)
+ })
+ },
selectStaff(staff) {
this.form.staffInfo = staff.staffName + '-' + staff.staffNo
this.form.phone = staff.phone
@@ -343,7 +476,11 @@
})
},
unlock(row, index) {
- unlock({ id: row.userId }).then((repsonse) => {})
+ unlock({ id: row.userId }).then((repsonse) => {
+ if(repsonse.data.data){
+ this.$message.success("璇ョ敤鎴峰凡瑙i攣")
+ }
+ })
}
}
}
diff --git a/src/views/basic/location/index.vue b/src/views/basic/location/index.vue
index dfb4f75..e102c95 100644
--- a/src/views/basic/location/index.vue
+++ b/src/views/basic/location/index.vue
@@ -194,7 +194,7 @@
optList: () => {
return this.getWarehouseLocGroupList()
}
- },
+ }/* ,
// ERP搴撲綅
{
minWidth: '200',
@@ -204,7 +204,7 @@
isTrue: false,
isSearch: true,
searchInfoType: 'text'
- }
+ } */
],
toolbar: [
{
diff --git a/src/views/basic/location/location-form.vue b/src/views/basic/location/location-form.vue
index 11c4657..26c0b1c 100644
--- a/src/views/basic/location/location-form.vue
+++ b/src/views/basic/location/location-form.vue
@@ -134,10 +134,23 @@
<el-row>
<el-col :span="12">
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+ <el-date-picker
+ readonly
+ style="width: 100%"
+ v-model="moment"
+ type="datetime"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ >
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <!-- <el-col :span="12">
<el-form-item
label="IFS搴撲綅"
prop="ifsLocationDesc"
- >
+ > -->
<!-- <el-select
v-model="dataForm.ifsLocation"
filterable
@@ -152,13 +165,13 @@
>
</el-option>
</el-select> -->
- <el-cascader
+ <!-- <el-cascader
v-model="dataForm.ifsLocationDesc"
:props="locationProps"
style="width:100%" filterable
></el-cascader>
</el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="12">
<el-form-item label="搴撲綅鐘舵��" prop="locStatus">
<el-switch
@@ -169,7 +182,7 @@
</el-form-item>
</el-col>
</el-row>
- <el-row>
+ <!-- <el-row>
<el-col :span="12">
<el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
<el-date-picker
@@ -184,7 +197,7 @@
</el-form-item>
</el-col>
<el-col :span="12"> </el-col>
- </el-row>
+ </el-row> -->
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">鍙栨秷</el-button>
diff --git a/src/views/basic/staff/index.vue b/src/views/basic/staff/index.vue
index b9a98fd..d9ad232 100644
--- a/src/views/basic/staff/index.vue
+++ b/src/views/basic/staff/index.vue
@@ -38,8 +38,10 @@
multipleSelection: [],
uploadInfo: {
// 鏄惁灞曠ず涓婁紶EXCEL浠ュ強瀵瑰簲鐨剈rl
- isShow: false,
- url: ''
+ isShow: true,
+ url: '/mes/staff/upload',
+ Download: true,
+ fileName: '鍛樺伐妯℃澘'
},
prelang: 'operation',
options: {
diff --git a/src/views/common/qrCodeApp.vue b/src/views/common/qrCodeApp.vue
index f0bada3..8c297ac 100644
--- a/src/views/common/qrCodeApp.vue
+++ b/src/views/common/qrCodeApp.vue
@@ -39,11 +39,10 @@
},
//鍥炶皟鎵弿缁撴灉
onDecode(result) {
- console.log(result);
if (result !== "") {
this.result=result
- this.$emit("ok",result)
- alert(result)
+ this.$emit("ok",this.result)
+ this.cancelCode()
}
},
// 鐩告満鍙嶈浆
@@ -74,12 +73,7 @@
async onInit(promise) {
try {
const { capabilities } = await promise;
- console.log(
- "馃殌 ~ file: cameracomponent.vue:47 ~ onInit ~ capabilities",
- capabilities
- );
} catch (error) {
- // console.log()
this.$toast(error.name);
if (error.name === "NotAllowedError") {
this.error = "ERROR: 鎮ㄩ渶瑕佹巿浜堢浉鏈鸿闂潈闄�";
@@ -105,12 +99,7 @@
}
},
watch: {
- "result": {
- handler(newVal) {
- console.log('鎵弿鍊�' + newVal);
- },
- deep: true
- }
+
}
};
</script>
diff --git a/src/views/common/rawMaterial-part.vue b/src/views/common/rawMaterial-part.vue
index b543cc1..c8b36ab 100644
--- a/src/views/common/rawMaterial-part.vue
+++ b/src/views/common/rawMaterial-part.vue
@@ -65,7 +65,6 @@
return {
ajaxFun: chooseIFS,
innerVisible: false,
- listLoading: true,
currentRow: null,
multipleSelection: [],
uploadInfo: {
@@ -220,6 +219,7 @@
this.innerVisible = this.currshowlist
if (this.currshowlist) {
this.$nextTick(() => {
+ // this.table.data=[]
this.getData()
})
}
diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue
index fb445e3..70b8191 100644
--- a/src/views/common/ztt-table.vue
+++ b/src/views/common/ztt-table.vue
@@ -509,7 +509,8 @@
鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button
type="text"
style="font-size:12px;"
- @click="downDataTemplate" v-if="uploadInfo.Download"
+ @click="downDataTemplate(uploadInfo.fileName)"
+ v-if="uploadInfo.Download"
>涓嬭浇妯℃澘</el-button
>
</div>
@@ -942,8 +943,7 @@
}
},
getDataList(selectedId) {
- // this.dataListLoading = true
- this.dataListLoading = false
+ this.dataListLoading = true
var criteria = {}
criteria.dateTimeFilters = this.dateTimeFilters
criteria.multiSearchFilter = this.multiSearchFilter
@@ -969,6 +969,7 @@
return this.doCallback(this.ajaxFun, arr, selectedId)
},
doCallback(fn, args, selectedId) {
+ this.tableData=[]
return fn
.apply(this, args)
.then((response) => {
@@ -1582,7 +1583,8 @@
if(response.data!=""&&response.data!=[]&&response.data!=null){
this.$message({
message: response.data,
- type: 'success'
+ type: 'success',
+ dangerouslyUseHTMLString: true,
})
}else{
this.$message({
@@ -1614,7 +1616,11 @@
const blob = new Blob([response.data], {
type: 'application/force-download'
})
- const filename = decodeURI('妯℃澘鏂囦欢.xlsx')
+ let fileName="妯℃澘鏂囦欢";
+ if(this.uploadInfo.fileName!=undefined&&this.uploadInfo.fileName!=''&&this.uploadInfo.fileName!=null){
+ fileName=this.uploadInfo.fileName
+ }
+ const filename = decodeURI(fileName+'.xlsx')
// 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
const elink = document.createElement('a')
elink.download = filename
diff --git a/src/views/equipment/equipment/index.vue b/src/views/equipment/equipment/index.vue
index f19e542..083640d 100644
--- a/src/views/equipment/equipment/index.vue
+++ b/src/views/equipment/equipment/index.vue
@@ -236,12 +236,12 @@
type: 'primary',
fun: this.labelPrint
},
- // {
- // text: '鍚屾',
- // type: 'primary',
- // loading: false,
- // fun: this.pullEquipFun
- // }
+ {
+ text: '鍚屾',
+ type: 'primary',
+ loading: false,
+ fun: this.pullEquipFun
+ }
],
operator: [
{
diff --git a/src/views/equipment/metering/index.vue b/src/views/equipment/metering/index.vue
index 3f858da..1fdc251 100644
--- a/src/views/equipment/metering/index.vue
+++ b/src/views/equipment/metering/index.vue
@@ -38,7 +38,7 @@
<el-row>
<el-col :span="10" :offset="3">璁惧浜岀淮鐮侊細</el-col>
<el-col :span="10">
- <vueQr :text="tem.code" :size="80" :margin="2"></vueQr>
+ <vueQr :text="tem.code+'id@'+tem.id" :size="80" :margin="2"></vueQr>
</el-col>
</el-row>
</el-card>
diff --git a/src/views/quality/finishedProductInspection/finishedProduct-form.vue b/src/views/quality/finishedProductInspection/finishedProduct-form.vue
index fd45c92..a0a9cbd 100644
--- a/src/views/quality/finishedProductInspection/finishedProduct-form.vue
+++ b/src/views/quality/finishedProductInspection/finishedProduct-form.vue
@@ -148,11 +148,17 @@
<template slot-scope="scope">
<span v-if="resultVal!=null && processInspectVo.id!=null" v-text="scope.row.ename"></span>
<div v-else>
- <el-select style="width:100%" v-model="scope.row.eId"
+ <el-select style="width:80%" v-model="scope.row.eId"
v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row)">
<el-option v-for="(item,index) in deviceList"
:key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option>
</el-select>
+ <el-button
+ size="small"
+ slot="append"
+ icon="el-icon-full-screen"
+ v-if="scope.row.iname != null"
+ @click="codeDevice(scope.row,scope.$index)"></el-button>
</div>
</template>
</el-table-column>
@@ -224,6 +230,18 @@
</el-row>
</div>
</div>
+ <el-dialog
+ title="璁惧鎵弿"
+ :visible.sync="deviceCode"
+ width="60%">
+ <div style="height: 100vh;width: 100%;">
+ <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="deviceCode = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="deviceCode = false">纭� 瀹�</el-button>
+ </span>
+</el-dialog>
</div>
</template>
@@ -240,9 +258,16 @@
} from '@/api/quality/finishedProduct'
import { getIfsLocationByGroupCopyAll } from '@/api/warehouse/location'
import { remote } from '@/api/admin/dict'
+ import qrCodeApp from '@/views/common/qrCodeApp'
export default {
+ components:{
+ qrCodeApp
+ },
data() {
return {
+ row: null,
+ proIndex: 0,
+ deviceCode: false,
locationList: [],
dataVal: [{
label: '鏄�',
@@ -304,6 +329,33 @@
this.init()
},
methods: {
+ cancelDeviceCodeDialog(){
+ this.deviceCode = false
+ },
+ getDeviceResultInfo(val){
+ console.log("鎵弿鍚庢暟鎹�",val);
+ let id=val.split("id@")[1]
+ if(id!=undefined&&id!=''&&id!=null){
+ let filterData=this.deviceList.filter(item=>{
+ return item.id==id
+ })[0]
+ console.log(filterData);
+ this.row.eId=Number(id)
+ this.updateDevice(this.row)
+ }else{
+ this.$message({
+ message: '鏈瘑鍒嚭浜屼綅鐮佽閲忓櫒鍏蜂俊鎭紒',
+ type: 'warning'
+ });
+ }
+ },
+ codeDevice(row,index){
+ this.row=row
+ console.log("row",row);
+ this.deviceCode =true
+ this.$refs.codeDeviceCompont.openCamera()
+ this.proIndex=index
+ },
changeLocation(val){
if(val){
let obj = {
diff --git a/src/views/quality/processInspect/processInspect-form.vue b/src/views/quality/processInspect/processInspect-form.vue
index 239b2bc..505338e 100644
--- a/src/views/quality/processInspect/processInspect-form.vue
+++ b/src/views/quality/processInspect/processInspect-form.vue
@@ -137,11 +137,17 @@
<span v-if="resultVal != null && scope.row.iname != null"
v-text="scope.row.ename"></span>
<div v-else>
- <el-select style="width:100%" v-model="scope.row.eId" v-if="scope.row.iname != null"
+ <el-select style="width:80%" v-model="scope.row.eId" v-if="scope.row.iname != null"
filterable @change="updateDevice(scope.row, scope.$index)">
<el-option v-for="(item, index) in deviceList" :key="index" :value="item.id"
:label="item.code + '-' + item.name"></el-option>
</el-select>
+ <el-button
+ size="small"
+ slot="append"
+ icon="el-icon-full-screen"
+ v-if="scope.row.iname != null"
+ @click="codeDevice(scope.row,scope.$index)"></el-button>
</div>
</template>
</el-table-column>
@@ -202,6 +208,18 @@
</el-row>
</div>
</div>
+ <el-dialog
+ title="璁惧鎵弿"
+ :visible.sync="deviceCode"
+ width="60%">
+ <div style="height: 100vh;width: 100%;">
+ <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="deviceCode = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="deviceCode = false">纭� 瀹�</el-button>
+ </span>
+</el-dialog>
</div>
</template>
@@ -215,9 +233,16 @@
updateProcessInspectsById,
} from '@/api/quality/processInspect'
import { selectDevice } from '@/api/quality/processInspect'
+import qrCodeApp from '@/views/common/qrCodeApp'
export default {
+ components:{
+ qrCodeApp
+ },
data() {
return {
+ row: null,
+ proIndex: 0,
+ deviceCode: false,
rules: {
orderNumber: [{required:true,message:'璁㈠崟鍙蜂笉鑳戒负绌�',trigger:'blur'}]
},
@@ -273,6 +298,33 @@
this.init()
},
methods: {
+ cancelDeviceCodeDialog(){
+ this.deviceCode = false
+ },
+ getDeviceResultInfo(val){
+ console.log("鎵弿鍚庢暟鎹�",val);
+ let id=val.split("id@")[1]
+ if(id!=undefined&&id!=''&&id!=null){
+ let filterData=this.deviceList.filter(item=>{
+ return item.id==id
+ })[0]
+ console.log(filterData);
+ this.row.eId=Number(id)
+ this.updateDevice(this.row)
+ }else{
+ this.$message({
+ message: '鏈瘑鍒嚭浜屼綅鐮佽閲忓櫒鍏蜂俊鎭紒',
+ type: 'warning'
+ });
+ }
+ },
+ codeDevice(row,index){
+ this.row=row
+ console.log("row",row);
+ this.deviceCode =true
+ this.$refs.codeDeviceCompont.openCamera()
+ this.proIndex=index
+ },
submitSave() {
let pro = 0
this.inspectionItems.forEach(item => {
diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue
index b56aae4..7a663b7 100644
--- a/src/views/quality/rawMaterial/rawMaterial-form.vue
+++ b/src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -28,12 +28,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="闆朵欢鍙�" prop="code">
- <el-input v-model="dataForm.code" :disabled="resultVal!=null && dataForm.id!=null">
- <!-- <el-button
- slot="append"
- icon="el-icon-search"
- :disabled="resultVal!=null && dataForm.id!=null"
- @click="queryCode()"></el-button> -->
+ <el-input v-model="dataForm.code" disabled>
<el-button
slot="append"
icon="el-icon-full-screen"
@@ -44,8 +39,9 @@
</el-col>
<el-col :span="6">
<el-form-item prop="name" label="鍘熸潗鏂欏悕绉�">
- <el-input v-model="dataForm.name" disabled >
- </el-input>
+ <el-tooltip class="item" effect="dark" :content="dataForm.name">
+ <el-input v-model="dataForm.name" disabled ></el-input>
+ </el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -63,7 +59,9 @@
<el-row>
<el-col :span="6">
<el-form-item label="瑙勬牸鍨嬪彿" prop="specs">
- <el-input v-model="dataForm.specs" disabled></el-input>
+ <el-tooltip class="item" effect="dark" :content="dataForm.specs">
+ <el-input v-model="dataForm.specs" disabled></el-input>
+ </el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -76,7 +74,9 @@
</el-col>
<el-col :span="6">
<el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplier">
+ <el-tooltip class="item" effect="dark" :content="dataForm.supplier" >
<el-input v-model="dataForm.supplier" disabled />
+ </el-tooltip>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -185,11 +185,17 @@
<el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260">
<template slot-scope="scope">
<div v-if="!scope.row.children">
- <el-select :disabled="dataForm!=null && resultVal!=null" style="width:100%"
+ <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:80%"
v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)">
<el-option v-for="(item,index) in deviceList"
:key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option>
</el-select>
+ <el-button
+ size="small"
+ slot="append"
+ icon="el-icon-full-screen"
+ :disabled="dataForm!=null && resultVal!=null"
+ @click="codeDevice(scope.row,scope.$index)"></el-button>
</div>
</template>
</el-table-column>
@@ -278,6 +284,18 @@
<el-button type="primary" @click="qrcode = false">纭� 瀹�</el-button>
</span>
</el-dialog>
+<el-dialog
+ title="璁惧鎵弿"
+ :visible.sync="deviceCode"
+ width="60%">
+ <div style="height: 100vh;width: 100%;">
+ <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="deviceCode = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="deviceCode = false">纭� 瀹�</el-button>
+ </span>
+</el-dialog>
</div>
</template>
@@ -288,7 +306,7 @@
getObj,
updateRawInsProduct,
updateRawInspectsById,
- updateDeviceById, } from '@/api/quality/rawMaterial'
+ updateDeviceById, chooseIFS} from '@/api/quality/rawMaterial'
import rawMaterialPartDialog from '@/views/common/rawMaterial-part'
import qrCodeApp from '@/views/common/qrCodeApp'
export default {
@@ -299,6 +317,9 @@
computed:{},
data(){
return{
+ row: null,
+ proIndex: 0,
+ deviceCode: false,
qrcode: false,
userdata:[],
currentRow:[],
@@ -321,7 +342,7 @@
formTime: '',
message: '',
name: '',
- code: '88.118.1/A0498220',
+ code: '',
specs: '',
unit: '',
number: '',
@@ -345,7 +366,9 @@
userName: '',
testState: ''
}],
- dataRule: {},
+ dataRule: {
+ code:[{ required: true, message: '璇锋壂鎻忛�夋嫨闆朵欢', trigger: 'blur' }]
+ },
deviceList: [],
}
},
@@ -372,81 +395,62 @@
},
},
methods:{
+ cancelDeviceCodeDialog(){
+ this.deviceCode = false
+ },
+ getDeviceResultInfo(val){
+ console.log("鎵弿鍚庢暟鎹�",val);
+ let id=val.split("id@")[1]
+ if(id!=undefined&&id!=''&&id!=null){
+ let filterData=this.deviceList.filter(item=>{
+ return item.id==id
+ })[0]
+ console.log(filterData);
+ this.row.deviceId=Number(id)
+ this.updateDevice(this.row,this.proIndex)
+ }else{
+ this.$message({
+ message: '鏈瘑鍒嚭浜屼綅鐮佽閲忓櫒鍏蜂俊鎭紒',
+ type: 'warning'
+ });
+ }
+ },
+ codeDevice(row,index){
+ this.row=row
+ console.log("row",row);
+ this.deviceCode =true
+ this.$refs.codeDeviceCompont.openCamera()
+ this.proIndex=index
+ },
getResultInfo(data){
- // console.log("杩斿洖");
- console.log("鎵弿鍑虹殑浜岀淮鐮佸��",data);
+ console.log("鎵弿鍚庢墽琛�",data);
+ if(!data.includes("part_no")){
+ this.$message({
+ message: '鏈瘑鍒嚭浜屼綅鐮侀浂浠朵俊鎭紒',
+ type: 'warning'
+ });
+ }
+ let obj=JSON.parse(data)
+ let info={"code":obj["part_no"]}
+ console.log("鍊�",info);
+ if(info.code!=undefined&&info.code!=''){
+ this.paramObj = info
+ this.showPart = true
+ }else{
+ this.$message({
+ message: '鏈瘑鍒嚭浜屼綅鐮侀浂浠朵俊鎭紒',
+ type: 'warning'
+ });
+ }
},
cancelCodeDialog(){
this.qrcode = false
},
// 鎵撳紑鐩告満
Turnonthecamera() {
- console.log("鎵ц");
this.qrcode = true
this.$refs.codeCompont.openCamera()
- // this.camera = 'rear'
},
- // 鎵爜缁撴灉鍥炶皟
- // onDecode(result) {
- // console.log(result)
- // this.turnCameraOff()
- // },
- // 鐩告満鍙嶈浆
- // switchCamera() {
- // switch (this.camera) {
- // case 'front':
- // this.camera = 'rear'
- // break
- // case 'rear':
- // this.camera = 'front'
- // break
- // default:
- // this.$toast('閿欒')
- // }
- // },
- // 鍏抽棴鐩告満
- // turnCameraOff() {
- // this.camera = 'off'
- // this.qrcode = false
- // },
- // 鎵撳紑鎵嬬數绛�
- // ClickFlash() {
- // switch (this.torchActive) {
- // case true:
- // this.torchActive = false
- // break
- // case false:
- // this.torchActive = true
- // break
- // default:
- // this.$toast('閿欒')
- // }
- // },
-
- // 妫�鏌ユ槸鍚﹁皟鐢ㄦ憚鍍忓ご
- // async onInit(promise) {
- // try {
- // await promise
- // } catch (error) {
- // if (error.name === 'StreamApiNotSupportedError') {
- // } else if (error.name === 'NotAllowedError') {
- // this.errorMessage = 'Hey! I need access to your camera'
- // } else if (error.name === 'NotFoundError') {
- // this.errorMessage = 'Do you even have a camera on your device?'
- // } else if (error.name === 'NotSupportedError') {
- // this.errorMessage =
- // 'Seems like this page is served in non-secure context (HTTPS, localhost or file://)'
- // } else if (error.name === 'NotReadableError') {
- // this.errorMessage =
- // "Couldn't access your camera. Is it already in use?"
- // } else if (error.name === 'OverconstrainedError') {
- // this.errorMessage =
- // "Constraints don't match any installed camera. Did you asked for the front camera although there is none?"
- // } else {
- // this.errorMessage = 'UNKNOWN ERROR: ' + error.message
- // }
- // }
- // },
// 纭鍥炶皟
selectPart(param, nodePart, index) {
if (typeof param !== 'undefined') {
@@ -712,7 +716,6 @@
for(var i=0;i<row.testValueList.length;i++){
let val = row.testValueList[i]
let reg = /^[0-9]*[1-9][0-9]*$/
- console.log(['鏄�','鍚�'].includes(val));
if(!reg.test(val) && !['鏄�','鍚�'].includes(val)){
this.$message.error("璇疯緭鍏ユ暟瀛楁垨閫夋嫨鏄惁")
row.testValueList[i] = null
diff --git a/src/views/technology/routing/routing-form.vue b/src/views/technology/routing/routing-form.vue
index 9a1e3d4..2fda547 100644
--- a/src/views/technology/routing/routing-form.vue
+++ b/src/views/technology/routing/routing-form.vue
@@ -699,14 +699,14 @@
},
dataRule: {
partNo: [
- { required: true, message: '闆朵欢涓嶈兘涓虹┖', trigger: 'change' }
+ { required: true, message: '闆朵欢涓嶈兘涓虹┖', trigger: 'blur' }
],
bomTypeDb: [
{ required: true, message: '宸ヨ壓绫诲瀷涓嶈兘涓虹┖', trigger: 'change' }
],
bomId: [{ required: true, message: 'BOM涓嶈兘涓虹┖', trigger: 'change' }],
phaseInDate: [
- { required: true, message: '閫愭閲囩敤鏃ユ湡涓嶈兘涓虹┖', trigger: 'blur' }
+ { required: true, message: '閫愭閲囩敤鏃ユ湡涓嶈兘涓虹┖', trigger: 'change' }
],
alternativeNo: [
{ required: true, message: '鏇夸唬涓嶈兘涓虹┖', trigger: 'blur' }
diff --git a/vue.config.js b/vue.config.js
index 2618a6e..8e0599f 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -4,6 +4,8 @@
*/
+// const url = 'http://192.168.2.7:9999'
+// const url = 'http://192.168.32.45:9999'
const url = 'http://192.168.2.7:9999'
// const url = 'http://192.168.32.45:9999'
//const url = 'http://192.168.2.7:9999'
--
Gitblit v1.9.3