| | |
| | | <div class="content_list_item_content_item_label">计划人员:</div> |
| | | <div class="content_list_item_content_item_nr">{{info.usermodel.realname}}</div> |
| | | </div> |
| | | <div class="content_list_item_content_item"> |
| | | <div class="content_list_item_content_item_label">分配数量:</div> |
| | | <div class="content_list_item_content_item_nr" v-if="info.umodel">{{info.distributNum}}{{info.umodel.name}}</div> |
| | | </div> |
| | | <div class="content_list_item_content_item"> |
| | | <div class="content_list_item_content_item_label">完工数量:</div> |
| | | <div class="content_list_item_content_item_nr" v-if="info.umodel">{{info.doneNum}}{{info.umodel.name}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <NotFound info="暂未分配工单" v-if="info.workorderList && info.workorderList.length === 0" /> |
| | | <template v-else> |
| | | <!-- <div class="details_list"> |
| | | <div class="details_list_item" v-for="(item, i) in info.workorderList" :key="i" @click="jump(item)"> |
| | | <div class="details_list_item_top"> |
| | | <span>{{ item.createUserName }}</span> |
| | | <span>{{ item.code }}</span> |
| | | </div> |
| | | <div class="details_list_item_center"> |
| | | <span>良品数:{{ item.qualifiedNum }}</span> |
| | | <span>不良数:<span class="red">{{ item.unqualifiedNum }}</span></span> |
| | | </div> |
| | | <div class="details_list_item_bottom"> |
| | | <span>{{ item.createTime }}</span> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <div class="details_timeline" v-for="(item, i) in info.workorderList" :key="i"> |
| | | <div class="details_timeline_header"> |
| | | <div class="details_timeline_header_code"> |
| | |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <!-- <div class="details_zw"></div> --> |
| | | <!-- <div class="details_btn" @click="toJump">去报工</div> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref, onMounted, watch } from 'vue' |
| | | import { useRoute } from "vue-router" |
| | | import { useRoute, useRouter } from "vue-router" |
| | | import { queryByID } from '@/apis/PlanningAPI' |
| | | import NotFound from '@/components/common/NotFound.vue' |
| | | |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | | |
| | | // 详情数据 |
| | | let info = ref({}) |
| | | let info:any = ref({}) |
| | | |
| | | let loading = ref<boolean>(true) |
| | | |
| | |
| | | info.value = res.data |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const toJump = () => { |
| | | router.push({ name: 'reportingForWork' }) |
| | | } |
| | | |
| | | const jump = (item: any) => { |
| | | if (item.status === 4 || item.status === 6 || item.paused === 1) { |
| | | router.push({ name: 'afterWorkReport', query: { id: item.id } }) |
| | | } else { |
| | | router.push({ name: 'workOrderReporting', query: { id: item.id } }) |
| | | } |
| | | // router.push({ name: 'workOrderReporting', query: { id } }) |
| | | } |
| | | |
| | | const proUserStr = (item: any) => { |
| | |
| | | height: 100%; |
| | | position: absolute; |
| | | background: #F7F7F7; |
| | | .details_zw { |
| | | width: 100%; |
| | | height: 148px; |
| | | } |
| | | .details_btn { |
| | | position: fixed; |
| | | bottom: 60px; |
| | | left: 30px; |
| | | width: calc(100% - 60px); |
| | | height: 88px; |
| | | line-height: 88px; |
| | | text-align: center; |
| | | background: #305ED5; |
| | | box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.08); |
| | | border-radius: 8px; |
| | | font-size: 30px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | .van-skeleton { |
| | | padding: 0 !important; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | .details_list { |
| | | width: 100%; |
| | | height: auto; |
| | | background-color: #FFFFFF; |
| | | margin-top: 20px; |
| | | .details_list_item { |
| | | width: 100%; |
| | | padding: 24px 30px; |
| | | box-sizing: border-box; |
| | | background-color: #FFFFFF; |
| | | border-bottom: 2px solid #F7F7F7; |
| | | &:last-child { |
| | | border: none !important; |
| | | } |
| | | .details_list_item_top { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | span { |
| | | &:first-child { |
| | | font-size: 30px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-right: 16px; |
| | | } |
| | | &:last-child { |
| | | font-size: 24px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | } |
| | | } |
| | | .details_list_item_center { |
| | | width: 100%; |
| | | margin: 16px 0 20px 0; |
| | | .red { |
| | | color: #DE5243; |
| | | } |
| | | span { |
| | | &:first-child { |
| | | font-size: 26px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | margin-right: 100px; |
| | | } |
| | | &:last-child { |
| | | font-size: 26px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | .details_list_item_bottom { |
| | | span { |
| | | font-size: 24px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #999999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .details_timeline { |
| | | padding: 30px; |
| | | background: #ffffff; |