| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- <template>
- <!-- 修改仓库信息-->
- <a-modal class="modify-custom commonModal"
- title="修改仓库信息"
- v-model:visible="visible"
- centered
- :maskClosable="maskClosableFlag"
- @cancel="cancel"
- width="890px">
- <template #footer>
- <a-button key="submit"
- type="primary"
- :loading="loading"
- @click="cancel">关闭</a-button>
- <a-button key="submit"
- type="primary"
- :loading="loading"
- @click="submit">修改</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="warehousetype">
- <a-select class="typeSelect"
- style="width: 200px"
- v-model:value="formState.warehousetype"
- placeholder="请选择仓库类型">
- <a-select-option v-for="item in warehouseType"
- :key="item.enumitemname"
- :value="item.enumitemname">
- {{item.enumdicname}}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="仓库名称"
- name="warehousename">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.warehousename"
- placeholder="请输入仓库名称" />
- </a-form-item>
- </a-col>
- </a-row>
- <a-row :gutter="24">
- <a-col :span="12">
- <a-form-item label="仓库简称"
- name="warehousecode">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.warehousecode"
- placeholder="请输入仓库简称" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="联系人"
- name="contactname">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.contactname"
- placeholder="请输入联系人" />
- </a-form-item>
- </a-col>
- </a-row>
- <a-row :gutter="24">
- <a-col :span="24">
- <a-form-item label="联系电话"
- name="contactnum">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.contactnum"
- placeholder="请输入联系电话" />
- </a-form-item>
- </a-col>
- </a-row>
- <a-row :gutter="24">
- <a-col :span="24">
- <a-form-item label="所在地区">
- <a-select class="inlineFormSelect"
- style="width: 205px"
- v-model:value="formState.provinceid"
- @change="provinceChange"
- placeholder="请选择省">
- <a-select-option v-for="item in provinceList"
- :key="item.autoid"
- :value="item.autoid">
- {{item.divisionname}}
- </a-select-option>
- </a-select>
- <a-select class="inlineFormSelect ml9"
- style="width: 205px"
- v-model:value="formState.cityid"
- @change="cityChange"
- placeholder="请选择市">
- <a-select-option v-for="item in cityList"
- :key="item.autoid"
- :value="item.autoid">
- {{item.divisionname}}
- </a-select-option>
- </a-select>
- <a-select class="inlineFormSelect ml9"
- v-model:value="formState.districtid"
- style="width: 205px"
- placeholder="请选择县(区)">
- <a-select-option v-for="item in districtList"
- :key="item.autoid"
- :value="item.autoid">
- {{item.divisionname}}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- </a-row>
- <a-row :gutter="24">
- <a-col :span="24">
- <a-form-item label="详细地址"
- name="address">
- <a-input class="dialogInput"
- v-model:value="formState.address"
- style="width: 635px"
- placeholder="请输入详细地址" />
- </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 { getAddress } from '@/services/go/adress';
- import { handleForm, FormState, warehouseApply } from '../setup';
- import { ValidateErrorEntity } from 'ant-design-vue/lib/form/interface';
- import { AllEnums } from '@/services/go/commonService/interface';
- import { WarehouseApplyReq } from '@/services/proto/warehouse/interface';
- import { ErmcpWareHouseInfo } from '@/services/go/ermcp/warehouse-info/interface';
- import { mergeTwoObj } from '@/utils/objHandle';
- import { getWarehouseTypeEnumList } from '@/common/constants/enumsList';
- export default defineComponent({
- name: 'warehouse_info_btn_modify',
- props: {
- selectedRow: {
- type: Object as PropType<ErmcpWareHouseInfo>,
- default: {},
- },
- },
- components: {},
- setup(props, context) {
- const { visible, cancel } = closeModal('warehouse_info_btn_modify');
- const loading = ref<boolean>(false);
- const { cityList, districtList, provinceList, getCityList, getDistrictList } = getAddress();
- const warehouseType = ref<AllEnums[]>(getWarehouseTypeEnumList());
- const { formRef, formState, rules } = handleForm();
- watchEffect(() => {
- if (visible.value) {
- mergeTwoObj(formState, props.selectedRow);
- const { provinceid, cityid } = props.selectedRow;
- provinceid ? getCityList(provinceid) : (formState.provinceid = undefined);
- cityid ? getDistrictList(cityid) : ((formState.cityid = undefined), (formState.districtid = undefined));
- }
- });
- function submit() {
- formRef.value
- .validate()
- .then(() => {
- const param = toRaw(formState);
- const reqParam: WarehouseApplyReq = {
- type: 2, // int32 类型 1 新增 2 修改
- warehouseid: props.selectedRow.autoid, // uint64 仓库ID
- warehousecode: props.selectedRow.warehousecode, // string 仓库代码
- warehousename: param.warehousename, // string 仓库名称
- warehousetype: undefined === param.warehousetype ? 0 : (param.warehousetype as number), // int32 仓库类型 - 1 厂库 2 自有库 3 合作库
- provinceid: undefined === param.provinceid ? 0 : (param.provinceid as number), // uint64 省
- cityid: undefined === param.cityid ? 0 : (param.cityid as number), // uint64 市
- districtid: undefined === param.districtid ? 0 : (param.districtid as number), // int32 区
- address: param.address, // string 详细地址
- contactname: param.contactname, // string 联系人
- contactnum: param.contactnum, // string 联系电话
- };
- warehouseApply(reqParam, loading)
- .then((res) => {
- cancel();
- context.emit('refresh');
- })
- .catch((err) => {});
- })
- .catch((error: ValidateErrorEntity<FormState>) => {
- console.log('error', error);
- });
- }
- function provinceChange(id: number) {
- getCityList(id);
- formState.cityid = undefined;
- formState.districtid = undefined;
- }
- function cityChange(id: number) {
- getDistrictList(id);
- formState.districtid = undefined;
- }
- return {
- visible,
- cancel,
- submit,
- loading,
- maskClosableFlag: false,
- cityList,
- districtList,
- provinceList,
- provinceChange,
- cityChange,
- formRef,
- formState,
- rules,
- warehouseType,
- };
- },
- });
- </script>
- <style lang="less">
- .modify-custom {
- }
- </style
- >;
|