| | |
| | | <el-input |
| | | style="width: 85%" |
| | | :disabled="!showFooter" |
| | | clearable |
| | | v-model="editConfig.infomation.specs" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | |
| | | v-model="editConfig.infomation.productType" |
| | | placeholder="请选择" |
| | | size="mini" |
| | | clearable |
| | | style="width: 85%" |
| | | :disabled="!showFooter" |
| | | > |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="单位old" prop="unit"> |
| | | <!-- <el-form-item label="单位old" prop="unit"> |
| | | <el-input |
| | | v-model="editConfig.infomation.unit" |
| | | placeholder="请输入" |
| | | style="width: 85%" |
| | | :disabled="!showFooter" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item label="单位" prop="unit"> |
| | | <el-select |
| | | :disabled="!showFooter" |
| | | v-model="editConfig.infomation.unit" |
| | | placeholder="单位" |
| | | filterable |
| | | @change="$forceUpdate()" |
| | | style="width: calc(100% - 30px)" |
| | | @change="Gtechange" |
| | | style="width: calc(85% - 120px)" |
| | | > |
| | | <el-option |
| | | v-for="ele in unitList" |
| | |
| | | style="font-size: 20px; color: gray" |
| | | @click="handleUnitShow" |
| | | ></i> |
| | | <el-checkbox |
| | | class="margin_left_10px" |
| | | :disabled="editConfig.infomation.unit&&showFooter?false:true" |
| | | v-model="editConfig.infomation.moreUnit" |
| | | @change="moreUnitChange" |
| | | >启用多单位</el-checkbox |
| | | > |
| | | <!-- <span class="margin_left_10px cursor_pointer" @click="handleUnitMore">启用多单位</span> --> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="产品标签" prop="productTagName"> |
| | |
| | | v-model="editConfig.infomation.categoryId" |
| | | placeholder="请选择" |
| | | size="mini" |
| | | clearable |
| | | filterable |
| | | style="width: 85%" |
| | | :disabled="!showFooter" |
| | | > |
| | |
| | | <el-input |
| | | style="width: 85%" |
| | | :disabled="!showFooter" |
| | | filterable |
| | | v-model="editConfig.infomation.type" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="采购类型" prop="purchaseType"> |
| | | <el-radio-group :disabled="!showFooter" v-model="editConfig.infomation.purchaseType"> |
| | | <el-radio v-for="item in purchaseTypeList" :key="item.id" :label="item.id">{{ |
| | | item.name |
| | | }}</el-radio> |
| | | </el-radio-group> |
| | | <el-form-item label="采购类型" prop="purchaseTypeList"> |
| | | <el-checkbox-group |
| | | v-model="editConfig.infomation.purchaseTypeList" |
| | | :disabled="!showFooter" |
| | | > |
| | | <el-checkbox v-for="item in bomPurchaseTypeList" :key="item.id" :label="item.id">{{ item.name }}</el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="内部编码" prop="internalReference"> |
| | | <el-input |
| | |
| | | v-model="editConfig.infomation.principal" |
| | | placeholder="请选择" |
| | | size="mini" |
| | | style="width: 85%" |
| | | :disabled="!showFooter" |
| | | style="width: 88%" |
| | | disabled |
| | | > |
| | | <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.name"> |
| | | <el-option |
| | | v-for="(item, index) in memberOptions" |
| | | :key="index" |
| | | :label="item.userName" |
| | | :value="item.userName" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="重量" prop="weight" label-width="80px"> |
| | | <!-- <el-form-item label="重量" prop="weight" label-width="80px"> |
| | | <el-input-number |
| | | v-model="editConfig.infomation.weight" |
| | | placeholder="请输入" |
| | |
| | | :disabled="!showFooter" |
| | | ></el-input-number> |
| | | <span> kg</span> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item label="毛重" prop="grossWeight" label-width="80px"> |
| | | <el-col :span="15" |
| | | > |
| | | <el-input |
| | | v-model="editConfig.infomation.grossWeight" |
| | | placeholder="请输入" |
| | | :disabled="!showFooter" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="1"> </el-col> |
| | | <el-col :span="5"> |
| | | <el-select |
| | | v-model="editConfig.infomation.grossUnit" |
| | | placeholder="单位" |
| | | filterable |
| | | :disabled="!showFooter" |
| | | style="width: 100%; float: right" |
| | | :popper-append-to-body="false" |
| | | > |
| | | <el-option |
| | | v-for="ele in grossUnitList" |
| | | :key="ele.id" |
| | | :label="ele.name" |
| | | :value="ele.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-col> |
| | | </el-form-item> |
| | | <el-form-item label="净重" prop="netWeight" label-width="80px"> |
| | | <el-col :span="15" |
| | | > |
| | | <el-input |
| | | v-model="editConfig.infomation.netWeight" |
| | | :disabled="!showFooter" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="1"> </el-col> |
| | | <el-col :span="5"> |
| | | <el-select |
| | | v-model="editConfig.infomation.netUnit" |
| | | placeholder="单位" |
| | | filterable |
| | | :disabled="!showFooter" |
| | | style="width: 100%; float: right" |
| | | :popper-append-to-body="false" |
| | | > |
| | | <el-option |
| | | v-for="ele in grossUnitList" |
| | | :key="ele.id" |
| | | :label="ele.name" |
| | | :value="ele.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-col> |
| | | </el-form-item> |
| | | <el-form-item label="体积" prop="volume" label-width="80px"> |
| | | <el-input-number |
| | | v-model="editConfig.infomation.volume" |
| | |
| | | </el-dialog> |
| | | <BomDialog |
| | | ref="editDialog" |
| | | @sucessSet="handleGetBomKindDictList" |
| | | :editRow="editRow" |
| | | @handleConfirmSave="handleConfirmSave" |
| | | :workList="unitList" |
| | | title="计量单位" |
| | | ></BomDialog> |
| | | <UnitMoreDialog |
| | | ref="unitMoreDialog" |
| | | @saveUnitMore="saveUnitMore" |
| | | @cancelUnitMore='cancelUnitMore' |
| | | :workList="unitList" |
| | | :unitRight='editConfig.infomation.unit' |
| | | :dataList="editConfig.infomation.moreUnitList" |
| | | title="启用多单位" |
| | | ></UnitMoreDialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import IconCropper from "./IconCropper" |
| | | import { getProductCategoryList } from "@/api/product/productCategory" |
| | | import { getProductList, addProduct, updateProduct } from "@/api/product/product" |
| | | import { uploadFiles } from "@/api/common/other" |
| | | import { getProductList, addProduct, updateProduct,saveUnitDict } from "@/api/product/product" |
| | | import { uploadFiles, getUserInfo, } from "@/api/common/other" |
| | | import codeMixin from "@/components/mixin/codeMixin" |
| | | import { getDataByType } from "@/api/data" |
| | | import BomDialog from "./components/bomDialog"; |
| | | import {getUnitInfo, } from "@/api/basic/standard"; |
| | | // import { postGetSaveSUnitDict } from "@/api/basic/standard"; |
| | | |
| | | import UnitMoreDialog from "./components/UnitMoreDialog"; |
| | | |
| | | export default { |
| | | mixins: [codeMixin], |
| | |
| | | components: { |
| | | IconCropper, |
| | | BomDialog, |
| | | UnitMoreDialog, |
| | | }, |
| | | computed: { |
| | | modalTitle() { |
| | |
| | | id: [{ required: true, validator: this.validateCheckCode, trigger: ["change", "blur"] }], |
| | | model: [{ required: true, message: "请选择物料类型", trigger: "change" }], |
| | | // salePrice: [{ required: true, message: "请输入销售价格", trigger: "blur" }], |
| | | unit: [{ required: true, message: "请输入单位", trigger: ["change", "blur"] }], |
| | | unit: [{ required: true, message: "请输入单位", trigger: ["blur"] }], |
| | | // 采购类型 |
| | | purchaseType: [{ required: true, message: "请选择", trigger: "blur" }] |
| | | purchaseTypeList: [{ required: true, message: "请选择", trigger: "blur" }], |
| | | netWeight: [ |
| | | { |
| | | required: false, |
| | | message: "请填写", |
| | | trigger: "change", |
| | | }, |
| | | { |
| | | validator: this.validatorNumFour, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | grossWeight: [ |
| | | { |
| | | required: false, |
| | | message: "请填写", |
| | | trigger: "change", |
| | | }, |
| | | { |
| | | validator: this.validatorNumFour, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | memberOptions: [{ name: "管理员", id: 1 }], |
| | | memberOptions: [], |
| | | productCategoryOptions: [], // 产品类别 |
| | | productTypeOptions: [ |
| | | { name: "能消耗", id: 1 }, |
| | |
| | | }, |
| | | isView: false, |
| | | fileFormdata: null, // 上传图片入参 |
| | | purchaseTypeList: getDataByType("purchaseType"), |
| | | bomPurchaseTypeList: getDataByType("purchaseType"), |
| | | grossUnitList:getDataByType("grossUnit"), |
| | | unitList: [], |
| | | editRow:{ |
| | | editDialogVisible:false, |
| | | BomTableData:[] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | } |
| | | this.setOptionalFieldsToEmpty() |
| | | this.formInfo() |
| | | this.getUserInfo() |
| | | this.getUnitInfo() |
| | | }, |
| | | methods: { |
| | | validatorNumFour(rule, value, callback) { |
| | | if (value != "") { |
| | | if (value == undefined || value == null) { |
| | | callback(new Error("请输入有效数字")); |
| | | } else { |
| | | let reg2 = |
| | | /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if (!reg2.test(value) || value == 0) { |
| | | callback(new Error("请填写大于零的2位小数的数字")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | // 单位 |
| | | handleUnitShow() { |
| | | this.handleGetBomKindDictList(); |
| | | this.$refs.editDialog.editDialogVisible = true; |
| | | this.editRow.editDialogVisible = true; |
| | | }, |
| | | // 单位 |
| | | handleGetBomKindDictList(val) { |
| | | console.log(val) |
| | | // postGetUnitDictList().then((res) => { |
| | | // this.unitList = res.data; |
| | | // if (val) { |
| | | // for (let i in this.unitList) { |
| | | // if (this.unitList[i].isDefault) { |
| | | // this.form.unit = this.form.unit |
| | | // ? this.form.unit |
| | | // : this.unitList[i].name; |
| | | // // this.$set(this.form, "unit", this.form.unit); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // }); |
| | | // 启用多单位 |
| | | handleUnitMore(){ |
| | | if(this.editConfig.infomation.unit){ |
| | | this.$refs.unitMoreDialog.editDialogVisible = true; |
| | | }else{ |
| | | this.$message.error('请先选择单位!') |
| | | } |
| | | }, |
| | | handleConfirmSave(data) { |
| | | console.log(data) |
| | | // postGetSaveSUnitDict({ data: data }).then((res) => { |
| | | // if (res.code == 200) { |
| | | // this.$message({ |
| | | // message: "操作成功!", |
| | | // type: "success", |
| | | // }); |
| | | // this.$refs.editDialog.editDialogVisible = false; |
| | | // this.handleGetBomKindDictList(); |
| | | // } |
| | | // }); |
| | | this.$refs.editDialog.editDialogVisible = false; |
| | | saveUnitMore(list){ |
| | | this.editConfig.infomation.moreUnit=true |
| | | this.editConfig.infomation.moreUnitList=list |
| | | }, |
| | | cancelUnitMore(){ |
| | | this.editConfig.infomation.moreUnit=false |
| | | }, |
| | | // 启用多单位的开关 |
| | | moreUnitChange(){ |
| | | // let string=false; |
| | | if(this.editConfig.infomation.unit){ |
| | | // if(this.editConfig.infomation.moreUnitList&&this.editConfig.infomation.moreUnitList.length>0){ |
| | | // for(let i in this.editConfig.infomation.moreUnitList){ |
| | | // if(this.editConfig.infomation.moreUnitList[i].unit&&this.editConfig.infomation.moreUnitList[i].amount){ |
| | | // string=true; |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | if(this.editConfig.infomation.moreUnit){ |
| | | // this.editConfig.infomation.moreUnit=false |
| | | // this.$message.error('请先配置多单位!') |
| | | this.$refs.unitMoreDialog.editDialogVisible = true; |
| | | } |
| | | }else{ |
| | | this.editConfig.infomation.moreUnit=false |
| | | this.$message.error('请先选择单位!') |
| | | } |
| | | |
| | | }, |
| | | handleConfirmSave(dataList) { |
| | | saveUnitDict({ data: dataList }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | message: "操作成功!", |
| | | type: "success", |
| | | }); |
| | | this.getUnitInfo() |
| | | } |
| | | }); |
| | | this.editRow.editDialogVisible = false; |
| | | |
| | | }, |
| | | // 获取登录用户信息 |
| | | getUserInfo() { |
| | | getUserInfo().then((res) => { |
| | | console.log(res) |
| | | if (res.code == 200) { |
| | | this.editConfig.infomation.principal = res.data.userName |
| | | this.memberOptions.push(res.data) |
| | | } |
| | | console.log(this.memberOptions) |
| | | }) |
| | | }, |
| | | formInfo() { |
| | | this.objCode.type = "物料编码" |
| | |
| | | params.codeStandardID = this.autoCodeObj.codeStandardID |
| | | params.autoIncr = this.autoCodeObj.maxAutoIncr |
| | | } |
| | | if(params.moreUnitList&¶ms.moreUnitList.length>0){ |
| | | for(let i in params.moreUnitList){ |
| | | params.moreUnitList[i].amount=Number(params.moreUnitList[i].amount) |
| | | } |
| | | } |
| | | requestUrl(params).then((res) => { |
| | | console.log(res) |
| | | this.editConfig.visible = false |
| | |
| | | // console.log(formdata, "图片数据") |
| | | }, |
| | | // 进出点击 |
| | | inOutBoundClick() { |
| | | inOutBoundClick(val) { |
| | | if (this.editConfig.title !== "新建") { |
| | | console.log(this.editConfig.infomation) |
| | | let url='' |
| | | if(val=='进'){ |
| | | url='inboundOutboundDetail' |
| | | }else{ |
| | | url='outboundDetail' |
| | | } |
| | | this.$router.push({ |
| | | name: "inboundOutboundDetail", |
| | | name:url, |
| | | params: { |
| | | name: this.editConfig.infomation.name, |
| | | id: this.editConfig.infomation.id |
| | |
| | | } else if (val === "销售") { |
| | | this.showSale = param |
| | | } |
| | | }, |
| | | Gtechange(){ |
| | | this.$forceUpdate() |
| | | }, |
| | | // 获取单位列表数据 |
| | | async getUnitInfo(){ |
| | | await getUnitInfo().then((res)=>{ |
| | | if( this.editConfig.title==="新建"){ |
| | | res.data.map((item)=>{ |
| | | if(item.isDefault){ |
| | | this.editConfig.infomation.unit=item.name |
| | | } |
| | | }) |
| | | } |
| | | this.editRow.BomTableData = res.data; |
| | | this.unitList=res.data |
| | | }) |
| | | } |
| | | } |
| | | } |