执行看板优化
This commit is contained in:
@@ -3,13 +3,18 @@
|
||||
<!-- <el-input ref="inputRef" v-model="input" type="password" placeholder="请扫码" @blur="doInputBlur"
|
||||
@change="doInputChange">
|
||||
</el-input> -->
|
||||
<v-text-field prepend-inner-icon="mdi-line-scan" type="password" ref="inputRef" autofocus label="请扫码"
|
||||
v-model="input" variant="solo-inverted" @keydown="handleKeyPress">
|
||||
<v-text-field prepend-inner-icon="mdi-line-scan" ref="inputRef" :type="passwordShow ? 'text' : 'password'"
|
||||
autofocus label="请扫码" v-model="input" variant="solo-inverted" @keydown="handleKeyPress">
|
||||
<template v-slot:append>
|
||||
<v-btn class="bg-blue-darken-1" size="x-large" prepend-icon="mdi-line-scan"
|
||||
@click="doInputChange(input)">
|
||||
扫码
|
||||
</v-btn>
|
||||
<div>
|
||||
<v-icon :icon="passwordShow ? 'mdi-eye' : 'mdi-eye-off'"
|
||||
@click="passwordShow = !passwordShow"></v-icon>
|
||||
|
||||
<v-btn class="bg-blue-darken-1 ml-2" size="x-large" prepend-icon="mdi-line-scan"
|
||||
@click="doInputChange(input)">
|
||||
扫码
|
||||
</v-btn>
|
||||
</div>
|
||||
</template>
|
||||
</v-text-field>
|
||||
|
||||
@@ -21,6 +26,7 @@
|
||||
import { getCurrentInstance, onMounted, onUnmounted, ref } from 'vue'
|
||||
const { proxy } = getCurrentInstance()
|
||||
const inputRef = ref(null)
|
||||
const passwordShow = ref(true)
|
||||
const input = ref('')
|
||||
// 自动重新聚焦
|
||||
function autoInputFocus() {
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-btn class="bg-blue-darken-1 mb-2" size="x-large" @click="getList()">
|
||||
刷新
|
||||
</v-btn>
|
||||
<vxe-table v-loading="loading" :data="list">
|
||||
<vxe-column type="seq" width="60"></vxe-column>
|
||||
<vxe-column field="jobDateTime" title="提交时间"></vxe-column>
|
||||
<vxe-column field="processName" title="工序"></vxe-column>
|
||||
<vxe-column field="finishNum" title="完成数"></vxe-column>
|
||||
<vxe-column field="badNum" title="不良数"></vxe-column>
|
||||
<vxe-column field="worker" title="作业员"></vxe-column>
|
||||
</vxe-table>
|
||||
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const { proxy } = getCurrentInstance()
|
||||
const props = defineProps({
|
||||
workorder: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
processId: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
})
|
||||
watch([() => props.workorder, () => props.processId], () => {
|
||||
getList();
|
||||
})
|
||||
const loading = ref(false)
|
||||
const list = ref([])
|
||||
const total = ref(0)
|
||||
const queryParams = reactive({
|
||||
name: '',
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
processId: null,
|
||||
})
|
||||
import { GetReportByProcessId } from '@/api/reportFlow/index'
|
||||
function getList() {
|
||||
loading.value = true
|
||||
list.value = []
|
||||
let params = queryParams
|
||||
params.workorder = props.workorder
|
||||
params.processId = props.processId
|
||||
GetReportByProcessId(params).then(res => {
|
||||
const { code, data } = res
|
||||
if (code == 200) {
|
||||
list.value = data.result
|
||||
total.value = data.totalNum
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-text-field label="作业员" v-model="queryParams.name">
|
||||
<template v-slot:append>
|
||||
<v-btn class="bg-blue-darken-1" size="x-large" @click="getList()">
|
||||
搜索
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-text-field>
|
||||
<vxe-table v-loading="loading" :data="list">
|
||||
<vxe-column type="seq" width="60"></vxe-column>
|
||||
<vxe-column field="worker" title="作业员"></vxe-column>
|
||||
<vxe-column field="processName" title="工序"></vxe-column>
|
||||
<vxe-column field="jobDateTime" title="提交时间"></vxe-column>
|
||||
<vxe-column field="finishNum" title="完成数"></vxe-column>
|
||||
<vxe-column field="badNum" title="不良数"></vxe-column>
|
||||
</vxe-table>
|
||||
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const { proxy } = getCurrentInstance()
|
||||
const props = defineProps({
|
||||
workorder: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
processId: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
})
|
||||
// watch([() => props.workorder, () => props.processId], () => {
|
||||
// getList();
|
||||
// })
|
||||
const loading = ref(false)
|
||||
const list = ref([])
|
||||
const total = ref(0)
|
||||
const queryParams = reactive({
|
||||
name: '',
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
processId: null,
|
||||
})
|
||||
import { GetReportInfoByName } from '@/api/reportFlow/index'
|
||||
function getList() {
|
||||
if (queryParams.name === '') {
|
||||
let msgJson = {
|
||||
dialog: true,
|
||||
class: 'bg-amber',
|
||||
title: '异常提示',
|
||||
text: '请扫姓名拼音'
|
||||
}
|
||||
proxy.$emit('openMessage', msgJson)
|
||||
return
|
||||
}
|
||||
loading.value = true
|
||||
list.value = []
|
||||
let params = queryParams
|
||||
params.workorder = props.workorder
|
||||
params.processId = props.processId
|
||||
GetReportInfoByName(params).then(res => {
|
||||
const { code, data } = res
|
||||
if (code == 200) {
|
||||
list.value = data.result
|
||||
total.value = data.totalNum
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
onMounted(() => {
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
86
src/views/touchScreen/report/components/TheWorkOrderList.vue
Normal file
86
src/views/touchScreen/report/components/TheWorkOrderList.vue
Normal file
@@ -0,0 +1,86 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="mb-2">
|
||||
<el-form inline="">
|
||||
<el-form-item label="开始时间">
|
||||
<el-date-picker :clearable="false" v-model="queryParams.startDate" type="date" size="large" />
|
||||
</el-form-item>
|
||||
<el-form-item label="结束时间">
|
||||
<el-date-picker :clearable="false" v-model="queryParams.endDate" type="date" size="large" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="large" @click="getList()">
|
||||
查询
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
</div>
|
||||
<vxe-table height="600" v-loading="loading" :data="list">
|
||||
<vxe-column type="seq" width="60"></vxe-column>
|
||||
<vxe-column field="workorder" title="工单号"></vxe-column>
|
||||
<vxe-column field="productionName" title="主体品名"></vxe-column>
|
||||
<vxe-column field="productionCode" title="主体型号"></vxe-column>
|
||||
<vxe-column field="stoveCode" title="炉号"></vxe-column>
|
||||
<vxe-column field="planNum" title="计划数量"></vxe-column>
|
||||
<vxe-column title="操作" width="160">
|
||||
<template #default="{ row }">
|
||||
<el-button type="success" @click="handleChouse(row)">选择</el-button>
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
<!-- <pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList" /> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const { proxy } = getCurrentInstance()
|
||||
const props = defineProps({
|
||||
workorder: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
processId: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
})
|
||||
// watch([() => props.workorder, () => props.processId], () => {
|
||||
// getList();
|
||||
// })
|
||||
const loading = ref(false)
|
||||
const list = ref([])
|
||||
const total = ref(0)
|
||||
const queryParams = reactive({
|
||||
name: '',
|
||||
startDate: proxy.dayjs().startOf('day').toDate(),
|
||||
endDate: proxy.dayjs().endOf('day').toDate(),
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
processId: null,
|
||||
})
|
||||
import { GetWorkOrdersByDate } from '@/api/reportFlow/index'
|
||||
function getList() {
|
||||
loading.value = true
|
||||
list.value = []
|
||||
let params = queryParams
|
||||
params.workorder = props.workorder
|
||||
params.processId = props.processId
|
||||
GetWorkOrdersByDate(params).then(res => {
|
||||
const { code, data } = res
|
||||
if (code == 200) {
|
||||
list.value = data
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
function handleChouse(row) {
|
||||
proxy.$emit('chouseWorkorder', row.workorder)
|
||||
}
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
@@ -0,0 +1,53 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-btn class="bg-blue-darken-1 mb-2" size="x-large" @click="getList()">
|
||||
刷新
|
||||
</v-btn>
|
||||
<vxe-table v-loading="loading" :data="list">
|
||||
<vxe-column type="seq" width="60"></vxe-column>
|
||||
<vxe-column field="processName" title="工序"></vxe-column>
|
||||
<vxe-column field="finishNum" title="完成数"></vxe-column>
|
||||
<vxe-column field="badNum" title="不良数"></vxe-column>
|
||||
<vxe-column field="worker" title="作业员"></vxe-column>
|
||||
<vxe-column field="jobDateTime" title="提交时间"></vxe-column>
|
||||
</vxe-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const { proxy } = getCurrentInstance()
|
||||
const props = defineProps({
|
||||
workorder: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
processId: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
})
|
||||
watch([() => props.workorder, () => props.processId], () => {
|
||||
getList();
|
||||
})
|
||||
const loading = ref(false)
|
||||
const list = ref([])
|
||||
import { GetWorkOrderReportWorkList } from '@/api/reportFlow/index'
|
||||
function getList() {
|
||||
loading.value = true
|
||||
list.value = []
|
||||
const params = { workorder: props.workorder, processId: props.processId }
|
||||
GetWorkOrderReportWorkList(params).then(res => {
|
||||
if (res.code == 200) {
|
||||
list.value = res.data
|
||||
} else {
|
||||
list.value = []
|
||||
}
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
@@ -8,6 +8,7 @@
|
||||
<v-tab value="此工单工序记录">此工单工序记录</v-tab>
|
||||
<v-tab value="此工序今日记录">此工序今日记录</v-tab>
|
||||
<v-tab value="员工报工记录">员工报工记录</v-tab>
|
||||
<v-tab value="工单查看">工单查看</v-tab>
|
||||
</v-tabs>
|
||||
<v-card-text>
|
||||
<v-fade-transition>
|
||||
@@ -33,57 +34,29 @@
|
||||
</v-tabs-window-item>
|
||||
<v-tabs-window-item value="此工单工序记录">
|
||||
<el-card v-if="formData.workorder" class="mt-4">
|
||||
<vxe-table align="center" :data="reportWorkerOrderList">
|
||||
<vxe-column type="seq" width="60"></vxe-column>
|
||||
<vxe-column field="processName" title="工序"></vxe-column>
|
||||
<vxe-column field="finishNum" title="完成数"></vxe-column>
|
||||
<vxe-column field="badNum" title="不良数"></vxe-column>
|
||||
<vxe-column field="worker" title="作业员"></vxe-column>
|
||||
<vxe-column field="jobDateTime" title="提交时间"></vxe-column>
|
||||
</vxe-table>
|
||||
<TheWorkOrderProcessRecord :workorder="formData.workorder"
|
||||
:processId="processId">
|
||||
</TheWorkOrderProcessRecord>
|
||||
</el-card>
|
||||
</v-tabs-window-item>
|
||||
<v-tabs-window-item value="此工序今日记录">
|
||||
<el-card class="mt-4">
|
||||
<v-btn style="margin-bottom: 20px" class="bg-blue-darken-1 margin-bottom-4"
|
||||
size="x-large" @click="nowdayReportOrderList()">
|
||||
搜索
|
||||
</v-btn>
|
||||
<vxe-table align="center" :data="nowdayReportDataList">
|
||||
<vxe-column type="seq" width="60"></vxe-column>
|
||||
<vxe-column field="processName" title="工序"></vxe-column>
|
||||
<vxe-column field="finishNum" title="完成数"></vxe-column>
|
||||
<vxe-column field="badNum" title="不良数"></vxe-column>
|
||||
<vxe-column field="worker" title="作业员"></vxe-column>
|
||||
<vxe-column field="jobDateTime" title="提交时间"></vxe-column>
|
||||
</vxe-table>
|
||||
<pagination :total="total1" v-model:page="queryParams1.pageNum"
|
||||
v-model:limit="queryParams1.pageSize" @pagination="nowdayReportOrderList" />
|
||||
<TheDayAllProcessRecord :workorder="formData.workorder" :processId="processId">
|
||||
</TheDayAllProcessRecord>
|
||||
</el-card>
|
||||
</v-tabs-window-item>
|
||||
<v-tabs-window-item value="员工报工记录">
|
||||
<el-card class="mt-4">
|
||||
<div>
|
||||
<v-text-field label="作业员" v-model="queryParams2.name">
|
||||
<template v-slot:append>
|
||||
<v-btn class="bg-blue-darken-1" size="x-large"
|
||||
@click="queryUserReport()">
|
||||
搜索
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-text-field>
|
||||
</div>
|
||||
<vxe-table v-loading="loading" align="center" :data="userReportDataList">
|
||||
<vxe-column type="seq" width="60"></vxe-column>
|
||||
<vxe-column field="workorder" title="工单号"></vxe-column>
|
||||
<vxe-column field="processName" title="工序"></vxe-column>
|
||||
<vxe-column field="finishNum" title="完成数"></vxe-column>
|
||||
<vxe-column field="badNum" title="不良数"></vxe-column>
|
||||
<vxe-column field="worker" title="作业员"></vxe-column>
|
||||
<vxe-column field="jobDateTime" title="提交时间"></vxe-column>
|
||||
</vxe-table>
|
||||
<pagination :total="total2" v-model:page="queryParams2.pageNum"
|
||||
v-model:limit="queryParams2.pageSize" @pagination="queryUserReport" />
|
||||
<ThePersonReportRecord :workorder="formData.workorder" :processId="processId"
|
||||
@openMessage="showDialog">
|
||||
</ThePersonReportRecord>
|
||||
</el-card>
|
||||
</v-tabs-window-item>
|
||||
<v-tabs-window-item value="工单查看">
|
||||
<el-card class="mt-4">
|
||||
<TheWorkOrderList :workorder="formData.workorder" :processId="processId"
|
||||
@chouseWorkorder="getFormData">
|
||||
</TheWorkOrderList>
|
||||
</el-card>
|
||||
</v-tabs-window-item>
|
||||
</v-tabs-window>
|
||||
@@ -154,9 +127,15 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
import * as ReportApi from '@/api/reportFlow/index'
|
||||
import scanInput from '../components/scanInput.vue'
|
||||
import ThePersonReportRecord from './components/ThePersonReportRecord.vue'
|
||||
import TheWorkOrderProcessRecord from './components/TheWorkOrderProcessRecord.vue'
|
||||
import TheDayAllProcessRecord from './components/TheDayAllProcessRecord.vue'
|
||||
import TheWorkOrderList from './components/TheWorkOrderList.vue'
|
||||
|
||||
const processOptions = [
|
||||
{
|
||||
value: 10,
|
||||
@@ -256,12 +235,12 @@ function getFormData(workorder) {
|
||||
formData.value = res.data
|
||||
ReportApi.GetProcessReportWorkDetail(params).then(res2 => {
|
||||
if (!res2.data) {
|
||||
formData.value.finishNum = 0;
|
||||
formData.value.finishNum = formData.value.planNum;
|
||||
formData.value.badNum = 0;
|
||||
formData.value.worker = '';
|
||||
}
|
||||
else {
|
||||
formData.value.finishNum = res2.data.finishNum ?? 0;
|
||||
formData.value.finishNum = res2.data.finishNum;
|
||||
formData.value.badNum = res2.data.badNum ?? 0;
|
||||
formData.value.worker = res2.data.worker;
|
||||
if (formData.value.finishNum > 0) {
|
||||
@@ -339,6 +318,12 @@ function submit() {
|
||||
})
|
||||
}
|
||||
|
||||
function showDialog(dialogJson = {}) {
|
||||
dialog.show = true
|
||||
dialog.class = dialogJson.class
|
||||
dialog.title = dialogJson.title
|
||||
dialog.text = dialogJson.text
|
||||
}
|
||||
|
||||
const queryParams1 = reactive({
|
||||
name: '',
|
||||
|
||||
Reference in New Issue
Block a user