| | |
| | | label-position="right" |
| | | label-width="120px" |
| | | size="mini" |
| | | style="height: 60vh; overflow-x: hidden" |
| | | > |
| | | <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"> |
| | | <SimpleSearchInput |
| | | :echoValue="editConfig.infomation.productName" |
| | | :echoName="editConfig.infomation.productName" |
| | | checkedNum="1" |
| | | :clearable="true" |
| | | @select-user="selProductChange" |
| | | :disabled="!showFooter" |
| | | style="width: 90%" |
| | | > |
| | | </SimpleSearchInput> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <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-select |
| | | v-model="editConfig.infomation.memberId" |
| | | 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> |
| | | </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" |
| | |
| | | style="width: 90%" |
| | | :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" |
| | |
| | | </div> |
| | | </el-form> |
| | | <!-- 尾 --> |
| | | <div v-if="showFooter" slot="footer" class="dialog-footer"> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" size="small" @click="saveClick('form')" :disabled="!showFooter">保存</el-button> |
| | | <el-button size="small" @click="editConfig.visible = false">取消</el-button> |
| | | <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getProductList } from "@/api/product/product" |
| | | import { getLocationList } from "@/api/overview/overview" |
| | | import { addDisuse, finishDisuse, updateScrap } from "@/api/operate/scrap" |
| | | import SimpleSearchInput from "@/components/makepager/SimpleSearchInput" |
| | | export default { |
| | | name: "AddScrapDialog", |
| | | props: { |
| | |
| | | } |
| | | } |
| | | }, |
| | | components: {}, |
| | | components: { SimpleSearchInput }, |
| | | computed: {}, |
| | | data() { |
| | | return { |
| | | 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, validator: this.validatorProduct, 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 === "新建") { |
| | | if (this.editConfig.title === "新建" || 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.showEdit = true |
| | | this.showButton = true |
| | | this.showEdit = false |
| | | 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) { |
| | | if (this.editCommonConfig.title === "新建") { |
| | | 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() |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } else if (this.editCommonConfig.title === "编辑") { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | let params={ |
| | | amount: this.editConfig.infomation.amount, |
| | | baseOperationType: this.editConfig.infomation.baseOperationType, |
| | | fromLocationId: this.editConfig.infomation.fromLocationId, |
| | | id: this.editConfig.infomation.id, |
| | | number: this.editConfig.infomation.number, |
| | | operationDate: this.editConfig.infomation.operationDate, |
| | | productId: this.editConfig.infomation.productId, |
| | | sourceNumber: this.editConfig.infomation.sourceNumber, |
| | | status: this.editConfig.infomation.status, |
| | | toLocationId: this.editConfig.infomation.toLocationId |
| | | } |
| | | updateScrap( |
| | | params |
| | | ).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.name |
| | | this.productId = val.id |
| | | this.editConfig.infomation.productName = val.name |
| | | }, |
| | | // 验证 |
| | | async validateClick() { |
| | | console.log(this.editConfig.infomation.id, "xxx") |
| | | 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() |
| | | } |
| | | }) |
| | | }, |
| | | // 产品单独校验 |
| | | validatorProduct(rule, value, callback) { |
| | | if (this.editConfig.infomation.productName && this.editConfig.infomation.productName.length > 0) { |
| | | callback() |
| | | } else { |
| | | callback(new Error("请选择产品")) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | height: calc(100% - 80px); |
| | | overflow: auto; |
| | | margin: 20px; |
| | | border: 1px solid #dcdfe6; |
| | | box-shadow: inset 0 0 2px #dee2e6; |
| | | -moz-box-shadow: inset 0 0 2px #dee2e6; |
| | | -webkit-box-shadow: inset 0 0 2px #dee2e6; |
| | | .basic-info-view { |
| | | margin-top: 20px; |
| | | } |
| | | // border: 1px solid #dcdfe6; |
| | | // box-shadow: inset 0 0 2px #dee2e6; |
| | | // -moz-box-shadow: inset 0 0 2px #dee2e6; |
| | | // -webkit-box-shadow: inset 0 0 2px #dee2e6; |
| | | // .basic-info-view { |
| | | // margin-top: 20px; |
| | | // } |
| | | } |
| | | .purchase-view { |
| | | display: flex; |
| | |
| | | line-height: 30px; |
| | | font-size: 13px; |
| | | } |
| | | .el-input__inner { |
| | | text-align: left; |
| | | } |
| | | } |
| | | </style> |