From 2837bdd57f72e386bbf9a725e7b3a13e5eb9e930 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 21 八月 2023 09:19:57 +0800 Subject: [PATCH] 修复bug --- 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