From d492850f1cc64ddcfaf43798af9c76c2505414fd Mon Sep 17 00:00:00 2001 From: renkang <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 24 一月 2025 18:24:31 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1 --- admin/src/views/stock/components/InEdit.vue | 119 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 81 insertions(+), 38 deletions(-) diff --git a/admin/src/views/stock/components/InEdit.vue b/admin/src/views/stock/components/InEdit.vue index 3bc1a30..71441e5 100644 --- a/admin/src/views/stock/components/InEdit.vue +++ b/admin/src/views/stock/components/InEdit.vue @@ -1,27 +1,27 @@ <template> - <GlobalWindow title="鏂板缓鍑哄簱鍗�" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close" + <GlobalWindow title="鏂板缓鍏ュ簱鍗�" :visible.sync="isShowModal" :confirm-working="isLoading" width="1000px" @close="close" @confirm="confirm"> <el-form :model="param" ref="form" :rules="rules"> <div class="df_ac"> - <el-form-item class="w3" label="鍑哄簱浠撳簱" prop="parentId"> - <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�"> - <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> + <el-form-item class="w3" label="鍏ュ簱浠撳簱" prop="warehouseId"> + <el-select :disabled="param.id" v-model="param.warehouseId" placeholder="璇烽�夋嫨"> + <el-option v-for="op in storeList" :key="op.id" :label="op.name" :value="op.id"></el-option> </el-select> </el-form-item> - <el-form-item class="w3" label="鍑哄簱鏃ユ湡"> - <el-date-picker type="date" v-model="param.getDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨鍑哄簱鏃ユ湡"></el-date-picker> + <el-form-item class="w3" label="鍏ュ簱鏃ユ湡" prop="doneDate"> + <el-date-picker type="date" v-model="param.doneDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨鍏ュ簱鏃ユ湡"></el-date-picker> </el-form-item> - <el-form-item class="w3" label="鍑哄簱绫诲瀷" prop="parentId"> - <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�"> - <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> + <el-form-item class="w3" label="鍏ュ簱绫诲瀷" prop="type"> + <el-select :disabled="param.id" v-model="param.type" placeholder="璇烽�夋嫨鍏ュ簱绫诲瀷"> + <el-option v-for="op in StoreTypeOps" :key="op.id" :label="op.name" :value="op.id"></el-option> </el-select> </el-form-item> <el-form-item class="w3" label="澶勭悊浜�" prop="name"> - <el-input v-model="param.name" v-trim /> + <el-input v-model="param.createUserName" :disabled="true" v-trim /> </el-form-item> - <el-form-item class="w6" label="澶囨敞" prop="name"> - <el-input v-model="param.name" placeholder="璇疯緭鍏�" v-trim /> + <el-form-item class="w6" label="澶囨敞" prop="remark"> + <el-input v-model="param.remark" placeholder="璇疯緭鍏�" v-trim /> </el-form-item> </div> </el-form> @@ -32,18 +32,19 @@ <el-button type="primary" @click="handleOpenMaterial">閫夋嫨鐗╂枡</el-button> <el-table :data="list" stripe> <el-table-column align="center" label="搴忓彿" type="index" width="50" /> - <el-table-column prop="creatorName" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column> - <el-table-column prop="categoryName" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="90px"></el-table-column> - <el-table-column prop="createDate" label="鏉″舰鐮�" show-overflow-tooltip min-width="70px"></el-table-column> - <el-table-column prop="dealUserName" label="鍝佺墝" show-overflow-tooltip min-width="70px"></el-table-column> - <el-table-column prop="dealUserName" label="鍗曚綅" show-overflow-tooltip min-width="70px"></el-table-column> - <el-table-column prop="dealUserName" label="鍑哄簱鏁伴噺" min-width="90px"> - <template v-slot="{row}"> - <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.aa" class="w100"></el-input> + <el-table-column prop="name" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="code" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="90px"></el-table-column> + <el-table-column prop="qrcode" label="鏉″舰鐮�" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="brand" label="鍝佺墝" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="unitName" label="鍗曚綅" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="dealUserName" label="鍏ュ簱鏁伴噺" min-width="100px"> + <template v-slot="{ row }"> + <el-input oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" v-model="row.stock" + class="w100"></el-input> </template> </el-table-column> - <el-table-column prop="dealUserName" label="搴撳瓨鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column> - <el-table-column prop="dealUserName" label="鎿嶄綔" min-width="60px"> + <!-- <el-table-column prop="maxStock" label="搴撳瓨鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column> --> + <el-table-column label="鎿嶄綔" min-width="60px"> <template v-slot="scope"> <span @click="handleDel(scope)" class="red pointer">鍒犻櫎</span> </template> @@ -57,52 +58,94 @@ <script> import GlobalWindow from '@/components/common/GlobalWindow' import AssetSel from './AssetSel' -import { create, fetchCateList, getInfoById } from '@/api/business/category.js' +import { fetchList as getStoreList } from '@/api/ywWarehouse' +import { ywOutinboundCreate } from '@/api/store/index' +import { StoreTypeOps, rules } from './config' +import { Message } from 'element-ui' +import dayjs from 'dayjs' export default { name: 'OperaCategoryWindow', components: { GlobalWindow, AssetSel }, data() { return { // 琛ㄥ崟鏁版嵁 - param: {}, + param: { + createUserName: this.$store.state.userInfo.realname || this.$store.state.userInfo.username, + creator: this.$store.state.userInfo.id, + inOut: 0 + }, activeName: 'first', isShowModal: false, isShowSel: false, isLoading: false, // 楠岃瘉瑙勫垯 - rules: { - name: [{ required: true, message: '璇疯緭鍏ヤ簩绾у垎绫诲悕绉�', trigger: 'blur' }], - }, - list: [{}], + rules, + storeList: [], + list: [], + StoreTypeOps: StoreTypeOps.filter(i => i.type == 0), dataList: [], } }, created() { + this.initData() + console.log(this.$store.state.userInfo) }, methods: { confirm() { - - }, - getList() { - fetchCateList({ type: 5 }).then(res => { - this.dataList = res || [] - + this.$refs['form'].validate((valid) => { + if (valid) { + const { param, list } = this + if(list.length == 0) return Message.warning('璇峰厛閫夋嫨鐗╂枡淇℃伅') + let count = 0 // 鍏ュ簱鏁伴噺蹇呭~ + list.forEach(item => { + if(!item.stock) count ++ + }) + if(count > 0) return Message.warning('璇疯緭鍏ユ纭殑鍏ュ簱鏁伴噺') + this.isLoading = true + ywOutinboundCreate({ + ...param, + recordList: list + }).then(res => { + this.isLoading = false + Message.success('鎻愪氦鎴愬姛') + this.$emit('success') + this.close() + }, () => { + this.isLoading = false + }) + } }) }, - changeSel() { - + initData() { + this.$set(this.param, 'doneDate', dayjs().format('YYYY-MM-DD')) + getStoreList({ capacity: 9999, page: 1, model: {status: 0} }).then(res => { + this.storeList = res.records || [] + }) + }, + changeSel(val) { + const list = val + list.forEach(item => { + const index = this.list.findIndex(i => i.id == item.id) + if(index == -1){ + item.materialId = item.id + item.multifile = null + item.createDate = null + this.list.push(item) + } + }) }, handleDel(val) { const index = val.$index this.list.splice(index, 1) - + }, handleOpenMaterial() { this.isShowSel = true this.$nextTick(() => { this.$refs.AssetSelRef.isShowModal = true + this.$refs.AssetSelRef.getList() }) }, close() { -- Gitblit v1.9.3