From 33032d320cb75854def7391026b0401f1bfb8360 Mon Sep 17 00:00:00 2001 From: 黎星凯 <13949086503@163.com> Date: 星期六, 11 五月 2024 17:26:02 +0800 Subject: [PATCH] 20240511修改: 分发单优化, 分类,物品,分发单明细,采购单明细数据导入 --- admin-web/src/views/departmentitem/itemdis/distribution/index.vue | 210 +++++++++++++++++++++++++++------------------------ 1 files changed, 111 insertions(+), 99 deletions(-) diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/index.vue b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue index d94c697..1e0fb27 100644 --- a/admin-web/src/views/departmentitem/itemdis/distribution/index.vue +++ b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue @@ -10,10 +10,10 @@ <el-col> <!--鍒楄〃--> <div class="table-tool-bar" style="margin-bottom: 15px"> - <my-button name="鐗╁搧鍒嗗彂" @click="handleAdd" site="tools" size="medium" icon="el-icon-edit-outline" /> - <my-button name="瀵煎叆" @click="importSetting.dialogShow = true" site="tools" size="medium" /> + <my-button name="鏂板" @click="handleAdd" site="tools" size="medium"/> + <my-button name="瀵煎叆" @click="openImport()" site="tools" size="medium" /> </div> - <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> + <div :style="{ 'overflow-y': 'auto', height: `calc(100vh - 320px)` }" v-loading="loading"> <el-row v-if="list.length" class="card" :gutter="5"> <el-col v-for="(item, index) in list" :key="index" class="cm-item"> <el-card class="card-data"> @@ -22,23 +22,36 @@ <div class="card-header-left"> <span>鍒嗗彂鍗曞彿锛�</span> <span class="value">{{ item.businessFormCode }}</span> + +<!-- <span style="padding-left: 30px">鍒嗗彂鐘舵�侊細</span>--> +<!-- <span style="color: red" v-if="item.states === 0" class="value">鏈垎鍙�</span>--> +<!-- <span v-if="item.states === 2" class="value">宸插垎鍙�</span>--> </div> <div class="card-header-right"> - <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)" - >鏌ョ湅璇︽儏</el-button - > + <!-- 瀵煎嚭鍗曞瓙 --> +<!-- <el-button v-if="item.states === 0" name="涓嬭浇" site="form" type="primary" size="mini" @click="handleDetail(item)">--> +<!-- 涓嬭浇--> +<!-- </el-button>--> + +<!-- <el-button v-if="item.states === 0" name="涓婁紶" site="form" type="primary" size="mini" @click="handleUploadPage(item)">--> +<!-- 涓婁紶--> +<!-- </el-button>--> + + <el-button name="鏌ョ湅璇︽儏" site="form" type="primary" size="mini" @click="handleDetail(item)"> + 鏌ョ湅璇︽儏 + </el-button> </div> </div> <div class="one-hed"> - <div class="box"><span class="span-two">閮ㄩ棬锛�</span>{{ item.agencyId }}</div> - <div class="box"><span class="span-two">鍒嗗彂浜猴細</span>{{ item.buyerName }}</div> + <div class="box"><span class="span-two">閮ㄩ棬锛�</span>{{ item.inWarehouseName }}</div> + <div class="box"><span class="span-two">鍒嗗彂浜猴細</span>{{ item.outOperatorName }}</div> <div class="box"> - <span class="span-two">鍒嗗彂鏃堕棿锛�</span>{{ item.procureTime | formatTime }} + <span class="span-two">鍒嗗彂鏃堕棿锛�</span>{{ item.createTime | formatTime }} </div> </div> <div class="card-end"> - <div v-for="(just, index) in item.fromProcureTemplateInfoList" :key="index" class="item"> - <div class="name">{{ just.goodsTemplateName }}</div> + <div v-for="(just, index) in item.fromTransferTemplateInfoList" :key="index" class="item"> + <div class="name">{{ just.goodsName }}</div> <div class="value-box"> <div class="value-box-item"> <span class="label">鏁伴噺锛�</span> @@ -52,63 +65,97 @@ </el-card> </el-col> </el-row> - <div class="no-data" v-else>鏆傛棤鏁版嵁</div> + <el-empty v-else description="鏆傛棤鏁版嵁"></el-empty> </div> <el-pagination - :small="false" - :current-page="pageNum" - :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" - :page-size="pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" + :small="false" + :current-page="pageNum" + :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" /> </el-col> </el-row> </el-card> </el-container> + + <!-- 涓婁紶鍒嗗彂鍗曟枃浠�--> + <uploadPage + v-if="uploadPageSetting.show" + :setting="uploadPageSetting" + ref="uploadRef" + @close="uploadPageSetting.show = false" + @search="refreshData" + ></uploadPage> + <!--娣诲姞/缂栬緫寮圭獥--> <edit - v-if="editSetting.show" - :setting="editSetting" - ref="editRef" - @close="editSetting.show = false" - @search="refreshData" + v-if="editSetting.show" + :setting="editSetting" + ref="editRef" + @close="editSetting.show = false" + @search="refreshData" ></edit> <detail - v-if="detailSetting.show" - :setting="detailSetting" - @close="detailSetting.show = false" - ref="detailRef" + v-if="detailSetting.show" + :setting="detailSetting" + @close="detailSetting.show = false" + ref="detailRef" ></detail> + <my-import :import-setting="importSetting" :dialog-show="importSetting.dialogShow" :dialog-title="importSetting.dialogTitle" /> + </div> </template> <script> -import { procureList, procureDel, procureIncome } from '@/api/stock/procure/purchaseOrder'; +import {transferList} from '@/api/stock/transfer'; import MyButton from '@/components/myButton/myButton'; import SettingIplatform from '@/utils/settingIplatform'; import myImport from '@/views/components/myImport'; import edit from './edit'; import detail from './detail'; -import { getBaseUrl } from '@/utils/base'; -import listPage from '../../../mixins/listPage' +import uploadPage from './uploadPage'; +import listPage from '@/views/mixins/listPage'; +import {getUserDetail} from "@/utils/auth"; +import {getBaseUrl} from '@/utils/base'; export default { name: 'index', mixins: [listPage], - components: { MyButton, myImport, edit, detail }, + components: {MyButton, myImport, edit, detail,uploadPage}, data() { return { loading: false, adddialog: false, list: [], + + // 瀵煎叆 + importSetting: { + dialogTitle: '瀵煎叆', + dialogShow: false, + fileSettings: { + data: {}, + uploadUrl: getBaseUrl() + '/pc/l/wh/form/transfer/import2', // 涓婁紶鍦板潃 + accept: '.xls', // 鏍煎紡 + type: 'text', // 鍥炴樉褰㈠紡 + loading: true, // 瀵煎叆鏁堟灉 + }, + /* 妯℃澘涓嬭浇 */ + templateSettings: { + templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О + templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate?type=distribute', // 涓嬭浇鍦板潃 + }, + onSuccess: null, + }, + // 鎼滅储妗� items: [ { @@ -120,76 +167,75 @@ }, { type: 'select', - dataIndex: 'agencyId', + dataIndex: 'departmentId', label: '鍒嗗彂閮ㄩ棬', placeholder: '璇烽�夋嫨', + optionsConfig: { + url: `/pc/fin/sys/tenant/department/list/all?tenantId=${getUserDetail().tenantId}`, + label: 'name', + value: 'id', + }, defaultValue: '', options: [], }, { - type: 'text', - dataIndex: 'goodsTemplateName', + type: 'select', + dataIndex: 'goodsTemplateId', label: '鐗╁搧鍚嶇О', - placeholder: '鍙ā绯婃悳绱�', + placeholder: '璇疯緭鍏�', defaultValue: '', + options: [], + optionsConfig: { + label: 'goodsName', + value: 'id', + url: SettingIplatform.apiBaseURL + `/pc/base/goods/template/query/goodsTemplate?tenantId=${getUserDetail().tenantId}`, + }, }, { type: 'text', - dataIndex: 'createName', - label: '鍒嗗彂浜�', + dataIndex: 'operatorName', + label: '棰嗗彇浜�', placeholder: '璇疯緭鍏�', defaultValue: '', }, { type: 'date-picker', - dataIndex: 'incomeTimeStart', - label: '鍒嗗彂鏃堕棿', + dataIndex: 'startTime', + label: '棰嗗彇鏃堕棿', defaultValue: '', }, { type: 'date-picker', - dataIndex: 'incomeTimeEnd', + dataIndex: 'endTime', label: '鑷�', defaultValue: '', }, ], // 鏍戞暟鎹� - treeDataList: [], - // 瀵煎叆 - importSetting: { - dialogTitle: '瀵煎叆', - dialogShow: false, - fileSettings: { - data: {}, - uploadUrl: getBaseUrl() + '/pc/fin/sys/tenant/import', // 涓婁紶鍦板潃 - accept: '.xls', // 鏍煎紡 - type: 'text', // 鍥炴樉褰㈠紡 - loading: false, // 瀵煎叆鏁堟灉 - }, - /* 妯℃澘涓嬭浇 */ - templateSettings: { - templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О - templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate', // 涓嬭浇鍦板潃 - }, - onSuccess: null, - }, + treeDataList: [] }; + }, + created() { + this.fetchData() }, methods: { fetchData() { this.loading = true; - procureList({ + transferList({ + qryType: 1, pageNum: this.pageNum, pageSize: this.pageSize, + outAgencyId: this.userInfo.tenantId, ...this.filterFrom, }).then((res) => { this.list = res.datas; this.total = res.totalRows; this.loading = false; - console.log(this.list); }); }, - + openImport(){ + this.importOrg(); + }, //瀵煎叆 importOrg() { this.importSetting.dialogShow = true; @@ -203,44 +249,10 @@ callBack(); }; }, - // 鍒嗗彂 - handleIncome(row) { - this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 鍒嗗彂鍚�?`, '鍒嗗彂鍒嗗彂').then(() => { - procureIncome({ id: row.id }) - .then((res) => { - this.$message.success('鍒嗗彂鎴愬姛锛�'); - this.search(); - }) - .catch(() => {}); - }); - }, - del(row) { - this.$modal.confirm('鏄惁纭鍒犻櫎鍒嗗彂鍗曞彿涓�"' + row.businessFormCode + '"鐨勬暟鎹悧锛�').then( () => { - procureDel({ id: row.id }) - .then((res) => { - this.$message.success('鍒犻櫎鎴愬姛锛�'); - this.search(); - }) - .catch(() => {}); - }); - }, - fifterForm(params) { - this.filterFrom = Object.assign(this.filterFrom, params); - if (this.filterFrom.incomeTimeStart) { - this.filterFrom.incomeTimeStart = this.filterFrom.incomeTimeStart.replace(/\-/g, ''); - } - if (this.filterFrom.incomeTimeEnd) { - this.filterFrom.incomeTimeEnd = this.filterFrom.incomeTimeEnd.replace(/\-/g, ''); - } - if (this.filterFrom.agencyId && this.filterFrom.agencyId.length) { - this.filterFrom.agencyId = this.filterFrom.agencyId[this.filterFrom.agencyId.length - 1]; - } - this.search(1); - }, }, }; </script> <style scoped lang="scss"> -@import url(../../../../styles/store.scss); +//@import url(../../../../styles/index.scss); </style> -- Gitblit v1.9.1