| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- <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>
|