| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- <template>
- <view class="task-form-container">
- <u-sticky offset-top="50">
- <u-subsection fontSize="25" mode="subsection" :list="tabList" :current="curNow" @change="sectionChange"
- activeColor="#157A2C" bgColor="#fff"></u-subsection>
- </u-sticky>
- <!-- 入库信息 -->
- <view v-show="curNow === 0">
- <u--form style="margin: 0 20px;" labelPosition="left" :model="infoData" ref="uForm" labelWidth="180rpx">
- <u-form-item label="入库单号" borderBottom>
- {{ infoData.bizNo || '-' }}
- </u-form-item>
- <u-form-item label="入库物品类型" borderBottom>
- {{ handleAssetType(extInfo.assetType) || '-' }}
- </u-form-item>
- <u-form-item label="入库场景" borderBottom>
- {{ getSceneState(infoData.bizType) || '-' }}
- </u-form-item>
- <u-form-item label="关联订单" borderBottom>
- {{ extInfo.documentSource || '-' }}
- </u-form-item>
- <u-form-item label="客户名称" borderBottom>
- {{ infoData.clientName || '-' }}
- </u-form-item>
- <u-form-item label="供应商" borderBottom>
- {{ extInfo.supplierName || '-' }}
- </u-form-item>
- <u-form-item label="供应商代号" borderBottom>
- {{ extInfo.supplierCode || '-' }}
- </u-form-item>
- <u-form-item label="入库时间" borderBottom>
- {{ infoData.storageTime || infoData.createTime || '-' }}
- </u-form-item>
- <u-form-item label="入库登记人" borderBottom>
- {{ extInfo.createUserName || '-' }}
- </u-form-item>
- <u-form-item label="权属部门" borderBottom>
- {{ extInfo.deptName || '-' }}
- </u-form-item>
- <u-form-item label="审核人" borderBottom>
- {{ infoData.verifyName || '-' }}
- </u-form-item>
- <u-form-item label="状态" borderBottom>
- {{ stepsTitle }}
- </u-form-item>
- <u-form-item label="备注" borderBottom>
- {{ infoData.remark || '-' }}
- </u-form-item>
- </u--form>
- </view>
- <!-- 产品信息 -->
- <view v-show="curNow === 1">
- <common-product-list :list="productList" :tableField="productFields"></common-product-list>
- </view>
- <!-- 包装明细 -->
- <view v-show="curNow === 2">
- <common-product-list :list="showPackingList" :tableField="packingFields"></common-product-list>
- </view>
- </view>
- </template>
- <script>
- import { getInboundDetailsById, getInboundDetailsByIds } from '@/api/warehouseManagement'
- import { getInfoBySourceBizNoAll } from '@/api/wms'
- import { allCategoryLevel } from '@/api/wt';
- import { useDictLabel } from '@/utils/dict/index';
- import { sceneState, qualityResults, qualityStatus } from '@/enum/dict.js';
- import { mapGetters, mapActions } from 'vuex';
- import { parameterGetByCode } from '@/api/mainData/index.js';
- import commonProductList from '../common/commonProductList.vue';
- export default {
- components: { commonProductList },
- props: {
- bizType: {
- type: String,
- default: ''
- },
- businessId: {
- type: String,
- default: ''
- },
- isUpload: {
- type: Boolean,
- default: false
- },
- isInterior: {
- type: Boolean,
- default: true
- },
- isIds: {
- type: Boolean,
- default: false
- }
- },
- data() {
- return {
- tabList: ['入库信息', '产品信息', '包装明细'],
- curNow: 0,
- qualityStatus,
- qualityResults,
- productList: [],
- showPackingList: [],
- packingList: [],
- extInfo: {},
- codeList: [],
- infoData: {},
- stepsTitle: '已完成',
- stepsStatus: 'success',
- active: 0,
- isPrice: 1,
- // 产品信息字段配置
- productFields: [
- { label: '仓库', field: 'warehouseName' },
- // { label: '编码', field: 'categoryCode' },
- // { label: '名称', field: 'categoryName' },
- { label: '型号', field: 'categoryModel' },
- { label: '规格', field: 'specification' },
- { label: '牌号', field: 'brandNum' },
- { label: '批次号', field: 'batchNo' },
- { label: '包装数量', field: 'packingQuantity' },
- { label: '单位', field: 'packingUnit' },
- { label: '计量数量', field: 'measureQuantity' },
- { label: '计量单位', field: 'measureUnit' },
- { label: '重量', field: 'weight' },
- { label: '重量单位', field: 'weightUnit' },
- { label: '机型', field: 'modelKey' },
- { label: '颜色', field: 'colorKey' },
- { label: '允许拆包', field: 'isUnpack' },
- { label: '供应商', field: 'supplierName' },
- ],
- // 包装明细字段配置
- packingFields: [
- { label: '批次号', field: 'batchNo' },
- { label: '包装编码', field: 'packageNo' },
- // { label: '名称', field: 'categoryName' },
- // { label: '编码', field: 'categoryCode' },
- { label: '型号', field: 'categoryModel' },
- { label: '规格', field: 'specification' },
- { label: '牌号', field: 'brandNum' },
- { label: '发货条码', field: 'barcodes' },
- { label: '包装数量', field: 'packingQuantity' },
- { label: '包装单位', field: 'packingUnit' },
- { label: '计量数量', field: 'measureQuantity' },
- { label: '计量单位', field: 'measureUnit' },
- { label: '物料代号', field: 'materielDesignation' },
- { label: '客户代号', field: 'clientCode' },
- { label: '刻码', field: 'engrave' },
- { label: '重量', field: 'weight' },
- { label: '重量单位', field: 'weightUnit' },
- { label: '机型', field: 'modelKey' },
- { label: '颜色', field: 'colorKey' },
- { label: '供应商', field: 'supplierName' },
- { label: '供应商代号', field: 'supplierCode' },
- { label: '质检结果', field: 'result' },
- { label: '质检状态', field: 'status' },
- { label: '仓库', field: 'warehouseName' },
- { label: '生产日期', field: 'productionDate' },
- { label: '采购日期', field: 'purchaseDate' },
- { label: '失效日期', field: 'expireDate' },
- ],
- };
- },
- watch: {
- 'infoData.verifyStatus': {
- immediate: true,
- handler(val) {
- if (val == 0) {
- this.active = 1;
- this.stepsTitle = '未审核';
- this.stepsStatus = 'wait';
- } else if (val == 1) {
- this.active = 2;
- this.stepsTitle = '审核中';
- this.stepsStatus = 'process';
- } else if (val == 2) {
- this.active = 2;
- this.stepsTitle = '审核通过';
- this.stepsStatus = 'success';
- } else if (val == 3) {
- this.active = 2;
- this.stepsTitle = '驳回';
- this.stepsStatus = 'error';
- }
- }
- },
- businessId(val) {
- if (val) {
- this._getInfo(val);
- }
- }
- },
- computed: {
- ...mapGetters(['getDictValue']),
- clientEnvironmentId() {
- return this.$store.state.user.info.clientEnvironmentId;
- },
- },
- created() {
- parameterGetByCode({
- code: 'wms_price'
- }).then((res) => {
- this.isPrice = res.value;
- });
- this.requestDict('类型用途');
- this.getAllCategoryType();
- this._getInfo(this.businessId);
- },
- methods: {
- ...mapActions('dict', ['requestDict']),
- getSceneState: useDictLabel(sceneState),
- sectionChange(index) {
- this.curNow = index;
- },
- handleAssetType(r) {
- if (!r) return '-';
- var arr = r.split(',');
- var filteredData = this.codeList.filter(function(item) {
- return arr.indexOf(item.dictCode) !== -1;
- });
- return filteredData.map(function(item) { return item.dictValue; }).join(',');
- },
- async getAllCategoryType() {
- var data = await allCategoryLevel();
- this.codeList = data.map(function(item) {
- return { dictCode: item.id, dictValue: item.name };
- });
- },
- async _getInfo(id) {
- if (!id) return;
- var res = null;
- var resAll = null;
- if (this.isInterior) {
- res = await getInboundDetailsById(id);
- } else if (this.isIds) {
- resAll = await getInboundDetailsByIds(id);
- } else {
- res = await getInfoBySourceBizNoAll(id);
- res = res[0] || {};
- }
- if (this.isIds) {
- res = JSON.parse(JSON.stringify(resAll[0]));
- this.extInfo = resAll[0].extInfo;
- res['outInDetailList'] = [];
- resAll.forEach(function(item) {
- item.outInDetailList.forEach(function(val) {
- val['bizNo'] = item.bizNo;
- res['outInDetailList'].push(val);
- });
- });
- res['bizNo'] = resAll.map(function(item) { return item.bizNo; });
- this.infoData = res;
- } else {
- this.infoData = res;
- this.extInfo = res.extInfo || {};
- }
- this.productList = (res && res.outInDetailList && res.outInDetailList.map(function(productItem) {
- return {
- productCode: productItem.categoryCode,
- productName: productItem.categoryName,
- categoryCode: productItem.categoryCode,
- categoryName: productItem.categoryName,
- categoryModel: productItem.categoryModel,
- specification: productItem.specification,
- brandNum: productItem.brandNum,
- batchNo: productItem.batchNo,
- packingQuantity: productItem.packingQuantity,
- packingUnit: productItem.packingUnit,
- measureQuantity: productItem.measureQuantity,
- measureUnit: productItem.measureUnit,
- weight: productItem.weight,
- weightUnit: productItem.weightUnit,
- modelKey: productItem.modelKey,
- colorKey: productItem.colorKey,
- warehouseName: productItem.warehouseName,
- supplierName: productItem.supplierName,
- supplierCode: productItem.supplierCode,
- productionRequirements: productItem.productionRequirements,
- isUnpack: productItem.isUnpack == 1 ? '是' : '否',
- supplierName: productItem.supplierName,
- outInDetailRecordRequestList: (productItem.outInDetailRecordRequestList && productItem.outInDetailRecordRequestList.map(function(packingItem) {
- return {
- productCode: packingItem.packageNo || packingItem.categoryCode,
- productName: packingItem.categoryName || '包装',
- categoryName: productItem.categoryName,
- categoryCode: productItem.categoryCode,
- categoryModel: productItem.categoryModel,
- specification: productItem.specification,
- brandNum: productItem.brandNum,
- batchNo: packingItem.batchNo,
- packageNo: packingItem.packageNo,
- barcodes: packingItem.barcodes,
- packingQuantity: packingItem.packingQuantity,
- packingUnit: packingItem.packingUnit,
- measureQuantity: packingItem.measureQuantity,
- measureUnit: packingItem.measureUnit,
- materielDesignation: packingItem.materielDesignation,
- clientCode: packingItem.clientCode,
- engrave: packingItem.engrave,
- weight: packingItem.weight,
- weightUnit: packingItem.weightUnit,
- modelKey: packingItem.modelKey,
- colorKey: packingItem.colorKey,
- supplierName: productItem.supplierName,
- supplierCode: productItem.supplierCode,
- result: qualityResults[packingItem.result] != null ? qualityResults[packingItem.result] : packingItem.result,
- status: qualityStatus[packingItem.status] != null ? qualityStatus[packingItem.status] : packingItem.status,
- warehouseName: packingItem.warehouseName,
- areaName: packingItem.areaName,
- goodsShelfName: packingItem.goodsShelfName,
- goodsAllocationName: packingItem.goodsAllocationName,
- productionDate: packingItem.productionDate,
- purchaseDate: packingItem.purchaseDate,
- expireDate: packingItem.expireDate,
- };
- }))
- };
- })) || [];
- // 获取包装维度数据
- var arr = [];
- var that = this;
- this.productList.forEach(function(item) {
- (item.outInDetailRecordRequestList || []).forEach(function(k) {
- arr.push(k);
- });
- });
- this.packingList = arr;
- this.showPackingList = arr;
- },
- getTableValue() {
- return {};
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- .task-form-container {
- min-height: 100vh;
- background-color: #fff;
- }
- </style>
|