src/api/operate/inventoryAdjustment.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/makepager/CommonFormTableView.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/makepager/TableCommonView.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/operate/inventoryAdjustment/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/warehouseManage/listingRules/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/operate/inventoryAdjustment.js
@@ -33,3 +33,19 @@ data }) } // 修改库存调整 export function updateInventoryAdjustment(data) { return request({ url: "/api-wms/v1/locationProductAmount/update", method: "post", data }) } // 应用库存调整 export function finishInventoryAdjustment(data) { return request({ url: "/api-wms/v1/locationProductAmount/finish", method: "post", data }) } src/components/makepager/CommonFormTableView.vue
@@ -1,9 +1,16 @@ <template> <div class="page-view"> <el-form ref="form" :model="tableList" :show-message="false" label-position="right"> <div class="page-view" :class="{ setHeight: isinventory || islistingrules }"> <el-form ref="form" :model="tableList" :show-message="false" label-position="right" :class="{ setHeight: isinventory || islistingrules }" > <el-table :data="tableList.tableData" style="width: 100%" :height="isinventory || islistingrules ? 'calc(100% - 0px)' : ''" :header-cell-style="{ background: '#f1f3f8', color: '#000009' }" :row-class-name="tableRowClassName" @row-click="tableRowClick" @@ -534,8 +541,12 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> .setHeight { height: 100%; } .page-view { min-width: 100px; .el-form-item { margin-bottom: 0; .custom-name { src/components/makepager/TableCommonView.vue
@@ -1,9 +1,6 @@ <!-- eslint-disable vue/no-use-v-if-with-v-for --> <template> <div :class="{ 'table-view': true, table_height: !showSummary }" v-loading="loading" > <div :class="{ 'table-view': true, table_height: !showSummary }" v-loading="loading"> <el-table ref="table" border @@ -25,15 +22,8 @@ :summary-method="getSummaries" :show-summary="showSummary" > <el-table-column v-if="tableList.selectBox" type="selection" width="40"> </el-table-column> <el-table-column v-if="tableList.selectIndex" type="index" label="序号" width="50" > </el-table-column> <el-table-column v-if="tableList.selectBox" type="selection" width="40"> </el-table-column> <el-table-column v-if="tableList.selectIndex" type="index" label="序号" width="50"> </el-table-column> <el-table-column v-for="(item, i) in tableList.tableColumn" :key="i" @@ -46,9 +36,7 @@ v-if="item.isShowColumn" > <template slot-scope="scope"> <span v-if="item.price">{{ "¥" + number_format(scope.row[item.prop], 2, ".", ",") }}</span> <span v-if="item.price">{{ "¥" + number_format(scope.row[item.prop], 2, ".", ",") }}</span> <!-- 状态显示 --> <div v-else-if="item.status"> <span @@ -57,29 +45,22 @@ greenSlot: scope.row.status == '4', redSlot: scope.row.status == '5', blueSlot: scope.row.status == '3', graySlot: scope.row.status == '1', graySlot: scope.row.status == '1' }" >{{ item.isCallMethod ? item.getCallMethod(scope.row[item.prop], scope.row) : scope.row[item.prop] item.isCallMethod ? item.getCallMethod(scope.row[item.prop], scope.row) : scope.row[item.prop] }}</span > </div> <!-- 调用方法显示文字 --> <div v-else-if="item.isCallMethod"> <span>{{ item.getCallMethod(scope.row[item.prop], scope.row) }}</span> <span>{{ item.getCallMethod(scope.row[item.prop], scope.row) }}</span> </div> <!-- 小于当前时间显示不同颜色 --> <span v-else-if="item.date" :style="{ color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266', color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266' }" >{{ timeAgo(scope.row[item.prop]) }}</span > @@ -93,18 +74,10 @@ >{{ scope.row[item.prop] }}</span > <span v-else-if="item.propType == 'mulitple'"> {{ scope.row[item.prop][item.propTwo] ? scope.row[item.prop][item.propTwo] : "--" }} {{ scope.row[item.prop][item.propTwo] ? scope.row[item.prop][item.propTwo] : "--" }} </span> <span :class="item.className ? item.className : ''" v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : scope.row[item.prop] === 0 ? scope.row[item.prop] : "--" scope.row[item.prop] ? scope.row[item.prop] : scope.row[item.prop] === 0 ? scope.row[item.prop] : "--" }}</span> </template> </el-table-column> @@ -116,22 +89,15 @@ <div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div> <div v-if="showCheckcol" class="styleBtn"> <i @click="checkcol()" class="label">...</i> <el-checkbox-group v-model="showcolList" v-show="iscolopen" class="checkbox-group" @change="selCeckBoxList" > <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item" >{{ item }} </el-checkbox> <el-checkbox-group v-model="showcolList" v-show="iscolopen" class="checkbox-group" @change="selCeckBoxList"> <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox> </el-checkbox-group> </div> </div> </template> <script> import { timeago } from "@/common/config/index"; import { timeago } from "@/common/config/index" export default { name: "TableCommonView", props: { @@ -149,147 +115,146 @@ highlight: false, tableColumn: [ // table表单 { label: "", prop: "", min: 200, tooltip: true }, ], }; { label: "", prop: "", min: 200, tooltip: true } ] } }, showcol: { typeof: Array, default: () => [], }, default: () => [] } }, // 合并单元格 rowData: { type: Array, default: () => { return []; }, return [] } }, // 加载的loading loading: { type: Boolean, default: false, default: false }, // 选中的样式 selectClassRow: { type: Object, default: () => { return {}; }, return {} } }, showCheckcol: { type: Boolean, default: true, default: true }, showSummary: { type: Boolean, default: false, }, default: false } }, data() { return { iscolopen: false, showcolList: this.tableList.showcol, }; showcolList: this.tableList.showcol } }, watch: {}, computed: {}, beforeUpdate() {}, methods: { onMaskClick() { this.iscolopen = false; this.iscolopen = false }, // 合并单元格 objectSpanMethod({ row, column, rowIndex, columnIndex }) { row; column; row column if (this.rowData && this.rowData.length > 0) { // 产品BOM 表格特殊处理 合并单元格 if (columnIndex < 5 || columnIndex == 9) { const _row = this.rowData[rowIndex]; const _col = _row > 0 ? 1 : 0; const _row = this.rowData[rowIndex] const _col = _row > 0 ? 1 : 0 return { rowspan: _row, colspan: _col, }; colspan: _col } } } }, tableRowClick(row) { this.$emit("tableRowClick", row); this.$emit("tableRowClick", row) }, handleReserve(row) { return row._id ? row._id : row.id; return row._id ? row._id : row.id }, handleSelectionChange(val) { this.$emit("getSelectArray", val); this.$emit("getSelectArray", val) }, // 公共详情 selCommonClick(row) { this.$emit("selCommonClick", row); this.$emit("selCommonClick", row) }, // 选择列 checkcol() { this.iscolopen = !this.iscolopen; this.iscolopen = !this.iscolopen }, closeCheckbox() { let label = document.querySelector(".label"); let label = document.querySelector(".label") if (label) { this.iscolopen = false; this.iscolopen = false } }, selCeckBoxList(val) { this.$emit("selTableCol", val); this.$emit("selTableCol", val) }, // 单选行相关 tableRowClassName({ row }) { if (Object.keys(this.selectClassRow).length > 0) { if (row.id == this.selectClassRow.id) { return "onSelect"; return "onSelect" } } this.$emit("tableRowClassName", row); this.$emit("tableRowClassName", row) }, timeAgo(val) { return timeago(val); return timeago(val) }, //求和 getSummaries(param) { if (this.tableList.countcol && this.tableList.countcol.length > 0) { const { columns, data } = param; const sums = []; const { columns, data } = param const sums = [] columns.forEach((column, index) => { if (index === 0) { sums[index] = " "; return; sums[index] = " " return } this.tableList.countcol.forEach((countcols) => { if (column.label === countcols) { const values = data.map((item) => Number(item[column.property])); const values = data.map((item) => Number(item[column.property])) if (!values.every((value) => isNaN(value))) { sums[index] = values.reduce((prev, curr) => { const value = Number(curr); const value = Number(curr) if (!isNaN(value)) { return prev + curr; return prev + curr } else { return prev; return prev } }, 0); sums[index] = this.tableList.tableColumn[index - 1].unit + "" + sums[index]; }, 0) sums[index] = this.tableList.tableColumn[index - 1].unit + "" + sums[index] } else { sums[index] = ""; sums[index] = "" } } else { return; return } }); }); return sums; }) }) return sums } }, }, }; } } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> @@ -297,7 +262,7 @@ .table_height { height: 100%; } .el-table__body-wrapper{ .el-table__body-wrapper { height: 100%; } .table-view { @@ -379,9 +344,6 @@ border-top-left-radius: 12px; border-top-right-radius: 12px; overflow: auto; } .el-table__body-wrapper { // height: ; } } </style> src/views/operate/inventoryAdjustment/index.vue
@@ -22,28 +22,29 @@ @inputContent="inputContent" @selLocationClick="selLocationClick" @selProductClick="selProductClick" @tableRowClick="tableRowClick" > <template slot="tableButton"> <el-table-column label="操作" width="180" fixed="right" align="center"> <template slot-scope="scope"> <span v-if="scope.row.isEdit" @click="handleHistoryClick(scope.row)" class="yes-cursor"> <span v-if="scope.row.isEdit" @click.stop="handleHistoryClick(scope.row)" class="yes-cursor"> <i class="el-icon-refresh-left"></i> <span>历史</span> </span> <!-- <span v-if="scope.row.isSet" @click="handleSetClick(scope)" class="margin_left_5px"> <i class="el-icon-setting"></i> <span>设置</span> </span> <template v-else> <span @click="handleUseClick(scope)" class="margin_left_5px"> </span> --> <template v-if="scope.row.status === 3"> <span @click.stop="handleUseClick(scope.row)" class="margin_left_5px"> <i class="el-icon-document"></i> <span>应用</span> </span> <span @click="handleCleanupClick(scope)" class="margin_left_5px"> <!-- <span @click="handleCleanupClick(scope)" class="margin_left_5px"> <i class="el-icon-delete"></i> <span>清除</span> </span> </template> --> </span> --> </template> </template> </el-table-column> </template> @@ -59,7 +60,12 @@ <script> import CommonFormTableView from "@/components/makepager/CommonFormTableView" import pageMixin from "@/components/makepager/pager/mixin/pageMixin" import { getInventoryAdjustmentList, addInventoryAdjustment } from "@/api/operate/inventoryAdjustment" import { getInventoryAdjustmentList, addInventoryAdjustment, updateInventoryAdjustment, finishInventoryAdjustment } from "@/api/operate/inventoryAdjustment" import { currentTime } from "@/common/config/index" export default { name: "InventoryAdjustment", @@ -80,7 +86,8 @@ locationId: 0, productId: 0, differenceAmount: 0, Amount: 0 Amount: 0, operationId: 0 } }, created() { @@ -134,12 +141,14 @@ // 新增 addProductClick() { console.log(this.tableData) console.log(this.addTitle) this.isSel() this.$refs.tablelistRef.getRuleList() if (this.isNoProduct && this.addTitle === "新建") { this.$refs.tablelistRef.getRuleList() this.addTitle = "保存" this.showDiscard = true this.isRowClick = false this.operationId = 0 this.currentRowId = 0 this.countId++ this.tableData.push({ @@ -160,34 +169,29 @@ this.productCategoryId = 0 this.productId = 0 } else { if (this.locationId === 0) { this.$message.error("请选择位置") } else if (this.productId === 0) { this.$message.error("请选择产品") } else { this.addTitle = "新建" this.showDiscard = false // let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateListingRules addInventoryAdjustment({ // id: this.currentRowId, locationId: this.locationId, Amount: this.Amount, differenceAmount: this.differenceAmount, productId: this.productId }) .then((res) => { console.log(res) if (res.code === 200) { // let tipStr = this.currentRowId === 0 ? "添加成功" : "修改成功" this.$message.success("添加成功") this.getData() } }) .catch((err) => { console.log(err) this.addTitle = "新建" this.showDiscard = false let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateInventoryAdjustment requestUrl({ Amount: this.Amount, differenceAmount: this.differenceAmount, locationId: this.locationId, operationId: this.operationId, productId: this.productId }) .then((res) => { console.log(res) if (res.code === 200) { let tipStr = this.currentRowId === 0 ? "添加成功" : "修改成功" this.$message.success(tipStr) this.getData() }) } } }) .catch((err) => { console.log(err) this.getData() }) // } } }, // 是否选择产品 @@ -237,8 +241,19 @@ } }, // 应用 handleUseClick(scope) { scope.row.isSet = !scope.row.isSet handleUseClick(row) { // scope.row.isSet = !scope.row.isSet finishInventoryAdjustment({ locationProductAmountId: row.locationProductAmount, operationId: row.operationId, productId: row.productId }).then((res) => { console.log(res) if (res.code === 200) { this.$message.success("应用成功") this.getData() } }) }, // 清除 handleCleanupClick(scope) { @@ -246,22 +261,31 @@ }, // 行点击 tableRowClick(row, rowIndex) { console.log(row, rowIndex) this.addTitle = "保存" this.showDiscard = true this.isRowClick = true console.log("11111") this.isSel() if (!this.isNoProduct) { this.tableData.splice(this.tableData.length - 1, 1) } this.tableData.map((item, index) => { if (index === rowIndex) { item.isEdit = false item.editable = true } else { item.isEdit = true if (!this.isNoProduct && this.currentRowId === 0) { this.$message.error("请完成当前新建或取消新建") } else { this.currentRowId = row.id this.addTitle = "保存" this.showDiscard = true this.isRowClick = true if (!this.isNoProduct) { this.tableData.splice(this.tableData.length - 1, 1) } }) this.tableData.map((item, index) => { if (index === rowIndex) { item.isEdit = false item.editable = true } else { item.isEdit = true } }) this.differenceAmount = row.differenceAmount this.Amount = row.Amount this.productId = row.productId this.operationId = row.operationId } }, // 搜索 getList(val) { @@ -288,4 +312,12 @@ </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped></style> <style lang="scss" scoped> ::v-deep { .el-table { border-top-left-radius: 12px; border-top-right-radius: 12px; overflow: auto; } } </style> src/views/warehouseManage/listingRules/index.vue
@@ -342,4 +342,12 @@ </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped></style> <style lang="scss" scoped> ::v-deep { .el-table { border-top-left-radius: 12px; border-top-right-radius: 12px; overflow: auto; } } </style>