New file |
| | |
| | | import request from "@/common/untils/request.js" |
| | | // import axios from "axios" |
| | | |
| | | // 报废列表 |
| | | export function getDisuseList(data) { |
| | | return request({ |
| | | url: "/api-wms/v1/product/listDisuse", |
| | | method: "post", |
| | | data |
| | | }) |
| | | } |
| | | // 添加报废 |
| | | export function addDisuse(data) { |
| | | return request({ |
| | | url: "/api-wms/v1/product/addDisuse", |
| | | method: "post", |
| | | data |
| | | }) |
| | | } |
| | | // // 删除报废 |
| | | // export function deleteProduct(id) { |
| | | // return request({ |
| | | // url: `/api-wms/v1/product/deleteProduct/${id}`, |
| | | // method: "delete", |
| | | // id |
| | | // }) |
| | | // } |
| | | // // 修改报废 |
| | | // export function updateProduct(data) { |
| | | // return request({ |
| | | // url: "/api-wms/v1/product/updateProduct", |
| | | // method: "post", |
| | | // data |
| | | // }) |
| | | // } |
| | | // 验证报废 |
| | | export function finishDisuse(id) { |
| | | return request({ |
| | | url: `/api-wms/v1/product/finishDisuse/${id}`, |
| | | method: "put", |
| | | id |
| | | }) |
| | | } |
| | |
| | | <div class="common-status"> |
| | | <div v-if="showButton" style="margin-left: 30px"> |
| | | <el-button v-if="isValidateClick" plain size="mini" @click="validateClick">验证</el-button> |
| | | <el-button plain size="mini" @click="delClick" :disabled="isDelClick">删除</el-button> |
| | | <el-button plain size="mini" disabled>打印</el-button> |
| | | <el-button v-if="showOther" plain size="mini" @click="delClick" :disabled="isDelClick">删除</el-button> |
| | | <el-button v-if="showOther" plain size="mini" disabled>打印</el-button> |
| | | </div> |
| | | <div class="arrowsBox"> |
| | | <div |
| | |
| | | isValidateClick: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | showOther: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | </div> |
| | | </div> |
| | | <!-- 新建/编辑 --> |
| | | <AddOverviewDialog v-if="editConfig.visible" :work-type="'内部调拨'" :edit-common-config="editConfig" /> |
| | | <AddOverviewDialog v-if="editConfig.visible" :work-type="3" :edit-common-config="editConfig" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | > |
| | | <div> |
| | | <!-- <div>aaa</div> --> |
| | | <StatusCommonView :list="list" /> |
| | | <StatusCommonView |
| | | :list="list" |
| | | :showButton="showButton" |
| | | :showOther="false" |
| | | :isValidateClick="isValidateClick" |
| | | @validateClick="validateClick" |
| | | /> |
| | | </div> |
| | | <div class="basic-info"> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="产品" prop="client_name"> |
| | | <el-form-item label="产品" prop="productName"> |
| | | <el-select |
| | | v-model="editConfig.infomation.memberId" |
| | | v-model="editConfig.infomation.productName" |
| | | placeholder="请选择" |
| | | size="mini" |
| | | style="width: 90%" |
| | | :disabled="!showFooter" |
| | | @change="selProductChange" |
| | | > |
| | | <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> |
| | | <el-option |
| | | v-for="item in productOptions" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="{ value: item.id, label: item.name, unit: item.unit }" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="源位置" prop="client_name"> |
| | | <el-form-item label="源位置" prop="fromLocationId"> |
| | | <el-select |
| | | v-model="editConfig.infomation.memberId" |
| | | v-model="editConfig.infomation.fromLocationId" |
| | | placeholder="请选择" |
| | | size="mini" |
| | | style="width: 90%" |
| | | :disabled="!showFooter" |
| | | > |
| | | <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> |
| | | <el-option v-for="item in toLocationOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="数量" prop="client_name"> |
| | | <el-form-item label="数量" prop="amount"> |
| | | <el-input-number |
| | | v-model="editConfig.infomation.number" |
| | | v-model="editConfig.infomation.amount" |
| | | placeholder="" |
| | | :min="0" |
| | | :precision="2" |
| | | :controls="false" |
| | | style="width: 90%" |
| | | style="width: 85%" |
| | | :disabled="!showFooter" |
| | | ></el-input-number> |
| | | <span>{{ " " + unit }}</span> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="报废位置" prop="client_name"> |
| | | <el-form-item label="报废位置" prop="toLocationId"> |
| | | <el-select |
| | | v-model="editConfig.infomation.memberId" |
| | | v-model="editConfig.infomation.toLocationId" |
| | | placeholder="请选择" |
| | | size="mini" |
| | | style="width: 90%" |
| | | :disabled="!showFooter" |
| | | > |
| | | <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> |
| | | <el-option v-for="item in toLocationOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="来源单据" prop="memberId"> |
| | | <el-form-item label="来源单据" prop="sourceNumber"> |
| | | <el-input |
| | | v-model="editConfig.infomation.memberId" |
| | | v-model="editConfig.infomation.sourceNumber" |
| | | placeholder="例如:PO0032" |
| | | style="width: 90%" |
| | | :disabled="!showFooter" |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getProductList } from "@/api/product/product" |
| | | import { getLocationList } from "@/api/overview/overview" |
| | | import { addDisuse, finishDisuse } from "@/api/operate/scrap" |
| | | export default { |
| | | name: "AddScrapDialog", |
| | | props: { |
| | |
| | | dialogWidth: "50%", |
| | | editConfig: this.editCommonConfig, |
| | | rules: { |
| | | // 产品,数量必填 |
| | | client_name: [{ required: true, message: "请选择客户名称", trigger: "change" }], |
| | | number: [{ required: true, message: "请输入退款单编号", trigger: "blur" }], |
| | | refundDate: [{ required: true, message: "请选择退款日期", trigger: "change" }], |
| | | memberId: [{ required: true, message: "请选择销售负责人", trigger: "change" }], |
| | | sale_return_nunber: [{ required: true, message: "请选择销售退货单", trigger: "change" }] |
| | | // 产品,数量必填 |
| | | productName: [{ required: true, message: "请选择产品", trigger: "change" }], |
| | | amount: [{ required: true, message: "请输入数量", trigger: "blur" }], |
| | | fromLocationId: [{ required: true, message: "请选择源位置", trigger: "change" }], |
| | | toLocationId: [{ required: true, message: "请选择报废位置", trigger: "change" }], |
| | | sourceNumber: [{ required: true, message: "请输入来源单据", trigger: "blur" }] |
| | | }, |
| | | memberOptions: [], |
| | | paymentTypeListOptions: [], |
| | | productOptions: [], |
| | | toLocationOptions: [], |
| | | list: [ |
| | | { label: "草稿", status: "todo" }, |
| | | { label: "完成", status: "todo" } |
| | | { label: "草稿", status: "todo", value: 1 }, |
| | | { label: "就绪", status: "todo", value: 3 }, |
| | | { label: "完成", status: "todo", value: 4 } |
| | | ], |
| | | showEdit: false, // 是否显示编辑按钮 |
| | | showFooter: false, // 是否显示取消保存 |
| | | currentState: "todo" // 当前状态 |
| | | currentState: "todo", // 当前状态 |
| | | unit: "", |
| | | showButton: true, |
| | | isValidateClick: false // 验证是否显示 |
| | | } |
| | | }, |
| | | created() { |
| | | this.setBottonView() |
| | | this.getProductList() |
| | | this.getLocationList() |
| | | this.unit = this.editConfig.infomation.unit || "" |
| | | }, |
| | | methods: { |
| | | // 产品 |
| | | async getProductList() { |
| | | await getProductList({ |
| | | page: 1, |
| | | pageSize: 100 |
| | | }).then((res) => { |
| | | // console.log(res.data) |
| | | if (res.code === 200) { |
| | | if (res.data && res.data.length > 0) { |
| | | this.productOptions = res.data |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // 获取仓库位置列表 |
| | | async getLocationList() { |
| | | await getLocationList({ |
| | | keyWord: "", |
| | | page: 0, |
| | | pageSize: 0 |
| | | }).then((res) => { |
| | | console.log(res) |
| | | if (res.code === 200) { |
| | | this.toLocationOptions = res.data |
| | | } |
| | | }) |
| | | }, |
| | | // 设置删除/打印/编辑是否显示 |
| | | setBottonView() { |
| | | if (this.editConfig.title === "新建") { |
| | | this.showButton = false |
| | | this.showEdit = false |
| | | this.showFooter = true |
| | | } else if (this.editConfig.infomation.status === "完成") { |
| | | this.isValidateClick = false |
| | | } else if (this.editConfig.infomation.status === 4) { |
| | | this.showButton = false |
| | | this.showEdit = false |
| | | this.showFooter = false |
| | | this.isValidateClick = false |
| | | } else { |
| | | this.showButton = true |
| | | this.showEdit = true |
| | | this.showFooter = false |
| | | this.isValidateClick = true |
| | | } |
| | | if (this.editConfig.title === "新建") { |
| | | this.list[0].status = "active" |
| | | } else { |
| | | this.list.map((item) => { |
| | | if (item.label === this.editConfig.infomation.status) { |
| | | if (item.value === this.editConfig.infomation.status) { |
| | | item.status = "active" |
| | | } else { |
| | | item.status = "todo" |
| | |
| | | this.showFooter = true |
| | | }, |
| | | // 保存 |
| | | saveClick() {} |
| | | saveClick(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.editConfig.infomation.productId = this.productId |
| | | this.editConfig.infomation.productName = this.productName |
| | | this.editConfig.infomation.unit = this.unit |
| | | addDisuse({ |
| | | ...this.editConfig.infomation |
| | | }).then((res) => { |
| | | console.log(res) |
| | | this.editConfig.visible = false |
| | | if (res.code === 200) { |
| | | this.$message.success("添加成功") |
| | | this.$parent.getData() |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | // 选择产品 |
| | | selProductChange(val) { |
| | | this.unit = val.unit |
| | | this.productName = val.label |
| | | this.productId = val.value |
| | | }, |
| | | // 验证 |
| | | async validateClick() { |
| | | await finishDisuse(this.editConfig.infomation.id).then((res) => { |
| | | console.log(res) |
| | | this.editConfig.visible = false |
| | | if (res.code === 200) { |
| | | this.$message.success("验证成功") |
| | | this.$parent.getData() |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | line-height: 30px; |
| | | font-size: 13px; |
| | | } |
| | | .el-input__inner { |
| | | text-align: left; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | |
| | | <script> |
| | | import pageMixin from "@/components/makepager/pager/mixin/pageMixin" |
| | | import { getProductList } from "@/api/product/product" |
| | | import { getDisuseList } from "@/api/operate/scrap" |
| | | // import DetailProduct from "@/views/productManage/product/DetailProduct" |
| | | import AddScrapDialog from "@/views/operate/scrap/AddScrapDialog" |
| | | |
| | |
| | | visible: false, |
| | | title: "新建", |
| | | infomation: {} |
| | | } |
| | | }, |
| | | keyword: "" |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | let tableColumn = [ |
| | | { |
| | | label: "单号", |
| | | prop: "id", |
| | | prop: "number", |
| | | isShowColumn: true, |
| | | default: true |
| | | }, |
| | | { |
| | | label: "日期", |
| | | prop: "deviceName", |
| | | prop: "operationDate", |
| | | isShowColumn: true, |
| | | default: true |
| | | }, |
| | | { |
| | | label: "产品", |
| | | prop: "id", |
| | | prop: "productName", |
| | | isShowColumn: true, |
| | | default: true |
| | | }, |
| | | { |
| | | label: "数量", |
| | | prop: "deviceId", |
| | | prop: "amount", |
| | | isShowColumn: true, |
| | | default: false |
| | | }, |
| | | { |
| | | label: "计量单位", |
| | | prop: "shopName", |
| | | prop: "unit", |
| | | isShowColumn: true, |
| | | default: false |
| | | }, |
| | | { |
| | | label: "源位置", |
| | | prop: "preTime", |
| | | prop: "from", |
| | | isShowColumn: true, |
| | | default: false |
| | | }, |
| | | { |
| | | label: "报废位置", |
| | | prop: "status", |
| | | prop: "to", |
| | | isShowColumn: true, |
| | | default: false |
| | | }, |
| | |
| | | prop: "status", |
| | | width: 120, |
| | | isShowColumn: true, |
| | | default: true, |
| | | status: true |
| | | default: false, |
| | | status: true, |
| | | isCallMethod: true, |
| | | getCallMethod: this.getStatus |
| | | } |
| | | ] |
| | | return tableColumn |
| | |
| | | this.tableList.tableColumn = this.setTableColumn(val) |
| | | }, |
| | | // 请求数据 |
| | | async getData(val, content) { |
| | | await getProductList({ |
| | | [val]: content, |
| | | async getData() { |
| | | await getDisuseList({ |
| | | number: this.keyword, |
| | | sourceNumber: this.keyword, |
| | | page: this.pagerOptions.currPage, |
| | | pageSize: this.pagerOptions.pageSize |
| | | }).then((res) => { |
| | | if (res.data.code === 200) { |
| | | const list = res.data.data.list.map((item) => { |
| | | if (res.code === 200) { |
| | | const list = res.data.map((item) => { |
| | | return { |
| | | ...item, |
| | | supplierNumber: item.supplier.number, |
| | | status: "草稿", |
| | | preTime: "2023-09-04 11:20:00" |
| | | from: item.fromLocation.name, |
| | | to: item.toLocation.name |
| | | } |
| | | }) |
| | | this.tableList.tableInfomation = list || [] |
| | | this.pagerOptions.totalCount = res.data.data.total |
| | | this.pagerOptions.totalCount = res.total |
| | | } |
| | | }) |
| | | }, |
| | | // 搜索 |
| | | getList(val) { |
| | | this.keyword = val |
| | | console.log(val) |
| | | this.pagerOptions.currPage = 1 |
| | | this.getData() |
| | | }, |
| | | // 行点击 |
| | | tableRowClick(row) { |
| | |
| | | addBtnClick() { |
| | | this.editConfig.visible = true |
| | | this.editConfig.title = "新建" |
| | | this.editConfig.infomation = {} |
| | | }, |
| | | // 状态 |
| | | getStatus(val) { |
| | | return val === 1 ? "草稿" : val === 3 ? "就绪" : "完成" |
| | | } |
| | | } |
| | | } |
| | |
| | | }, |
| | | { |
| | | label: "产品类型", |
| | | prop: "productType", |
| | | prop: "model", |
| | | isShowColumn: showcol.includes("产品类型"), |
| | | default: false |
| | | }, |