From 94de1745b4b69eeeb1ac8c5d3508ce87258afc25 Mon Sep 17 00:00:00 2001 From: haoyahui <2032914783@qq.com> Date: 星期四, 16 十一月 2023 09:22:06 +0800 Subject: [PATCH] 库存管理 --- admin-web/src/views/stock/transfer/transferissue/index.vue | 270 ++++++++++++++++++++---------------------------------- 1 files changed, 100 insertions(+), 170 deletions(-) diff --git a/admin-web/src/views/stock/transfer/transferissue/index.vue b/admin-web/src/views/stock/transfer/transferissue/index.vue index 0c0d7c4..26aa693 100644 --- a/admin-web/src/views/stock/transfer/transferissue/index.vue +++ b/admin-web/src/views/stock/transfer/transferissue/index.vue @@ -10,7 +10,7 @@ <el-col> <!--鍒楄〃--> <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> - <el-row class="card" :gutter="5"> + <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"> <div class="card-container"> @@ -18,36 +18,59 @@ <div class="card-header-left"> <span>璋冩嫧鍗曞彿锛�</span> <span class="value">{{ item.businessFormCode }}</span> + <div v-if="item.states == 0" class="states states-warning">寰呭嚭搴�</div> + <div v-if="item.states == 1" class="states states-warning">寰呮帴鏀�</div> + <div v-if="item.states == 2" class="states states-success">宸叉帴鏀�</div> + <div v-if="item.states == 4" class="states states-info">宸叉挙閿�</div> </div> <div class="card-header-right"> - <el-button site="form" type="success" size="mini" @click="handleExport(item)" - >瀵煎嚭璋冩嫧鍗�</el-button - > + <el-button + v-if="item.states == 1" + site="form" + type="success" + size="mini" + >瀵煎嚭璋冩嫧鍑哄簱鍗�</el-button + > + <el-button + v-if="item.states == 0" + site="form" + type="success" + size="mini" + @click="handleOutput(item)" + >鍑哄簱</el-button + > + <el-button + v-if="item.states == 2" + site="form" + type="primary" + size="mini" + >瀵煎嚭璋冩嫧鍏ュ簱鍗�</el-button + > <el-button name="鏌ョ湅璇︽儏" site="form" type="info" 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.inAgencyName }}</div> + <div class="box"><span class="span-two">鐢宠浜猴細</span>{{ item.operatorName }}</div> <div class="box"> - <span class="span-two">鐢宠璋冩嫧鏃堕棿锛�</span>{{ item.procureTime | formatTime }} + <span class="span-two">鐢宠璋冩嫧鏃堕棿锛�</span>{{ item.createTime | formatTime }} </div> <div class="box"> <span class="span-two">鎺ユ敹鏃堕棿锛�</span>{{ item.procureTime | formatTime }} </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.outAgencyName }}</div> + <div class="box"><span class="span-two">璋冩嫧浜猴細</span>{{ item.outOperatorName }}</div> <div class="box"> <span class="span-two">璋冩嫧鏃堕棿锛�</span>{{ item.procureTime | 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> @@ -61,6 +84,7 @@ </el-card> </el-col> </el-row> + <div class="no-data" v-else>鏆傛棤鏁版嵁</div> </div> <el-pagination :small="false" @@ -76,30 +100,28 @@ </el-row> </el-card> </el-container> - <!--娣诲姞/缂栬緫寮圭獥--> - <edit v-if="editSetting.show" :setting="editSetting" ref="editRef" @close="editSetting.show=false" @search="refreshData"></edit> - <detail ref="detailRef"></detail> - <my-import - :import-setting="importSetting" - :dialog-show="importSetting.dialogShow" - :dialog-title="importSetting.dialogTitle" - /> + <detail + v-if="detailSetting.show" + :setting="detailSetting" + @close="detailSetting.show = false" + ref="detailRef" + ></detail> </div> </template> <script> -import { procureList, procureDel, procureIncome } from '@/api/stock/procure/purchaseOrder'; +import { transferList,transferOutput } 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 * as DateFormatter from '@/utils/DateFormatter'; +import listPage from '../../../mixins/listPage'; +import transfer from '../../../mixins/transfer'; +import { commonsApi } from '@/api/commonsApi'; export default { name: 'index', - components: { MyButton, myImport, edit, detail }, + mixins: [listPage, transfer], + components: { MyButton, myImport, detail }, data() { return { loading: false, @@ -122,19 +144,22 @@ defaultValue: '', }, { - type: 'select', - dataIndex: 'name', - label: '鏈烘瀯', + type: 'cascader', + dataIndex: 'outAgencyId', + label: '璋冩嫧鏈烘瀯', placeholder: '璇烽�夋嫨', + optionsConfig: { url: commonsApi.cascader_tree_fin_tenant, props: null }, defaultValue: '', options: [], }, { - type: 'text', - dataIndex: 'buyerName', - label: '鍒涘缓浜�', - placeholder: '璇疯緭鍏�', + type: 'cascader', + dataIndex: 'inAgencyId', + label: '鎺ユ敹鏈烘瀯', + placeholder: '璇烽�夋嫨', + optionsConfig: { url: commonsApi.cascader_tree_fin_tenant, props: null }, defaultValue: '', + options: [], }, { type: 'select', @@ -142,90 +167,48 @@ label: '鐘舵��', placeholder: '璇烽�夋嫨', defaultValue: '', - options: [ - { - label: '鍏ㄩ儴', - value: '', - }, - { - label: '寰呰皟鎷�', - value: '1', - }, - { - label: '宸茶皟鎷�', - value: '2', - }, - ], + options: [], }, { type: 'date-picker', - dataIndex: 'val1', - label: '璋冩嫧鏃堕棿', + dataIndex: 'createTimeStart', + label: '鐢宠鏃堕棿', defaultValue: '', }, { type: 'date-picker', - dataIndex: 'val2', + dataIndex: 'createTimeEnd', + label: '鑷�', + defaultValue: '', + }, + { + type: 'date-picker', + dataIndex: 'startTime', + label: '鎺ユ敹鏃堕棿', + defaultValue: '', + }, + { + type: 'date-picker', + dataIndex: 'endTime', label: '鑷�', defaultValue: '', }, ], - // 鏍戞暟鎹� - treeDataList: [], - // 鎼滅储鏉′欢 - filterFrom: { - tenantId: null, - userName: null, - userPhone: null, - states: null, - }, - // 瀵煎叆 - 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, - }, - editSetting: { - title: '', - id: '', - orgId: '', - show: false, - }, - pageNum: 1, - pageSize: 10, - total: 0, }; - }, - computed: { - clientHeight() { - return document.documentElement.clientHeight; - }, - }, - filters: { - formatTime(time) { - if (!time) return; - return DateFormatter.LongToDateTime(time); - }, }, created() { this.fetchData(); + this.items.map((v) => { + if (v.label == '鐘舵��') { + v.options = this.statesOptions; + } + return v; + }); }, methods: { fetchData() { this.loading = true; - procureList({ + transferList({ pageNum: this.pageNum, pageSize: this.pageSize, ...this.filterFrom, @@ -236,82 +219,29 @@ console.log(this.list); }); }, - //瀵煎叆 - importOrg() { - this.importSetting.dialogShow = true; - this.importSetting.onSuccess = (response, callBack) => { - if (response.code === 1) { - this.$message.success(response.msg); - this.search(1); - } else { - this.$message.warning(response.msg); - } - callBack(); - }; - }, - // 瀵煎嚭 - handleExport() {}, - // 鏂板 - handleAdd() { - this.editSetting.id = null; - this.editSetting.info = null; - this.editSetting.title = '鏂板'; - this.editSetting.show = true; - }, - // 缂栬緫 - handleEdit(row) { - this.editSetting.id = row.id; - this.editSetting.info = null; - this.editSetting.title = '缂栬緫'; - this.editSetting.show = true; - }, - // 璇︽儏 - handleDetail(row) { - this.$refs.detailRef.open(row.id); - }, - // 璋冩嫧 - handleIncome(row) { - this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 璋冩嫧鍚�?`, '璋冩嫧璋冩嫧') - .then(function () { - procureIncome({ id: row.id }).then((res) => { - this.$message.success('璋冩嫧鎴愬姛锛�'); - this.search(); - }); - }) - .catch(() => {}); - }, - del(row) { - this.$modal - .confirm('鏄惁纭鍒犻櫎璋冩嫧鍗曞彿涓�"' + row.businessFormCode + '"鐨勬暟鎹悧锛�') - .then(function () { - procureDel({ id: row.id }).then((res) => {}); - }) - .then((res) => { - this.$message.success('鍒犻櫎鎴愬姛锛�'); - this.search(); - }) - .catch(() => {}); - }, - // 鍒嗛〉 - handleSizeChange(pageSize) { - this.pageSize = pageSize; - this.search({ pageNum: 1 }); - }, - handleCurrentChange(pageNum) { - this.myTable.paging.page.pageNum = pageNum; - this.search({ pageNum: pageNum }); - }, - // 鏌ヨtable鍒楄〃 - search(pageNum) { - this.fetchData(); - }, - refreshData() { - this.pageNum = 1; - this.pageSize = 10; - this.search(); + handleOutput(row) { + this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode} 璋冩嫧鍑哄簱鍚�?`, '璋冩嫧鍑哄簱').then(() => { + transferOutput({ id: row.id }) + .then((res) => { + this.$message.success('璋冩嫧鍑哄簱鎴愬姛锛�'); + this.search(1); + }) + }); }, fifterForm(params) { this.filterFrom = Object.assign(this.filterFrom, params); + if (this.filterFrom.createTimeStart) { + this.filterFrom.createTimeStart = this.filterFrom.createTimeStart.replace(/\-/g, ''); + } + if (this.filterFrom.createTimeEnd) { + this.filterFrom.createTimeEnd = this.filterFrom.createTimeEnd.replace(/\-/g, ''); + } + if (this.filterFrom.startTime) { + this.filterFrom.startTime = this.filterFrom.startTime.replace(/\-/g, ''); + } + if (this.filterFrom.endTime) { + this.filterFrom.endTime = this.filterFrom.endTime.replace(/\-/g, ''); + } this.search(1); }, }, -- Gitblit v1.9.1