From d7fe8ae3888c8e2b1eea3c1e3769be0d42a21cc9 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 16 十月 2023 09:03:47 +0800 Subject: [PATCH] Merge branch '1.0.3' of http://139.186.142.91:10010/r/productDev/dmMes into 1.0.3 --- h5_standard/src/views/workOrder/workOrderReporting.vue | 3763 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,933 insertions(+), 1,830 deletions(-) diff --git a/h5_standard/src/views/workOrder/workOrderReporting.vue b/h5_standard/src/views/workOrder/workOrderReporting.vue index 531d7fd..df6f007 100644 --- a/h5_standard/src/views/workOrder/workOrderReporting.vue +++ b/h5_standard/src/views/workOrder/workOrderReporting.vue @@ -1,9 +1,9 @@ <template> - <div class="bg"> - <!-- 宸ュ崟淇℃伅 --> - <V-WorkOrderInfo :info="info"></V-WorkOrderInfo> - <!-- 鎵爜鎶曟枡/浜у嚭 --> - <!-- <div class="details_cz"> + <div class="bg"> + <!-- 宸ュ崟淇℃伅 --> + <V-WorkOrderInfo :info="info"></V-WorkOrderInfo> + <!-- 鎵爜鎶曟枡/浜у嚭 --> + <!-- <div class="details_cz"> <div class="details_cz_smtl" @click="jump1('tl')" v-if="proxy.$auth('h5:workorderinput:create')"> <img src="@/assets/icon/gongdan_ic_saoma@2x.png" alt="" /> <span>鎵爜鎶曟枡</span> @@ -14,173 +14,182 @@ <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 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" 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" 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> + <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> - <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> - - <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_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 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> + </div> + </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> --> - </div> - <div class="bg_plan" @click="TimeShow = true"> - <div class="bg_plan_label"> - <span>鎶ュ伐鏃堕暱</span> - </div> - <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> - <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> - </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> + <div class="bg_plan" @click="TimeShow = true"> + <div class="bg_plan_label"> + <span>鎶ュ伐鏃堕暱</span> + </div> + <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> + <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> + </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> + </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"> <div class="bg_list_item_top_left_x"></div> @@ -276,9 +285,9 @@ </div> </template> </div> --> - </div> - <div class="details_dj" v-if="typeView === 1"> - <!-- <div class="details_dj_title"> + </div> + <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> @@ -288,1711 +297,1805 @@ <span>鎵嬪姩褰曞叆</span> </div> </div> --> - <div class="details_dj_list"> - <van-list - v-model:loading="loading" - :finished="finished" - finished-text="娌℃湁鏇村浜唦" - @load="pageDJs"> - <van-swipe-cell v-for="(item, index) in djData" :key="index"> - <div class="details_dj_list_item"> - <span>{{item.attrName}}锛歿{item.val}}</span> - <span>{{item.userName}} {{item.createTime}}</span> - </div> - <template #right> - <van-button square type="danger" style="height: 100%;" @click="dele(item.id)" text="鍒犻櫎" /> - </template> - </van-swipe-cell> - </van-list> + <div class="details_dj_list"> + <van-list v-model:loading="loading" :finished="finished" finished-text="娌℃湁鏇村浜唦" @load="pageDJs"> + <van-swipe-cell v-for="(item, index) in djData" :key="index"> + <div class="details_dj_list_item"> + <span>{{ item.attrName }}锛歿{ item.val }}</span> + <span>{{ item.userName }} {{ item.createTime }}</span> </div> - </div> - <!-- 鎶ュ伐鎸夐挳 --> - <template v-if="info.status === 2 || info.procedureNeedcheck === 1"> - <div class="bh_zw"></div> - <div class="bg_footer"> - <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> - <!-- 鎵爜缁勪欢 --> - <v-ScanCode - :openCode="openCode" - :infos="['璇锋壂鎻忓伐瑁呯爜']" - @closePopup="closePopup" - @onDecode="onDecode" /> - <!-- 鎶ュ伐缁熻鏁版嵁 --> - <van-popup v-model:show="statistics" round :closeable="true" position="bottom"> - <div class="tg"> - <div class="tg_header">璇风‘璁ゆ姤宸ヤ俊鎭�</div> - <div class="tg_table"> - <div class="tg_table_header"> - <div class="tg_table_header_item">绫诲瀷</div> - <div class="tg_table_header_item">鐗╂枡鍚嶇О</div> - <!-- <div class="tg_table_header_item">宸ヨ鏁伴噺</div> --> - <div class="tg_table_header_item">鐗╂枡鏁伴噺</div> - </div> - <div class="nr" v-if="statisticsData.length > 0"> - <div class="tg_table_nr" v-for="(item, index) in statisticsData" :key="index"> - <div class="tg_table_nr_item">{{item.name}}</div> - <div class="tg_table_nr_item">{{item.materialName}}</div> - <!-- <div class="tg_table_nr_item">{{item.gznum}}</div> --> - <div class="tg_table_nr_item" :style="item.name === '宸ュ崟鏈姇鏂�' ? 'color: #DE5243' : ''">{{item.num}}</div> - </div> - </div> - <div class="nr" v-else> - <div class="tg_table_nr"> - <div class="tg_table_nr_item1">鏆傛棤鏁版嵁</div> - </div> - </div> - </div> - <div class="tg_footer"> - <button class="tg_footer_qr" @click="submitBG" v-if="proxy.$auth('h5:workorderoutput:confirm') && isSubmit">纭鎶ュ伐</button> - <div class="tg_footer_fh" @click="gofh" v-else-if="!isSubmit">杩斿洖淇敼</div> - </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"> - <div class="bl"> - <div class="bl_head"> - <img src="@/assets/icon/ic_close@2x.png" style="opacity: 0;" alt="" /> - <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 cateList" :key="i" @click="changeChecked(i)"> - <div class="bl_list_item_left"> - <input type="checkbox" :checked="item.active" /> - <span>{{ item.name }}</span> - </div> - <div class="bl_list_item_right"> - <input type="number" @click.stop v-model="item.num" placeholder="0" /> - </div> - </div> - </div> - <div class="bl_footer" @click="onConfirm3">纭</div> - </div> - </van-popup> + <template #right> + <van-button square type="danger" style="height: 100%;" @click="dele(item.id)" text="鍒犻櫎" /> + </template> + </van-swipe-cell> + </van-list> + </div> </div> + <!-- 鎶ュ伐鎸夐挳 --> + <template v-if="info.status === 2 || info.procedureNeedcheck === 1"> + <div class="bh_zw"></div> + <div class="bg_footer"> + <div class="bg_footer_submit" v-if="typeView == 0" @click="submit">纭鎶ュ伐</div> + <!-- proxy.$auth('h5:workorder:processRecord') && --> + <div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1"> + <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> + <span>鏂板鐐规</span> + </div> + </div> + </template> + <!-- 鎵爜缁勪欢 --> + <v-ScanCode :openCode="openCode" :infos="['璇锋壂鎻忓伐瑁呯爜']" @closePopup="closePopup" @onDecode="onDecode" /> + <!-- 鎶ュ伐缁熻鏁版嵁 --> + <van-popup v-model:show="statistics" round :closeable="true" position="bottom"> + <div class="tg"> + <div class="tg_header">璇风‘璁ゆ姤宸ヤ俊鎭�</div> + <div class="tg_table"> + <div class="tg_table_header"> + <div class="tg_table_header_item">绫诲瀷</div> + <div class="tg_table_header_item">鐗╂枡鍚嶇О</div> + <!-- <div class="tg_table_header_item">宸ヨ鏁伴噺</div> --> + <div class="tg_table_header_item">鐗╂枡鏁伴噺</div> + </div> + <div class="nr" v-if="statisticsData.length > 0"> + <div class="tg_table_nr" v-for="(item, index) in statisticsData" :key="index"> + <div class="tg_table_nr_item">{{ item.name }}</div> + <div class="tg_table_nr_item">{{ item.materialName }}</div> + <!-- <div class="tg_table_nr_item">{{item.gznum}}</div> --> + <div class="tg_table_nr_item" :style="item.name === '宸ュ崟鏈姇鏂�' ? 'color: #DE5243' : ''">{{ item.num }}</div> + </div> + </div> + <div class="nr" v-else> + <div class="tg_table_nr"> + <div class="tg_table_nr_item1">鏆傛棤鏁版嵁</div> + </div> + </div> + </div> + <div class="tg_footer"> + <button class="tg_footer_qr" @click="submitBG" + v-if="proxy.$auth('h5:workorderoutput:confirm') && isSubmit">纭鎶ュ伐</button> + <div class="tg_footer_fh" @click="gofh" v-else-if="!isSubmit">杩斿洖淇敼</div> + </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"> + <div class="bl"> + <div class="bl_head"> + <img src="@/assets/icon/ic_close@2x.png" style="opacity: 0;" alt="" /> + <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 cateList" :key="i" @click="changeChecked(i)"> + <div class="bl_list_item_left"> + <input type="checkbox" :checked="item.active" /> + <span>{{ item.name }}</span> + </div> + <div class="bl_list_item_right"> + <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, 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, - getOrocessRecord, - deleteCT, - updateById, - comfirmDone, - comfirmDoneStandard, - getListByCondition, - allForStandard, - pageDJ, - deletedj, - dealWorkorderRecordStandard, - getWorkorderRecordListStandard - } from '@/apis/WorkOrderAPI' - import { QRCodeType } from '@/enum' - const { proxy }: any = getCurrentInstance() - const { $Bus } = getCurrentInstance().appContext.config.globalProperties - import VWorkOrderInfo from '@/components/common/WorkOrderInfo.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, + getOrocessRecord, + deleteCT, + updateById, + comfirmDone, + comfirmDoneStandard, + getListByCondition, + allForStandard, + pageDJ, + deletedj, + dealWorkorderRecordStandard, + getWorkorderRecordListStandard +} 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() +const router = useRouter() +const route = useRoute() - let TimeShow = ref(false) +let TimeShow = ref(false) - let from: any = reactive({ - time: '', - defective: [], - defectiveName: '', - durationName: '0灏忔椂0鍒嗛挓', - duration: 0, - index: 0 - }) +let from: any = reactive({ + time: '', + defective: [], + defectiveName: '', + durationName: '0灏忔椂0鍒嗛挓', + duration: 0, + index: 0 +}) - let cate = ref([{ name: '鐢熶骇' }, { name: '鐐规' }]) - let typeView = ref(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 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 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); +let show = ref(false) +// 鐐规鏁版嵁 +let djData: any = ref([]) +// 鍒嗛〉鏌ヨ鏁版嵁 +let page = reactive({ + capacity: 10, + page: 0 +}) + +let infoBox: any = ref(null) // 宸ヨ祫缁╂晥 + +// 浜у嚭鍚堟牸/涓嶈壇 +let produceFrom: any = reactive({ + qualifiedId: '', + qualified: '', // 鍚堟牸 + undesirableId: '', + undesirable: '' // 涓嶈壇 +}) + +let cateList: any = ref([]) // 涓嶈壇椤� + +// 璇︽儏鏁版嵁 +const info: any = ref({}) + +// 鍒ゆ柇鏄惁鑳芥彁浜� +let isSubmit: any = ref<boolean>(false) + +// 涓嶈壇鏄庣粏 +let undesirable: any = ref([]) + +// 鎶ュ簾鏄庣粏 +let scrap: any = ref([]) + +// 鎵爜绫诲瀷 +let type: any = ref('') + +let arrType: any = ref([]) + +// 缁熻鏁版嵁 +let statisticsData: any = ref([ + // { + // name: '宸ュ崟鎶曟枡', + // materialName: '榛勬矙', + // num: 0 + // }, + // { + // name: '宸ュ崟鍚堟牸浜у嚭', + // materialName: '榛勬矙', + // num: 0 + // }, + // { + // name: '宸ュ崟涓嶈壇浜у嚭', + // materialName: '榛勬矙', + // num: 0 + // }, + // { + // name: '宸ュ崟鏈姇鏂�', + // materialName: '榛勬矙', + // num: 0 + // } +]) + +// 鎶曟枡鏁版嵁 +const feedingData: any = ref([]) + +// 浜у嚭鏁版嵁 +const produceData: any = ref([]) + +// 鎺у埗鎵爜鏄剧ず闅愯棌 +const openCode = ref<boolean>(false) + +// 鎺у埗鎶ュ伐缁熻 +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) { + let total: number = 0 + feedingData.value.forEach((element: any) => { + total = total + element.num }) + return `${total}` + } + return '' +} - // 杈炬爣鐜� - 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 changeCC = (downType: string, num: number, recordId: string) => { + if (!num) return + if ((produceFrom.qualified + produceFrom.undesirable) > info.value.planNum) { + return Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘澶т簬璁″垝鏁伴噺', duration: 2000 }) + } + if (num >= 0) { + 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 + } else { + produceFrom.undesirable = 0 + } + Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘灏忎簬0', duration: 2000 }) + } +} + +// 璺宠浆鐐规 +const jumpdj = () => { + router.push({ name: 'spotCheck', query: { id: route.query.id } }) +} + +// 鍒犻櫎鐐规 +const dele = (id: string | number): void => { + deletedj(id) + .then(res => { + if (res.code === 200) { + djData.value = [] + finished.value = false + page.page = 1 + djData.value = [] + pageDJs() + } + }) +} + +// 鐐规鏁版嵁 +const pageDJs = () => { + if (!finished.value) { + page.page = page.page + 1 + loading.value = true + pageDJ({ + capacity: page.capacity, + page: page.page, + model: { + workorderId: route.query.id + } + }).then(res => { + if (res.code === 200 && res.data && res.data.records.length !== 0) { + djData.value.push(...res.data.records) + } else { + finished.value = true + } + loading.value = false + }).catch(err => { + loading.value = false + finished.value = true + }) + } +} + +// 缁熻 +const ccTotal = (): string => { + if (produceData.value.length > 0) { + let total: number = 0 + produceData.value.forEach((element: any) => { + total = total + element.num + }) + return `${total}${produceData.value[0].company}` + } + return '' +} + +// 缁熻 +const blTotal = (): string => { + if (undesirable.value.length > 0) { + let total: number = 0 + undesirable.value.forEach((element: any) => { + total = total + element.num + }) + return `${total}${undesirable.value[0].company}` + } + return '' +} + +// 缁熻 +const bfTotal = (): string => { + if (scrap.value.length > 0) { + let total: number = 0 + scrap.value.forEach((element: any) => { + total = total + element.num + }) + 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 + }) +} + +// 鍒犻櫎浜у嚭/鎶曟枡 +const deleItem = (id: any, type: string) => { + Dialog.confirm({ + title: '鎻愮ず', + message: '纭畾鍒犻櫎姝ゆ潯璁板綍鍚楋紵', + }).then(() => { + deleteCT(id) + .then(res => { + if (res.code === 200 && type === 'C') { + getOrocessRecordCC() + } else if (res.code === 200 && type === 'T') { + getOrocessRecords() + } + }) + }).catch(() => { + // on cancel + }) +} + +// 璺宠浆鎵嬪姩浜у嚭 +const jumpCC = () => { + router.push({ name: 'manualOutput', query: { id: route.query.id, num: produceData.value.length > 0 ? produceData.value[0].num : '' } }) +} + +// 璺宠浆鎵嬪姩鎶曟枡 +const jumpTL = () => { + router.push({ name: 'manualFeeding', query: { id: route.query.id } }) +} + +// 鍏抽棴鎵爜缁勪欢 +const closePopup = (): void => { + openCode.value = false +} + +// 鑾峰彇鎵爜鍊� +const onDecode = (data: string[]): void => { + getBarcodeContent({ + barcode: data[0] + }).then(res => { + if (res.code === 200) { + if (res.data.barcodeType === QRCodeType.GZ) { + if (type.value === 'tl') { // 鎶曟枡鎿嶄綔 + getListByCondition({ id: res.data.id }) + .then(gz => { + if (gz.code === 200) { + if (gz.data[0].status !== 1) { + router.push({ name: 'codeScanningFeeding', query: { id: route.query.id, gzId: res.data.id } }) + } else { + Toast.fail({ message: '鎵弿鐨勫伐瑁呯姸鎬佷笉鑳戒负绌�', duration: 2000 }) + } + } + }) + } + if (type.value === 'cc') { // 浜у嚭鎿嶄綔 + router.push({ name: 'codeScanningOutput', query: { id: route.query.id, gzId: res.data.id } }) + } + } else { + Toast({ message: '璇锋壂鎻忔纭殑绡瓙鐮�', duration: 2000 }) + } + } + }) + nextTick(() => { + openCode.value = false + }) +} + +// 璺宠浆鎵嬪姩鎶曟枡 +const jump = () => { + router.push({ name: 'manualFeeding', query: { id: route.query.id } }) +} + +// 璺宠浆鎵爜鎶曟枡 +const jump1 = (types: string) => { + type.value = types + openCode.value = true +} + +// 鏌ヨ宸ュ崟璇︽儏 +const queryByIds = () => { + 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 // } - }) - - const loading = ref(false); - const finished = ref(false); - let show = ref(false) - // 鐐规鏁版嵁 - let djData: any = ref([]) - // 鍒嗛〉鏌ヨ鏁版嵁 - let page = reactive({ - capacity: 10, - page: 0 - }) - - let infoBox: any = ref(null) // 宸ヨ祫缁╂晥 - - // 浜у嚭鍚堟牸/涓嶈壇 - let produceFrom: any = reactive({ - qualifiedId: '', - qualified: '', // 鍚堟牸 - undesirableId: '', - undesirable: '' // 涓嶈壇 - }) - - let cateList:any = ref([]) // 涓嶈壇椤� - - // 璇︽儏鏁版嵁 - const info: any = ref({}) - - // 鍒ゆ柇鏄惁鑳芥彁浜� - let isSubmit: any = ref<boolean>(false) - - // 涓嶈壇鏄庣粏 - let undesirable: any = ref([]) - - // 鎶ュ簾鏄庣粏 - let scrap: any = ref([]) - - // 鎵爜绫诲瀷 - let type: any = ref('') - - let arrType: any = ref([]) - - // 缁熻鏁版嵁 - let statisticsData: any = ref([ - // { - // name: '宸ュ崟鎶曟枡', - // materialName: '榛勬矙', - // num: 0 - // }, - // { - // name: '宸ュ崟鍚堟牸浜у嚭', - // materialName: '榛勬矙', - // num: 0 - // }, - // { - // name: '宸ュ崟涓嶈壇浜у嚭', - // materialName: '榛勬矙', - // num: 0 - // }, - // { - // name: '宸ュ崟鏈姇鏂�', - // materialName: '榛勬矙', - // num: 0 - // } - ]) - - // 鎶曟枡鏁版嵁 - const feedingData: any = ref([]) - - // 浜у嚭鏁版嵁 - const produceData: any = ref([]) - - // 鎺у埗鎵爜鏄剧ず闅愯棌 - const openCode = ref<boolean>(false) - - // 鎺у埗鎶ュ伐缁熻 - 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 getOrocessRecords = () => { + feedingData.value = [] + allForStandard({ + workorderId: route.query.id, + type: 0 + }).then(res => { + if (res.code === 200) { + feedingData.value = res.data + // res.data.forEach((item: any) => { + // feedingData.value.push({ id: item.id, company: item.umodel.name, gz: item.amodel.code, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) + // }) + } + }) +} + +// 鏌ヨ宸ュ崟鐢熶骇璁板綍---浜у嚭 +const getOrocessRecordCC = () => { + produceData.value = [] + undesirable.value = [] + scrap.value = [] + getWorkorderRecordListStandard({ + workorderId: route.query.id + }).then(res => { + if (res.code === 200) { + if (res.data.length > 0) { + res.data.forEach((item: any) => { + if (item.doneType === 1) { + produceFrom.undesirable = item.num + produceFrom.undesirableId = item.id + } else { + produceFrom.qualified = item.num + produceFrom.qualifiedId = item.id + } }) - } + } + // res.data.forEach((item: any) => { + // if (item.doneType === 0 || !item.doneType) { // 鍚堟牸 | 娣峰悎 - 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 + // produceData.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) + // } else if (item.doneType === 1) { // 涓嶈壇 + // undesirable.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) + // } else if (item.doneType === 2) { // 鎶ュ簾 + // scrap.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) + // } + // }) } + }) +} - const onCancel2 = () => { - TimeShow.value = false +// 缂栬緫鎶曟枡/浜у嚭 +const change = (id: any, num: any, type: any, maxNum: number, item: object, unitAttribute: number): void => { + let obj: any = item + if (type === 'T') { + if (unitAttribute == 0 && num != '') { + if (!REGULAR.positiveInteger.test(num)) { + obj.num = obj.ynum + Toast({ message: '鍙兘杈撳叆姝f暣鏁�' }) + return + } } + if (unitAttribute == 1 && num != '') { + if (!REGULAR.number.test(num)) { + Toast({ message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級' }) + obj.num = obj.ynum + return + } + } + if (num > maxNum) { + obj.num = obj.ynum + Toast.fail({ message: '瓒呭嚭宸ヨ鎬绘暟' }) + return + } + } else if (type === 'C' && num > info.value.planNum) { + obj.num = obj.ynum + Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺' }) + return + } + updateById({ id: id, num: num }).then(res => { + if (res.code === 200 && type === 'T') { + getOrocessRecords() + } else if (res.code === 200 && type === 'C') { + // getOrocessRecordCC() + } + }) +} - const onConfirm3 = () => { - let isOpen = false - cateList.value.forEach((item: any, index: number) => { - if (item.active) { - isOpen = true - } +// 纭鎶ュ伐 +const submit = () => { + if (info.value.bomType === 1) { // 鎷夊紡 + console.log('鎷夊紡') + statisticsData.value = [] + if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) { + Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' }) + return + } + if (info.value.hasBom === 0) { + console.log('鏃燽om') + // let data: any = [ + // { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }, + // { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 }, + // { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 }, + // { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 } + // ] + // if (undesirable.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� + // data[2].wlmc = undesirable.value[0].name + // data[2].gznum = data[2].gznum + undesirable.value.length + // } + // if (scrap.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� + // data[2].wlmc = scrap.value[0].name + // data[2].gznum = data[2].gznum + scrap.value.length + // } + // let tl: number = 0 + // let cc: number = 0 + // let bl: number = 0 + // undesirable.value.forEach((item: any) => { // 涓嶈壇 + // bl = bl + item.num + // }) + // scrap.value.forEach((item: any) => { // 鎶ュ簾 + // bl = bl + item.num + // }) + // if (produceData.value.length > 0) { // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑� + // produceData.value.forEach((item: any) => { // 浜у嚭 + // cc = cc + item.num + // }) + // } + // feedingData.value.forEach((item: any) => { // 鎶曟枡 + // tl = tl + item.num + // }) + // data[0].wlnum = tl.toString() + info.value.umodel.name + // if (produceData.value.length > 0) { + // data[1].wlnum = cc.toString() + info.value.umodel.name + // } + // data[2].wlnum = bl.toString() + info.value.umodel.name + // let total: number = info.value.planNum - (Number(cc) + Number(bl)) + // data[data.length - 1].wlnum = (info.value.planNum - Number(cc) - Number(bl)).toString() + info.value.umodel.name + // if (total === 0) { + // isSubmit.value = true + // } else { + // isSubmit.value = false + // } + + let arr: any = [] + let tl = 0 + let res = getGroupNum(feedingData.value) + for (let i in res) { + let num = 0 + res[i].forEach((item: any) => { + num += item.num }) - 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 + '锛�' - } + arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + res[i][0].procedureName, num: num }) + } + feedingData.value.forEach((item: any) => { + tl += item.num + }) + statisticsData.value = [...statisticsData.value, ...arr] + statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) + statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) + statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: info.value.planNum - Number(produceFrom.qualified) - Number(produceFrom.undesirable) }) + let total: number = info.value.planNum - (Number(produceFrom.qualified) + Number(produceFrom.undesirable)) + if (total === 0) { + isSubmit.value = true + } else { + isSubmit.value = false + } + // if (Number(tl) <= info.value.planNum) { + // let total: number = Number(tl) - Number(cc) - Number(bl) // 鏄惁鏈変綑 + // data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name + // if (total === 0) { + // isSubmit.value = true + // } else { + // isSubmit.value = false + // } + // } else { + // isSubmit.value = false + // } + // statisticsData.value = data + } else if (info.value.hasBom === 1) { // 鏈塨om鎯呭喌 + console.log('鏈塨om') + // let cc: number = 0 + // let bl: number = 0 + // let newData: any = {} + // if (feedingData.value.length > 0) { // 鎶曟枡 + // feedingData.value.forEach((e: any) => { + // if (Object.keys(newData).indexOf('' + e.name) === -1) { + // newData[e.name] = [] + // } + // newData[e.name].push(e) + // }) + // for (let key in newData) { + // let obj = { name: '宸ュ崟鎶曟枡', gznum: newData[key].length, wlmc: key, wlnum: 0, num: 0 } + // newData[key].forEach((item: any) => { + // obj.wlnum = obj.wlnum + item.num + // obj.num = item.num + // }) + // obj.wlnum = obj.wlnum.toString() + newData[key][0].company as never + // statisticsData.value.push(obj) + // } + // } + // if (produceData.value.length > 0) { // 浜у嚭 + // produceData.value.forEach((item: any) => { + // cc = cc + item.num + // }) + // statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: info.value.mmodel.name, wlnum: cc + info.value.umodel.name, num: cc }) + // } + // if (undesirable.value.length > 0 || scrap.value.length > 0) { // 涓嶈壇/鎶ュ簾 + // undesirable.value.forEach((item: any) => { + // bl = bl + item.num + // }) + // scrap.value.forEach((item: any) => { + // bl = bl + item.num + // }) + // statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', gznum: undesirable.value.length + scrap.value.length, wlmc: info.value.mmodel.name, wlnum: bl + info.value.umodel.name, num: bl }) + // } + // let totaltl: number = 0 + // let totalcc: number = 0 + // let totalbl: number = 0 + // statisticsData.value.forEach((item: any) => { + // if (item.name === '宸ュ崟鎶曟枡') { + // totaltl = totaltl + item.num + // } else if (item.name === '宸ュ崟鍚堟牸浜у嚭') { + // totalcc = totalcc + item.num + // } else if (item.name === '宸ュ崟涓嶈壇浜у嚭') { + // totalbl = totalbl + item.num + // } + // }) + // isSubmit.value = totalcc + totalbl <= info.value.planNum; + let arr: any = [] + let tl = 0 + let res = getGroupNum(feedingData.value) + for (let i in res) { + let num = 0 + res[i].forEach((item: any) => { + num += item.num }) - if (total !== produceFrom.undesirable) return Toast('涓嶈壇鏁板繀椤荤瓑浜庝骇鍑轰笉鑹暟') - from.defective = arr - from.defectiveName = name - show.value = false + arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num }) + } + feedingData.value.forEach((item: any) => { + tl += item.num + }) + statisticsData.value = [...statisticsData.value, ...arr] + statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) + statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) + isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum; } - - // 鎶曟枡缁熻 - const tlTotal = (): string => { - if (feedingData.value.length > 0) { - let total: number = 0 - feedingData.value.forEach((element: any) => { - total = total + element.num - }) - return `${total}` - } - return '' + } else { + console.log('鎺ㄥ紡') + if (feedingData.value.length === 0) { + Toast.fail({ message: '鎶曟枡鏄庣粏涓嶈兘涓虹┖' }) + return } - - // 淇敼浜у嚭 - const changeCC = (downType: string, num: number, recordId: string) => { - if (!num) return - if ((produceFrom.qualified + produceFrom.undesirable) > info.value.planNum) { - return Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘澶т簬璁″垝鏁伴噺', duration: 2000 }) - } - if (num >= 0) { - from.defective = [] - from.defectiveName = '' - // dealWorkorderRecordStandard({ - // downType, num, recordId, workorderId: route.query.id - // }).then(res => { - // if (res.code === 200) { - // getOrocessRecordCC() - // } - // }) + if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) { + Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' }) + return + } + statisticsData.value = [] + if (info.value.hasBom === 0) { + console.log('鏃燽om') + // let data: any = [ + // { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }, + // { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 }, + // { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 }, + // { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 } + // ] + // if (undesirable.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� + // data[2].wlmc = undesirable.value[0].name + // data[2].gznum = data[2].gznum + undesirable.value.length + // } + // if (scrap.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� + // data[2].wlmc = scrap.value[0].name + // data[2].gznum = data[2].gznum + scrap.value.length + // } + // let tl = 0 + // let cc = 0 + // let bl = 0 + // undesirable.value.forEach((item: any) => { // 涓嶈壇 + // bl = bl + item.num + // }) + // scrap.value.forEach((item: any) => { // 鎶ュ簾 + // bl = bl + item.num + // }) + // if (produceData.value.length > 0) { // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑� + // produceData.value.forEach((item: any) => { // 浜у嚭 + // cc = cc + item.num + // }) + // } + // feedingData.value.forEach((item: any) => { // 鎶曟枡 + // tl = tl + item.num + // }) + // data[0].wlnum = tl.toString() + info.value.umodel.name + // if (produceData.value.length > 0) { + // data[1].wlnum = cc.toString() + info.value.umodel.name + // } + // data[2].wlnum = bl.toString() + info.value.umodel.name + // if (Number(tl) <= info.value.planNum) { + // let total: number = Number(tl) - Number(cc) - Number(bl) // 鏄惁鏈変綑 + // data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name + // if (total === 0) { + // isSubmit.value = true + // } else { + // isSubmit.value = false + // } + // } else { + // isSubmit.value = false + // } + // statisticsData.value = data + let arr: any = [] + let tl = 0 + let res = getGroupNum(feedingData.value) + for (let i in res) { + let num = 0 + res[i].forEach((item: any) => { + num += item.num + }) + arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + '-' + res[i][0].procedureName, num: num }) + } + feedingData.value.forEach((item: any) => { + tl += item.num + }) + statisticsData.value = [...statisticsData.value, ...arr] + statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) + statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) + if (Number(tl) <= info.value.planNum) { + let total: number = Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable) // 鏄惁鏈変綑 + statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: (Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable)).toFixed(2) }) + if (total === 0) { + isSubmit.value = true } else { - if (downType == 0) { - produceFrom.qualified = 0 - } else { - produceFrom.undesirable = 0 - } - Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘灏忎簬0', duration: 2000 }) + isSubmit.value = false } - } - - // 璺宠浆鐐规 - const jumpdj = () => { - router.push({ name: 'spotCheck', query: { id: route.query.id } }) - } - - // 鍒犻櫎鐐规 - const dele = (id: string | number): void => { - deletedj(id) - .then(res => { - if (res.code === 200) { - djData.value = [] - finished.value = false - page.page = 1 - djData.value = [] - pageDJs() - } - }) - } - - // 鐐规鏁版嵁 - const pageDJs = () => { - if (!finished.value) { - page.page = page.page + 1 - loading.value = true - pageDJ({ - capacity: page.capacity, - page: page.page, - model: { - workorderId: route.query.id - } - }).then(res => { - if (res.code === 200 && res.data && res.data.records.length !== 0) { - djData.value.push(...res.data.records) - } else { - finished.value = true - } - loading.value = false - }).catch(err => { - loading.value = false - finished.value = true - }) - } - } - - // 缁熻 - const ccTotal = (): string => { - if (produceData.value.length > 0) { - let total: number = 0 - produceData.value.forEach((element: any) => { - total = total + element.num - }) - return `${total}${produceData.value[0].company}` - } - return '' - } - - // 缁熻 - const blTotal = (): string => { - if (undesirable.value.length > 0) { - let total: number = 0 - undesirable.value.forEach((element: any) => { - total = total + element.num - }) - return `${total}${undesirable.value[0].company}` - } - return '' - } - - // 缁熻 - const bfTotal = (): string => { - if (scrap.value.length > 0) { - let total: number = 0 - scrap.value.forEach((element: any) => { - total = total + element.num - }) - 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 + } else { + isSubmit.value = false + } + } else if (info.value.hasBom === 1) { // 鏈塨om鎯呭喌 + console.log('鏈塨om') + let arr: any = [] + let tl = 0 + let res = getGroupNum(feedingData.value) + for (let i in res) { + let num = 0 + res[i].forEach((item: any) => { + num += item.num }) + arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num }) + } + feedingData.value.forEach((item: any) => { + tl += item.num + }) + statisticsData.value = [...statisticsData.value, ...arr] + statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) + statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) + // isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum; + isSubmit.value = true } + } + statistics.value = true +} - // 鍒犻櫎浜у嚭/鎶曟枡 - const deleItem = (id: any, type: string) => { - Dialog.confirm({ - title: '鎻愮ず', - message: '纭畾鍒犻櫎姝ゆ潯璁板綍鍚楋紵', - }).then(() => { - deleteCT(id) - .then(res => { - if (res.code === 200 && type === 'C') { - getOrocessRecordCC() - } else if (res.code === 200 && type === 'T') { - getOrocessRecords() - } - }) - }).catch(() => { - // on cancel - }) +// 鏍规嵁鏌愪釜瀛楁杩涜鍒嗙粍 +const getGroupNum = (arr: any) => { + let newArry: any = {}; + for (let i = 0; i < arr.length; i++) { + if (newArry[arr[i].materialName]) { + newArry[arr[i].materialName].push(arr[i]) + } else { + newArry[arr[i].materialName] = [arr[i]] } + } + return newArry; +} - // 璺宠浆鎵嬪姩浜у嚭 - const jumpCC = () => { - router.push({ name: 'manualOutput', query: { id: route.query.id, num: produceData.value.length > 0 ? produceData.value[0].num : '' } }) +// 杩斿洖淇敼 +const gofh = () => { + statistics.value = false +} + +// 纭鎶ュ伐 +const submitBG = () => { + // if (!from.duration || from.duration <= 0) { + // return Toast('鎶ュ伐鏃堕暱涓嶈兘涓虹┖') + // } + let createUnqualifiedDTOList = from.defective.map((item: any) => { + return { + categoryId: item.id, + unQualifiedNum: item.num } - - // 璺宠浆鎵嬪姩鎶曟枡 - const jumpTL = () => { - router.push({ name: 'manualFeeding', query: { id: route.query.id } }) + }) + 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({ + createUnqualifiedDTOList, + createWorkorderRecordDTO + }).then(res => { + if (res.code === 200) { + Toast.success({ message: '鎶ュ伐鎴愬姛', forbidClick: true, duration: 2000 }) + setTimeout(() => { + router.go(-2) + }, 2000) } + }) +} - // 鍏抽棴鎵爜缁勪欢 - const closePopup = (): void => { - openCode.value = false - } +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() +}) - // 鑾峰彇鎵爜鍊� - const onDecode = (data: string[]): void => { - getBarcodeContent({ - barcode: data[0] - }).then(res => { - if (res.code === 200) { - if (res.data.barcodeType === QRCodeType.GZ) { - if (type.value === 'tl') { // 鎶曟枡鎿嶄綔 - getListByCondition({ id: res.data.id }) - .then(gz => { - if (gz.code === 200) { - if (gz.data[0].status !== 1) { - router.push({ name: 'codeScanningFeeding', query: { id: route.query.id, gzId: res.data.id } }) - } else { - Toast.fail({ message: '鎵弿鐨勫伐瑁呯姸鎬佷笉鑳戒负绌�', duration: 2000 }) - } - } - }) - } - if (type.value === 'cc') { // 浜у嚭鎿嶄綔 - router.push({ name: 'codeScanningOutput', query: { id: route.query.id, gzId: res.data.id } }) - } - } else { - Toast({ message: '璇锋壂鎻忔纭殑绡瓙鐮�', duration: 2000 }) - } - } - }) - nextTick(() => { - openCode.value = false - }) - } +onMounted(() => { + // $Bus.on('callback1', (res: any)=>{ + // if (res == 1) { + // djData.value = [] + // finished.value = false + // page.page = 1 + // djData.value = [] + // pageDJs() + // } + // }) + // pageDJs() - // 璺宠浆鎵嬪姩鎶曟枡 - const jump = () => { - router.push({ name: 'manualFeeding', query: { id: route.query.id } }) - } + queryByIds() + getOrocessRecords() + getData() - // 璺宠浆鎵爜鎶曟枡 - const jump1 = (types: string) => { - type.value = types - openCode.value = true - } - - // 鏌ヨ宸ュ崟璇︽儏 - const queryByIds = () => { - 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 - // } - }) - } - }) - } - - // 鏌ヨ宸ュ崟鐢熶骇璁板綍---鎶曟枡 - const getOrocessRecords = () => { - feedingData.value = [] - allForStandard({ - workorderId: route.query.id, - type: 0 - }).then(res => { - if (res.code === 200) { - feedingData.value = res.data - // res.data.forEach((item: any) => { - // feedingData.value.push({ id: item.id, company: item.umodel.name, gz: item.amodel.code, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) - // }) - } - }) - } - - // 鏌ヨ宸ュ崟鐢熶骇璁板綍---浜у嚭 - const getOrocessRecordCC = () => { - produceData.value = [] - undesirable.value = [] - scrap.value = [] - getWorkorderRecordListStandard({ - workorderId: route.query.id - }).then(res => { - if (res.code === 200) { - if (res.data.length > 0) { - res.data.forEach((item: any) => { - if (item.doneType === 1) { - produceFrom.undesirable = item.num - produceFrom.undesirableId = item.id - } else { - produceFrom.qualified = item.num - produceFrom.qualifiedId = item.id - } - }) - } - // res.data.forEach((item: any) => { - // if (item.doneType === 0 || !item.doneType) { // 鍚堟牸 | 娣峰悎 - - // produceData.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) - // } else if (item.doneType === 1) { // 涓嶈壇 - // undesirable.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) - // } else if (item.doneType === 2) { // 鎶ュ簾 - // scrap.value.push({ id: item.id, company: item.umodel.name, name: item.mmodel.name, code: item.amodel.code + ' - ' + item.mmodel.name, num: item.num, ynum: item.num, maxNum: item.amodel.num }) - // } - // }) - } - }) - } - - // 缂栬緫鎶曟枡/浜у嚭 - const change = (id: any, num: any, type: any, maxNum: number, item: object, unitAttribute: number): void => { - let obj: any = item - if (type === 'T') { - if (unitAttribute == 0 && num != '') { - if(!REGULAR.positiveInteger.test(num)){ - obj.num = obj.ynum - Toast({ message: '鍙兘杈撳叆姝f暣鏁�' }) - return - } - } - if (unitAttribute == 1 && num != '') { - if(!REGULAR.number.test(num)){ - Toast({ message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級' }) - obj.num = obj.ynum - return - } - } - if (num > maxNum) { - obj.num = obj.ynum - Toast.fail({ message: '瓒呭嚭宸ヨ鎬绘暟' }) - return - } - } else if (type === 'C' && num > info.value.planNum) { - obj.num = obj.ynum - Toast.fail({ message: '浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺' }) - return - } - updateById({ id: id, num: num }).then(res => { - if (res.code === 200 && type === 'T') { - getOrocessRecords() - } else if (res.code === 200 && type === 'C') { - // getOrocessRecordCC() - } - }) - } - - // 纭鎶ュ伐 - const submit = () => { - 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 = [ - // { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }, - // { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 }, - // { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 }, - // { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 } - // ] - // if (undesirable.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� - // data[2].wlmc = undesirable.value[0].name - // data[2].gznum = data[2].gznum + undesirable.value.length - // } - // if (scrap.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� - // data[2].wlmc = scrap.value[0].name - // data[2].gznum = data[2].gznum + scrap.value.length - // } - // let tl: number = 0 - // let cc: number = 0 - // let bl: number = 0 - // undesirable.value.forEach((item: any) => { // 涓嶈壇 - // bl = bl + item.num - // }) - // scrap.value.forEach((item: any) => { // 鎶ュ簾 - // bl = bl + item.num - // }) - // if (produceData.value.length > 0) { // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑� - // produceData.value.forEach((item: any) => { // 浜у嚭 - // cc = cc + item.num - // }) - // } - // feedingData.value.forEach((item: any) => { // 鎶曟枡 - // tl = tl + item.num - // }) - // data[0].wlnum = tl.toString() + info.value.umodel.name - // if (produceData.value.length > 0) { - // data[1].wlnum = cc.toString() + info.value.umodel.name - // } - // data[2].wlnum = bl.toString() + info.value.umodel.name - // let total: number = info.value.planNum - (Number(cc) + Number(bl)) - // data[data.length - 1].wlnum = (info.value.planNum - Number(cc) - Number(bl)).toString() + info.value.umodel.name - // if (total === 0) { - // isSubmit.value = true - // } else { - // isSubmit.value = false - // } - - let arr: any = [] - let tl = 0 - let res = getGroupNum(feedingData.value) - for (let i in res) { - let num = 0 - res[i].forEach((item: any) => { - num += item.num - }) - arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + res[i][0].procedureName, num: num }) - } - feedingData.value.forEach((item: any) => { - tl += item.num - }) - statisticsData.value = [...statisticsData.value, ...arr] - statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) - statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) - statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: info.value.planNum - Number(produceFrom.qualified) - Number(produceFrom.undesirable) }) - let total: number = info.value.planNum - (Number(produceFrom.qualified) + Number(produceFrom.undesirable)) - if (total === 0) { - isSubmit.value = true - } else { - isSubmit.value = false - } - // if (Number(tl) <= info.value.planNum) { - // let total: number = Number(tl) - Number(cc) - Number(bl) // 鏄惁鏈変綑 - // data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name - // if (total === 0) { - // isSubmit.value = true - // } else { - // isSubmit.value = false - // } - // } else { - // isSubmit.value = false - // } - // statisticsData.value = data - } else if (info.value.hasBom === 1) { // 鏈塨om鎯呭喌 - console.log('鏈塨om') - // let cc: number = 0 - // let bl: number = 0 - // let newData: any = {} - // if (feedingData.value.length > 0) { // 鎶曟枡 - // feedingData.value.forEach((e: any) => { - // if (Object.keys(newData).indexOf('' + e.name) === -1) { - // newData[e.name] = [] - // } - // newData[e.name].push(e) - // }) - // for (let key in newData) { - // let obj = { name: '宸ュ崟鎶曟枡', gznum: newData[key].length, wlmc: key, wlnum: 0, num: 0 } - // newData[key].forEach((item: any) => { - // obj.wlnum = obj.wlnum + item.num - // obj.num = item.num - // }) - // obj.wlnum = obj.wlnum.toString() + newData[key][0].company as never - // statisticsData.value.push(obj) - // } - // } - // if (produceData.value.length > 0) { // 浜у嚭 - // produceData.value.forEach((item: any) => { - // cc = cc + item.num - // }) - // statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: info.value.mmodel.name, wlnum: cc + info.value.umodel.name, num: cc }) - // } - // if (undesirable.value.length > 0 || scrap.value.length > 0) { // 涓嶈壇/鎶ュ簾 - // undesirable.value.forEach((item: any) => { - // bl = bl + item.num - // }) - // scrap.value.forEach((item: any) => { - // bl = bl + item.num - // }) - // statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', gznum: undesirable.value.length + scrap.value.length, wlmc: info.value.mmodel.name, wlnum: bl + info.value.umodel.name, num: bl }) - // } - // let totaltl: number = 0 - // let totalcc: number = 0 - // let totalbl: number = 0 - // statisticsData.value.forEach((item: any) => { - // if (item.name === '宸ュ崟鎶曟枡') { - // totaltl = totaltl + item.num - // } else if (item.name === '宸ュ崟鍚堟牸浜у嚭') { - // totalcc = totalcc + item.num - // } else if (item.name === '宸ュ崟涓嶈壇浜у嚭') { - // totalbl = totalbl + item.num - // } - // }) - // isSubmit.value = totalcc + totalbl <= info.value.planNum; - let arr: any = [] - let tl = 0 - let res = getGroupNum(feedingData.value) - for (let i in res) { - let num = 0 - res[i].forEach((item: any) => { - num += item.num - }) - arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num }) - } - feedingData.value.forEach((item:any) => { - tl += item.num - }) - statisticsData.value = [...statisticsData.value, ...arr] - statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) - statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) - isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum; - } - } else { - console.log('鎺ㄥ紡') - if (feedingData.value.length === 0) { - Toast.fail({ message: '鎶曟枡鏄庣粏涓嶈兘涓虹┖' }) - return - } - if (produceFrom.qualified <= 0) { - Toast.fail({ message: '浜у嚭鏄庣粏涓嶈兘涓虹┖' }) - return - } - statisticsData.value = [] - if (info.value.hasBom === 0) { - console.log('鏃燽om') - // let data: any = [ - // { name: '宸ュ崟鎶曟枡', gznum: feedingData.value.length, wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 }, - // { name: '宸ュ崟鍚堟牸浜у嚭', gznum: produceData.value.length, wlmc: produceData.value.length > 0 ? produceData.value[0].name : '', wlnum: 0 }, - // { name: '宸ュ崟涓嶈壇浜у嚭', gznum: 0, wlmc: '', wlnum: 0 }, - // { name: '宸ュ崟鏈姇鏂�', gznum: '', wlmc: feedingData.value.length > 0 ? feedingData.value[0].name : '', wlnum: 0 } - // ] - // if (undesirable.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� - // data[2].wlmc = undesirable.value[0].name - // data[2].gznum = data[2].gznum + undesirable.value.length - // } - // if (scrap.value.length > 0) { // 鍒ゆ柇鏈夋病鏈変笉鑹� - // data[2].wlmc = scrap.value[0].name - // data[2].gznum = data[2].gznum + scrap.value.length - // } - // let tl = 0 - // let cc = 0 - // let bl = 0 - // undesirable.value.forEach((item: any) => { // 涓嶈壇 - // bl = bl + item.num - // }) - // scrap.value.forEach((item: any) => { // 鎶ュ簾 - // bl = bl + item.num - // }) - // if (produceData.value.length > 0) { // 鍒ゆ柇鏈夋病鏈夊悎鏍间骇鍑� - // produceData.value.forEach((item: any) => { // 浜у嚭 - // cc = cc + item.num - // }) - // } - // feedingData.value.forEach((item: any) => { // 鎶曟枡 - // tl = tl + item.num - // }) - // data[0].wlnum = tl.toString() + info.value.umodel.name - // if (produceData.value.length > 0) { - // data[1].wlnum = cc.toString() + info.value.umodel.name - // } - // data[2].wlnum = bl.toString() + info.value.umodel.name - // if (Number(tl) <= info.value.planNum) { - // let total: number = Number(tl) - Number(cc) - Number(bl) // 鏄惁鏈変綑 - // data[data.length - 1].wlnum = (Number(tl) - Number(cc) - Number(bl)).toString() + info.value.umodel.name - // if (total === 0) { - // isSubmit.value = true - // } else { - // isSubmit.value = false - // } - // } else { - // isSubmit.value = false - // } - // statisticsData.value = data - let arr: any = [] - let tl = 0 - let res = getGroupNum(feedingData.value) - for (let i in res) { - let num = 0 - res[i].forEach((item: any) => { - num += item.num - }) - arr.push({ name: '宸ュ崟鎶曟枡', materialName: i + '-' + res[i][0].procedureName, num: num }) - } - feedingData.value.forEach((item:any) => { - tl += item.num - }) - statisticsData.value = [...statisticsData.value, ...arr] - statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) - statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) - if (Number(tl) <= info.value.planNum) { - let total: number = Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable) // 鏄惁鏈変綑 - statisticsData.value.push({ name: '宸ュ崟鏈姇鏂�', materialName: '', num: (Number(tl) - Number(produceFrom.qualified) - Number(produceFrom.undesirable)).toFixed(2) }) - if (total === 0) { - isSubmit.value = true - } else { - isSubmit.value = false - } - } else { - isSubmit.value = false - } - } else if (info.value.hasBom === 1) { // 鏈塨om鎯呭喌 - console.log('鏈塨om') - let arr: any = [] - let tl = 0 - let res = getGroupNum(feedingData.value) - for (let i in res) { - let num = 0 - res[i].forEach((item: any) => { - num += item.num - }) - arr.push({ name: '宸ュ崟鎶曟枡', materialName: i, num: num }) - } - feedingData.value.forEach((item:any) => { - tl += item.num - }) - statisticsData.value = [...statisticsData.value, ...arr] - statisticsData.value.push({ name: '宸ュ崟鍚堟牸浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.qualified }) - statisticsData.value.push({ name: '宸ュ崟涓嶈壇浜у嚭', materialName: info.value.mmodel.name + '-' + info.value.procedureName, num: produceFrom.undesirable }) - // isSubmit.value = produceFrom.qualified + produceFrom.undesirable <= info.value.planNum; - isSubmit.value = true - } - } - statistics.value = true - } - - // 鏍规嵁鏌愪釜瀛楁杩涜鍒嗙粍 - const getGroupNum = (arr: any) => { - let newArry: any = {}; - for (let i = 0; i < arr.length; i++) { - if (newArry[arr[i].materialName]) { - newArry[arr[i].materialName].push(arr[i]) - } else { - newArry[arr[i].materialName] = [arr[i]] - } - } - return newArry; - } - - // 杩斿洖淇敼 - const gofh = () => { - statistics.value = false - } - - // 纭鎶ュ伐 - 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({ - createUnqualifiedDTOList, - createWorkorderRecordDTO - }).then(res => { - if (res.code === 200) { - Toast.success({ message: '鎶ュ伐鎴愬姛', forbidClick: true, duration: 2000 }) - setTimeout(() => { - router.go(-2) - }, 2000) - } - }) - } - - 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(() => { - // $Bus.on('callback1', (res: any)=>{ - // if (res == 1) { - // djData.value = [] - // finished.value = false - // page.page = 1 - // djData.value = [] - // pageDJs() - // } - // }) - // pageDJs() - - queryByIds() - getOrocessRecords() - getData() - - // getOrocessRecordCC() - }) + // getOrocessRecordCC() +}) </script> <style lang="scss" scoped> - .bg { - width: 100%; - /*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; - box-sizing: border-box; - display: flex; - align-items: center; - justify-content: space-between; - .details_cz_sdtl { - width: 330px; - height: 76px; - background: #FFFFFF; - border-radius: 36px; - display: flex; - align-items: center; - justify-content: center; - img { - width: 28px; - height: 28px; - margin-right: 14px; - } - span { - font-size: 26px; - font-weight: 400; - color: #222222; - } - } - .details_cz_smtl { - /*width: 330px;*/ - flex: 1; - height: 76px; - background: $nav-color; - border-radius: 36px; - display: flex; - align-items: center; - justify-content: center; - img { - width: 28px; - height: 28px; - margin-right: 14px; - } - span { - font-size: 26px; - 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 { - width: 100%; - display: flex; - flex-direction: column; - margin-top: 30px; - .bg_list_item { - display: flex; - flex-direction: column; - margin-bottom: 40px; - .kong { - text-align: center; - padding: 30px 0; - background: #ffffff; - font-size: 25px; - span { - color: #474747; - } - } - .bg_list_item_top { - display: flex; - align-items: center; - justify-content: space-between; - padding-left: 30px; - padding-right: 30px; - margin-bottom: 30px; - .bg_list_item_top_left { - display: flex; - align-items: center; - .left { - margin-left: 12px; - font-size: 28px; - } - .warning { - width: 8px; - height: 30px; - border-radius: 2px; - margin-right: 12px; - background: $nav-stateColor5 !important; - } - .error { - width: 8px; - height: 30px; - border-radius: 2px; - margin-right: 12px; - background: $nav-stateColor4 !important; - } - .bg_list_item_top_left_x { - width: 8px; - height: 30px; - background: $nav-color; - border-radius: 2px; - margin-right: 12px; - } - span { - font-size: 32px; - font-weight: 500; - color: #222222; - display: flex; - align-items: center; - } - } - .bg_list_item_top_right { - display: flex; - align-items: center; - img { - width: 28px; - height: 28px; - margin-right: 12px; - } - span { - font-size: 28px; - font-weight: 400; - color: $nav-color; - } - } - } - .bg_list_item_h { - width: 100%; - padding: 0 30px; - box-sizing: border-box; - background: white; - .bg_list_item_num { - width: 100%; - min-height: 98px; - background: white; - display: flex; - justify-content: center; - align-items: center; - border-bottom: 1PX solid #E5E5E5; - &:last-child { - border: none !important; - } - .kong { - text-align: center; - font-size: 25px; - padding: 30px 0; - background: #ffffff; - } - .bg_list_item_num_item { - width: 100%; - height: 100%; - display: flex; - 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_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; - } - } - } - .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; - } - .err { - color: $nav-stateColor4 !important; - } - img { - width: 12px; - height: 24px; - margin-left: 20px; - } - span { - 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; - } - } - } - } - } - } - } - .details_dj { - display: flex; - flex-direction: column; - .details_dj_title { - width: 100%; - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 30px 30px 30px; - box-sizing: border-box; - .details_dj_title_left { - display: flex; - align-items: center; - .details_x { - width: 8px; - height: 30px; - background: $nav-color; - border-radius: 2px; - margin-right: 12px; - } - span { - font-size: 32px; - font-weight: 500; - color: #222222; - } - } - .details_dj_title_right { - display: flex; - align-items: center; - img { - width: 28px; - height: 28px; - margin-right: 12px; - } - span { - font-size: 28px; - font-weight: 400; - color: $nav-color; - } - } - } - .details_dj_list { - width: 100%; - /*padding: 30px;*/ - box-sizing: border-box; - background: #ffffff; - display: flex; - flex-direction: column; - .details_dj_list_item { - display: flex; - flex-direction: column; - border-bottom: 1px solid #E5E5E5; - padding: 30px; - /*margin: 30px;*/ - /*padding-bottom: 30px;*/ - /*margin-bottom: 30px !important;*/ - span { - &:nth-child(1) { - font-size: 28px; - font-weight: 400; - color: #222222; - } - &:nth-child(2) { - font-size: 24px; - font-weight: 400; - color: #999999; - margin-top: 24px; - } - } - } - } - } - .bh_zw { - height: 160px; - } - .bg_footer { - position: fixed; - bottom: 0; - left: 0; - 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; - background: $nav-color; - box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); - border-radius: 8px; - font-size: 30px; - font-weight: 500; - color: #FFFFFF; - display: flex; - align-items: center; - justify-content: center; - } - } - .tg { - width: 100%; - height: 800px; - padding: 30px; - box-sizing: border-box; - .tg_header { - width: 100%; - height: 45px; - text-align: center; - line-height: 45px; - font-size: 30px; - font-weight: 500; - color: #222222; - } - .tg_table { - width: 100%; - margin-top: 40px; - .tg_table_header { - width: 100%; - height: 72px; - background: #EFF2FC; - display: flex; - align-items: center; - .tg_table_header_item { - flex: 1; - font-size: 26px; - font-weight: 500; - color: #333333; - display: flex; - align-items: center; - justify-content: center; - } - } - } - .nr { - width: 100%; - max-height: calc(100% - 133px); - overflow-x: scroll; - .tg_table_nr { - width: 100%; - padding: 24px 10px; - box-sizing: border-box; - display: flex; - align-items: center; - background: white; - box-shadow: inset 0px -2px 0px 0px #E5E5E5; - .tg_table_nr_item { - flex: 1; - font-size: 26px; - font-weight: 500; - color: #333333; - display: flex; - align-items: center; - justify-content: center; - } - .tg_table_nr_item1 { - flex: 1; - font-size: 26px; - font-weight: 500; - color: #333333; - display: flex; - align-items: center; - justify-content: center; - } - } - } - } - .tg_footer { - width: calc(100% - 60px); - position: fixed; - bottom: 0; - display: flex; - justify-content: space-between; - align-items: center; - box-sizing: border-box; - padding-bottom: 40px; - .tg_footer_fh { - width: 100%; - height: 88px; - display: flex; - align-items: center; - justify-content: center; - background: rgba(66, 117, 252, 0.05); - border-radius: 8px; - border: 1PX solid #4275FC; - font-size: 32px; - font-weight: 500; - color: $nav-color; - } - .tg_footer_qr { - width: 100%; - height: 88px; - border: none; - display: flex; - align-items: center; - justify-content: center; - background: $nav-color; - border-radius: 8px; - font-size: 32px; - font-weight: 500; - color: #FFFFFF; - } - } - .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; - span { - font-size: 28px; - color: #222222; - &:nth-child(2) { - 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: calc(100% - 168px); - overflow-y: scroll; - margin-top: 30px; - .bl_list_item { - width: 100%; - height: 96px; - display: flex; - align-items: center; - justify-content: space-between; - border-bottom: 1PX solid #E5E5E5; - &:last-child { - border: none !important; - } - .bl_list_item_left { - flex: 1; - display: flex; - align-items: center; - input { - width: 30px; - height: 30px; - border: 1PX solid #CCCCCC; - margin: 0 !important; - } - span { - font-size: 30px; - color: #222222; - margin-left: 10px; - } - } - .bl_list_item_right { - flex: 1; - height: 50px; - text-align: right; - input { - 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: 1PX solid #CCCCCC; - &::-webkit-input-placeholder { - font-size: 28px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #999999; - } - } - } - } - } - } +.bg { + width: 100%; + /*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; + } } -</style> + + .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; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: space-between; + + .details_cz_sdtl { + width: 330px; + height: 76px; + background: #FFFFFF; + border-radius: 36px; + display: flex; + align-items: center; + justify-content: center; + + img { + width: 28px; + height: 28px; + margin-right: 14px; + } + + span { + font-size: 26px; + font-weight: 400; + color: #222222; + } + } + + .details_cz_smtl { + /*width: 330px;*/ + flex: 1; + height: 76px; + background: $nav-color; + border-radius: 36px; + display: flex; + align-items: center; + justify-content: center; + + img { + width: 28px; + height: 28px; + margin-right: 14px; + } + + span { + font-size: 26px; + 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 { + width: 100%; + display: flex; + flex-direction: column; + margin-top: 30px; + + .bg_list_item { + display: flex; + flex-direction: column; + margin-bottom: 40px; + + .kong { + text-align: center; + padding: 30px 0; + background: #ffffff; + font-size: 25px; + + span { + color: #474747; + } + } + + .bg_list_item_top { + display: flex; + align-items: center; + justify-content: space-between; + padding-left: 30px; + padding-right: 30px; + margin-bottom: 30px; + + .bg_list_item_top_left { + display: flex; + align-items: center; + + .left { + margin-left: 12px; + font-size: 28px; + } + + .warning { + width: 8px; + height: 30px; + border-radius: 2px; + margin-right: 12px; + background: $nav-stateColor5 !important; + } + + .error { + width: 8px; + height: 30px; + border-radius: 2px; + margin-right: 12px; + background: $nav-stateColor4 !important; + } + + .bg_list_item_top_left_x { + width: 8px; + height: 30px; + background: $nav-color; + border-radius: 2px; + margin-right: 12px; + } + + span { + font-size: 32px; + font-weight: 500; + color: #222222; + display: flex; + align-items: center; + } + } + + .bg_list_item_top_right { + display: flex; + align-items: center; + + img { + width: 28px; + height: 28px; + margin-right: 12px; + } + + span { + font-size: 28px; + font-weight: 400; + color: $nav-color; + } + } + } + + .bg_list_item_h { + width: 100%; + padding: 0 30px; + box-sizing: border-box; + background: white; + + .bg_list_item_num { + width: 100%; + min-height: 98px; + background: white; + display: flex; + justify-content: center; + align-items: center; + border-bottom: 1PX solid #E5E5E5; + + &:last-child { + border: none !important; + } + + .kong { + text-align: center; + font-size: 25px; + padding: 30px 0; + background: #ffffff; + } + + .bg_list_item_num_item { + width: 100%; + height: 100%; + display: flex; + 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_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; + } + } + } + + .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; + } + + .err { + color: $nav-stateColor4 !important; + } + + img { + width: 12px; + height: 24px; + margin-left: 20px; + } + + span { + 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; + } + } + } + } + } + } + } + + .details_dj { + display: flex; + flex-direction: column; + + .details_dj_title { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 30px 30px 30px; + box-sizing: border-box; + + .details_dj_title_left { + display: flex; + align-items: center; + + .details_x { + width: 8px; + height: 30px; + background: $nav-color; + border-radius: 2px; + margin-right: 12px; + } + + span { + font-size: 32px; + font-weight: 500; + color: #222222; + } + } + + .details_dj_title_right { + display: flex; + align-items: center; + + img { + width: 28px; + height: 28px; + margin-right: 12px; + } + + span { + font-size: 28px; + font-weight: 400; + color: $nav-color; + } + } + } + + .details_dj_list { + width: 100%; + /*padding: 30px;*/ + box-sizing: border-box; + background: #ffffff; + display: flex; + flex-direction: column; + + .details_dj_list_item { + display: flex; + flex-direction: column; + border-bottom: 1px solid #E5E5E5; + padding: 30px; + + /*margin: 30px;*/ + /*padding-bottom: 30px;*/ + /*margin-bottom: 30px !important;*/ + span { + &:nth-child(1) { + font-size: 28px; + font-weight: 400; + color: #222222; + } + + &:nth-child(2) { + font-size: 24px; + font-weight: 400; + color: #999999; + margin-top: 24px; + } + } + } + } + } + + .bh_zw { + height: 160px; + } + + .bg_footer { + position: fixed; + bottom: 0; + left: 0; + 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; + background: $nav-color; + box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); + border-radius: 8px; + font-size: 30px; + font-weight: 500; + color: #FFFFFF; + display: flex; + align-items: center; + justify-content: center; + } + } + + .tg { + width: 100%; + height: 800px; + padding: 30px; + box-sizing: border-box; + + .tg_header { + width: 100%; + height: 45px; + text-align: center; + line-height: 45px; + font-size: 30px; + font-weight: 500; + color: #222222; + } + + .tg_table { + width: 100%; + margin-top: 40px; + + .tg_table_header { + width: 100%; + height: 72px; + background: #EFF2FC; + display: flex; + align-items: center; + + .tg_table_header_item { + flex: 1; + font-size: 26px; + font-weight: 500; + color: #333333; + display: flex; + align-items: center; + justify-content: center; + } + } + } + + .nr { + width: 100%; + max-height: calc(100% - 133px); + overflow-x: scroll; + + .tg_table_nr { + width: 100%; + padding: 24px 10px; + box-sizing: border-box; + display: flex; + align-items: center; + background: white; + box-shadow: inset 0px -2px 0px 0px #E5E5E5; + + .tg_table_nr_item { + flex: 1; + font-size: 26px; + font-weight: 500; + color: #333333; + display: flex; + align-items: center; + justify-content: center; + } + + .tg_table_nr_item1 { + flex: 1; + font-size: 26px; + font-weight: 500; + color: #333333; + display: flex; + align-items: center; + justify-content: center; + } + } + } + } + + .tg_footer { + width: calc(100% - 60px); + position: fixed; + bottom: 0; + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + padding-bottom: 40px; + + .tg_footer_fh { + width: 100%; + height: 88px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(66, 117, 252, 0.05); + border-radius: 8px; + border: 1PX solid #4275FC; + font-size: 32px; + font-weight: 500; + color: $nav-color; + } + + .tg_footer_qr { + width: 100%; + height: 88px; + border: none; + display: flex; + align-items: center; + justify-content: center; + background: $nav-color; + border-radius: 8px; + font-size: 32px; + font-weight: 500; + color: #FFFFFF; + } + } + + .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; + + span { + font-size: 28px; + color: #222222; + + &:nth-child(2) { + 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: calc(100% - 168px); + overflow-y: scroll; + margin-top: 30px; + + .bl_list_item { + width: 100%; + height: 96px; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1PX solid #E5E5E5; + + &:last-child { + border: none !important; + } + + .bl_list_item_left { + flex: 1; + display: flex; + align-items: center; + + input { + width: 30px; + height: 30px; + border: 1PX solid #CCCCCC; + margin: 0 !important; + } + + span { + font-size: 30px; + color: #222222; + margin-left: 10px; + } + } + + .bl_list_item_right { + flex: 1; + height: 50px; + text-align: right; + + input { + 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: 1PX solid #CCCCCC; + + &::-webkit-input-placeholder { + font-size: 28px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #999999; + } + } + } + } + } + } +}</style> -- Gitblit v1.9.3