| | |
| | | </div>
|
| | |
|
| | | <template v-if="feedingData && feedingData.length > 0">
|
| | | <view class="plr30">
|
| | | <view class="plr30 bg_w">
|
| | | <view >
|
| | | <div v-for="(item, index) in feedingData" :key="index" class="bg_list_item_h">
|
| | | <div class="bg_list_item_num">
|
| | |
| | | <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="orange" v-if="item.qualityType == 1">不良 / </span>
|
| | | <span class="red" v-if="item.qualityType == 2">报废 / </span>
|
| | | <span class="green" v-if="item.qualityType == 0">合格<text class="c6" decode>{{ split }}</text></span>
|
| | | <span class="orange" v-if="item.qualityType == 1">不良<text class="c6" decode>{{ split }}</text></span>
|
| | | <span class="red" v-if="item.qualityType == 2">报废<text class="c6" decode>{{ split }}</text></span>
|
| | | <span>{{ item.locationName }}</span>
|
| | | <span>{{ item.batch ? ` / ${item.batch}` : '' }}</span>
|
| | | <span v-if="item.batch"><text class="c6" decode>{{ split }}</text>{{ item.batch }}</span>
|
| | | </div>
|
| | | </div>
|
| | | <div class="bg_list_item_num_item_sr">
|
| | |
| | | {{ performance.salaryType == 0 ? '计件' : '计时' }} | |
| | | {{ (performance.salaryPrice / 10 / 10).toFixed(2) }}元/{{ performance.salaryType == |
| | | 0 ? '件' : '时' }} | |
| | | {{ complianceRate }}% |
| | | 达标率:{{ complianceRate }}% |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- <div class="bg_list_item_num"> |
| | | <div class="bg_list_item_num_item"> |
| | | <span>计件方式</span> |
| | | <div class="bg_list_item_num_item_list"> |
| | | {{ performance.salaryType == 0 ? '计件' : '计时' }} |
| | | </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">{{ (performance.salaryPrice / 10 / 10).toFixed(2) }}元/{{ performance.salaryType == |
| | | 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">{{ complianceRate }}%</span> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | </div>
|
| | | <div v-else class="bg_list"> |
| | | <!-- <div class="bg_list_item"> |
| | | <div class="bg_list_item_top"> |
| | | <div class="bg_list_item_top_left"> |
| | | <div class="bg_list_item_top_left_x bg_m"></div> |
| | | <span>生产点检</span> |
| | | </div> |
| | | </div> --> |
| | | <template v-if="djData && djData.length > 0"> |
| | | <div class="details_dj"> |
| | | <div class="details_dj_list"> |
| | |
| | | { |
| | | name: '点检' |
| | | } |
| | | ],
|
| | | ], |
| | | split: ' / ',
|
| | | workorderId: '',
|
| | | form: {
|
| | | time: '',
|
| | |
| | | })
|
| | | },
|
| | | computed: {
|
| | | complianceRate() {
|
| | | complianceRate() { |
| | | if (!this.performance) return 0; |
| | | if (!this.performance.duration) return 0; |
| | | if (!this.performance.salaryNum || this.performance.salaryTimes) return 0 |
| | | let {duration, salaryNum, salaryTimes, qualifiedNum, unqualifiedNum, salaryUnqualified} = this.performance |
| | | // 报工时长 |
| | | if (!duration) return 0; |
| | | // 报工数量 |
| | | if (!qualifiedNum && !unqualifiedNum) return 0; |
| | | // 标准数量、时长 |
| | | if (!salaryNum || !salaryTimes) return 0 |
| | |
|
| | | if (!this.performance.qualifiedNum && !this.performance.unqualifiedNum) return 0;
|
| | | if (this.performance.salaryUnqualified == 1) { // 是否计入不良品
|
| | | let a = ((Number(this.performance.qualifiedNum) + Number(this.performance.unqualifiedNum)) / (this.performance
|
| | | .duration / 3600)).toFixed(2)
|
| | | let b = (this.performance.salaryNum / (this.performance.salaryTimes / 3600)).toFixed(2) |
| | | debugger
|
| | | if (salaryUnqualified == 1) { // 是否计入不良品
|
| | | let a = ((Number(qualifiedNum) + Number(unqualifiedNum)) / (duration / 3600)).toFixed(2)
|
| | | let b = (salaryNum / (salaryTimes / 3600)).toFixed(2) |
| | | 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 = (this.performance.qualifiedNum / (this.performance.duration / 3600)).toFixed(2)
|
| | | // let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2) |
| | | let b = (this.performance.salaryNum / (this.performance.salaryTimes / 3600)).toFixed(2) |
| | | debugger
|
| | | let a = (qualifiedNum / (duration / 3600)).toFixed(2)
|
| | | let b = (salaryNum / (salaryTimes / 3600)).toFixed(2) |
| | | return ((Number(a) / Number(b)) * 100).toFixed(2)
|
| | | }
|
| | | }
|
| | |
| | | getWorkorderRecordListStandard({
|
| | | workorderId: this.workorderId
|
| | | }).then(res => { |
| | | debugger |
| | | // console.log(res.data[0]); |
| | | if (res.data.length > 0) { |
| | | this.produceFrom.qualified = res.data[0].qualifiedNum |
| | |
| | | background: #FFFFFF;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | border-top: 20rpx solid #f7f7f7;
|
| | | // border-top: 20rpx solid #f7f7f7;
|
| | | .active {
|
| | | box-sizing: border-box;
|
| | | color: #305ED5 !important;
|