| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- <template>
- <view class="detail-content">
- <view class="list-wrap-1">
- <view class="item">
- <view class="s1"> 类型标识 </view>
- <view class="s2">
- {{ baseInfo.assetCode }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 物品类型 </view>
- <view class="s2">
- {{ getDictValue('物品类型', baseInfo.assetType) }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 物品编码 </view>
- <view class="s2">
- {{ baseInfo.assetCode }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 物品名称 </view>
- <view class="s2">
- {{ baseInfo.assetName }}
- </view>
- </view>
- <view class="item" v-for="(item, index) in uniqueData" :key="index">
- <view class="s1"> {{ item.label }} </view>
- <view class="s2">
- {{ baseInfo[item.prop] }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 分类 </view>
- <view class="s2">
- {{ baseInfo.classificationUrl }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 计量单位 </view>
- <view class="s2">
- {{ baseInfo.unit }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 安全库存 </view>
- <view class="s2">
- {{ baseInfo.safeStock }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 实时库存 </view>
- <view class="s2">
- {{ baseInfo.realInventoryNum }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 锁单数量 </view>
- <view class="s2"> </view>
- </view>
- <view class="item">
- <view class="s1"> 空闲数量 </view>
- <view class="s2"> </view>
- </view>
- <view class="item">
- <view class="s1"> 允许拆包 </view>
- <view class="s2">
- {{ baseInfo.isUnpack ? '是' : '否' }}
- </view>
- </view>
- <view class="item">
- <view class="s1"> 描述 </view>
- <view class="s2">
- {{ baseInfo.description }}
- </view>
- </view>
- </view>
- <uni-collapse accordion>
- <!-- 模具、物料 -->
- <uni-collapse-item
- :show-animation="true"
- :open="false"
- :typeOpen="1"
- title="匹配产品"
- v-if="[6, 3].includes(baseInfo.assetType)"
- >
- <view class="match-view">
- <view
- class="match-item"
- v-for="(item, index) in productData"
- :key="index"
- >
- <view>{{ item.informationCode }}</view>
- <view>{{ item.informationName }}</view>
- </view>
- </view>
- <u-empty v-if="!productData.length" class="emptyPadding"> </u-empty>
- </uni-collapse-item>
- <!-- 生产设备、产品 -->
- <uni-collapse-item
- :show-animation="true"
- :open="false"
- :typeOpen="1"
- title="匹配模具"
- v-if="[1, 4].includes(baseInfo.assetType)"
- >
- <view class="match-view">
- <view
- class="match-item"
- v-for="(item, index) in mouldData"
- :key="index"
- >
- <view class="label">{{ item.informationCode }}</view>
- <view>{{ item.informationName }}</view>
- </view>
- </view>
- <u-empty v-if="!mouldData.length" class="emptyPadding"> </u-empty>
- </uni-collapse-item>
- <!-- 生产设备 -->
- <uni-collapse-item
- :show-animation="true"
- :open="false"
- :typeOpen="1"
- title="匹配备品备件"
- v-if="[1].includes(baseInfo.assetType)"
- >
- <view class="match-view">
- <view
- class="match-item"
- v-for="(item, index) in partData"
- :key="index"
- >
- <view class="label">{{ item.informationCode }}</view>
- <view>{{ item.informationName }}</view>
- </view>
- </view>
- <u-empty v-if="!partData.length" class="emptyPadding"> </u-empty>
- </uni-collapse-item>
- <!-- 模具、备品备件 -->
- <uni-collapse-item
- :show-animation="true"
- :open="false"
- :typeOpen="1"
- title="匹配设备"
- v-if="[1].includes(baseInfo.assetType)"
- >
- <view class="match-view">
- <view
- class="match-item"
- v-for="(item, index) in facilityData"
- :key="index"
- >
- <view class="label">{{ item.informationCode }}</view>
- <view>{{ item.informationName }}</view>
- </view>
- </view>
- <u-empty v-if="!facilityData.length" class="emptyPadding"> </u-empty>
- </uni-collapse-item>
- </uni-collapse>
- </view>
- </template>
- <script>
- import { mapGetters, mapActions } from 'vuex'
- import { get } from '@/utils/api.js'
- // import { getDetails as getMatchData } from '@/api/stockManagement/itemInformation'
- export default {
- data () {
- return {
- productData: [],
- mouldData: [],
- partData: [],
- bomData: [],
- facilityData: []
- }
- },
- props: {
- baseInfo: {
- type: Object,
- default: () => ({})
- }
- },
- computed: {
- ...mapGetters(['getDictValue']),
- uniqueData () {
- switch (+this.baseInfo.assetType) {
- case 3: //物料
- return [{ label: '牌号', prop: 'brandNum' }]
- case 8: //耗材
- return [
- { label: '型号', prop: 'modelType' },
- { label: '规格', prop: 'specification' }
- ]
- case 4: //产品
- return [
- { label: '牌号', prop: 'brandNum' },
- { label: '型号', prop: 'modelType' },
- {
- label: '标准单重',
- prop: 'modelType',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return `${extendField.unqualifiedRate || '-'}KG`
- }
- },
- {
- label: '不良品率',
- prop: 'modelType',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return `${extendField.unqualifiedRate || '-'}%`
- }
- }
- ]
- case 5: //'周转车'
- return [
- { label: '规格', prop: 'specification' },
- {
- label: '材质',
- prop: 'texture',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.texture
- }
- },
- {
- label: '长宽高',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return `${extendField.length || '-'}/${
- extendField.width || '-'
- }/${extendField.high || '-'}`
- }
- }
- ]
- case 2: //'舟皿'
- return [
- { label: '规格', prop: 'specification' },
- { label: '型号', prop: 'modelType' },
- {
- label: '角度',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.angle
- }
- },
- {
- label: '长宽高',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return `${extendField.length || '-'}*${
- extendField.width || '-'
- }*${extendField.high || '-'}`
- }
- }
- ]
- case 1: //'设备'
- return [
- { label: '型号', prop: 'modelType' },
- { label: '规格', prop: 'specification' }
- ]
- case 6: //'模具'
- return [
- { label: '牌号', prop: 'brandNum' },
- { label: '型号', prop: 'modelType' },
- {
- label: '收缩系数',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.shrinkageCoefficient
- }
- },
- {
- label: '芯杆数量',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.mandrelNum
- }
- },
- {
- label: '模孔数量',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.dieHoleNum
- }
- },
- {
- label: '上冲头数量',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.upperPunchNum
- }
- },
- {
- label: '下冲头数量',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.lowerPunchNum
- }
- }
- ]
- case 7: //'备品备件'
- return [
- { label: '规格', prop: 'specification' },
- { label: '型号', prop: 'modelType' }
- ]
- }
- return []
- }
- },
- created () {
- this.requestDict('物品类型')
- this._getMatchData()
- },
- methods: {
- ...mapActions('dict', ['requestDict']),
- async _getMatchData () {
- const res = await get(
- this.apiUrl + `/information/info/${this.baseInfo.materialId}`
- )
- if (res?.success) {
- for (const key in res.data.informationRelationMap) {
- this.matchList(key, res.data.informationRelationMap)
- }
- }
- },
- matchList (key, data) {
- switch (key) {
- case 'w01': {
- this.facilityData = data[key]
- break
- }
- case 'w04': {
- this.mouldData = data[key]
- break
- }
- case 'w05': {
- this.partData = data[key]
- break
- }
- case 'w07': {
- this.productData = data[key]
- break
- }
- default:
- break
- }
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .list-wrap-1 {
- padding: 30rpx;
- .item {
- color: #000000;
- font-size: 28rpx;
- padding: 10rpx 0;
- display: flex;
- justify-content: space-between;
- }
- .item + .item {
- border-top: 1px dashed #555;
- }
- }
- .emptyPadding {
- padding: 20rpx 0;
- }
- .match-view {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- padding: 20rpx;
- .match-item {
- width: 49%;
- display: flex;
- justify-content: space-between;
- border: 1px solid #ccc;
- padding: 0rpx 10rpx;
- box-sizing: border-box;
- & + .match-item {
- margin-left: 2%;
- }
- > view {
- padding: 15rpx 0;
- }
- .label {
- border-right: 1rpx solid #ccc;
- padding-right: 5rpx;
- }
- }
- }
- </style>
|