| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="details"> |
| | | <view class="content_list"> |
| | | <view class="content_list_item"> |
| | | <view class="content_list_item_top"> |
| | | <view class="content_list_item_top_left"> |
| | | <text v-if="info.mmodel">{{info.mmodel.name}}</text> |
| | | <view class="content_list_item_top_left_tag" v-if="info.urgent">ä¼å
{{info.urgent}}</view> |
| | | <view class="content_list_item_top_left_type" v-if="info.type === 0">æ£å¸¸</view> |
| | | <view class="content_list_item_top_left_type dangerous" v-else-if="info.type === 1">å¼å¸¸</view> |
| | | <view class="content_list_item_top_left_type warning" v-else-if="info.type === 2">è¿å·¥</view> |
| | | </view> |
| | | <view class="content_list_item_top_right"> |
| | | <text v-if="info.status === 0">å·²çæ</text> |
| | | <text v-if="info.status === 1">å·²åå¸</text> |
| | | <text v-if="info.status === 2">å·²æ¤å</text> |
| | | <text v-if="info.status === 3">已忶</text> |
| | | <text v-if="info.status === 4">å·²åé
</text> |
| | | <text v-if="info.status === 5">å·²æå</text> |
| | | <text v-if="info.status === 6">å·²å®å·¥</text> |
| | | <text v-if="info.status === 7">å·²å
¥åº</text> |
| | | <text v-if="info.status === 8">å·²å
³é</text> |
| | | <!-- <text class="warning" v-if="info.status === 0">å¾
åå¸</text>--> |
| | | <!-- <text class="green" v-else-if="info.status === 1 || info.status === 4">ç产ä¸</text>--> |
| | | <!-- <text class="info" v-else-if="info.status === 6 || info.status === 7 || info.status === 3 || info.status === 8">已宿</text>--> |
| | | </view> |
| | | </view> |
| | | <view class="content_list_item_content"> |
| | | <view class="content_list_item_content_item"> |
| | | <view class="content_list_item_content_item_label">å·¥åºåç§°ï¼</view> |
| | | <view class="content_list_item_content_item_nr" v-if="info.pmodel">{{info.pmodel.name}}</view> |
| | | </view> |
| | | <view class="content_list_item_content_item"> |
| | | <view class="content_list_item_content_item_label">è®¡åæ°éï¼</view> |
| | | <view class="content_list_item_content_item_nr" v-if="info.umodel">{{info.num}}{{info.umodel.name}}</view> |
| | | </view> |
| | | <view class="content_list_item_content_item"> |
| | | <view class="content_list_item_content_item_label">è®¡åæ¥æï¼</view> |
| | | <view class="content_list_item_content_item_nr">{{info.planDate}}</view> |
| | | </view> |
| | | <view class="content_list_item_content_item"> |
| | | <view class="content_list_item_content_item_label">çäº§æ¹æ¬¡ï¼</view> |
| | | <view class="content_list_item_content_item_nr">{{info.batch}}</view> |
| | | </view> |
| | | <view class="content_list_item_content_item"> |
| | | <view class="content_list_item_content_item_label">å叿¥æï¼</view> |
| | | <view class="content_list_item_content_item_nr">{{info.createTime}}</view> |
| | | </view> |
| | | <view class="content_list_item_content_item" v-if="info.usermodel"> |
| | | <view class="content_list_item_content_item_label">计å人åï¼</view> |
| | | <view class="content_list_item_content_item_nr">{{info.usermodel.realname}}</view> |
| | | </view> |
| | | <view class="content_list_item_content_item"> |
| | | <view class="content_list_item_content_item_label">åé
æ°éï¼</view> |
| | | <view class="content_list_item_content_item_nr" v-if="info.umodel">{{info.distributNum}}{{info.umodel.name}}</view> |
| | | </view> |
| | | <view class="content_list_item_content_item"> |
| | | <view class="content_list_item_content_item_label">å®å·¥æ°éï¼</view> |
| | | <view class="content_list_item_content_item_nr" v-if="info.umodel">{{info.doneNum}}{{info.umodel.name}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <NotFound info="ææªåé
å·¥å" v-if="info.workorderList && info.workorderList.length === 0" /> |
| | | <template v-else> |
| | | <!-- <view class="details_list"> |
| | | <view class="details_list_item" v-for="(item, i) in info.workorderList" :key="i" @click="jump(item)"> |
| | | <view class="details_list_item_top"> |
| | | <text>{{ item.createUserName }}</text> |
| | | <text>{{ item.code }}</text> |
| | | </view> |
| | | <view class="details_list_item_center"> |
| | | <text>è¯åæ°ï¼{{ item.qualifiedNum }}</text> |
| | | <text>ä¸è¯æ°ï¼<text class="red">{{ item.unqualifiedNum }}</text></text> |
| | | </view> |
| | | <view class="details_list_item_bottom"> |
| | | <text>{{ item.createTime }}</text> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | <view class="details_timeline" v-for="(item, i) in info.workorderList" :key="i"> |
| | | <view class="details_timeline_header"> |
| | | <view class="details_timeline_header_code"> |
| | | <text>å·¥åç¼å·ï¼{{item.code}}</text> |
| | | <text>ç产人åï¼{{proUserStr(item)}}</text> |
| | | </view> |
| | | <text v-if="item.status === 0" class="yellow">å·²å建</text> |
| | | <text v-if="item.status === 1" class="green">已夿</text> |
| | | <text v-if="item.status === 2">å·²å®å·¥</text> |
| | | <text v-if="item.status === 3" class="purple">å·²æ£éª</text> |
| | | <text v-if="item.status === 4">å·²æ¥å·¥</text> |
| | | <text v-if="item.status === 5">å·²å
¥åº</text> |
| | | <text v-if="item.status === 6">已忶</text> |
| | | <!-- <text v-if="item.status === 7">已忶</text>--> |
| | | <!-- <text v-if="item.status === 8">å·²å
³é</text>--> |
| | | </view> |
| | | <view class="details_timeline_item" v-if="item.produceDate"> |
| | | <view class="activedian"></view> |
| | | <view class="dian active"></view> |
| | | <view class="x"></view> |
| | | <view class="details_timeline_item_zw"></view> |
| | | <view class="details_timeline_item_left"> |
| | | <text class="active_font">产åº</text> |
| | | <text>{{item.produceDate}}</text> |
| | | </view> |
| | | <view class="details_timeline_item_right"> |
| | | <view class="item"> |
| | | <view class="item_label">ç©æï¼</view> |
| | | <view class="item_nr"> |
| | | <view class="item_nr_item" v-if="item.qualifiedNum !== 0"> |
| | | <text class="success">[åæ ¼å]</text> |
| | | <text>{{item.qualifiedNum}}{{info.umodel.name}}</text> |
| | | </view> |
| | | <view class="item_nr_item" v-if="item.unqualifiedNum !== 0"> |
| | | <text class="warning">[ä¸è¯å]</text> |
| | | <text>{{item.unqualifiedNum}}{{info.umodel.name}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="details_timeline_item" v-if="item.materialDate"> |
| | | <view class="activedian" v-if="!item.produceDate"></view> |
| | | <view class="dian" :class="{ 'active': !item.produceDate }"></view> |
| | | <view class="x"></view> |
| | | <view class="details_timeline_item_zw"></view> |
| | | <view class="details_timeline_item_left"> |
| | | <text :class="{'active_font': !item.produceDate}">ææ</text> |
| | | <text>{{item.materialDate}}</text> |
| | | </view> |
| | | <view class="details_timeline_item_right"> |
| | | <view class="item"> |
| | | <view class="item_label">ç©æï¼</view> |
| | | <view class="item_nr" v-if="item.materialList && item.materialList.length !== 0"> |
| | | <view class="item_nr_item" v-for="(items, idx) in item.materialList" :key="idx"> |
| | | <text style="margin: 0;">{{items.name}} / {{items.num}}{{items.unitName}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="details_timeline_item"> |
| | | <view class="activedian" v-if="!item.materialDate && !item.produceDate"></view> |
| | | <view class="dian" :class="{ 'active': !item.materialDate && !item.produceDate }"></view> |
| | | <view class="details_timeline_item_zw"></view> |
| | | <view class="details_timeline_item_left"> |
| | | <text :class="{'active_font': !item.materialDate && !item.produceDate}">åé
</text> |
| | | <text>{{ item.distributeDate }}</text> |
| | | </view> |
| | | <view class="details_timeline_item_right"> |
| | | <view class="item"> |
| | | <view class="item_label">åé
æ°éï¼</view> |
| | | <view class="item_nr">{{item.planNum}}{{info.umodel.name}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <!-- <view class="details_zw"></view> --> |
| | | <!-- <view class="details_btn" @click="toJump">廿¥å·¥</view> --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { queryByID } from '@/util/api/PlanningAPI' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | id: null, |
| | | info: {} |
| | | }; |
| | | }, |
| | | onLoad(option) { |
| | | this.id = option.id |
| | | this.queryByIDs() |
| | | }, |
| | | methods: { |
| | | // è·å详æ
|
| | | queryByIDs() { |
| | | queryByID(this.id) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.info = res.data |
| | | } |
| | | }) |
| | | }, |
| | | proUserStr(item) { |
| | | if (!item.proUserList || item.proUserList.length<1) { |
| | | return '-' |
| | | } |
| | | return item.proUserList.map(user => { return user.proUserDepartName }).join('ï¼') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .details { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | background: #F7F7F7; |
| | | .details_zw { |
| | | width: 100%; |
| | | height: 148rpx; |
| | | } |
| | | .details_btn { |
| | | position: fixed; |
| | | bottom: 60rpx; |
| | | left: 30rpx; |
| | | width: calc(100% - 60rpx); |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | | background: #305ED5; |
| | | box-shadow: 0rpx 0rpx 12rpx 0rpx rgba(0,0,0,0.08); |
| | | border-radius: 8rpx; |
| | | font-size: 30rpx; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | .van-skeleton { |
| | | padding: 0 !important; |
| | | } |
| | | .content_list { |
| | | width: 100%; |
| | | padding: 30rpx; |
| | | background: #ffffff; |
| | | display: flex; |
| | | flex-direction: column; |
| | | box-sizing: border-box; |
| | | .content_list_item { |
| | | display: flex; |
| | | flex-direction: column; |
| | | .content_list_item_top { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .content_list_item_top_left { |
| | | display: flex; |
| | | align-items: center; |
| | | max-width: 83%; |
| | | text { |
| | | max-width: 400rpx; |
| | | font-size: 32rpx; |
| | | font-weight: 500; |
| | | color: #333333; |
| | | overflow: hidden; |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | } |
| | | .dangerous { |
| | | background: $nav-stateColor4 !important; |
| | | } |
| | | .warning { |
| | | background: $nav-stateColor5 !important; |
| | | } |
| | | .content_list_item_top_left_type { |
| | | flex-shrink: 0; |
| | | padding: 5rpx 10rpx; |
| | | background: $nav-stateColor2; |
| | | border-radius: 8rpx; |
| | | font-size: 22rpx; |
| | | font-weight: 400; |
| | | color: #FFFFFF; |
| | | margin-left: 16rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .content_list_item_top_left_tag { |
| | | flex-shrink: 0; |
| | | padding: 5rpx 10rpx; |
| | | background: $nav-stateColor4; |
| | | border-radius: 8rpx; |
| | | font-size: 22rpx; |
| | | font-weight: 400; |
| | | color: #FFFFFF; |
| | | margin-left: 16rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | } |
| | | .content_list_item_top_right { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | flex-shrink: 0; |
| | | .warning { |
| | | color: $nav-stateColor5 !important; |
| | | } |
| | | .green { |
| | | color: $nav-stateColor6 !important; |
| | | } |
| | | .info { |
| | | color: $nav-stateColor3 !important; |
| | | } |
| | | } |
| | | } |
| | | .content_list_item_content { |
| | | padding: 24rpx 30rpx; |
| | | background: #F7F7F7; |
| | | border-radius: 16rpx; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | justify-content: space-between; |
| | | margin-top: 32rpx; |
| | | .content_list_item_content_item { |
| | | width: 50%; |
| | | display: flex; |
| | | margin-top: 24rpx; |
| | | &:nth-child(1) { |
| | | margin-top: 0 !important; |
| | | } |
| | | &:nth-child(2) { |
| | | margin-top: 0 !important; |
| | | } |
| | | .content_list_item_content_item_label { |
| | | font-size: 24rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | .content_list_item_content_item_nr { |
| | | font-size: 24rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | margin-right: 10rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .details_list { |
| | | width: 100%; |
| | | height: auto; |
| | | background-color: #FFFFFF; |
| | | margin-top: 20rpx; |
| | | .details_list_item { |
| | | width: 100%; |
| | | padding: 24rpx 30rpx; |
| | | box-sizing: border-box; |
| | | background-color: #FFFFFF; |
| | | border-bottom: 2rpx solid #F7F7F7; |
| | | &:last-child { |
| | | border: none !important; |
| | | } |
| | | .details_list_item_top { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | text { |
| | | &:first-child { |
| | | font-size: 30rpx; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-right: 16rpx; |
| | | } |
| | | &:last-child { |
| | | font-size: 24rpx; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | } |
| | | } |
| | | .details_list_item_center { |
| | | width: 100%; |
| | | margin: 16rpx 0 20rpx 0; |
| | | .red { |
| | | color: #DE5243; |
| | | } |
| | | text { |
| | | &:first-child { |
| | | font-size: 26rpx; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | margin-right: 100rpx; |
| | | } |
| | | &:last-child { |
| | | font-size: 26rpx; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | .details_list_item_bottom { |
| | | text { |
| | | font-size: 24rpx; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #999999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .details_timeline { |
| | | padding: 30rpx; |
| | | background: #ffffff; |
| | | margin-top: 20rpx; |
| | | .details_timeline_header { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | justify-content: space-between; |
| | | .yellow { |
| | | color: $nav-stateColor1 !important; |
| | | } |
| | | .green { |
| | | color: $nav-stateColor6 !important; |
| | | } |
| | | .purple { |
| | | color: $nav-color !important; |
| | | } |
| | | text { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | .details_timeline_header_code { |
| | | display: flex; |
| | | flex-direction: column; |
| | | text { |
| | | &:first-child { |
| | | font-size: 28rpx; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | &:last-child { |
| | | font-size: 22rpx; |
| | | font-weight: 400; |
| | | color: #777777; |
| | | margin-top: 24rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .details_timeline_item { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | position: relative; |
| | | margin-top: 60rpx; |
| | | &:nth-child(1) { |
| | | margin-top: 0 !important; |
| | | } |
| | | .x { |
| | | position: absolute; |
| | | top: 30rpx; |
| | | left: 29rpx; |
| | | width: 1rpx; |
| | | height: calc(100% + 60rpx); |
| | | border-right: 1rpx dashed #CCCCCC; |
| | | } |
| | | .dian { |
| | | position: absolute; |
| | | top: 22rpx; |
| | | left: 22rpx; |
| | | width: 16rpx; |
| | | height: 16rpx; |
| | | background: #CCCCCC; |
| | | border-radius: 50%; |
| | | } |
| | | .active { |
| | | width: 16rpx; |
| | | height: 16rpx; |
| | | background: $nav-color; |
| | | z-index: 8; |
| | | } |
| | | .activedian { |
| | | position: absolute; |
| | | top: 14rpx; |
| | | left: 14rpx; |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | background: #E4EBFE; |
| | | border-radius: 50%; |
| | | } |
| | | .details_timeline_item_zw { |
| | | width: 100rpx; |
| | | } |
| | | .details_timeline_item_left { |
| | | display: flex; |
| | | flex-direction: column; |
| | | width: 150rpx; |
| | | .active_font { |
| | | color: $nav-color !important; |
| | | } |
| | | text { |
| | | &:nth-child(1) { |
| | | font-size: 30rpx; |
| | | font-weight: 500; |
| | | color: #333333; |
| | | } |
| | | &:nth-child(2) { |
| | | font-size: 22rpx; |
| | | font-weight: 400; |
| | | color: #999999; |
| | | margin-top: 16rpx; |
| | | } |
| | | } |
| | | } |
| | | .details_timeline_item_right { |
| | | display: flex; |
| | | flex-direction: column; |
| | | flex: 1; |
| | | margin-left: 30rpx; |
| | | .item { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | margin-top: 24rpx; |
| | | &:nth-child(1) { |
| | | margin-top: 0 !important; |
| | | } |
| | | .item_label { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | .item_nr { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | .item_nr_item { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 24rpx; |
| | | .success { |
| | | color: $nav-stateColor2; |
| | | } |
| | | .warning { |
| | | color: $nav-stateColor5; |
| | | } |
| | | text { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | &:last-child { |
| | | color: #333333; |
| | | margin-left: 12rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |