Compare commits
No commits in common. "d12738722c37a841872fb47a567eadfcbbcac1d5" and "06cd922bd895cd6a8e8492ca17b3406bbd225e39" have entirely different histories.
d12738722c
...
06cd922bd8
@ -1,86 +0,0 @@
|
|||||||
<template>
|
|
||||||
<n-form ref="formRef" :model="formDetailData" label-placement="left" label-width="80">
|
|
||||||
<!-- <n-form-item label="批次号/SN码" path="traceCode" label-width="100" v-show="showTraceCode">
|
|
||||||
<n-input v-model:value="formDetailData.traceCode" disabled />
|
|
||||||
</n-form-item> -->
|
|
||||||
<n-form-item label="判定数量" path="qty" label-width="70" >
|
|
||||||
<n-input-number
|
|
||||||
style="width: 100%;"
|
|
||||||
v-model:value="formDetailData.qty"
|
|
||||||
placeholder="请输入判定数量" :min="0"
|
|
||||||
:disabled="disabled"
|
|
||||||
/>
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="备注" label-width="70">
|
|
||||||
<n-input
|
|
||||||
v-model:value="formDetailData.remark"
|
|
||||||
type="textarea"
|
|
||||||
placeholder="输入备注原因"
|
|
||||||
:disabled="disabled"
|
|
||||||
/>
|
|
||||||
</n-form-item>
|
|
||||||
|
|
||||||
</n-form>
|
|
||||||
</template>
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { onMounted, ref, watch } from 'vue';
|
|
||||||
|
|
||||||
import {qcResultDetailApi,QcResultDetail} from "@/api/qcResultDetail.ts";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const emit = defineEmits(['update:formDetailData'])
|
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
id:Number,
|
|
||||||
formDetailData:Object as () => QcResultDetail,
|
|
||||||
disabled:Boolean,
|
|
||||||
showTraceCode:Boolean
|
|
||||||
})
|
|
||||||
|
|
||||||
let formDetailData = ref({...props.formDetailData})
|
|
||||||
let isInitLoading = true
|
|
||||||
|
|
||||||
|
|
||||||
watch(
|
|
||||||
()=> props.formDetailData,
|
|
||||||
(newVal)=>{
|
|
||||||
formDetailData.value = {...newVal}
|
|
||||||
},
|
|
||||||
{ deep: true, immediate: true }
|
|
||||||
)
|
|
||||||
|
|
||||||
watch(
|
|
||||||
formDetailData,
|
|
||||||
(newVal)=>{
|
|
||||||
// if (isInitLoading) {
|
|
||||||
// isInitLoading = false
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
emit('update:formDetailData',{...newVal})
|
|
||||||
},
|
|
||||||
{ deep: true, flush: 'post' }
|
|
||||||
)
|
|
||||||
|
|
||||||
async function loadData() {
|
|
||||||
if(!props.id) return
|
|
||||||
qcResultDetailApi.detail(props.id).then((res:any)=>{
|
|
||||||
formDetailData.value = { ...formDetailData.value, ...res }
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// watch(() => props.id, (val: Number)=>{
|
|
||||||
// loadData();
|
|
||||||
// })
|
|
||||||
|
|
||||||
watch(() => props.id, (val: number)=>{
|
|
||||||
loadData();
|
|
||||||
})
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
loadData()
|
|
||||||
})
|
|
||||||
|
|
||||||
</script>
|
|
||||||
@ -1,222 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div style="margin: 20px;padding: 20px;border: 4px double #ccc;border-radius: 10px;">
|
|
||||||
<div style="margin-bottom: 20px;padding-bottom: 10px;font-size: 18px;color: #145165;border-bottom:1px solid #ccc;"><span style="padding-right: 20px;color: #5c6163;">批次号/SN码</span>{{ formDetailOKData.traceCode }}</div>
|
|
||||||
<div style="display: flex;justify-content: space-between;flex-wrap: wrap;">
|
|
||||||
<div style="width: 48%;margin-bottom: 20px;padding:15px 15px 0;border: 2px dashed #ccc;border-radius: 8px;">
|
|
||||||
<div style="margin-bottom: 20px;padding-bottom: 10px;font-size: 16px;color: #838282;border-bottom:1px solid #ccc;">合格</div>
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="ok"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailOKData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailOKData"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div style="width: 48%;margin-bottom: 20px;padding:15px 15px 0;border: 2px dashed #ccc;border-radius: 8px;">
|
|
||||||
<div style="margin-bottom: 20px;padding-bottom: 10px;font-size: 16px;color: #838282;border-bottom:1px solid #ccc;">报废</div>
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="scrap"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailScrapData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailScrapData"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div style="width: 48%;padding: 15px 15px 0;border: 2px dashed #ccc;border-radius: 8px;">
|
|
||||||
<div style="margin-bottom: 20px;padding-bottom: 10px;font-size: 16px;color: #838282;border-bottom:1px solid #ccc;">返工</div>
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="rework"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailReworkData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailReworkData"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div style="width: 48%;padding: 15px 15px 0;border: 2px dashed #ccc;border-radius: 8px;">
|
|
||||||
<div style="margin-bottom: 20px;padding-bottom: 10px;font-size: 16px;color: #838282;border-bottom:1px solid #ccc;">让步接收</div>
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="conession"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailConcessionData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailConcessionData"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <n-tabs type="card" animated>
|
|
||||||
<n-tab-pane name="合格" tab="合格" v-if="showOkTab">
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="ok"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailOKData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailOKData"
|
|
||||||
/>
|
|
||||||
</n-tab-pane>
|
|
||||||
<n-tab-pane name="报废" tab="报废" v-if="showScrapTab">
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="scrap"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailScrapData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailScrapData"
|
|
||||||
/>
|
|
||||||
</n-tab-pane>
|
|
||||||
<n-tab-pane name="返工" tab="返工" v-if="showReworkTab">
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="rework"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailReworkData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailReworkData"
|
|
||||||
/>
|
|
||||||
</n-tab-pane>
|
|
||||||
<n-tab-pane name="让步接收" tab="让步接收" v-if="showConnessionTab">
|
|
||||||
|
|
||||||
<SubmitDetailPage1
|
|
||||||
key="conession"
|
|
||||||
:disabled="false"
|
|
||||||
:formDetailData="formDetailConcessionData"
|
|
||||||
:showTraceCode="showTraceCode"
|
|
||||||
@update:formDetailData= "handleFormDetailConcessionData"
|
|
||||||
/>
|
|
||||||
</n-tab-pane>
|
|
||||||
</n-tabs> -->
|
|
||||||
</template>
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { ref, reactive, watch, onMounted } from 'vue'
|
|
||||||
import {
|
|
||||||
NButton, NSpace, useMessage
|
|
||||||
} from 'naive-ui'
|
|
||||||
|
|
||||||
import {useRoute} from "vue-router";
|
|
||||||
|
|
||||||
import {qcResultDetailApi, type QcResultDetail} from "@/api/qcResultDetail.ts";
|
|
||||||
import { qualityTestingApi} from '@/api/qualityTesting'
|
|
||||||
import router from '@/router';
|
|
||||||
import SubmitDetailPage1 from '@/components/SubmitDetailPage1.vue';
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
showOkTab:Boolean,
|
|
||||||
showScrapTab:Boolean,
|
|
||||||
showReworkTab:Boolean,
|
|
||||||
showConnessionTab:Boolean,
|
|
||||||
showTraceCode:Boolean,
|
|
||||||
qcId:Number
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
const message = useMessage()
|
|
||||||
const route = useRoute()
|
|
||||||
|
|
||||||
|
|
||||||
const traceCode = ref(String(route.params.traceCode))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const emit = defineEmits(['updateSubmitDetail','qcSumitDetail'])
|
|
||||||
|
|
||||||
const submitDetail = reactive<any>({})
|
|
||||||
|
|
||||||
const defaultFormDetailData:QcResultDetail = {
|
|
||||||
qcId: undefined,
|
|
||||||
resultType: undefined,
|
|
||||||
qty: 0,
|
|
||||||
traceCode: undefined,
|
|
||||||
defectCode: undefined,
|
|
||||||
handleAction: undefined,
|
|
||||||
actionStatus: undefined,
|
|
||||||
remark: '',
|
|
||||||
title:undefined,
|
|
||||||
images:[],
|
|
||||||
attachments:[]
|
|
||||||
}
|
|
||||||
|
|
||||||
const formDetailOKData = reactive<QcResultDetail>({ ...defaultFormDetailData,traceCode:traceCode.value, resultType: 1,handleAction:'下一道工序',actionStatus:1 })
|
|
||||||
|
|
||||||
const formDetailScrapData = reactive<QcResultDetail>({ ...defaultFormDetailData,traceCode:traceCode.value,resultType: 2,handleAction:'报废次品',actionStatus:1 })
|
|
||||||
const formDetailReworkData = reactive<QcResultDetail>({ ...defaultFormDetailData,traceCode:traceCode.value,resultType: 3,handleAction:'返工',actionStatus:1 })
|
|
||||||
const formDetailConcessionData = reactive<QcResultDetail>({ ...defaultFormDetailData,traceCode:traceCode.value,resultType: 4,handleAction:'让步接收',actionStatus:1 })
|
|
||||||
|
|
||||||
function handleFormDetailOKData(formDetailData:QcResultDetail) {
|
|
||||||
console.log('===OK表单触发更新===', formDetailData)
|
|
||||||
Object.assign(formDetailOKData, formDetailData)
|
|
||||||
submitDetail.okData = formDetailOKData
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleFormDetailScrapData(formDetailData:QcResultDetail) {
|
|
||||||
console.log('===报废表单触发更新===', formDetailData)
|
|
||||||
Object.assign(formDetailScrapData, formDetailData)
|
|
||||||
submitDetail.scrapData = formDetailScrapData
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleFormDetailReworkData(formDetailData:QcResultDetail) {
|
|
||||||
Object.assign(formDetailReworkData, formDetailData)
|
|
||||||
submitDetail.reworkData = formDetailReworkData
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleFormDetailConcessionData(formDetailData:QcResultDetail){
|
|
||||||
Object.assign(formDetailConcessionData, formDetailData)
|
|
||||||
submitDetail.concessionData = formDetailConcessionData
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
watch(
|
|
||||||
submitDetail,
|
|
||||||
(newVal)=>{
|
|
||||||
|
|
||||||
emit('updateSubmitDetail',{...newVal})
|
|
||||||
},{ deep: true }
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
watch(
|
|
||||||
submitDetail,
|
|
||||||
(newVal)=>{
|
|
||||||
emit('qcSumitDetail',{...newVal})
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
function handleReset() {
|
|
||||||
Object.assign(formDetailOKData, { ...defaultFormDetailData, resultType: 1, handleAction: '下一道工序', actionStatus: 1 })
|
|
||||||
Object.assign(formDetailScrapData, { ...defaultFormDetailData, resultType: 2, handleAction: '报废次品', actionStatus: 1 })
|
|
||||||
Object.assign(formDetailReworkData, { ...defaultFormDetailData, resultType: 3, handleAction: '返工', actionStatus: 1 })
|
|
||||||
Object.assign(formDetailConcessionData, { ...defaultFormDetailData, resultType: 4, handleAction: '让步接收', actionStatus: 1 })
|
|
||||||
|
|
||||||
message.info("表单已重置")
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async function loadData() {
|
|
||||||
if(props.qcId == -1) return
|
|
||||||
const resultList = await qcResultDetailApi.selectlistByqcId(props.qcId);
|
|
||||||
Object.assign(formDetailOKData,{...resultList.formDetailOKData})
|
|
||||||
Object.assign(formDetailScrapData,{...resultList.formDetailScrapData})
|
|
||||||
Object.assign(formDetailReworkData, { ...resultList.formDetailReworkData})
|
|
||||||
Object.assign(formDetailConcessionData, { ...resultList.formDetailConsecctionData })
|
|
||||||
|
|
||||||
submitDetail.okData = resultList.formDetailOKData ?? { ...defaultFormDetailData, resultType: 1, handleAction: '下一道工序', actionStatus: 1 }
|
|
||||||
submitDetail.scrapData = resultList.formDetailScrapData ?? { ...defaultFormDetailData, resultType: 2, handleAction: '报废次品', actionStatus: 1 }
|
|
||||||
submitDetail.reworkData = resultList.formDetailReworkData ?? { ...defaultFormDetailData, resultType: 3, handleAction: '返工', actionStatus: 1 }
|
|
||||||
submitDetail.concessionData = resultList.formDetailConsecctionData ?? { ...defaultFormDetailData, resultType: 4, handleAction: '让步接收', actionStatus: 1 }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
loadData()
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
||||||
@ -215,13 +215,13 @@ const routes: RouteRecordRaw[] = [
|
|||||||
component: () => import('@/views/biz/device/board.vue'),
|
component: () => import('@/views/biz/device/board.vue'),
|
||||||
meta: { title: '设备状态监控', icon: 'PulseOutline' }
|
meta: { title: '设备状态监控', icon: 'PulseOutline' }
|
||||||
},
|
},
|
||||||
// 入库管理
|
// 入库 管理
|
||||||
// {
|
{
|
||||||
// path: 'biz/stockIn',
|
path: 'biz/stockIn',
|
||||||
// name: 'BizStockIn',
|
name: 'BizStockIn',
|
||||||
// component: () => import('@/views/biz/stockIn/index.vue'),
|
component: () => import('@/views/biz/stockIn/index.vue'),
|
||||||
// meta: { title: '入库管理', icon: 'ArchiveOutline' }
|
meta: { title: '入库管理', icon: 'ArchiveOutline' }
|
||||||
// },
|
},
|
||||||
// 甘特图排产
|
// 甘特图排产
|
||||||
{
|
{
|
||||||
path: 'biz/orderProject/gantt',
|
path: 'biz/orderProject/gantt',
|
||||||
|
|||||||
@ -563,7 +563,7 @@ body.dark-theme {
|
|||||||
// 页面容器
|
// 页面容器
|
||||||
.page-container {
|
.page-container {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
//min-height: calc(100vh - 60px);
|
min-height: calc(100vh - 60px);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 搜索表单
|
// 搜索表单
|
||||||
|
|||||||
@ -957,7 +957,7 @@ function handleExport() {
|
|||||||
const deviceDocumentConnectionVisible = ref<Boolean>(false)
|
const deviceDocumentConnectionVisible = ref<Boolean>(false)
|
||||||
const title = ref<String>("")
|
const title = ref<String>("")
|
||||||
|
|
||||||
const deviceDocumentConnection = reactive<any>({})
|
const deviceDocumentConnection = ref<DeviceDocumentConnection>({})
|
||||||
const connectionLoading = ref<boolean>(false)
|
const connectionLoading = ref<boolean>(false)
|
||||||
const connectionPagination = reactive({
|
const connectionPagination = reactive({
|
||||||
page: 1,
|
page: 1,
|
||||||
@ -968,7 +968,7 @@ const connectionPagination = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const deviceList = ref<Device[]>([])
|
const deviceList = ref<Device[]>([])
|
||||||
const selectedDeviceIds = ref<any>([])
|
const selectedDeviceIds = ref<Device[]>([])
|
||||||
|
|
||||||
function handlerConnectionDevice(row:any) {
|
function handlerConnectionDevice(row:any) {
|
||||||
deviceDocumentConnectionVisible.value = true
|
deviceDocumentConnectionVisible.value = true
|
||||||
@ -1022,7 +1022,7 @@ const loadCreateApi = async ()=>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async function getDeviceList(id:any) {
|
async function getDeviceList(id) {
|
||||||
try {
|
try {
|
||||||
const res = await deviceApi.getDeviceByNcId({
|
const res = await deviceApi.getDeviceByNcId({
|
||||||
ncId:id,
|
ncId:id,
|
||||||
@ -1033,7 +1033,7 @@ async function getDeviceList(id:any) {
|
|||||||
connectionPagination.itemCount = res.total
|
connectionPagination.itemCount = res.total
|
||||||
|
|
||||||
//回显
|
//回显
|
||||||
selectedDeviceIds.value = deviceList.value.filter((item:any) =>item.isBind).map(item=>item.id)
|
selectedDeviceIds.value = deviceList.value.filter(item=>item.isBind).map(item=>item.id)
|
||||||
connectionLoading.value = false
|
connectionLoading.value = false
|
||||||
}catch (error) {
|
}catch (error) {
|
||||||
message.error("获取关联异常")
|
message.error("获取关联异常")
|
||||||
@ -1059,7 +1059,7 @@ const deviceColumns:DataTableColumns<Device> = [
|
|||||||
{ type: 'selection' },
|
{ type: 'selection' },
|
||||||
{title: '设备名称', key: 'deviceName',width:80},
|
{title: '设备名称', key: 'deviceName',width:80},
|
||||||
{ title: "关联状态",key:"isBind",width:80,
|
{ title: "关联状态",key:"isBind",width:80,
|
||||||
render(row:any) {
|
render(row) {
|
||||||
const val = row.isBind;
|
const val = row.isBind;
|
||||||
if (val) {
|
if (val) {
|
||||||
return h(NTag, { type: "success" }, { default: () => "已关联" });
|
return h(NTag, { type: "success" }, { default: () => "已关联" });
|
||||||
|
|||||||
@ -116,7 +116,6 @@
|
|||||||
v-model:value="formData.sectionId"
|
v-model:value="formData.sectionId"
|
||||||
cascade
|
cascade
|
||||||
checkable
|
checkable
|
||||||
default-expand-all
|
|
||||||
:options="sectionList"
|
:options="sectionList"
|
||||||
/>
|
/>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
|
|||||||
@ -240,14 +240,14 @@ const modalTitle = ref('')
|
|||||||
const importModalVisible = ref(false)
|
const importModalVisible = ref(false)
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
const defaultFormData = {
|
const defaultFormData = {
|
||||||
subscriptionKey: undefined,
|
subscriptionKey: '',
|
||||||
title: '',
|
title: '',
|
||||||
subscriptionDeviceIds: '',
|
subscriptionDeviceIds: '',
|
||||||
subscriptionDiscoverField: undefined,
|
subscriptionDiscoverField: '',
|
||||||
notifierMethod:1,
|
notifierMethod:1,
|
||||||
sendingMethod: [],
|
sendingMethod: [],
|
||||||
discoverValue: '',
|
discoverValue: '',
|
||||||
detectionMethod: undefined,
|
detectionMethod: '',
|
||||||
notifier: '',
|
notifier: '',
|
||||||
notifierContent: '',
|
notifierContent: '',
|
||||||
abnormalReporting: undefined,
|
abnormalReporting: undefined,
|
||||||
@ -306,18 +306,10 @@ userApi.getPathList().then(rps => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// const itemOptions = computed(() => {
|
|
||||||
// if (!selectedCategory.value) {
|
|
||||||
// return [] // 未选择分类时,选项列表为空
|
|
||||||
// }
|
|
||||||
// return allItems[selectedCategory.value] || []
|
|
||||||
// })
|
|
||||||
|
|
||||||
|
|
||||||
function keyupdate(v:any,n:any) {
|
function keyupdate(v:any,n:any) {
|
||||||
formData.subscriptionDiscoverField = null
|
formData.subscriptionDiscoverField = ''
|
||||||
yiczdopt.value = n.childList
|
yiczdopt.value = n.childList
|
||||||
|
|
||||||
console.log(v)
|
console.log(v)
|
||||||
console.log(n)
|
console.log(n)
|
||||||
}
|
}
|
||||||
@ -356,7 +348,7 @@ const columns: DataTableColumns<ErrorNotification> = [
|
|||||||
minWidth:150,
|
minWidth:150,
|
||||||
render(row) {
|
render(row) {
|
||||||
const vals = Array.isArray(row.subscriptionDeviceIds) ? row.subscriptionDeviceIds : (row.subscriptionDeviceIds ? String(row.subscriptionDeviceIds).split(',') : [])
|
const vals = Array.isArray(row.subscriptionDeviceIds) ? row.subscriptionDeviceIds : (row.subscriptionDeviceIds ? String(row.subscriptionDeviceIds).split(',') : [])
|
||||||
return vals.map(v => deviclist.value.find((o:any) => String(o.value) === String(v))?.label ?? v).filter(Boolean).join(', ') || '-'
|
return vals.map(v => deviclist.value.find(o => String(o.value) === String(v))?.label ?? v).filter(Boolean).join(', ') || '-'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -394,7 +386,7 @@ const columns: DataTableColumns<ErrorNotification> = [
|
|||||||
minWidth:150,
|
minWidth:150,
|
||||||
render(row) {
|
render(row) {
|
||||||
const vals = Array.isArray(row.notifier) ? row.notifier : (row.notifier ? String(row.notifier).split(',') : [])
|
const vals = Array.isArray(row.notifier) ? row.notifier : (row.notifier ? String(row.notifier).split(',') : [])
|
||||||
return vals.map(v => userlist.value.find((o:any) => String(o.value) === String(v))?.label ?? v).filter(Boolean).join(', ') || '-'
|
return vals.map(v => userlist.value.find(o => String(o.value) === String(v))?.label ?? v).filter(Boolean).join(', ') || '-'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -393,10 +393,9 @@
|
|||||||
</n-gi>
|
</n-gi>
|
||||||
</n-grid>
|
</n-grid>
|
||||||
</n-card>
|
</n-card>
|
||||||
<!--:rules="dispatchrules"-->
|
|
||||||
<n-form ref="dispatchformRef" :model="dispatchform"
|
<n-form ref="dispatchformRef" :model="dispatchform"
|
||||||
label-placement="left"
|
label-placement="left"
|
||||||
|
:rules="dispatchrules"
|
||||||
style="margin-top: 10px;"
|
style="margin-top: 10px;"
|
||||||
label-width="80">
|
label-width="80">
|
||||||
<n-grid :cols="2">
|
<n-grid :cols="2">
|
||||||
@ -1245,7 +1244,7 @@ function disphand(process: ProcessPlanItemVO, order?: OrderProcessPlanVO) {
|
|||||||
dispatchform.sort = entity.sort
|
dispatchform.sort = entity.sort
|
||||||
dispatchform.sectionId = entity.sectionId ?? process.sectionId ?? null
|
dispatchform.sectionId = entity.sectionId ?? process.sectionId ?? null
|
||||||
dispatchform.workshopId = entity.workshopId ?? process.workshopId ?? order?.workshopId ?? null
|
dispatchform.workshopId = entity.workshopId ?? process.workshopId ?? order?.workshopId ?? null
|
||||||
dispatchform.list = [{ sectionId: '', deviceId: '', quantity: remainQty+'' || '',ncId:'' }]
|
dispatchform.list = [{ sectionId: '', deviceId: '', quantity: remainQty || '',ncId:'' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
function addpgnum() {
|
function addpgnum() {
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 工具栏 -->
|
<!-- 工具栏 -->
|
||||||
<!-- <div class="table-toolbar">
|
<div class="table-toolbar">
|
||||||
<n-space>
|
<n-space>
|
||||||
<n-button type="primary" @click="handleAdd">
|
<n-button type="primary" @click="handleAdd">
|
||||||
<template #icon><n-icon><AddOutline /></n-icon></template>
|
<template #icon><n-icon><AddOutline /></n-icon></template>
|
||||||
@ -51,7 +51,7 @@
|
|||||||
删除
|
删除
|
||||||
</n-button>
|
</n-button>
|
||||||
</n-space>
|
</n-space>
|
||||||
</div> -->
|
</div>
|
||||||
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<n-data-table
|
<n-data-table
|
||||||
@ -225,9 +225,8 @@
|
|||||||
</n-modal>
|
</n-modal>
|
||||||
|
|
||||||
<!-- 提交判定明细抽屉 -->
|
<!-- 提交判定明细抽屉 -->
|
||||||
<n-drawer v-model:show="showSubmitOuter" :width="900">
|
<n-drawer v-model:show="showSubmitOuter" :width="800">
|
||||||
<SumbitDetailCard1
|
<SumbitDetailCard
|
||||||
:mask-closable="false"
|
|
||||||
:showOkTab="true"
|
:showOkTab="true"
|
||||||
:showScrapTab="true"
|
:showScrapTab="true"
|
||||||
:showReworkTab = true
|
:showReworkTab = true
|
||||||
@ -238,8 +237,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<n-space justify="center" style="width: 100%; margin-top: 16px;">
|
<n-space justify="center" style="width: 100%; margin-top: 16px;">
|
||||||
<!-- <n-button size="small" @click="handleReset">重置</n-button> -->
|
<n-button size="small" @click="handleReset">重置</n-button>
|
||||||
<n-button size="small" @click="showSubmitOuter = false">取消</n-button>
|
|
||||||
<n-button type="primary" size="small" @click="handleSubmitResultDetail">提交</n-button>
|
<n-button type="primary" size="small" @click="handleSubmitResultDetail">提交</n-button>
|
||||||
</n-space>
|
</n-space>
|
||||||
</n-drawer>
|
</n-drawer>
|
||||||
@ -264,7 +262,7 @@ import {assingReworkApi} from '@/api/assingRework'
|
|||||||
import { dictDataApi } from '@/api/org'
|
import { dictDataApi } from '@/api/org'
|
||||||
|
|
||||||
import {qcResultDetailApi, type QcResultDetail} from "@/api/qcResultDetail.ts";
|
import {qcResultDetailApi, type QcResultDetail} from "@/api/qcResultDetail.ts";
|
||||||
import SumbitDetailCard1 from '@/components/SumbitDetailCard1.vue'
|
import SumbitDetailCard from '@/components/SumbitDetailCard.vue'
|
||||||
|
|
||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
|
|
||||||
@ -478,7 +476,7 @@ const formRules = {
|
|||||||
|
|
||||||
// 表格列
|
// 表格列
|
||||||
const columns: DataTableColumns<QualityTesting> = [
|
const columns: DataTableColumns<QualityTesting> = [
|
||||||
// { type: 'selection' },
|
{ type: 'selection' },
|
||||||
{ title: '质检编号', key: 'qcNo',align: 'center' },
|
{ title: '质检编号', key: 'qcNo',align: 'center' },
|
||||||
{
|
{
|
||||||
title: '物料名称',
|
title: '物料名称',
|
||||||
@ -540,9 +538,9 @@ const columns: DataTableColumns<QualityTesting> = [
|
|||||||
h(NButton, { size: 'small', quaternary: true, onClick: () => handleEdit(row) }, {
|
h(NButton, { size: 'small', quaternary: true, onClick: () => handleEdit(row) }, {
|
||||||
default: () => [h(NIcon, null, { default: () => h(CreateOutline) }), ' 编辑']
|
default: () => [h(NIcon, null, { default: () => h(CreateOutline) }), ' 编辑']
|
||||||
}),
|
}),
|
||||||
// h(NButton, { size: 'small', quaternary: true, type: 'error', onClick: () => handleDelete(row) }, {
|
h(NButton, { size: 'small', quaternary: true, type: 'error', onClick: () => handleDelete(row) }, {
|
||||||
// default: () => [h(NIcon, null, { default: () => h(TrashOutline) }), ' 删除']
|
default: () => [h(NIcon, null, { default: () => h(TrashOutline) }), ' 删除']
|
||||||
// }),
|
}),
|
||||||
h(NDropdown, {
|
h(NDropdown, {
|
||||||
trigger: 'click', // 点击展开
|
trigger: 'click', // 点击展开
|
||||||
options: [
|
options: [
|
||||||
@ -932,7 +930,7 @@ function queryResultDetail(row:any) {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loadData()
|
loadData()
|
||||||
loadDictOptions()
|
loadDictOptions()
|
||||||
//loadAssignWorkOrder()
|
loadAssignWorkOrder()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@ export default defineConfig({
|
|||||||
emptyOutDir: true
|
emptyOutDir: true
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
//host:'192.168.12.4', //true,
|
host:'192.168.12.4', //true,
|
||||||
port: 3000,
|
port: 3000,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
@ -24,8 +24,8 @@ export default defineConfig({
|
|||||||
// target:'http://192.168.12.4:8888/',
|
// target:'http://192.168.12.4:8888/',
|
||||||
//target:'http://192.168.12.230:8888',
|
//target:'http://192.168.12.230:8888',
|
||||||
//target:'http://192.168.5.230:8888',
|
//target:'http://192.168.5.230:8888',
|
||||||
target:'http://192.168.5.232:8888/',
|
//target:'http://192.168.5.232:8888/',
|
||||||
//target:'http://localhost:8888',
|
target:'http://localhost:8888',
|
||||||
changeOrigin: true
|
changeOrigin: true
|
||||||
},
|
},
|
||||||
'/druid': {
|
'/druid': {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user