| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- <template>
- <div class="detail-box">
- <el-descriptions title="" :column="5" size="medium" border>
- <el-descriptions-item label="类型标识">
- {{ baseInfo.classificationCode }}
- </el-descriptions-item>
- <el-descriptions-item label="物品类型">
- {{ getDictValue('物品类型', baseInfo.assetType) }}
- </el-descriptions-item>
- <el-descriptions-item label="物品编码">
- {{ baseInfo.assetCode }}
- </el-descriptions-item>
- <el-descriptions-item label="物品名称">
- {{ baseInfo.assetName }}
- </el-descriptions-item>
- <el-descriptions-item label="允许拆包">
- {{ baseInfo.isUnpack ? '是' : '否' }}
- </el-descriptions-item>
- <el-descriptions-item
- :label="item.label"
- v-for="(item, index) in uniqueData"
- :key="index"
- >
- <template v-if="item.formatter">{{
- item.formatter(baseInfo)
- }}</template>
- <template v-else>{{ baseInfo[item.prop] }}</template>
- </el-descriptions-item>
- <el-descriptions-item label="分类">
- {{ baseInfo.classificationUrl }}
- </el-descriptions-item>
- <el-descriptions-item label="计量单位">
- {{ baseInfo.unit }}
- </el-descriptions-item>
- <el-descriptions-item label="安全库存">
- {{ baseInfo.safeStock }}
- </el-descriptions-item>
- <el-descriptions-item label="实时库存">
- {{ baseInfo.realInventoryNum }}
- </el-descriptions-item>
- <el-descriptions-item label="锁单数量">
- <!-- {{ baseInfo.assetType }} -->
- </el-descriptions-item>
- <el-descriptions-item label="空闲数量">
- <!-- {{ baseInfo.assetType }} -->
- </el-descriptions-item>
- <!-- <el-descriptions-item label="允许转资产">
- {{ baseInfo.assetType }}
- </el-descriptions-item> -->
- <el-descriptions-item label="包装单位">
- {{ baseInfo.minPackUnit }}
- </el-descriptions-item>
- <!-- <el-descriptions-item label="包装数量">
- {{ baseInfo.outInNum }}{{ baseInfo.minPackUnit }}
- </el-descriptions-item> -->
- <el-descriptions-item label="保质期">
- <template
- v-if="baseInfo.expirationDate || baseInfo.expirationDate === 0"
- >
- {{ baseInfo.expirationDate
- }}{{ dateDict[baseInfo.expirationDateUnit] }}
- </template>
- </el-descriptions-item>
- <el-descriptions-item label="库存累计重量" v-if="baseInfo.assetType == 4">
- </el-descriptions-item>
- <el-descriptions-item
- :label="item.key"
- v-for="(item, index) in selfDefinedParameter"
- :key="index"
- >
- {{ item.value }}
- </el-descriptions-item>
- <el-descriptions-item label="描述" :span="5">
- {{ baseInfo.description }}
- </el-descriptions-item>
- </el-descriptions>
- <!-- 模具、物料 -->
- <template v-if="[6, 3].includes(baseInfo.assetType)">
- <div class="basic-details-title border-none">
- <span class="border-span">匹配产品</span>
- </div>
- <el-descriptions title="" :column="5" size="medium" border>
- <el-descriptions-item
- v-for="(item, index) in productData"
- :key="index"
- :label="item.informationCode"
- >
- {{ item.informationName }}
- </el-descriptions-item>
- </el-descriptions>
- </template>
- <!-- 生产设备、产品 -->
- <template v-if="[1, 4].includes(baseInfo.assetType)">
- <div class="basic-details-title border-none">
- <span class="border-span">匹配模具</span>
- </div>
- <el-descriptions title="" :column="5" size="medium" border>
- <el-descriptions-item
- v-for="(item, index) in mouldData"
- :key="index"
- :label="item.informationCode"
- >
- {{ item.informationName }}
- </el-descriptions-item>
- </el-descriptions>
- </template>
- <!-- 生产设备 -->
- <!-- <template v-if="[1].includes(baseInfo.assetType)"> -->
- <template>
- <!-- <div class="basic-details-title border-none">
- <span class="border-span">匹配备品备件</span>
- </div> -->
- <HeaderTitle title="匹配备品备件" size="16px"></HeaderTitle>
- <el-descriptions title="" :column="5" size="medium" border>
- <el-descriptions-item
- v-for="(item, index) in partData"
- :key="index"
- :label="item.informationCode"
- >
- {{ item.informationName }}
- </el-descriptions-item>
- </el-descriptions>
- </template>
- <!-- 模具、备品备件 -->
- <!-- <template v-if="[6, 7].includes(baseInfo.assetType)"> -->
- <template>
- <!-- <div class="basic-details-title border-none">
- <span class="border-span">匹配设备</span>
- </div> -->
- <HeaderTitle title="匹配设备" size="16px"></HeaderTitle>
- <el-descriptions title="" :column="5" size="medium" border>
- <el-descriptions-item
- v-for="(item, index) in facilityData"
- :key="index"
- :label="item.informationCode"
- >
- {{ item.informationName }}
- </el-descriptions-item>
- </el-descriptions>
- </template>
- </div>
- </template>
- <script>
- import { mapGetters, mapActions } from 'vuex'
- // import { getDetails as getMatchData } from '@/api/stockManagement/itemInformation'
- export default {
- data () {
- return {
- productData: [],
- mouldData: [],
- partData: [],
- bomData: [],
- facilityData: [],
- dateDict: {
- minute: '分钟',
- hour: '小时',
- day: '天',
- month: '月',
- year: '年'
- }
- }
- },
- props: {
- baseInfo: {
- type: Object,
- default: () => ({})
- }
- },
- computed: {
- ...mapGetters(['getDictValue']),
- selfDefinedParameter () {
- []
- // return JSON.parse(this.baseInfo.selfDefinedParameter) || []
- },
- 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 { notA: '非A', A: 'A' }[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.dieBodyModel
- }
- },
- {
- label: '最大冲压次数',
- prop: '',
- formatter (row) {
- if (!row?.extendField) return ''
- const extendField = JSON.parse(row.extendField)
- return extendField.maximumStampingTimes
- }
- },
- {
- 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 getMatchData({ id: 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>
- .detail-box{
- margin: 0 auto;
- .el-descriptions{
- margin: 20px 0;
- }
- }
- </style>
|