| | |
| | | <template> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <j-form-container :disabled="formDisabled"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| | | <a-form-model |
| | | ref="form" |
| | | :model="model" |
| | | :rules="validatorRules" |
| | | slot="detail" |
| | | > |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="采购计划编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCode"> |
| | | <a-input v-model="model.planCode" placeholder="系统自动生成" disabled ></a-input> |
| | | <a-form-model-item |
| | | label="采购计划编码" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="planCode" |
| | | > |
| | | <a-input |
| | | v-model="model.planCode" |
| | | placeholder="系统自动生成" |
| | | disabled |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="采购计划名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planName"> |
| | | <a-input v-model="model.planName" placeholder="请输入采购计划名称" ></a-input> |
| | | <a-form-model-item |
| | | label="采购计划名称" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="planName" |
| | | > |
| | | <a-input |
| | | v-model="model.planName" |
| | | placeholder="请输入采购计划名称" |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12" v-if="disabled"> |
| | | <a-form-model-item label="计划状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planStatus"> |
| | | <j-dict-select-tag dict-code="equipment_purchase_plan_status" placeholder="请选择计划状态" |
| | | v-model="model.planStatus" /> |
| | | <a-col |
| | | :span="12" |
| | | v-if="disabled" |
| | | > |
| | | <a-form-model-item |
| | | label="计划状态" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="planStatus" |
| | | > |
| | | <j-dict-select-tag |
| | | dict-code="equipment_purchase_plan_status" |
| | | placeholder="请选择计划状态" |
| | | v-model="model.planStatus" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="型号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentModel"> |
| | | <a-input v-model="model.equipmentModel" placeholder="请输入型号" ></a-input> |
| | | <a-form-model-item |
| | | label="型号" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="equipmentModel" |
| | | > |
| | | <a-input |
| | | v-model="model.equipmentModel" |
| | | placeholder="请输入型号" |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="采购数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="purchaseNumber"> |
| | | <a-input-number v-model="model.purchaseNumber" placeholder="请输入采购数量" style="width: 100%" /> |
| | | <a-form-model-item |
| | | label="采购数量" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="purchaseNumber" |
| | | > |
| | | <a-input-number |
| | | v-model="model.purchaseNumber" |
| | | placeholder="请输入采购数量" |
| | | style="width: 100%" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="预计单价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="estimatedUnitPrice"> |
| | | <a-input-number v-model="model.estimatedUnitPrice" placeholder="请输入预计单价" style="width: 100%" /> |
| | | <a-form-model-item |
| | | label="预计单价" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="estimatedUnitPrice" |
| | | > |
| | | <a-input-number |
| | | v-model="model.estimatedUnitPrice" |
| | | placeholder="请输入预计单价" |
| | | style="width: 100%" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="总价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="totalPrice"> |
| | | <a-input-number v-model="model.totalPrice" placeholder="请输入总价" style="width: 100%" /> |
| | | <a-form-model-item |
| | | label="总价" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="totalPrice" |
| | | > |
| | | <a-input-number |
| | | v-model="model.totalPrice" |
| | | placeholder="请输入总价" |
| | | style="width: 100%" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="合同总金额" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="overallContractAmount"> |
| | | <a-input-number v-model="model.overallContractAmount" placeholder="请输入合同总金额" style="width: 100%" /> |
| | | <a-form-model-item |
| | | label="合同总金额" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="overallContractAmount" |
| | | > |
| | | <a-input-number |
| | | v-model="model.overallContractAmount" |
| | | placeholder="请输入合同总金额" |
| | | style="width: 100%" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="管理分类" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentImportance"> |
| | | <j-dict-select-tag dict-code="equipment_abc_flag" placeholder="请选择管理分类" |
| | | v-model="model.equipmentImportance" /> |
| | | <a-form-model-item |
| | | label="管理分类" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="equipmentImportance" |
| | | > |
| | | <j-dict-select-tag |
| | | dict-code="equipment_abc_flag" |
| | | placeholder="请选择管理分类" |
| | | v-model="model.equipmentImportance" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <!-- <a-col :span="12">--> |
| | | <!-- <a-form-model-item label="计划类别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCategory">--> |
| | | <!-- <a-input v-model="model.planCategory" placeholder="请输入计划类别" ></a-input>--> |
| | | <!-- </a-form-model-item>--> |
| | | <!-- </a-col>--> |
| | | <!-- <a-col :span="12">--> |
| | | <!-- <a-form-model-item label="计划类别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCategory">--> |
| | | <!-- <a-input v-model="model.planCategory" placeholder="请输入计划类别" ></a-input>--> |
| | | <!-- </a-form-model-item>--> |
| | | <!-- </a-col>--> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="申请人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant"> |
| | | <j-search-select-tag placeholder="请选择申请人" v-model="model.applicant" dict="sys_user,realname, username, del_flag=0 and status=1"/> |
| | | <a-form-model-item |
| | | label="申请人" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="applicant" |
| | | > |
| | | <j-search-select-tag |
| | | placeholder="请选择申请人" |
| | | v-model="model.applicant" |
| | | dict="sys_user,realname, realname, del_flag=0 and status=1" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="申请车间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicantProduction"> |
| | | <a-tree-select v-model="model.applicantProduction" |
| | | style="width: 100%" |
| | | :tree-data="treeData" |
| | | :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" |
| | | placeholder="请选择使用车间" |
| | | allow-clear |
| | | tree-default-expand-all |
| | | > |
| | | <a-form-model-item |
| | | label="申请车间" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="applicantProduction" |
| | | > |
| | | <a-tree-select |
| | | v-model="model.applicantProduction" |
| | | style="width: 100%" |
| | | :tree-data="treeData" |
| | | :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" |
| | | placeholder="请选择使用车间" |
| | | allow-clear |
| | | tree-default-expand-all |
| | | > |
| | | </a-tree-select> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="计划开始日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planStartDate"> |
| | | <j-date :show-time="true" dateFormat="YYYY-MM-DD HH" placeholder="请选择计划开始日期" v-model="model.planStartDate" style="width: 100%" /> |
| | | <a-form-model-item |
| | | label="计划开始日期" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="planStartDate" |
| | | > |
| | | <j-date |
| | | :show-time="true" |
| | | dateFormat="YYYY-MM-DD HH" |
| | | placeholder="请选择计划开始日期" |
| | | v-model="model.planStartDate" |
| | | style="width: 100%" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="计划完成日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planEndDate"> |
| | | <j-date :show-time="true" dateFormat="YYYY-MM-DD HH" placeholder="请选择计划完成日期" v-model="model.planEndDate" style="width: 100%" /> |
| | | <a-form-model-item |
| | | label="计划完成日期" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="planEndDate" |
| | | > |
| | | <j-date |
| | | :show-time="true" |
| | | dateFormat="YYYY-MM-DD HH" |
| | | placeholder="请选择计划完成日期" |
| | | v-model="model.planEndDate" |
| | | style="width: 100%" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="计划描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planDescription"> |
| | | <a-textarea v-model="model.planDescription" placeholder="请输入计划描述" ></a-textarea> |
| | | <a-form-model-item |
| | | label="计划描述" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="planDescription" |
| | | > |
| | | <a-textarea |
| | | v-model="model.planDescription" |
| | | placeholder="请输入计划描述" |
| | | ></a-textarea> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="实施及协助部门" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="relatedDeparts"> |
| | | <a-input v-model="model.relatedDeparts" placeholder="请输入实施及协助部门" ></a-input> |
| | | <a-form-model-item |
| | | label="实施及协助部门" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="relatedDeparts" |
| | | > |
| | | <a-input |
| | | v-model="model.relatedDeparts" |
| | | placeholder="请输入实施及协助部门" |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> |
| | | <a-textarea v-model="model.remark" placeholder="请输入备注" ></a-textarea> |
| | | <a-form-model-item |
| | | label="备注" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="remark" |
| | | > |
| | | <a-textarea |
| | | v-model="model.remark" |
| | | placeholder="请输入备注" |
| | | ></a-textarea> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | |
| | | |
| | | <script> |
| | | |
| | | import { httpAction, getAction } from '@/api/manage' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | import { httpAction, getAction } from '@/api/manage' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | |
| | | export default { |
| | | name: 'EamEquipmentPurchasePlanForm', |
| | | components: { |
| | | }, |
| | | props: { |
| | | //表单禁用 |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | model:{ |
| | | }, |
| | | treeData: [], |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | planName: [ |
| | | { required: true, message: '请输入采购计划名称!'}, |
| | | ], |
| | | equipmentModel: [ |
| | | { required: true, message: '请输入型号!'}, |
| | | ], |
| | | purchaseNumber: [ |
| | | { required: true, message: '请输入采购数量!'}, |
| | | ], |
| | | estimatedUnitPrice: [ |
| | | { required: true, message: '请输入预计单价!'}, |
| | | ], |
| | | totalPrice: [ |
| | | { required: true, message: '请输入总价!'}, |
| | | ], |
| | | overallContractAmount: [ |
| | | { required: true, message: '请输入合同总金额!'}, |
| | | ], |
| | | planStartDate: [ |
| | | { required: true, message: '请输入计划开始日期!'}, |
| | | ], |
| | | planEndDate: [ |
| | | { required: true, message: '请输入计划完成日期!'}, |
| | | ], |
| | | }, |
| | | url: { |
| | | add: "/eam/eamEquipmentPurchasePlan/add", |
| | | edit: "/eam/eamEquipmentPurchasePlan/edit", |
| | | queryById: "/eam/eamEquipmentPurchasePlan/queryById", |
| | | loadWorkShopOptions:'/mdc/mdcProduction/loadProductionTreeOptions' |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled(){ |
| | | return this.disabled |
| | | }, |
| | | }, |
| | | created () { |
| | | //备份model原始值 |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)); |
| | | this.loadWorkShopTree() |
| | | }, |
| | | methods: { |
| | | loadWorkShopTree() { |
| | | //加载车间选择树 |
| | | getAction(this.url.loadWorkShopOptions).then(res => { |
| | | if (res.success) { |
| | | this.treeData = [...res.result] |
| | | }else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | add () { |
| | | this.edit(this.modelDefault); |
| | | }, |
| | | edit (record) { |
| | | this.model = Object.assign({}, record); |
| | | this.visible = true; |
| | | }, |
| | | submitForm () { |
| | | const that = this; |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | let httpurl = ''; |
| | | let method = ''; |
| | | if(!this.model.id){ |
| | | httpurl+=this.url.add; |
| | | method = 'post'; |
| | | }else{ |
| | | httpurl+=this.url.edit; |
| | | method = 'put'; |
| | | } |
| | | httpAction(httpurl,this.model,method).then((res)=>{ |
| | | if(res.success){ |
| | | that.$message.success(res.message); |
| | | that.$emit('ok'); |
| | | }else{ |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | export default { |
| | | name: 'EamEquipmentPurchasePlanForm', |
| | | components: { |
| | | }, |
| | | props: { |
| | | //表单禁用 |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | model: { |
| | | }, |
| | | treeData: [], |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | planName: [ |
| | | { required: true, message: '请输入采购计划名称!' }, |
| | | ], |
| | | equipmentModel: [ |
| | | { required: true, message: '请输入型号!' }, |
| | | ], |
| | | purchaseNumber: [ |
| | | { required: true, message: '请输入采购数量!' }, |
| | | ], |
| | | estimatedUnitPrice: [ |
| | | { required: true, message: '请输入预计单价!' }, |
| | | ], |
| | | totalPrice: [ |
| | | { required: true, message: '请输入总价!' }, |
| | | ], |
| | | overallContractAmount: [ |
| | | { required: true, message: '请输入合同总金额!' }, |
| | | ], |
| | | planStartDate: [ |
| | | { required: true, message: '请输入计划开始日期!' }, |
| | | ], |
| | | planEndDate: [ |
| | | { required: true, message: '请输入计划完成日期!' }, |
| | | ], |
| | | }, |
| | | url: { |
| | | add: "/eam/eamEquipmentPurchasePlan/add", |
| | | edit: "/eam/eamEquipmentPurchasePlan/edit", |
| | | queryById: "/eam/eamEquipmentPurchasePlan/queryById", |
| | | loadWorkShopOptions: '/mdc/mdcProduction/loadProductionTreeOptions' |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled() { |
| | | return this.disabled |
| | | }, |
| | | }, |
| | | created() { |
| | | //备份model原始值 |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)); |
| | | this.loadWorkShopTree() |
| | | }, |
| | | methods: { |
| | | loadWorkShopTree() { |
| | | //加载车间选择树 |
| | | getAction(this.url.loadWorkShopOptions).then(res => { |
| | | if (res.success) { |
| | | this.treeData = [...res.result] |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | add() { |
| | | this.edit(this.modelDefault); |
| | | }, |
| | | edit(record) { |
| | | this.model = Object.assign({}, record); |
| | | this.visible = true; |
| | | }, |
| | | submitForm() { |
| | | const that = this; |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | let httpurl = ''; |
| | | let method = ''; |
| | | if (!this.model.id) { |
| | | httpurl += this.url.add; |
| | | method = 'post'; |
| | | } else { |
| | | httpurl += this.url.edit; |
| | | method = 'put'; |
| | | } |
| | | httpAction(httpurl, this.model, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message); |
| | | that.$emit('ok'); |
| | | } else { |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |