From 074f334d060ec7d33d39cdeaae5ed84a2a2dd3a3 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 22 八月 2023 18:20:59 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmMes
---
h5_standard/src/views/workOrder/workOrderReporting.vue | 898 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 703 insertions(+), 195 deletions(-)
diff --git a/h5_standard/src/views/workOrder/workOrderReporting.vue b/h5_standard/src/views/workOrder/workOrderReporting.vue
index 6dee09f..531d7fd 100644
--- a/h5_standard/src/views/workOrder/workOrderReporting.vue
+++ b/h5_standard/src/views/workOrder/workOrderReporting.vue
@@ -14,105 +14,172 @@
<span>鎵爜浜у嚭</span>
</div>
</div> -->
+ <div class="bg_cate">
+ <div @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'" v-for="(item, index) in cate" :key="index">{{ item.name }}</div>
+ </div>
<!-- 鎶曟枡鏄庣粏/鍚堟牸浜у嚭鏄庣粏/涓嶈壇浜у嚭鏄庣粏 -->
- <div class="bg_list">
- <div class="bg_list_item">
- <div class="bg_list_item_top">
- <div class="bg_list_item_top_left">
- <div class="bg_list_item_top_left_x"></div>
- <span>鎶曟枡鏄庣粏</span>
- <!-- <span class="blue left">{{tlTotal()}}</span> -->
+ <div class="bg_list" v-if="typeView === 0">
+ <div class="bg_list_item">
+ <div class="bg_list_item_top">
+ <div class="bg_list_item_top_left">
+ <div class="bg_list_item_top_left_x"></div>
+ <span>鎶曟枡鏄庣粏</span>
+ <!-- <span class="blue left">{{tlTotal()}}</span> -->
+ </div>
+ <div class="bg_list_item_top_right" @click="jumpTL" v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)">
+ <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
+ <span>鎵嬪姩褰曞叆</span>
+ </div>
</div>
- <div class="bg_list_item_top_right" @click="jumpTL" v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)">
- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
- <span>鎵嬪姩褰曞叆</span>
- </div>
- </div>
- <template v-if="feedingData && feedingData.length > 0">
- <van-swipe-cell v-for="(item, index) in feedingData" :key="index">
- <div class="bg_list_item_num">
- <div class="bg_list_item_num_item">
- <!-- <span>{{item.code}}</span> -->
- <div class="bg_list_item_num_item_wl">
- <span> {{ item.materialName }}{{ item.procedureName ? ` | ${item.procedureName}` : '' }}</span>
- <div class="bg_list_item_num_item_wl_lx">
- <span class="green" v-if="item.qualityType == 0">鍚堟牸 / </span>
- <span class="yellow" v-if="item.qualityType == 1">涓嶈壇 / </span>
- <span class="red" v-if="item.qualityType == 2">鎶ュ簾 / </span>
- <span>{{ item.locationName }}</span>
- <span>{{ item.batch ? ` / ${item.batch}` : '' }}</span>
+ <template v-if="feedingData && feedingData.length > 0">
+ <van-swipe-cell v-for="(item, index) in feedingData" :key="index">
+ <div class="bg_list_item_h">
+ <div class="bg_list_item_num">
+ <div class="bg_list_item_num_item">
+ <!-- <span>{{item.code}}</span> -->
+ <div class="bg_list_item_num_item_wl">
+ <span> {{ item.materialName }}{{ item.procedureName ? ` | ${item.procedureName}` : '' }}</span>
+ <div class="bg_list_item_num_item_wl_lx">
+ <span class="green" v-if="item.qualityType == 0">鍚堟牸 / </span>
+ <span class="yellow" v-if="item.qualityType == 1">涓嶈壇 / </span>
+ <span class="red" v-if="item.qualityType == 2">鎶ュ簾 / </span>
+ <span>{{ item.locationName }}</span>
+ <span>{{ item.batch ? ` / ${item.batch}` : '' }}</span>
+ </div>
+ </div>
+ <div class="bg_list_item_num_item_sr">
+ <input v-model="item.num" :disabled="!proxy.$auth('h5:workorderinput:update')" @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)" type="number" />
+ <span>{{item.unitName}}</span>
+ </div>
</div>
</div>
- <div class="bg_list_item_num_item_sr">
- <input v-model="item.num" :disabled="!proxy.$auth('h5:workorderinput:update')" @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)" type="number" />
- <span>{{item.unitName}}</span>
+ </div>
+
+ <template #right v-if="proxy.$auth('h5:workorderinput:delete')">
+ <van-button style="height: 100%;" square text="鍒犻櫎" @click="deleItem(item.id, 'T')" type="danger" />
+ </template>
+ </van-swipe-cell>
+ </template>
+ <template v-else>
+ <div class="kong">
+ <span>鏆傛棤鏁版嵁</span>
+ </div>
+ </template>
+ </div>
+ <div class="bg_list_item">
+ <div class="bg_list_item_top">
+ <div class="bg_list_item_top_left">
+ <div class="bg_list_item_top_left_x"></div>
+ <span>浜у嚭鏄庣粏</span>
+ </div>
+ </div>
+ <!-- <template v-if="produceData && produceData.length > 0"> -->
+ <!-- v-for="(item, index) in produceData" :key="index" -->
+ <van-swipe-cell>
+ <div class="bg_list_item_h">
+ <div class="bg_list_item_num">
+ <div class="bg_list_item_num_item">
+ <span>鑹搧鏁�({{ info.umodel ? info.umodel.name : '' }})</span>
+ <div class="bg_list_item_num_item_sr">
+ <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+ <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+ <input type="number" v-model="produceFrom.qualified" @blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)" placeholder="璇疯緭鍏�" />
+ <span v-if="info.umodel">{{info.umodel.name}}</span>
+ </div>
+ </div>
</div>
</div>
+ </van-swipe-cell>
+ <van-swipe-cell>
+ <div class="bg_list_item_h">
+ <div class="bg_list_item_num">
+ <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+ <div class="bg_list_item_num_item">
+ <span>涓嶈壇鏁�({{ info.umodel ? info.umodel.name : '' }})</span>
+ <div class="bg_list_item_num_item_sr">
+ <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
+ <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
+ <input type="number" v-model="produceFrom.undesirable" @blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)" placeholder="璇疯緭鍏�" />
+ <span v-if="info.umodel">{{info.umodel.name}}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </van-swipe-cell>
+ <van-swipe-cell v-if="produceFrom.undesirable > 0">
+ <div class="bg_list_item_h">
+ <div class="bg_list_item_num">
+ <div class="bg_list_item_num_item" @click="show = true">
+ <span>涓嶈壇椤�</span>
+ <div class="bg_list_item_num_item_sr">
+ <span class="wulll" :style="{color: from.defectiveName ? '#305ED5' : ''}">{{from.defectiveName ? from.defectiveName : '璁剧疆'}}</span>
+ <img src="@/assets/icon/ic_ar@2x.png" alt="" />
+ </div>
+ </div>
+ </div>
+ </div>
+ </van-swipe-cell>
+ <!-- </template>
+ <template v-else>
+ <div class="kong">
+ <span>鏆傛棤鏁版嵁</span>
</div>
- <template #right v-if="proxy.$auth('h5:workorderinput:delete')">
- <van-button style="height: 100%;" square text="鍒犻櫎" @click="deleItem(item.id, 'T')" type="danger" />
- </template>
- </van-swipe-cell>
- </template>
- <template v-else>
- <div class="kong">
- <span>鏆傛棤鏁版嵁</span>
+ </template> -->
+ </div>
+ <div class="bg_plan" @click="TimeShow = true">
+ <div class="bg_plan_label">
+ <span>鎶ュ伐鏃堕暱</span>
</div>
- </template>
- </div>
- <div class="bg_list_item">
- <div class="bg_list_item_top">
- <div class="bg_list_item_top_left">
- <div class="bg_list_item_top_left_x"></div>
- <span>浜у嚭鏄庣粏</span>
+ <div class="bg_plan_label_val">
+ <span :style="{color: from.durationName ? '#333' : ''}">{{from.durationName ? from.durationName : '璇烽�夋嫨'}}</span>
+ <img src="@/assets/icon/ic_ar@2x.png" alt="" />
</div>
</div>
- <!-- <template v-if="produceData && produceData.length > 0"> -->
- <!-- v-for="(item, index) in produceData" :key="index" -->
- <van-swipe-cell>
- <div class="bg_list_item_num">
- <div class="bg_list_item_num_item">
- <span>鑹搧鏁�</span>
- <div class="bg_list_item_num_item_sr">
- <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
- <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
- <input type="number" v-model="produceFrom.qualified" @blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)" placeholder="璇疯緭鍏�" />
- <span v-if="info.umodel">{{info.umodel.name}}</span>
- </div>
- </div>
+ <div class="bg_list_item" v-if="arrType && arrType.length > 0">
+ <div class="bg_list_item_top">
+ <div class="bg_list_item_top_left">
+ <div class="bg_list_item_top_left_x"></div>
+ <span>宸ヨ祫缁╂晥</span>
</div>
- </van-swipe-cell>
- <van-swipe-cell>
- <div class="bg_list_item_num">
- <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
- <div class="bg_list_item_num_item">
- <span>涓嶈壇鏁�</span>
- <div class="bg_list_item_num_item_sr">
- <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
- <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
- <input type="number" v-model="produceFrom.undesirable" @blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)" placeholder="璇疯緭鍏�" />
- <span v-if="info.umodel">{{info.umodel.name}}</span>
- </div>
- </div>
- </div>
- </van-swipe-cell>
- <!-- <van-swipe-cell>
- <div class="bg_list_item_num">
- <div class="bg_list_item_num_item" @click="show = true">
- <span>涓嶈壇椤�</span>
- <div class="bg_list_item_num_item_sr">
- <span>璁剧疆 ></span>
- </div>
- </div>
- </div>
- </van-swipe-cell> -->
- <!-- </template>
- <template v-else>
- <div class="kong">
- <span>鏆傛棤鏁版嵁</span>
</div>
- </template> -->
- </div>
+ <div class="bg_list_item_h">
+ <div class="bg_list_item_num">
+ <div class="bg_list_item_num_item">
+ <span>璁′欢鏂瑰紡</span>
+ <div class="bg_list_item_num_item_list">
+ <div :class="item.active ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'" v-for="(item, index) in arrType" :key="index" @click="clickPerformanceType(index)">{{ item.name }}</div>
+ <!-- <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 0">璁′欢</div>
+ <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 1">璁℃椂</div> -->
+ </div>
+ </div>
+ </div>
+ <div class="bg_list_item_num">
+ <div class="bg_list_item_num_item">
+ <span>宸ヨ祫鍗曚环</span>
+ <div class="bg_list_item_num_item_sr">
+ <span class="color1">{{(arrType[from.index].salary / 10 / 10).toFixed(2)}}鍏�/{{arrType[from.index].type == 0 ? '浠�' : '鏃�'}}</span>
+ <!-- <span class="color1">{{infoBox.salary / 100}}鍏�/{{infoBox.type == 0 ? '浠�' : '鏃�'}}</span> -->
+ </div>
+ </div>
+ </div>
+ <div class="bg_list_item_num">
+ <div class="bg_list_item_num_item">
+ <span>棰勮宸ヨ祫</span>
+ <div class="bg_list_item_num_item_sr">
+ <span class="color1">{{expectedSalary}}鍏�</span>
+ </div>
+ </div>
+ </div>
+ <div class="bg_list_item_num">
+ <div class="bg_list_item_num_item">
+ <span>杈炬爣鐜�</span>
+ <div class="bg_list_item_num_item_sr">
+ <span class="color1">{{complianceRate}}%</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
<!-- <div class="bg_list_item">
<div class="bg_list_item_top">
<div class="bg_list_item_top_left">
@@ -210,8 +277,8 @@
</template>
</div> -->
</div>
- <div class="details_dj">
- <div class="details_dj_title">
+ <div class="details_dj" v-if="typeView === 1">
+ <!-- <div class="details_dj_title">
<div class="details_dj_title_left">
<div class="details_x"></div>
<span>鐢熶骇鐐规</span>
@@ -220,7 +287,7 @@
<img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
<span>鎵嬪姩褰曞叆</span>
</div>
- </div>
+ </div> -->
<div class="details_dj_list">
<van-list
v-model:loading="loading"
@@ -243,7 +310,11 @@
<template v-if="info.status === 2 || info.procedureNeedcheck === 1">
<div class="bh_zw"></div>
<div class="bg_footer">
- <div class="bg_footer_submit" @click="submit">纭鎶ュ伐</div>
+ <div class="bg_footer_submit" v-if="typeView == 0" @click="submit">纭鎶ュ伐</div>
+ <div class="bg_footer_submit1" @click="jumpdj" v-if="proxy.$auth('h5:workorder:processRecord') && typeView == 1">
+ <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
+ <span>鏂板鐐规</span>
+ </div>
</div>
</template>
<!-- 鎵爜缁勪欢 -->
@@ -253,7 +324,7 @@
@closePopup="closePopup"
@onDecode="onDecode" />
<!-- 鎶ュ伐缁熻鏁版嵁 -->
- <van-popup v-model:show="statistics" round :closeable="true" position="bottom" :style="{ height: '53%' }">
+ <van-popup v-model:show="statistics" round :closeable="true" position="bottom">
<div class="tg">
<div class="tg_header">璇风‘璁ゆ姤宸ヤ俊鎭�</div>
<div class="tg_table">
@@ -283,35 +354,48 @@
</div>
</div>
</van-popup>
+ <!-- 鏃堕棿 -->
+ <van-popup v-model:show="TimeShow" round position="bottom" :style="{ height: '50%' }">
+ <van-datetime-picker
+ v-model="from.time"
+ type="time"
+ title="閫夋嫨鏃堕棿"
+ @confirm="onConfirm2"
+ @cancel="onCancel2"
+ />
+ </van-popup>
<!-- 閫夋嫨涓嶈壇椤� -->
- <van-popup v-model:show="show" round position="bottom" :style="{ height: '53%' }">
+ <van-popup v-model:show="show" round position="bottom">
<div class="bl">
<div class="bl_head">
- <span @click="show = false">鍙栨秷</span>
+ <img src="@/assets/icon/ic_close@2x.png" style="opacity: 0;" alt="" />
<span>涓嶈壇椤�</span>
- <span>纭</span>
+ <!-- <span>纭</span> -->
+ <img src="@/assets/icon/ic_close@2x.png" @click="show = false" alt="" />
</div>
<div class="bl_list">
- <div class="bl_list_item" v-for="(item, i) in 12" :key="i">
+ <div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
<div class="bl_list_item_left">
- <input type="checkbox" :checked="true" name="" id="" />
- <span>鏈夊垝鐥�</span>
+ <input type="checkbox" :checked="item.active" />
+ <span>{{ item.name }}</span>
</div>
<div class="bl_list_item_right">
- <input type="number" placeholder="璇疯緭鍏�" />
+ <input type="number" @click.stop v-model="item.num" placeholder="0" />
</div>
</div>
</div>
+ <div class="bl_footer" @click="onConfirm3">纭</div>
</div>
</van-popup>
</div>
</template>
<script setup lang="ts">
- import { getCurrentInstance, nextTick, onMounted, ref, reactive } from 'vue'
+ import { getCurrentInstance, nextTick, onMounted, ref, reactive, computed, onActivated } from 'vue'
import { useRouter, useRoute } from "vue-router"
import { Dialog, Toast } from 'vant'
import { REGULAR } from '@/utils/utils'
+ import { categoryExtList, queryOne, queryList } from '@/apis/PlanningAPI'
import {
getBarcodeContent,
queryById,
@@ -329,10 +413,82 @@
} from '@/apis/WorkOrderAPI'
import { QRCodeType } from '@/enum'
const { proxy }: any = getCurrentInstance()
+ const { $Bus } = getCurrentInstance().appContext.config.globalProperties
import VWorkOrderInfo from '@/components/common/WorkOrderInfo.vue'
const router = useRouter()
const route = useRoute()
+
+ let TimeShow = ref(false)
+
+ let from: any = reactive({
+ time: '',
+ defective: [],
+ defectiveName: '',
+ durationName: '0灏忔椂0鍒嗛挓',
+ duration: 0,
+ index: 0
+ })
+
+ let cate = ref([{ name: '鐢熶骇' }, { name: '鐐规' }])
+ let typeView = ref(0)
+
+ const clickIten = (i: number) => {
+ typeView.value = i
+ if (i === 1) {
+ finished.value = false
+ page.capacity = 1
+ pageDJs()
+ }
+ }
+
+ // 棰勮宸ヨ祫
+ const expectedSalary = computed(() => {
+ if (arrType.value.length === 0) return 0;
+ // 鎸変欢璁$畻
+ if (arrType.value[from.index].type == 0) {
+ if (!produceFrom.qualified) return 0
+ if (arrType.value[from.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝�
+ let total = Number(produceFrom.qualified) + Number(produceFrom.undesirable)
+ return (total * (arrType.value[from.index].salary / 100)).toFixed(2) || 0
+ } else {
+ return (Number(produceFrom.qualified) * (arrType.value[from.index].salary / 100)).toFixed(2) || 0
+ }
+ } else {
+ if (!from.duration) return 0;
+ let h = (from.duration / 60 / 60).toFixed(2)
+ return (Number(h) * (arrType.value[from.index].salary / 10 / 10)).toFixed(2) || 0
+ }
+ })
+
+ // 杈炬爣鐜�
+ const complianceRate = computed(() => {
+ if (arrType.value.length === 0) return 0;
+ if (!produceFrom.qualified && !produceFrom.undesirable) return 0;
+ if (!from.duration) return 0;
+ if (!arrType.value[from.index].num) return 0;
+ // 鎸変欢璁$畻
+ // if (infoBox.value.type == 0) {
+ if (arrType.value[from.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝�
+ let a = ((Number(produceFrom.qualified) + Number(produceFrom.undesirable)) / (from.duration / 3600)).toFixed(2)
+ let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2)
+ console.log(a)
+ console.log(b)
+ return ((Number(a) / Number(b)) * 100).toFixed(2)
+ // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
+ // return total * infoBox.value.salary;
+ } else {
+ let a = (produceFrom.qualified / (from.duration / 3600)).toFixed(2)
+ let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2)
+ console.log(a)
+ console.log(b)
+ return ((Number(a) / Number(b)) * 100).toFixed(2)
+ // return Number(from.qualified) * infoBox.value.salary;
+ }
+ // } else {
+ // console.log('鎸夋椂闀�')
+ // }
+ })
const loading = ref(false);
const finished = ref(false);
@@ -345,13 +501,17 @@
page: 0
})
+ let infoBox: any = ref(null) // 宸ヨ祫缁╂晥
+
// 浜у嚭鍚堟牸/涓嶈壇
- let produceFrom = reactive({
+ let produceFrom: any = reactive({
qualifiedId: '',
qualified: '', // 鍚堟牸
undesirableId: '',
undesirable: '' // 涓嶈壇
})
+
+ let cateList:any = ref([]) // 涓嶈壇椤�
// 璇︽儏鏁版嵁
const info: any = ref({})
@@ -367,6 +527,8 @@
// 鎵爜绫诲瀷
let type: any = ref('')
+
+ let arrType: any = ref([])
// 缁熻鏁版嵁
let statisticsData: any = ref([
@@ -404,6 +566,70 @@
// 鎺у埗鎶ュ伐缁熻
const statistics = ref<boolean>(false)
+ const changeChecked = (i: number) => {
+ cateList.value[i].active = !cateList.value[i].active
+ }
+
+ const getData = () => {
+ categoryExtList({
+ cateType: "3"
+ }).then(res => {
+ if (res.code === 200) {
+ res.data.forEach((item: any) => {
+ item.active = false
+ item.num = ''
+ })
+ cateList.value = res.data
+ }
+ })
+ }
+
+ const onConfirm2 = (e: string) => {
+ let h = Number(e.substring(0, 2))
+ let m = Number(e.substring(3, 5))
+ let s = 0
+ if (h > 0) {
+ s += h * 60 * 60
+ }
+ if (m > 0) {
+ s += m * 60
+ }
+ from.duration = s
+ from.durationName = `${h}灏忔椂${m}鍒嗛挓`
+ TimeShow.value = false
+ }
+
+ const onCancel2 = () => {
+ TimeShow.value = false
+ }
+
+ const onConfirm3 = () => {
+ let isOpen = false
+ cateList.value.forEach((item: any, index: number) => {
+ if (item.active) {
+ isOpen = true
+ }
+ })
+ if (!isOpen) return Toast('璇烽�夋嫨涓嶈壇椤�')
+ let arr: any = []
+ let total: any = 0
+ let name: any = ''
+ cateList.value.forEach((item: any, index: number) => {
+ if (item.active) {
+ if (item.num <= 0) {
+ return Toast('涓嶈壇鏁伴噺蹇呴』澶т簬0')
+ }
+ total = total += item.num
+ arr.push(item)
+ name += item.name + item.num + '锛�'
+ }
+ })
+ if (total !== produceFrom.undesirable) return Toast('涓嶈壇鏁板繀椤荤瓑浜庝骇鍑轰笉鑹暟')
+ from.defective = arr
+ from.defectiveName = name
+ show.value = false
+ }
+
// 鎶曟枡缁熻
const tlTotal = (): string => {
if (feedingData.value.length > 0) {
@@ -419,18 +645,19 @@
// 淇敼浜у嚭
const changeCC = (downType: string, num: number, recordId: string) => {
if (!num) return
- console.log(produceFrom.qualified + produceFrom.undesirable)
if ((produceFrom.qualified + produceFrom.undesirable) > info.value.planNum) {
return Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘澶т簬璁″垝鏁伴噺', duration: 2000 })
}
if (num >= 0) {
- dealWorkorderRecordStandard({
- downType, num, recordId, workorderId: route.query.id
- }).then(res => {
- if (res.code === 200) {
- getOrocessRecordCC()
- }
- })
+ from.defective = []
+ from.defectiveName = ''
+ // dealWorkorderRecordStandard({
+ // downType, num, recordId, workorderId: route.query.id
+ // }).then(res => {
+ // if (res.code === 200) {
+ // getOrocessRecordCC()
+ // }
+ // })
} else {
if (downType == 0) {
produceFrom.qualified = 0
@@ -453,7 +680,8 @@
if (res.code === 200) {
djData.value = []
finished.value = false
- page.page = 0
+ page.page = 1
+ djData.value = []
pageDJs()
}
})
@@ -518,6 +746,17 @@
return `${total}${scrap.value[0].company}`
}
return ''
+ }
+
+ // 鍒囨崲缁╂晥绫诲瀷
+ const clickPerformanceType = (i: number) => {
+ from.index = i
+ arrType.value.forEach((item: any, index: number) => {
+ if (i === index) {
+ from.type = item.id
+ }
+ item.active = index === i
+ })
}
// 鍒犻櫎浜у嚭/鎶曟枡
@@ -602,6 +841,30 @@
queryById(route.query.id).then(res => {
if (res.code === 200) {
info.value = res.data
+ // 鑾峰彇宸ヨ祫缁╂晥鏁版嵁
+ queryList({
+ deleted: 0,
+ departId: res.data.factoryId,
+ materialId: res.data.materialId,
+ procedureId: res.data.procedureId
+ }).then((result: any) => {
+ if (result.code === 200) {
+ if (result.data && result.data.length > 0) {
+ result.data.forEach((item: any, index: number) => {
+ item.name = item.type == 0 ? '璁′欢' : '璁℃椂'
+ item.id = item.type
+ item.active = index == 0
+ })
+ arrType.value = result.data
+ } else {
+ arrType.value = []
+ }
+ // infoBox.value = result.data
+ }
+ // if (result.code === 200) {
+ // infoBox.value = result.data
+ // }
+ })
}
})
}
@@ -688,7 +951,7 @@
if (res.code === 200 && type === 'T') {
getOrocessRecords()
} else if (res.code === 200 && type === 'C') {
- getOrocessRecordCC()
+ // getOrocessRecordCC()
}
})
}
@@ -698,6 +961,10 @@
if (info.value.bomType === 1) { // 鎷夊紡
console.log('鎷夊紡')
statisticsData.value = []
+ if (produceFrom.qualified <= 0) {
+ Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' })
+ return
+ }
if (info.value.hasBom === 0) {
console.log('鏃燽om')
// let data: any = [
@@ -853,6 +1120,10 @@
Toast.fail({ message: '鎶曟枡鏄庣粏涓嶈兘涓虹┖' })
return
}
+ if (produceFrom.qualified <= 0) {
+ Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' })
+ return
+ }
statisticsData.value = []
if (info.value.hasBom === 0) {
console.log('鏃燽om')
@@ -976,8 +1247,25 @@
// 纭鎶ュ伐
const submitBG = () => {
+ // if (!from.duration || from.duration <= 0) {
+ // return Toast('鎶ュ伐鏃堕暱涓嶈兘涓虹┖')
+ // }
+ let createUnqualifiedDTOList = from.defective.map((item: any) => {
+ return {
+ categoryId: item.id,
+ unQualifiedNum: item.num
+ }
+ })
+ let createWorkorderRecordDTO = {
+ workorderId: route.query.id,
+ duration: from.duration ? from.duration : 0,
+ qualifiedNum: produceFrom.qualified ? produceFrom.qualified : 0,
+ unQualifiedNum: produceFrom.undesirable ? produceFrom.undesirable : 0
+ }
+ // id: route.query.id
comfirmDoneStandard({
- id: route.query.id
+ createUnqualifiedDTOList,
+ createWorkorderRecordDTO
}).then(res => {
if (res.code === 200) {
Toast.success({ message: '鎶ュ伐鎴愬姛', forbidClick: true, duration: 2000 })
@@ -988,11 +1276,39 @@
})
}
+ onActivated(() => {
+ // $Bus.on('callback1', (res: any)=>{
+ // console.log(res)
+ // if (res == 1) {
+ // djData.value = []
+ // finished.value = false
+ // page.page = 1
+ // djData.value = []
+ // pageDJs()
+ // }
+ // })
+ // queryByIds()
+ // getOrocessRecords()
+ // getData()
+ })
+
onMounted(() => {
- pageDJs()
+ // $Bus.on('callback1', (res: any)=>{
+ // if (res == 1) {
+ // djData.value = []
+ // finished.value = false
+ // page.page = 1
+ // djData.value = []
+ // pageDJs()
+ // }
+ // })
+ // pageDJs()
+
queryByIds()
getOrocessRecords()
- getOrocessRecordCC()
+ getData()
+
+ // getOrocessRecordCC()
})
</script>
@@ -1002,6 +1318,59 @@
/*height: 100%;*/
position: absolute;
background: #F7F7F7;
+ .bg_plan {
+ width: 100%;
+ // height: 98px;
+ padding: 30px;
+ box-sizing: border-box;
+ background: #FFFFFF;
+ margin-bottom: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ span {
+ font-size: 30px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ b {
+ color: red;
+ }
+ }
+ .bg_plan_nr {
+ display: flex;
+ flex-direction: column;
+ span {
+ font-size: 24px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-top: 20px;
+ &:first-child {
+ font-size: 32px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #333333;
+ margin-top: 0 !important;
+ }
+ }
+ }
+ .bg_plan_label_val {
+ display: flex;
+ align-items: center;
+ span {
+ font-size: 28px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999999;
+ }
+ img {
+ width: 12px;
+ height: 24px;
+ margin-left: 20px;
+ }
+ }
+ }
.details_cz {
width: 100%;
padding: 30px;
@@ -1047,6 +1416,30 @@
font-weight: 400;
color: #ffffff;
}
+ }
+ }
+ .bg_cate {
+ width: 100%;
+ height: 88px;
+ background: #FFFFFF;
+ margin-top: 20px;
+ display: flex;
+ align-items: center;
+ .active {
+ box-sizing: border-box;
+ color: #305ED5 !important;
+ border-bottom: 2PX solid #305ED5;
+ }
+ .bg_cate_item {
+ flex: 1;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 30px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #555555;
}
}
.bg_list {
@@ -1125,99 +1518,161 @@
}
}
}
- .bg_list_item_num {
+ .bg_list_item_h {
width: 100%;
- background: white;
padding: 0 30px;
box-sizing: border-box;
- .kong {
- text-align: center;
- font-size: 25px;
- padding: 30px 0;
- background: #ffffff;
- }
- .bg_list_item_num_item {
+ background: white;
+ .bg_list_item_num {
+ width: 100%;
+ min-height: 98px;
+ background: white;
display: flex;
+ justify-content: center;
align-items: center;
- // height: 118px;
- padding: 15px 0;
- box-sizing: border-box;
- justify-content: space-between;
- border-bottom: 1px solid #E5E5E5;
+ border-bottom: 1PX solid #E5E5E5;
&:last-child {
- border: none;
+ border: none !important;
}
- .bg_list_item_num_item_wl {
- flex-shrink: 0;
+ .kong {
+ text-align: center;
+ font-size: 25px;
+ padding: 30px 0;
+ background: #ffffff;
+ }
+ .bg_list_item_num_item {
+ width: 100%;
+ height: 100%;
display: flex;
- flex-direction: column;
- span {
- font-size: 34px;
- color: #222222;
+ align-items: center;
+ // height: 118px;
+ padding: 15px 0;
+ box-sizing: border-box;
+ justify-content: space-between;
+ border-bottom: 1px solid #E5E5E5;
+ &:last-child {
+ border: none;
}
- .bg_list_item_num_item_wl_lx {
- margin-top: 10px;
- span {
- color: #222222;
- font-size: 28px;
+ .bg_list_item_num_item_list {
+ display: flex;
+ align-items: center;
+ .active {
+ background: #305ED5 !important;
+ color: #FFFFFF !important;
+ }
+ .bg_list_item_num_item_list_item {
+ width: 116px;
+ height: 62px;
+ line-height: 62px;
+ text-align: center;
+ background: #F2F2F2;
+ border-radius: 8px;
+ font-size: 26px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ margin-right: 20px;
+ &:last-child {
+ margin: 0 !important;
+ }
}
}
- }
- .warning {
- color: $nav-stateColor5 !important;
- }
- .err {
- color: $nav-stateColor4 !important;
- }
- span {
- flex-shrink: 0;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
+ .bg_list_item_num_item_wl {
+ flex-shrink: 0;
+ display: flex;
+ flex-direction: column;
+ span {
+ font-size: 34px;
+ color: #222222;
+ }
+ .bg_list_item_num_item_wl_lx {
+ margin-top: 10px;
+ span {
+ color: #222222;
+ font-size: 28px;
+ }
+ }
+ }
.warning {
color: $nav-stateColor5 !important;
- margin-right: 5px;
}
.err {
color: $nav-stateColor4 !important;
- margin-right: 5px;
}
- &:nth-child(1) {
- font-size: 30px;
- font-weight: 400;
- color: #222222;
- }
- &:nth-child(2) {
- font-size: 28px;
- font-weight: 400;
- color: #333333;
- flex-shrink: 0;
- }
- }
- .bg_list_item_num_item_sr {
- flex: 1;
- display: flex;
- align-items: center;
- justify-content: flex-end;
- input::-webkit-input-placeholder {
- font-size: 28px;
- }
- input {
- text-align: right;
- width: 180px;
- height: 60px;
- border-radius: 8px;
- border: 1PX solid #E5E5E5;
- margin-right: 20px;
- font-size: 28px;
- font-weight: 400;
- color: #333333;
- padding: 0 30px
+ img {
+ width: 12px;
+ height: 24px;
+ margin-left: 20px;
}
span {
- font-size: 28px;
- font-weight: 400;
- color: #666666;
+ flex-shrink: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ b {
+ font-size: 30px;
+ color: red;
+ margin-right: 5px;
+ }
+ .warning {
+ color: $nav-stateColor5 !important;
+ margin-right: 5px;
+ }
+ .err {
+ color: $nav-stateColor4 !important;
+ margin-right: 5px;
+ }
+ &:nth-child(1) {
+ font-size: 30px;
+ font-weight: 400;
+ color: #222222;
+ }
+ &:nth-child(2) {
+ font-size: 28px;
+ font-weight: 400;
+ color: #333333;
+ flex-shrink: 0;
+ }
+ }
+ .bg_list_item_num_item_sr {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ .color1 {
+ font-size: 28px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ }
+ input::-webkit-input-placeholder {
+ font-size: 28px;
+ }
+ input {
+ text-align: right;
+ width: 180px;
+ height: 60px;
+ border-radius: 8px;
+ border: 1PX solid #E5E5E5;
+ margin-right: 20px;
+ font-size: 28px;
+ font-weight: 400;
+ color: #333333;
+ padding: 0 30px
+ }
+ .wulll {
+ width: 400px;
+ text-align: right;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ span {
+ font-size: 28px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999999;
+ }
}
}
}
@@ -1306,6 +1761,27 @@
width: 100%;
padding: 0 30px 60px 30px;
box-sizing: border-box;
+ .bg_footer_submit1 {
+ width: 690px;
+ height: 76px;
+ background: #FFFFFF;
+ border-radius: 36px;
+ border: 1px solid #E5E5E5;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ img {
+ width: 28px;
+ height: 28px;
+ margin-right: 12px;
+ }
+ span {
+ font-size: 26px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #305ED5;
+ }
+ }
.bg_footer_submit {
width: 690px;
height: 88px;
@@ -1322,7 +1798,7 @@
}
.tg {
width: 100%;
- height: 100%;
+ height: 800px;
padding: 30px;
box-sizing: border-box;
.tg_header {
@@ -1355,7 +1831,8 @@
}
}
.nr {
- max-height: 400px;
+ width: 100%;
+ max-height: calc(100% - 133px);
overflow-x: scroll;
.tg_table_nr {
width: 100%;
@@ -1423,12 +1900,15 @@
}
}
.bl {
+ width: 100%;
+ height: 800px;
padding: 30px;
box-sizing: border-box;
display: flex;
flex-direction: column;
.bl_head {
width: 100%;
+ height: 50px;
display: flex;
align-items: center;
justify-content: space-between;
@@ -1439,21 +1919,38 @@
font-size: 32px !important;
}
}
+ img {
+ width: 28px;
+ height: 28px;
+ }
+ }
+ .bl_footer {
+ width: 100%;
+ height: 88px;
+ line-height: 88px;
+ text-align: center;
+ background: #305ED5;
+ border-radius: 8px;
+ font-size: 32px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #FFFFFF;
+ margin-top: 30px;
}
.bl_list {
width: 100%;
- height: 580px;
+ height: calc(100% - 168px);
overflow-y: scroll;
margin-top: 30px;
.bl_list_item {
width: 100%;
- height: 60px;
+ height: 96px;
display: flex;
align-items: center;
justify-content: space-between;
- margin-bottom: 20px;
+ border-bottom: 1PX solid #E5E5E5;
&:last-child {
- margin-bottom: 0 !important;
+ border: none !important;
}
.bl_list_item_left {
flex: 1;
@@ -1462,6 +1959,7 @@
input {
width: 30px;
height: 30px;
+ border: 1PX solid #CCCCCC;
margin: 0 !important;
}
span {
@@ -1478,9 +1976,19 @@
padding-left: 5px;
width: 160px;
height: 100%;
+ padding: 0 30px;
+ box-sizing: border-box;
+ text-align: right;
font-size: 28px;
+ color: #333333;
border-radius: 10px;
- border: 2px solid #999999
+ border: 1PX solid #CCCCCC;
+ &::-webkit-input-placeholder {
+ font-size: 28px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999999;
+ }
}
}
}
--
Gitblit v1.9.3