Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
chengzhaofeng 2025-01-02 16:13:26 +08:00
commit 6d9a977028
16 changed files with 230 additions and 32 deletions

View File

@ -0,0 +1,10 @@
import request from '@/router/axios'
import {nlv_print} from "@/api/prefix";
export function send(query) {
return request({
url: nlv_print('/topic-send-test/send'),
method: 'get',
params: query
})
}

View File

@ -317,3 +317,11 @@ export function selectPreNc(query) {
params: query params: query
}) })
} }
//图片删除
export function deleteAttachment(param) {
return request({
url: qms('/inspec-attachment/minioDelete'),
method: 'get',
params: param
})
}

View File

@ -76,5 +76,14 @@ export default [
meta: { meta: {
keepAlive: true keepAlive: true
} }
}, {
path: '/test/topic-send-msg',
component: () =>
import(/* webpackChunkName: "page" */ '@/views/mes/print/topic-send-test'),
name: 'TOPIC发送测试',
meta: {
keepAlive: true,
isAuth: false,
}
}, },
] ]

View File

@ -3,7 +3,7 @@
<!-- 功能开窗 --> <!-- 功能开窗 -->
<!-- 搜索框 --> <!-- 搜索框 -->
<SearchUI :searchForm.sync="searchForm" @toSearchChange="searchChange"></SearchUI> <SearchUI :searchForm.sync="searchForm" @toSearchChange="searchChange" ref="searchUI"></SearchUI>
<TransactionHistory :visible.sync="historyShow" :modalObj="selectedRowData"></TransactionHistory> <TransactionHistory :visible.sync="historyShow" :modalObj="selectedRowData"></TransactionHistory>
@ -35,6 +35,9 @@
{{ resetStatusShow(scope.row.state) }} {{ resetStatusShow(scope.row.state) }}
</span> </span>
</template> </template>
<template v-else-if="item.prop === 'functionName'" v-slot:default="scope">
{{ getValConvertShow(scope.row.functionName) }}
</template>
<template <template
v-else-if="item.prop === 'logCreator' || item.prop === 'dateExecute'" v-else-if="item.prop === 'logCreator' || item.prop === 'dateExecute'"
v-slot:default="scope" v-slot:default="scope"
@ -128,6 +131,16 @@ export default {
this.int_transaction_retry = this.permissions['int_transaction_retry'] this.int_transaction_retry = this.permissions['int_transaction_retry']
}, },
methods: { methods: {
// 字典状态值映射通用
getValConvertShow(srcVal) {
let me = this;
debugger
const sourceList = this.$refs.searchUI.functionNameList;
let obj = sourceList.find(item => item.value === srcVal);
return obj != undefined ? obj.label : srcVal;
},
showHistory(row) { showHistory(row) {
this.selectedRowData = row // 存储选中的行数据 this.selectedRowData = row // 存储选中的行数据
this.selectedRowData.request = JSON.parse(row.request); this.selectedRowData.request = JSON.parse(row.request);

View File

@ -588,6 +588,7 @@ export default {
}, },
getActivityOption(activityId) { getActivityOption(activityId) {
let me = this; let me = this;
me.podActionForm.fab = ''
if (activityId) { if (activityId) {
getByActivityOption(activityId, 'Z_FAB') getByActivityOption(activityId, 'Z_FAB')
.then((response) => { .then((response) => {

View File

@ -0,0 +1,45 @@
<template>
<div class="execution">
<el-input type="textarea" v-model="formObj.msg" clearable/>
<el-button type="primary" @click="sendMsg">发送测试</el-button>
</div>
</template>
<script>
import {
send
} from '@/api/mes/print/topic-send-test'
import {showLoading, hideLoading} from "@/const/loading";
export default {
name: "topic-send-test",
data() {
return {
formObj: {
msg: ''
},
}
},
created() {
},
methods: {
//显示操作弹窗框
sendMsg() {
let message = {value: this.formObj.msg}
showLoading();
send({topicName: 'dashboard-test', message: JSON.stringify(message)}).then(response => {
hideLoading();
this.$message.success("发送成功")
})
.catch(() => {
hideLoading();
});
},
}
}
</script>
<style>
</style>

View File

@ -261,6 +261,9 @@
<el-table-column prop="auxiliaryOty" label="重量"> <el-table-column prop="auxiliaryOty" label="重量">
</el-table-column> </el-table-column>
<el-table-column prop="inspecLevel" label="判定等级"> <el-table-column prop="inspecLevel" label="判定等级">
<template slot-scope="scope">
<span>{{findLevelList(scope.row.inspecLevel)}}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="demotionProcessHistory" width="120" label="降级过程"> <el-table-column prop="demotionProcessHistory" width="120" label="降级过程">
</el-table-column> </el-table-column>
@ -268,7 +271,11 @@
</el-table-column> </el-table-column>
<el-table-column prop="reason" label="冻结/解冻原因" > <el-table-column prop="reason" label="冻结/解冻原因" >
</el-table-column> </el-table-column>
<el-table-column prop="freedCreator" label="冻结/解冻人"> <el-table-column label="冻结/解冻人" width="150">
<template slot-scope="scope">
<span v-if="scope.row.freedCreator != null">{{scope.row.freedCreator}}/{{scope.row.name}}</span>
<span v-else>{{scope.row.freedCreator}}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="freedDate" width="160" label="冻结/解冻时间"> <el-table-column prop="freedDate" width="160" label="冻结/解冻时间">
</el-table-column> </el-table-column>
@ -369,6 +376,14 @@ export default {
// .catch(() => {}) // .catch(() => {})
}, },
methods: { methods: {
findLevelList (result) {
let me = this
for (let i = 0; i < me.inspecLevelList.length; i++) {
if (me.inspecLevelList[i].value === result) {
return me.inspecLevelList[i].label
}
}
},
statusListFind(status) { statusListFind(status) {
let me = this let me = this
return me.statusList.find(item => item.value === status).label return me.statusList.find(item => item.value === status).label

View File

@ -1,15 +1,17 @@
import moment from "moment/moment";
export const init = { export const init = {
sourceMasterLot:null, sourceMasterLot:null,
storageBin: null, storageBin: null,
startTime: null,
item: null, item: null,
weight: null, weight: null,
endTime: null,
inspecLevel:null, inspecLevel:null,
length:null, length:null,
status:null, status:null,
inventoryId:null, inventoryId:null,
inventoryIdList:[] inventoryIdList:[],
startTime: moment(new Date()).subtract(7, 'days').format('YYYY-MM-DD HH:mm'),
endTime: moment(new Date().setDate(new Date().getDate()+1)).format('YYYY-MM-DD HH:mm'),
} }
export const searchRules = {} export const searchRules = {}

View File

@ -836,7 +836,16 @@ export default {
} }
}, },
rowClassName: function ({ row }) { rowClassName: function ({ row }) {
if (row.value == '7' || row.value == '8') { if (row.value === '2'
|| row.value === '3'
|| row.value === '4'
|| row.value === '5'
|| row.value === '6'
|| row.value === '7'
|| row.value === '8'
|| row.value === '9'
|| row.value === '10'
) {
return 'showRow' return 'showRow'
} else { } else {
return return
@ -920,7 +929,7 @@ export default {
this.freqData.forEach((f, index) => { this.freqData.forEach((f, index) => {
this.$set(this.freqData[index], 'item', key[this.freqData[index].value]) this.$set(this.freqData[index], 'item', key[this.freqData[index].value])
this.$set(this.freqData[index], 'val', '') this.$set(this.freqData[index], 'val', '')
this.$set(this.freqData[index], 'seq', this.freqData[index].value) // this.$set(this.freqData[index], 'seq', this.freqData[index].value)
this.$set(this.freqData[index], 'openFreqSwitch',this.freqData[index].openFreqSwitch ) this.$set(this.freqData[index], 'openFreqSwitch',this.freqData[index].openFreqSwitch )
// if (index <= 6) { // if (index <= 6) {
// this.$set(this.freqData[index], 'seq', index + 1 + '') // this.$set(this.freqData[index], 'seq', index + 1 + '')
@ -929,6 +938,7 @@ export default {
// this.$set(this.freqData[index], 'seq', index - 1 + '') // this.$set(this.freqData[index], 'seq', index - 1 + '')
// } // }
}) })
setSeq(this.freqData, 'seq')
this.freqData.sort((a, b) => a.seq - b.seq) this.freqData.sort((a, b) => a.seq - b.seq)
} }
}, },

View File

@ -606,8 +606,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="!showNewItem"> <el-col :span="6" v-if="!showNewItem">
<el-form-item label="物料"> <el-form-item label="新物料:">
<el-input v-model="processForm.newItem" :readonly="true"> <span v-if="state === 'view'">{{processForm.newItem}}</span>
<el-input v-model="processForm.newItem" :readonly="true" v-else>
<i <i
slot="suffix" slot="suffix"
class="el-input__icon el-icon-copy-document" class="el-input__icon el-icon-copy-document"
@ -723,7 +724,7 @@ import { checkTableRepeat, setSeq } from "@/util/table";
import { copyJSON } from "@/util/util"; import { copyJSON } from "@/util/util";
import { closeForm, processForm } from "@/views/mes/qms/inspec/content/inspec"; import { closeForm, processForm } from "@/views/mes/qms/inspec/content/inspec";
import { import {
closeInspec, getMinio, closeInspec, deleteAttachment, getMinio,
getOneDetail, reInspec, saveAllInspecAndDetailResult, getOneDetail, reInspec, saveAllInspecAndDetailResult,
saveInspecAndDetailResult, saveInspecAndDetailResult,
saveNc, saveNc,
@ -882,14 +883,33 @@ export default {
//拍照预览 //拍照预览
handlePreview(file) { handlePreview(file) {
let me = this let me = this
me.dialogImg = URL.createObjectURL(file.raw); if (file.status === 'success') {
//me.uploadList.push({url:me.dialogImg}) me.dialogImg = file.url
} else {
me.dialogImg = URL.createObjectURL(file.raw);
}
me.dialogImgVisible = true me.dialogImgVisible = true
}, },
//拍照删除 //拍照删除
handleRemove(file) { handleRemove(file) {
let me = this let me = this
//me.uploadList.splice(me.uploadList.indexOf(file), 1) let param = {
sid: file.sid,
url: file.url,
}
showLoading()
deleteAttachment(param).then(res => {
hideLoading()
if (res.status === 200) {
me.$message.success("已删除")
} else {
me.$message.error(res.data.message)
me.searchPhoto()
}
}).catch(e => {
hideLoading()
me.searchPhoto()
})
}, },
// 处理文件变化(如拍照) // 处理文件变化(如拍照)
handleChange(file, fileList) { handleChange(file, fileList) {
@ -904,9 +924,26 @@ export default {
me.dialogForm = {} me.dialogForm = {}
me.dialogForm.inspecJobBo = row.inspecJobBo me.dialogForm.inspecJobBo = row.inspecJobBo
me.dialogForm.inspecDetailBo = row.handle me.dialogForm.inspecDetailBo = row.handle
me.uploadList = [] me.searchPhoto()
me.cameraVisible = true me.cameraVisible = true
}, },
//拍照开窗检索
searchPhoto(){
let me = this
me.uploadList = []
let param = {
inspecJobBo: me.dialogForm.inspecJobBo,
inspecDetailBo: me.dialogForm.inspecDetailBo,
}
showLoading()
getMinio(param).then(res => {
hideLoading()
console.log(res.data)
me.uploadList = res.data.data
}).catch(e => {
hideLoading()
})
},
//上传 //上传
uploadPhoto(){ uploadPhoto(){
let me = this let me = this
@ -914,12 +951,21 @@ export default {
if (files.length === 0) { if (files.length === 0) {
this.$message.error('请先选择要上传的文件'); this.$message.error('请先选择要上传的文件');
return; return;
} else {
let file = files.filter(f => f.status !== 'success')
if (file.length === 0) {
this.$message.error('请先选择要上传的文件');
return;
}
} }
me.uploadData.inspecJobBo = me.dialogForm.inspecJobBo me.uploadData.inspecJobBo = me.dialogForm.inspecJobBo
me.uploadData.inspecDetailBo = me.dialogForm.inspecDetailBo me.uploadData.inspecDetailBo = me.dialogForm.inspecDetailBo
const formData = new FormData(); const formData = new FormData();
files.forEach(file => { files.forEach(file => {
formData.append('files', file.raw); // 将每个文件添加到 formData 中 //不能上传已经上传过的文件
if (file.status !== 'success') {
formData.append('files', file.raw); // 将每个文件添加到 formData 中
}
}); });
formData.append('uploadData',JSON.stringify(me.uploadData)); formData.append('uploadData',JSON.stringify(me.uploadData));
showLoading() showLoading()
@ -1303,8 +1349,16 @@ export default {
t.inspecResults = t.inspecResultList t.inspecResults = t.inspecResultList
for (let j = 0; j < t.inspecResultList.length; j++) { for (let j = 0; j < t.inspecResultList.length; j++) {
let d = t.inspecResultList[j] let d = t.inspecResultList[j]
if (isBlank(d.result) && t.itemType !== '2') { if (d.isRequired === 'Y') {
return me.$message.error('序号' + (i + 1) + '测试结果不能为空') if (t.itemType !== '2') {
if (isBlank(d.result)) {
return me.$message.error('序号' + (i + 1) + '测试结果不能为空')
}
} else {
if (isBlank(d.content)) {
return me.$message.error('序号' + (i + 1) + '测试结果不能为空')
}
}
} }
} }
} }
@ -1316,6 +1370,11 @@ export default {
me.processForm.qcSubCategoriesLabel = row.label me.processForm.qcSubCategoriesLabel = row.label
} }
} }
if (me.changeItem === 'Y' && me.processForm.result === 'G') {
if (isBlank(me.processForm.newItem)) {
return me.$message.error('新物料不能为空')
}
}
showLoading() showLoading()
submitInspec(me.processForm).then(res => { submitInspec(me.processForm).then(res => {
hideLoading() hideLoading()

View File

@ -53,11 +53,7 @@
{{ form.judgeDateTime }} {{ form.judgeDateTime }}
</el-form-item> </el-form-item>
<el-form-item :label="$t('mes.judgeResult') + ':'"> <el-form-item :label="$t('mes.judgeResult') + ':'">
<el-tag v-if="form.result === '0'" type="danger" effect="dark"> NG </el-tag> <span>{{findLevelList(form.result)}}</span>
<el-tag v-if="form.result === '1'" type="success" effect="dark"> OK </el-tag>
<el-tag v-if="form.result === '2'" type="primary" effect="dark">
{{ $t('mes.specialProcurement') }}
</el-tag>
</el-form-item> </el-form-item>
<el-form-item :label="$t('mes.wms.isSpecialProcurement') + ':'" prop="waiver"> <el-form-item :label="$t('mes.wms.isSpecialProcurement') + ':'" prop="waiver">
<el-switch <el-switch
@ -216,9 +212,18 @@ export default {
tabActiveName: 'main', tabActiveName: 'main',
formVisible: false, formVisible: false,
freqData: dynamicFunction.getDictListCust('inspec_freq'), freqData: dynamicFunction.getDictListCust('inspec_freq'),
levelList: dynamicFunction.getDictListCust('INSPEC_LEVEL'),
} }
}, },
methods: { methods: {
findLevelList (result) {
let me = this
for (let i = 0; i < me.levelList.length; i++) {
if (me.levelList[i].value === result) {
return me.levelList[i].label
}
}
},
approvalStatusFind(status) { approvalStatusFind(status) {
if (status === 'E') { if (status === 'E') {
return '失败' return '失败'

View File

@ -340,6 +340,8 @@ export default {
to: moment(new Date().setDate(new Date().getDate()+1)).format('YYYY-MM-DD HH:mm'), to: moment(new Date().setDate(new Date().getDate()+1)).format('YYYY-MM-DD HH:mm'),
isClickSearch:true, isClickSearch:true,
changeSearch:true, changeSearch:true,
personal:true,
statusCount:null
}, },
site: getStore({ name: 'tenantId' }), site: getStore({ name: 'tenantId' }),
tableLoading: false, tableLoading: false,
@ -994,7 +996,9 @@ export default {
this.page.total = res.data.data.total this.page.total = res.data.data.total
me.page.current = res.data.data.current me.page.current = res.data.data.current
me.page.size = res.data.data.size me.page.size = res.data.data.size
me.searchForm.statusCount = 0
if (this.tableData.length > 0) { if (this.tableData.length > 0) {
me.searchForm.statusCount = this.tableData[0].statusCount
this.tableData.forEach((t) => { this.tableData.forEach((t) => {
let s = this.jobStatusList.find((j) => j.value == t.status) let s = this.jobStatusList.find((j) => j.value == t.status)
t.newStatus = s ? s.label : '' t.newStatus = s ? s.label : ''
@ -1099,8 +1103,10 @@ export default {
searchReset() { searchReset() {
let me = this let me = this
me.searchForm = { me.searchForm = {
from: '', from: moment(new Date()).subtract(7, 'days').format('YYYY-MM-DD HH:mm'),
to: '', to: moment(new Date().setDate(new Date().getDate()+1)).format('YYYY-MM-DD HH:mm'),
personal:true,
statusCount:null
} }
this.tableData = [] this.tableData = []
this.qcTable = [] this.qcTable = []
@ -1108,7 +1114,7 @@ export default {
me.page.current = 1 me.page.current = 1
me.params = {} me.params = {}
clear.call(me, me.$refs.tableData) clear.call(me, me.$refs.tableData)
me.searchChange() //me.searchChange()
}, },
afterCloseJob(key) { afterCloseJob(key) {
let init = { let init = {

View File

@ -123,9 +123,9 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4" :offset="1"> <el-col :span="3" :offset="1">
<el-checkbox v-model="searchForm.personal" true-label="true" false-label="false" <el-checkbox v-model="searchForm.personal" true-label="true" false-label="false" :disabled="true">
>{{ $t('mes.qms.personalTaskOrder') }} {{ $t('mes.qms.personalTaskOrder') }}
</el-checkbox> </el-checkbox>
</el-col> </el-col>
</el-row> </el-row>
@ -172,6 +172,17 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3" :offset="1">
<!-- <el-checkbox v-model="searchForm.statusCount" true-label="true" false-label="false" :disabled="true"-->
<!-- >{{ $t('mes.qms.personalTaskOrder') }}-->
<!-- </el-checkbox>-->
<el-form-item >
<template slot="label">
<tooltip content="未完成数量:"> </tooltip>
</template>
<span>{{searchForm.statusCount}}</span>
</el-form-item>
</el-col>
</el-row> </el-row>
<!-- 第三行 --> <!-- 第三行 -->
<el-row :gutter="15"> <el-row :gutter="15">

View File

@ -321,6 +321,7 @@ export default {
from: moment(new Date().setMonth(new Date().getMonth()-1)).format('YYYY-MM-DD HH:mm'), from: moment(new Date().setMonth(new Date().getMonth()-1)).format('YYYY-MM-DD HH:mm'),
to: moment(new Date()).format('YYYY-MM-DD HH:mm'), to: moment(new Date()).format('YYYY-MM-DD HH:mm'),
seq: '', seq: '',
personal:true
}, },
site: getStore({ name: 'tenantId' }), site: getStore({ name: 'tenantId' }),
tableLoading: false, tableLoading: false,
@ -888,6 +889,7 @@ export default {
from: moment(new Date().setMonth(new Date().getMonth()-1)).format('YYYY-MM-DD HH:mm'), from: moment(new Date().setMonth(new Date().getMonth()-1)).format('YYYY-MM-DD HH:mm'),
to: moment(new Date()).format('YYYY-MM-DD HH:mm'), to: moment(new Date()).format('YYYY-MM-DD HH:mm'),
seq: '', seq: '',
personal:true
} }
this.page.size = 10 this.page.size = 10
this.page.current = 1 this.page.current = 1

View File

@ -135,7 +135,7 @@
<el-col :span="6"> <el-col :span="6">
<!-- 勾選框 --> <!-- 勾選框 -->
<el-form-item> <el-form-item>
<el-checkbox v-model="searchForm.personal" true-label="true" false-label="false"> <el-checkbox v-model="searchForm.personal" true-label="true" false-label="false" disabled>
{{ $t('mes.qms.personalTaskOrder') }} {{ $t('mes.qms.personalTaskOrder') }}
</el-checkbox> </el-checkbox>
</el-form-item> </el-form-item>

View File

@ -173,8 +173,6 @@
border border
> >
<el-table-column type="selection" width="50"/> <el-table-column type="selection" width="50"/>
<el-table-column prop="seq" width="60" label="序号">
</el-table-column>
<el-table-column prop="storageBin" width="150" label="存储地点"> <el-table-column prop="storageBin" width="150" label="存储地点">
</el-table-column> </el-table-column>
<el-table-column prop="inventoryId" width="150" label="生产批/条码"> <el-table-column prop="inventoryId" width="150" label="生产批/条码">
@ -231,7 +229,11 @@
</el-input> </el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="creator" label="复判人" width="100"> <el-table-column label="复判人" width="150">
<template slot-scope="scope">
<span v-if="scope.row.rejudgCreator != null">{{scope.row.rejudgCreator}}/{{scope.row.name}}</span>
<span v-else>{{scope.row.rejudgCreator}}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="rejudgDate" label="复判时间" width="160"> <el-table-column prop="rejudgDate" label="复判时间" width="160">
</el-table-column> </el-table-column>