From 20913c80c3f5fc8e533cb92b90e6f20bcd68e032 Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期三, 29 十一月 2023 17:49:32 +0800 Subject: [PATCH] feat: 1、优化导入 2、部门物品台账查询对接 --- admin-web/src/views/stock/scrap/itemScrapping/detail.vue | 177 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 115 insertions(+), 62 deletions(-) diff --git a/admin-web/src/views/stock/scrap/itemScrapping/detail.vue b/admin-web/src/views/stock/scrap/itemScrapping/detail.vue index c1b2bc7..7806613 100644 --- a/admin-web/src/views/stock/scrap/itemScrapping/detail.vue +++ b/admin-web/src/views/stock/scrap/itemScrapping/detail.vue @@ -1,116 +1,169 @@ <template> - <el-dialog - title="璇︽儏" - width="60%" - :modal="true" - :visible.sync="visible" - :top="'15vh'" - :close-on-click-modal="false" - :append-to-body="true" - :destroy-on-close="true" - @close="close" - class="stock-detail" - > + <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'"> <el-row :gutter="20"> <el-col :span="8"> - <span>鍏ュ簱鍗曞彿锛�</span> + <span>鎶ュ簾鍗曞彿锛�</span> <span>{{ detail.businessFormCode }}</span> </el-col> <el-col :span="8"> - <span>鍏ュ簱浠撳簱锛�</span> - <span>{{ detail.goodsTemplateName }}</span> + <span>浠撳簱锛�</span> + <span>{{ detail.warehouseName }}</span> </el-col> <el-col :span="8"> <span>鎵�灞炴満鏋勶細</span> - <span>{{ detail.agencyId }}</span> + <span>{{ detail.agencyName }}</span> </el-col> </el-row> <el-row :gutter="20" style="margin-top: 20px"> <el-col :span="8"> - <span>鐘舵�侊細</span> - <span>{{ detail.states == 1 ? '寰呭叆搴�' : '宸插叆搴�' }}</span> - </el-col> - <el-col :span="8"> <span>鍒涘缓浜猴細</span> - <span>{{ detail.buyerName }}</span> + <span>{{ detail.operatorName }}</span> </el-col> <el-col :span="8"> - <span>鍏ュ簱鏃堕棿锛�</span> - <span>{{ detail.time }}</span> + <span>鎶ュ簾鏃堕棿锛�</span> + <span>{{ detail.dealTime | formatTime }}</span> </el-col> </el-row> <el-row :gutter="20" style="margin-top: 20px"> <el-col class="img-row" :span="24"> - <span>閲囪喘鎵嬬画鐓х墖锛�</span> - <div class="img-box"></div> + <span>鎶ュ簾鎵嬬画锛�</span> + <div class="img-box" v-for="(item, index) in fileList" :key="index" @click="handlePreview(item)"> + <img class="img" :src="getUrl(item.path)" alt="" /> + </div> </el-col> </el-row> - <div class="goods-card" v-for="(goodsItem, goodsIndex) in detail.procureGoods" :key="goodsIndex"> + <div class="goods-card" v-for="(goodsItem, goodsIndex) in detail.scrappedGoods" :key="goodsIndex"> <el-row :gutter="20"> <el-col :span="8"> <span>鐗╁搧鍒嗙被锛�</span> - <span>{{ goodsItem.baseCategoryId }}</span> + <span>{{ goodsItem.categoryName }}</span> </el-col> <el-col :span="8"> <span>鐗╁搧鍚嶇О锛�</span> - <span>{{ goodsItem.baseGoodsTemplateId }}</span> - </el-col> - <el-col :span="8"> - <span>渚涜揣鍟嗭細</span> - <span>{{ goodsItem.supplier }}</span> + <span>{{ goodsItem.goodsName }}</span> </el-col> </el-row> <el-table :data="goodsItem.models" :stripe="true" style="margin-top: 20px"> - <el-table-column prop="baseGoodsModelsId" label="瑙勬牸鍨嬪彿" align="center"> - <template slot-scope="scope"> - {{ scope.row.baseGoodsModelsId }} - </template> - </el-table-column> - <el-table-column label="鍗曚綅" align="center"> - <template slot-scope="scope"> - {{ scope.row.unit }} - </template> - </el-table-column> - <el-table-column prop="price" label="鐜版湁搴撳瓨" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.price"></el-input> - </template> - </el-table-column> - <el-table-column prop="counts" label="鍑哄簱鏁伴噺" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.counts"></el-input> - </template> - </el-table-column> + <el-table-column prop="baseGoodsModelsName" label="瑙勬牸鍨嬪彿" align="center"></el-table-column> + <el-table-column label="鍗曚綅" prop="unit" align="center"></el-table-column> + <el-table-column prop="counts" label="鎶ュ簾鏁伴噺" align="center"></el-table-column> + <el-table-column prop="scrappedName" label="鎶ュ簾鍘熷洜" align="center"></el-table-column> </el-table> </div> - </el-dialog> + <div id="uploadPreviewImages" style="display: none"> + <span v-for="(src, index) in fileList" :key="index"> + <img + v-if="checkImg(src.name)" + class="v-img" + :src="src.url" + :alt="src.name" + style="width: 100px; height: 100px" + /> + </span> + </div> + </win-md> </template> <script> -import { procureDetail } from '@/api/stock/procure/purchaseOrder'; +import {scrappedDetail} from '@/api/stock/scrap'; +import winMd from '@/components/win/win-md'; +import * as DateFormatter from '@/utils/DateFormatter'; +import {getDownUrl} from '@/utils/base'; +import Viewer from 'viewerjs'; +import 'viewerjs/dist/viewer.css'; +import {getDicts} from '@/api/system/dict/data'; + +let viewer = null; + export default { + components: { winMd }, + + props: { + setting: { + type: Object, + default: () => {}, + }, + }, data() { return { - visible: false, + scrapReasonOptions: [], + fileList: [], detail: { + baseCategoryName: '', businessFormCode: '', goodsTemplateName: '', + uploadFiles: '', agencyId: '', + agencyName: '', states: '', createName: '', time: '', - procureGoods: [{}, {}], + scrappedGoods: [], }, }; }, - methods: { - open(id) { - this.visible = true; - procureDetail({ id }).then((res) => { - this.detail = res; + filters: { + formatTime(time) { + if (!time) return; + return DateFormatter.LongToDateTime(time); + }, + }, + created() { + scrappedDetail({ id: this.setting.id }).then((res) => { + this.detail = res; + this.fileList = this.detail.uploadFiles ? JSON.parse(this.detail.uploadFiles) : []; + this.$nextTick(() => { + this.initPreviewImg(); }); + }); + getDicts('SCRAP_REASON').then((res) => { + this.scrapReasonOptions = res; + }); + }, + methods: { + getDictName(code) { + let item = this.scrapReasonOptions.find(v=>v.dict_value==code) + return item ? item.dict_label : '' + }, + initPreviewImg() { + if (viewer != null) { + viewer.destroy(); + } + const ViewerDom = document.querySelector('#uploadPreviewImages'); + viewer = new Viewer(ViewerDom, {}); + }, + handlePreview(file) { + if (!this.checkImg(file.name)) { + return false; + } + let index = 0; + for (let i = 0; i < this.fileList.length; i++) { + const f = this.fileList[i]; + if (this.checkImg(f.name)) { + if (file.id == f.id) { + break; + } + index++; + } + } + viewer.view(index); + }, + checkImg(name) { + const suffix = name.substring(name.lastIndexOf('.'), name.length); + const imgArray = ['.jpg', '.jpeg', '.png', '.bmp']; + if (imgArray.indexOf(suffix) < 0) { + return false; + } + return true; + }, + getUrl(path) { + if (path.substr(0, 7).toLowerCase() == 'http://' || path.substr(0, 8).toLowerCase() == 'https://') { + return path; + } else { + return getDownUrl() + path; + } }, close() { - this.visible = false; + this.$emit('close'); }, }, }; -- Gitblit v1.9.1