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
})
}
//图片删除
export function deleteAttachment(param) {
return request({
url: qms('/inspec-attachment/minioDelete'),
method: 'get',
params: param
})
}

View File

@ -76,5 +76,14 @@ export default [
meta: {
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>
@ -35,6 +35,9 @@
{{ resetStatusShow(scope.row.state) }}
</span>
</template>
<template v-else-if="item.prop === 'functionName'" v-slot:default="scope">
{{ getValConvertShow(scope.row.functionName) }}
</template>
<template
v-else-if="item.prop === 'logCreator' || item.prop === 'dateExecute'"
v-slot:default="scope"
@ -128,6 +131,16 @@ export default {
this.int_transaction_retry = this.permissions['int_transaction_retry']
},
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) {
this.selectedRowData = row // 存储选中的行数据
this.selectedRowData.request = JSON.parse(row.request);

View File

@ -588,6 +588,7 @@ export default {
},
getActivityOption(activityId) {
let me = this;
me.podActionForm.fab = ''
if (activityId) {
getByActivityOption(activityId, 'Z_FAB')
.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>
<el-table-column prop="inspecLevel" label="判定等级">
<template slot-scope="scope">
<span>{{findLevelList(scope.row.inspecLevel)}}</span>
</template>
</el-table-column>
<el-table-column prop="demotionProcessHistory" width="120" label="降级过程">
</el-table-column>
@ -268,7 +271,11 @@
</el-table-column>
<el-table-column prop="reason" label="冻结/解冻原因" >
</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 prop="freedDate" width="160" label="冻结/解冻时间">
</el-table-column>
@ -369,6 +376,14 @@ export default {
// .catch(() => {})
},
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) {
let me = this
return me.statusList.find(item => item.value === status).label

View File

@ -1,15 +1,17 @@
import moment from "moment/moment";
export const init = {
sourceMasterLot:null,
storageBin: null,
startTime: null,
item: null,
weight: null,
endTime: null,
inspecLevel:null,
length:null,
status: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 = {}

View File

@ -836,7 +836,16 @@ export default {
}
},
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'
} else {
return
@ -920,7 +929,7 @@ export default {
this.freqData.forEach((f, index) => {
this.$set(this.freqData[index], 'item', key[this.freqData[index].value])
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 )
// if (index <= 6) {
// this.$set(this.freqData[index], 'seq', index + 1 + '')
@ -929,6 +938,7 @@ export default {
// this.$set(this.freqData[index], 'seq', index - 1 + '')
// }
})
setSeq(this.freqData, 'seq')
this.freqData.sort((a, b) => a.seq - b.seq)
}
},

View File

@ -606,8 +606,9 @@
</el-form-item>
</el-col>
<el-col :span="6" v-if="!showNewItem">
<el-form-item label="物料">
<el-input v-model="processForm.newItem" :readonly="true">
<el-form-item label="新物料:">
<span v-if="state === 'view'">{{processForm.newItem}}</span>
<el-input v-model="processForm.newItem" :readonly="true" v-else>
<i
slot="suffix"
class="el-input__icon el-icon-copy-document"
@ -723,7 +724,7 @@ import { checkTableRepeat, setSeq } from "@/util/table";
import { copyJSON } from "@/util/util";
import { closeForm, processForm } from "@/views/mes/qms/inspec/content/inspec";
import {
closeInspec, getMinio,
closeInspec, deleteAttachment, getMinio,
getOneDetail, reInspec, saveAllInspecAndDetailResult,
saveInspecAndDetailResult,
saveNc,
@ -882,14 +883,33 @@ export default {
//拍照预览
handlePreview(file) {
let me = this
me.dialogImg = URL.createObjectURL(file.raw);
//me.uploadList.push({url:me.dialogImg})
if (file.status === 'success') {
me.dialogImg = file.url
} else {
me.dialogImg = URL.createObjectURL(file.raw);
}
me.dialogImgVisible = true
},
//拍照删除
handleRemove(file) {
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) {
@ -904,9 +924,26 @@ export default {
me.dialogForm = {}
me.dialogForm.inspecJobBo = row.inspecJobBo
me.dialogForm.inspecDetailBo = row.handle
me.uploadList = []
me.searchPhoto()
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(){
let me = this
@ -914,12 +951,21 @@ export default {
if (files.length === 0) {
this.$message.error('请先选择要上传的文件');
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.inspecDetailBo = me.dialogForm.inspecDetailBo
const formData = new FormData();
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));
showLoading()
@ -1303,8 +1349,16 @@ export default {
t.inspecResults = t.inspecResultList
for (let j = 0; j < t.inspecResultList.length; j++) {
let d = t.inspecResultList[j]
if (isBlank(d.result) && t.itemType !== '2') {
return me.$message.error('序号' + (i + 1) + '测试结果不能为空')
if (d.isRequired === 'Y') {
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
}
}
if (me.changeItem === 'Y' && me.processForm.result === 'G') {
if (isBlank(me.processForm.newItem)) {
return me.$message.error('新物料不能为空')
}
}
showLoading()
submitInspec(me.processForm).then(res => {
hideLoading()

View File

@ -53,11 +53,7 @@
{{ form.judgeDateTime }}
</el-form-item>
<el-form-item :label="$t('mes.judgeResult') + ':'">
<el-tag v-if="form.result === '0'" type="danger" effect="dark"> NG </el-tag>
<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>
<span>{{findLevelList(form.result)}}</span>
</el-form-item>
<el-form-item :label="$t('mes.wms.isSpecialProcurement') + ':'" prop="waiver">
<el-switch
@ -216,9 +212,18 @@ export default {
tabActiveName: 'main',
formVisible: false,
freqData: dynamicFunction.getDictListCust('inspec_freq'),
levelList: dynamicFunction.getDictListCust('INSPEC_LEVEL'),
}
},
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) {
if (status === 'E') {
return '失败'

View File

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

View File

@ -123,9 +123,9 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" :offset="1">
<el-checkbox v-model="searchForm.personal" true-label="true" false-label="false"
>{{ $t('mes.qms.personalTaskOrder') }}
<el-col :span="3" :offset="1">
<el-checkbox v-model="searchForm.personal" true-label="true" false-label="false" :disabled="true">
{{ $t('mes.qms.personalTaskOrder') }}
</el-checkbox>
</el-col>
</el-row>
@ -172,6 +172,17 @@
</el-date-picker>
</el-form-item>
</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 :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'),
to: moment(new Date()).format('YYYY-MM-DD HH:mm'),
seq: '',
personal:true
},
site: getStore({ name: 'tenantId' }),
tableLoading: false,
@ -888,6 +889,7 @@ export default {
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'),
seq: '',
personal:true
}
this.page.size = 10
this.page.current = 1

View File

@ -135,7 +135,7 @@
<el-col :span="6">
<!-- 勾選框 -->
<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') }}
</el-checkbox>
</el-form-item>

View File

@ -173,8 +173,6 @@
border
>
<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>
<el-table-column prop="inventoryId" width="150" label="生产批/条码">
@ -231,7 +229,11 @@
</el-input>
</template>
</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 prop="rejudgDate" label="复判时间" width="160">
</el-table-column>