| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- <template>
- <!-- 出入库登记-->
- <a-modal class="commonModal add-spot-contract"
- :title="`出入库登记(生产${inOrOut()})`"
- v-model:visible="visible"
- centered
- :maskClosable="false"
- @cancel="closeAction"
- width="890px">
- <template #footer>
- <a-button key="submit"
- class="cancelBtn"
- @click="closeAction">取消</a-button>
- <a-button key="submit"
- type="primary"
- :loading="loading"
- @click="submit(2)">{{inOrOut()}}登记</a-button>
- </template>
- <a-form class="inlineForm"
- ref="formRef"
- :model="formState"
- :rules="rules">
- <a-row :gutter="24">
- <a-col :span="12">
- <a-form-item label="出入库类型"
- name="InOutType">
- <a-select class="inlineFormSelect"
- style="width: 200px"
- v-model:value="formState.InOutType"
- placeholder="请选择出入库类型">
- <a-select-option v-for="item in warehouseType"
- :key="item.key"
- :value="item.key">
- {{item.name}}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="现货品种"
- name="DeliveryGoodsID">
- <a-select class="inlineFormSelect"
- style="width: 200px"
- @change="deliveryGoodsChange"
- :getPopupContainer="(triggerNode) => triggerNode.parentNode"
- v-model:value="formState.DeliveryGoodsID"
- placeholder="请选择现货品种">
- <a-select-option v-for="item in deliveryGoodsList"
- :key="item.deliverygoodsid"
- :value="item.deliverygoodsid">
- {{item.deliverygoodsname}}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="品类"
- name="WRStandardID">
- <a-select class="inlineFormSelect"
- style="width: 200px"
- :getPopupContainer="(triggerNode) => triggerNode.parentNode"
- @change="WrStandardChange"
- v-model:value="formState.WRStandardID"
- placeholder="请选择品类">
- <a-select-option v-for="item in gmlist"
- :key="item.wrstandardid"
- :value="item.wrstandardid">
- {{item.wrstandardname}}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="品牌"
- name="SpotGoodsBrandID">
- <a-select class="inlineFormSelect"
- style="width: 200px"
- :getPopupContainer="(triggerNode) => triggerNode.parentNode"
- v-model:value="formState.SpotGoodsBrandID"
- placeholder="请选择品牌">
- <a-select-option v-for="item in gblist"
- :key="item.brandid"
- :value="item.brandid">
- {{item.brandname}}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item :label="`${inOrOut()}仓库`"
- name="WarehouseInfo">
- <a-select class="inlineFormSelect"
- style="width: 200px"
- :placeholder="`请选择${inOrOut()}仓库`"
- v-model:value="formState.WarehouseInfo">
- <a-select-option v-for="option in wareHouseList"
- :key="option.autoid"
- :value="option.autoid">
- {{option.warehousecode}}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item :label="`${inOrOut()}数量`"
- name="Qty">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.Qty"
- :placeholder="`请输入${inOrOut()}数量`" />
- </a-form-item>
- </a-col>
- </a-row>
- </a-form>
- </a-modal>
- </template>
- <script lang="ts">
- import { defineComponent, PropType, ref, toRaw, watchEffect } from 'vue';
- import { closeModal } from '@/common/setup/modal/index';
- import { initData } from '@/common/methods';
- import { Ermcp3ContractRsp } from '@/services/go/ermcp/spot-contract/interface';
- import { handleDeliveryGoods, handleFormState, handleWarehouseList, handleWarehouseType } from './setup';
- import { validateAction } from '@/common/setup/form';
- import { FormState } from './interface';
- import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
- import { ermcpInOutStockApplyReq } from '@/services/proto/warehouse';
- import { ERMCPAreaInOutStockApplyReq } from '@/services/proto/warehouse/interface';
- export default defineComponent({
- name: 'add-spot-contract',
- components: {},
- props: {
- selectedRow: {
- type: Object as PropType<Ermcp3ContractRsp>,
- default: {},
- },
- },
- setup(props, context) {
- const { visible, cancel } = closeModal('inventory_current_add');
- const { rules, formState, formRef, initFormData } = handleFormState();
- const { warehouseType, inOrOut } = handleWarehouseType(formState);
- const { wareHouseList, getWarehouseList } = handleWarehouseList();
- const { deliveryGoodsList, gblist, gmlist, numberUnit, WrStandardChange, getDeliveryGoods, deliveryGoodsChange } = handleDeliveryGoods(formState);
- const loading = ref<boolean>(false);
- function submit() {
- validateAction<FormState>(formRef, formState).then((param) => {
- let reqParam: ERMCPAreaInOutStockApplyReq = {
- InOutType: param.InOutType, // int32 出入库类型 - 1:采购入库 2:销售出库 3:生产入库 4:生产出库
- WRStandardID: param.WRStandardID as number, // uint64 现货商品ID
- // SpotGoodsModelID: param.S; // uint64 现货型号ID
- SpotGoodsBrandID: param.SpotGoodsBrandID as number, // uint64 现货品牌ID
- DeliveryGoodsID: param.DeliveryGoodsID as number, // uint64 现货品种ID
- // SpotContractID: param.SpotContractID, // uint64 关联现货合同ID [1:采购入库 2:销售出库 ](1,2状态必填)
- WarehouseInfo: param.WarehouseInfo as number, // uint64 现货仓库ID
- Qty: Number(param.Qty), // double 数量
- ApplyRemark: '', // string 申请备注
- };
- requestResultLoadingAndInfo(ermcpInOutStockApplyReq, reqParam, loading, ['出入库登记成功', '出入库登记失败:']).then(() => {
- closeAction();
- context.emit('refresh');
- });
- });
- }
- function closeAction() {
- Object.assign(formState, initFormData());
- cancel();
- }
- initData(() => {
- getWarehouseList();
- getDeliveryGoods();
- });
- return {
- visible,
- closeAction,
- submit,
- loading,
- maskClosableFlag: false,
- rules,
- formState,
- formRef,
- warehouseType,
- inOrOut,
- wareHouseList,
- deliveryGoodsList,
- gblist,
- gmlist,
- numberUnit,
- WrStandardChange,
- getDeliveryGoods,
- deliveryGoodsChange,
- };
- },
- });
- </script>
- <style lang="less">
- .add-spot-contract {
- }
- </style>;
|