|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <!-- 修改客户资料 -->
|
|
|
|
|
- <a-modal class="commonModal modify-custom"
|
|
|
|
|
- title="修改客户资料"
|
|
|
|
|
|
|
+ <!-- 修改现货品种 -->
|
|
|
|
|
+ <a-modal class="commonModal addSpotVariety"
|
|
|
|
|
+ title="修改现货品种"
|
|
|
v-if="visible"
|
|
v-if="visible"
|
|
|
v-model:visible="visible"
|
|
v-model:visible="visible"
|
|
|
centered
|
|
centered
|
|
@@ -15,217 +15,426 @@
|
|
|
@click="submit">完成</a-button>
|
|
@click="submit">完成</a-button>
|
|
|
</template>
|
|
</template>
|
|
|
<a-form class="inlineForm"
|
|
<a-form class="inlineForm"
|
|
|
- :form="form"
|
|
|
|
|
- @submit="handleSearch">
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="客户类型">
|
|
|
|
|
- <a-select class="typeSelect"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请选择客户类型">
|
|
|
|
|
- <a-select-option value="1">
|
|
|
|
|
- 客户一
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- <a-select-option value="2">
|
|
|
|
|
- 客户二
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- </a-select>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="企业名称">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入企业名称" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="企业简称">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入企业简称" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="证件类型">
|
|
|
|
|
- <a-select class="inlineFormSelect"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请选择证件类型">
|
|
|
|
|
- <a-select-option value="1">
|
|
|
|
|
- 客户一
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- <a-select-option value="2">
|
|
|
|
|
- 客户二
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- </a-select>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="法定代表人">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入法定代表人" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="证件号码">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入证件号码" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="纳税人识别号">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入纳税人识别号" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="营业执照">
|
|
|
|
|
- <div class="upload">
|
|
|
|
|
- <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
|
|
|
|
|
- :transform-file="transformFile">
|
|
|
|
|
- <a-button class="uploadBtn">上传</a-button>
|
|
|
|
|
- </a-upload>
|
|
|
|
|
- <div class="look">查看附件</div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="联系人">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入联系人" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="联系人手机号">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入联系人手机号" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item label="联系电话">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 200px"
|
|
|
|
|
- placeholder="请输入联系电话" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="12">
|
|
|
|
|
- <a-form-item>
|
|
|
|
|
-
|
|
|
|
|
- </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"
|
|
|
|
|
- placeholder="请选择省">
|
|
|
|
|
- <a-select-option value="1">
|
|
|
|
|
- 客户一
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- <a-select-option value="2">
|
|
|
|
|
- 客户二
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- </a-select>
|
|
|
|
|
- <a-select class="inlineFormSelect ml5"
|
|
|
|
|
- style="width: 205px"
|
|
|
|
|
- placeholder="请选择市">
|
|
|
|
|
- <a-select-option value="1">
|
|
|
|
|
- 客户一
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- <a-select-option value="2">
|
|
|
|
|
- 客户二
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- </a-select>
|
|
|
|
|
- <a-select class="inlineFormSelect ml5"
|
|
|
|
|
- style="width: 205px"
|
|
|
|
|
- placeholder="请选择县(区)">
|
|
|
|
|
- <a-select-option value="1">
|
|
|
|
|
- 客户一
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- <a-select-option value="2">
|
|
|
|
|
- 客户二
|
|
|
|
|
- </a-select-option>
|
|
|
|
|
- </a-select>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="24">
|
|
|
|
|
- <a-form-item label=" ">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 625px"
|
|
|
|
|
- placeholder="请输入详细地址" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
- <a-row :gutter="24">
|
|
|
|
|
- <a-col :span="24">
|
|
|
|
|
- <a-form-item label="备注">
|
|
|
|
|
- <a-input class="dialogInput"
|
|
|
|
|
- style="width: 625px"
|
|
|
|
|
- placeholder="请输入备注" />
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- </a-row>
|
|
|
|
|
|
|
+ ref="formRef"
|
|
|
|
|
+ :model="formState"
|
|
|
|
|
+ :rules="rules">
|
|
|
|
|
+ <fieldset class="formFieldSet">
|
|
|
|
|
+ <legend>基本信息</legend>
|
|
|
|
|
+ <a-row :gutter="24">
|
|
|
|
|
+ <a-col :span="12">
|
|
|
|
|
+ <a-form-item label="现货品种名称"
|
|
|
|
|
+ name="deliverygoodsname">
|
|
|
|
|
+ <a-input class="dialogInput"
|
|
|
|
|
+ v-model:value="formState.deliverygoodsname"
|
|
|
|
|
+ style="width: 200px"
|
|
|
|
|
+ placeholder="请输入现货品种名称" />
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="12">
|
|
|
|
|
+ <a-form-item label="现货品种代码"
|
|
|
|
|
+ name="deliverygoodscode">
|
|
|
|
|
+ <a-input class="dialogInput"
|
|
|
|
|
+ style="width: 200px"
|
|
|
|
|
+ v-model:value="formState.deliverygoodscode"
|
|
|
|
|
+ placeholder="请输入现货品种代码" />
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ </a-row>
|
|
|
|
|
+ <a-row :gutter="24">
|
|
|
|
|
+ <a-col :span="24">
|
|
|
|
|
+ <a-form-item label="单位"
|
|
|
|
|
+ name="unitid">
|
|
|
|
|
+ <a-select class="inlineFormSelect"
|
|
|
|
|
+ style="width: 200px"
|
|
|
|
|
+ v-model:value="formState.unitid"
|
|
|
|
|
+ placeholder="请选择单位">
|
|
|
|
|
+ <a-select-option v-for="item in unitList"
|
|
|
|
|
+ :value="item.enumitemname"
|
|
|
|
|
+ :key="item.autoid">
|
|
|
|
|
+ {{item.enumdicname}}
|
|
|
|
|
+ </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="remark">
|
|
|
|
|
+ <a-input class="dialogInput"
|
|
|
|
|
+ v-model:value="formState.remark"
|
|
|
|
|
+ style="width: 588px"
|
|
|
|
|
+ placeholder="请输入备注" />
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ </a-row>
|
|
|
|
|
+ </fieldset>
|
|
|
|
|
+ <fieldset class="formFieldSet">
|
|
|
|
|
+ <legend>品类信息</legend>
|
|
|
|
|
+ <a-row :gutter="24"
|
|
|
|
|
+ class="dialogRowTitle">
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ <span class="red">*</span>
|
|
|
|
|
+ 品类
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ <span class="red">*</span>
|
|
|
|
|
+ 单位
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ <span class="red">*</span>
|
|
|
|
|
+ 标仓系数
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 操作
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <template v-for="(domain, index) in formState.gldwrstandards"
|
|
|
|
|
+ :key="domain.index + 'domain'">
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <a-form-item :name="['gldwrstandards',index, 'wrstandardname', ]"
|
|
|
|
|
+ :rules="rules.gldwrstandards.wrstandardname">
|
|
|
|
|
+ <a-input class="dialogInput"
|
|
|
|
|
+ v-model:value="domain.wrstandardname"
|
|
|
|
|
+ placeholder="请输入品类"></a-input>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <a-form-item :name="['gldwrstandards',index,'unitid' ]"
|
|
|
|
|
+ :rules="rules.gldwrstandards.unitid">
|
|
|
|
|
+ <a-select class="inlineFormSelect"
|
|
|
|
|
+ v-model:value="domain.unitid"
|
|
|
|
|
+ placeholder="请选择单位">
|
|
|
|
|
+ <a-select-option v-for="item in unitList"
|
|
|
|
|
+ :value="item.enumitemname"
|
|
|
|
|
+ :key="item.autoid">
|
|
|
|
|
+ {{item.enumdicname}}
|
|
|
|
|
+ </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <a-form-item :name="['gldwrstandards',index,'convertfactor']"
|
|
|
|
|
+ :rules="rules.gldwrstandards.convertfactor">
|
|
|
|
|
+ <a-input-number class="dialogInput"
|
|
|
|
|
+ v-model:value="domain.convertfactor"
|
|
|
|
|
+ placeholder="请输入标仓系数"></a-input-number>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6"
|
|
|
|
|
+ class="tc">
|
|
|
|
|
+ <a-button class="plusBtn"
|
|
|
|
|
+ @click="deleteOne('gldwrstandards', index)"
|
|
|
|
|
+ v-if="index > 0">
|
|
|
|
|
+ <template #icon>
|
|
|
|
|
+ <MinusOutlined />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ <a-button class="minusBtn"
|
|
|
|
|
+ @click="addOne('gldwrstandards')">
|
|
|
|
|
+ <template #icon>
|
|
|
|
|
+ <PlusOutlined />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-row>
|
|
|
|
|
+ </fieldset>
|
|
|
|
|
+ <fieldset class="formFieldSet">
|
|
|
|
|
+ <legend>品牌信息</legend>
|
|
|
|
|
+ <a-row :gutter="24"
|
|
|
|
|
+ class="dialogRowTitle dialogRowTitle2">
|
|
|
|
|
+ <a-col :span="12">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ <span class="red">*</span>
|
|
|
|
|
+ 品牌
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="12">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 操作
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <template v-for="(domain, index) in formState.glddgfactoryItems"
|
|
|
|
|
+ :key="domain.index + 'domain'">
|
|
|
|
|
+ <a-col :span="12">
|
|
|
|
|
+ <a-form-item :name="['glddgfactoryItems',index,'dgfactoryitemvalue']"
|
|
|
|
|
+ :rules="rules.glddgfactoryItems.dgfactoryitemvalue">
|
|
|
|
|
+ <a-input class="dialogInput"
|
|
|
|
|
+ v-model:value="domain.dgfactoryitemvalue"
|
|
|
|
|
+ placeholder="请输入品牌"></a-input>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="12">
|
|
|
|
|
+ <a-button class="plusBtn"
|
|
|
|
|
+ @click="deleteOne('glddgfactoryItems', index)"
|
|
|
|
|
+ v-if="index > 0">
|
|
|
|
|
+ <template #icon>
|
|
|
|
|
+ <MinusOutlined />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ <a-button class="minusBtn"
|
|
|
|
|
+ @click="addOne('glddgfactoryItems')">
|
|
|
|
|
+ <template #icon>
|
|
|
|
|
+ <PlusOutlined />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-row>
|
|
|
|
|
+ </fieldset>
|
|
|
|
|
+ <fieldset class="formFieldSet">
|
|
|
|
|
+ <legend>套保品种信息</legend>
|
|
|
|
|
+ <a-row :gutter="24"
|
|
|
|
|
+ class="dialogRowTitle">
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ <span class="red">*</span>
|
|
|
|
|
+ 套保品种
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ <span class="red">*</span>
|
|
|
|
|
+ 单位
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ <span class="red">*</span>
|
|
|
|
|
+ 套保系数
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 操作
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <template v-for="(domain, index) in formState.wrsconvertdetails"
|
|
|
|
|
+ :key="domain.index + 'domain'">
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <a-form-item :name="['wrsconvertdetails',index,'middlegoodsid']"
|
|
|
|
|
+ :rules="rules.wrsconvertdetails.middlegoodsid">
|
|
|
|
|
+ <a-select class="inlineFormSelect"
|
|
|
|
|
+ @change="middleChange(domain.middlegoodsid, domain)"
|
|
|
|
|
+ v-model:value="domain.middlegoodsid"
|
|
|
|
|
+ placeholder="请选择套保品种">
|
|
|
|
|
+ <a-select-option v-for="item in goodsGroup"
|
|
|
|
|
+ :value="item.goodsgroupid"
|
|
|
|
|
+ :key="item.goodsgroupid">
|
|
|
|
|
+ {{item.goodsgroupname}}
|
|
|
|
|
+ </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <a-form-item :name="['wrsconvertdetails', index, 'unitidName']">
|
|
|
|
|
+ <a-input class="dialogInput"
|
|
|
|
|
+ readonly
|
|
|
|
|
+ v-model:value="domain.unitidName"
|
|
|
|
|
+ placeholder="选择套保品种后自动填入"></a-input>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6">
|
|
|
|
|
+ <a-form-item :name="['wrsconvertdetails', index, 'convertratio']"
|
|
|
|
|
+ :rules="rules.wrsconvertdetails.convertratio">
|
|
|
|
|
+ <a-input-number class="dialogInput"
|
|
|
|
|
+ v-model:value="domain.convertratio"
|
|
|
|
|
+ placeholder="请输入套保系数"></a-input-number>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="6"
|
|
|
|
|
+ class="tc">
|
|
|
|
|
+ <a-button class="plusBtn"
|
|
|
|
|
+ @click="deleteOne('wrsconvertdetails', index)"
|
|
|
|
|
+ v-if="index > 0">
|
|
|
|
|
+ <template #icon>
|
|
|
|
|
+ <MinusOutlined />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ <a-button class="minusBtn"
|
|
|
|
|
+ @click="addOne('wrsconvertdetails')">
|
|
|
|
|
+ <template #icon>
|
|
|
|
|
+ <PlusOutlined />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-row>
|
|
|
|
|
+ </fieldset>
|
|
|
</a-form>
|
|
</a-form>
|
|
|
</a-modal>
|
|
</a-modal>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
|
-import { defineComponent, ref } from 'vue';
|
|
|
|
|
|
|
+import { defineComponent, PropType, ref, toRaw, watchEffect } from 'vue';
|
|
|
import { closeModal } from '@/common/setup/modal/index';
|
|
import { closeModal } from '@/common/setup/modal/index';
|
|
|
import { initData } from '@/common/methods/index';
|
|
import { initData } from '@/common/methods/index';
|
|
|
|
|
+import { PlusOutlined, MinusOutlined } from '@ant-design/icons-vue';
|
|
|
|
|
+import { handleAdd, handleFromState, handleGoodsGroup, getGoodsUnit } from './setup';
|
|
|
|
|
+import { getGoodsUnitList } from '../../setup';
|
|
|
|
|
+import { RuleObject, ValidateErrorEntity } from 'ant-design-vue/es/form/interface';
|
|
|
|
|
+import { FormState, WRSConvertDetailEx } from './interface';
|
|
|
|
|
+import { validateCommon } from '@/common/setup/validate';
|
|
|
|
|
+import { initDG } from '../../list/spot-variety/setup';
|
|
|
|
|
+import { ErmcpDeliveryGoodsDetailEx, ErmcpDeliveryGoods } from '@/services/go/ermcp/goodsInfo/interface';
|
|
|
|
|
+interface Obj {
|
|
|
|
|
+ [props: string]: any;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 检验单位
|
|
|
|
|
+ */
|
|
|
|
|
+const validateUnit = async (rule: RuleObject, value: number) => {
|
|
|
|
|
+ return validateCommon(value, '请选择单位');
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ *
|
|
|
|
|
+ */
|
|
|
|
|
+const valideteWR = async (rule: RuleObject, value: number) => {
|
|
|
|
|
+ return validateCommon(value, '请选择品类');
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
|
name: 'modify-custom',
|
|
name: 'modify-custom',
|
|
|
- components: {},
|
|
|
|
|
props: {
|
|
props: {
|
|
|
- // selectedRow: {
|
|
|
|
|
- // type:
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ selctedDeliveryGoods: {
|
|
|
|
|
+ default: initDG,
|
|
|
|
|
+ type: Object as PropType<ErmcpDeliveryGoodsDetailEx>,
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ components: {
|
|
|
|
|
+ PlusOutlined,
|
|
|
|
|
+ MinusOutlined,
|
|
|
},
|
|
},
|
|
|
- setup() {
|
|
|
|
|
|
|
+ setup(props, context) {
|
|
|
|
|
+ // 控制关闭弹窗
|
|
|
const { visible, cancel } = closeModal('goods_info_spot_normal_modify');
|
|
const { visible, cancel } = closeModal('goods_info_spot_normal_modify');
|
|
|
|
|
+ // 下单方法
|
|
|
|
|
+ const { loading, addAction } = handleAdd();
|
|
|
|
|
|
|
|
- const loading = ref<boolean>(false);
|
|
|
|
|
- const maskClosableFlag = ref<boolean>(false);
|
|
|
|
|
|
|
+ // 单位列表
|
|
|
|
|
+ const unitList = getGoodsUnitList();
|
|
|
|
|
+
|
|
|
|
|
+ // 表单
|
|
|
|
|
+ const formRef = ref();
|
|
|
|
|
+ const { formState, addOne, deleteOne } = handleFromState();
|
|
|
|
|
+ const rules = {
|
|
|
|
|
+ deliverygoodsname: [{ required: true, message: '请输入现货品种名称', trigger: 'blur' }],
|
|
|
|
|
+ // unitid: [{ required: true, message: '请选择单位', trigger: 'change' }],
|
|
|
|
|
+ unitid: [{ required: true, validator: validateUnit, trigger: 'change' }],
|
|
|
|
|
+ gldwrstandards: {
|
|
|
|
|
+ unitid: { required: true, validator: validateUnit, trigger: 'change' },
|
|
|
|
|
+ wrstandardname: { required: true, message: '请输入品类', trigger: 'blur' },
|
|
|
|
|
+ convertfactor: { required: true, message: '请输入标仓系数', trigger: 'blur' },
|
|
|
|
|
+ },
|
|
|
|
|
+ glddgfactoryItems: {
|
|
|
|
|
+ dgfactoryitemvalue: { required: true, message: '请输入品牌', trigger: 'blur' },
|
|
|
|
|
+ },
|
|
|
|
|
+ wrsconvertdetails: {
|
|
|
|
|
+ middlegoodsid: { required: true, validator: valideteWR, trigger: 'change' },
|
|
|
|
|
+ convertratio: { required: true, message: '请输入套保系数', trigger: 'blur' },
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
function submit() {
|
|
function submit() {
|
|
|
- loading.value = true;
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- loading.value = false;
|
|
|
|
|
- cancel();
|
|
|
|
|
- }, 2000);
|
|
|
|
|
|
|
+ console.log('param', toRaw(formState));
|
|
|
|
|
+ formRef.value
|
|
|
|
|
+ .validate()
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ const param = toRaw(formState);
|
|
|
|
|
+ addAction(param).then(() => {
|
|
|
|
|
+ cancel();
|
|
|
|
|
+ context.emit('refresh', true);
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log('param', param);
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((error: ValidateErrorEntity<FormState>) => {
|
|
|
|
|
+ console.log('error', error);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ const { goodsGroup, getGoodsGroup } = handleGoodsGroup();
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 切换套保品种时候,获取对应的单位
|
|
|
|
|
+ */
|
|
|
|
|
+ function middleChange(id: number, value: WRSConvertDetailEx) {
|
|
|
|
|
+ const obj = goodsGroup.value.find((e) => e.groupcategroyid === id);
|
|
|
|
|
+ if (obj) {
|
|
|
|
|
+ value.unitidName = obj.enumdicname;
|
|
|
|
|
+ value.unitid = obj.goodunitid;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- initData(() => {});
|
|
|
|
|
|
|
+ watchEffect(() => {
|
|
|
|
|
+ if (props.selctedDeliveryGoods.data.deliverygoodsname) {
|
|
|
|
|
+ const { data, gblist, gmlist, mgList } = props.selctedDeliveryGoods;
|
|
|
|
|
+ console.log('props.selctedDeliveryGoods', props.selctedDeliveryGoods);
|
|
|
|
|
+ // 处理第一次加载的
|
|
|
|
|
+ const obj: Obj = {};
|
|
|
|
|
+ Object.keys(formState).forEach((el) => {
|
|
|
|
|
+ const key = el.toLocaleLowerCase() as keyof ErmcpDeliveryGoods;
|
|
|
|
|
+ if (Reflect.has(data, key)) {
|
|
|
|
|
+ obj[el] = data[key];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.warn(`${key}不对应`);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ Object.assign(formState, obj);
|
|
|
|
|
+ // 单位
|
|
|
|
|
+ formState.unitid = data.agreeunit;
|
|
|
|
|
+ // 品类
|
|
|
|
|
+ formState.gldwrstandards = gmlist.map((e) => {
|
|
|
|
|
+ const { wrstandardid, wrstandardname, convertfactor, unitid } = e;
|
|
|
|
|
+ return { wrstandardid, wrstandardname, convertfactor, unitid };
|
|
|
|
|
+ });
|
|
|
|
|
+ // 品牌
|
|
|
|
|
+ formState.glddgfactoryItems = gblist.map((e) => {
|
|
|
|
|
+ const { brandid, brandname } = e;
|
|
|
|
|
+ return { dgfactoryitemid: brandid, dgfactoryitemvalue: brandname };
|
|
|
|
|
+ });
|
|
|
|
|
+ // 套保信息
|
|
|
|
|
+ formState.wrsconvertdetails = mgList.map((e) => {
|
|
|
|
|
+ const { goodsgroupid, goodsunitid, enumdicname } = e.mg;
|
|
|
|
|
+ return { middlegoodsid: goodsgroupid, unitid: goodsunitid, unitidName: enumdicname, convertratio: e.convertratio };
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ initData(() => {
|
|
|
|
|
+ getGoodsGroup();
|
|
|
|
|
+ });
|
|
|
return {
|
|
return {
|
|
|
visible,
|
|
visible,
|
|
|
cancel,
|
|
cancel,
|
|
|
|
|
+ formRef,
|
|
|
|
|
+ formState,
|
|
|
|
|
+ addOne,
|
|
|
|
|
+ deleteOne,
|
|
|
|
|
+ rules,
|
|
|
|
|
+ unitList,
|
|
|
|
|
+ goodsGroup,
|
|
|
|
|
+ middleChange,
|
|
|
submit,
|
|
submit,
|
|
|
loading,
|
|
loading,
|
|
|
- maskClosableFlag,
|
|
|
|
|
|
|
+ maskClosableFlag: false,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="less">
|
|
<style lang="less">
|
|
|
-.modify-custom {
|
|
|
|
|
|
|
+.addSpotVariety {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ // padding: 30px;
|
|
|
|
|
+ .ant-form.inlineForm .ant-row.ant-form-item .ant-form-item-label {
|
|
|
|
|
+ width: 120px !important;
|
|
|
|
|
+ }
|
|
|
.upload {
|
|
.upload {
|
|
|
display: inline-flex;
|
|
display: inline-flex;
|
|
|
.ant-btn.uploadBtn {
|
|
.ant-btn.uploadBtn {
|
|
@@ -250,6 +459,129 @@ export default defineComponent({
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ .red {
|
|
|
|
|
+ color: @m-red1;
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-btn.minusBtn,
|
|
|
|
|
+ .ant-btn.plusBtn {
|
|
|
|
|
+ width: 26px;
|
|
|
|
|
+ height: 26px;
|
|
|
|
|
+ .inlineflex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ background: @m-blue0;
|
|
|
|
|
+ .rounded-corners(3px);
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ .anticon {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: @m-white0;
|
|
|
|
|
+ align-self: center;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ &:hover,
|
|
|
|
|
+ &:focus {
|
|
|
|
|
+ background: rgba(@m-blue0, 0.8);
|
|
|
|
|
+ .anticon {
|
|
|
|
|
+ color: rgba(@m-white0, 0.8);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-btn.plusBtn {
|
|
|
|
|
+ margin-right: 10px;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ border: 1px solid #3a87f7;
|
|
|
|
|
+ .anticon {
|
|
|
|
|
+ color: @m-blue0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .white {
|
|
|
|
|
+ color: @m-white0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dialogTable {
|
|
|
|
|
+ .ant-table {
|
|
|
|
|
+ .ant-table-content {
|
|
|
|
|
+ .ant-table-body {
|
|
|
|
|
+ table {
|
|
|
|
|
+ tr {
|
|
|
|
|
+ td {
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ .ant-input.dialogInput {
|
|
|
|
|
+ height: 34px;
|
|
|
|
|
+ line-height: 34px;
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ border-radius: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dialogSelect.ant-select-single {
|
|
|
|
|
+ float: left;
|
|
|
|
|
+ margin-right: 0;
|
|
|
|
|
+ .ant-select-selector {
|
|
|
|
|
+ padding: 0 10px;
|
|
|
|
|
+ height: 34px;
|
|
|
|
|
+ background: @m-grey21;
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ border-radius: 0;
|
|
|
|
|
+ .ant-select-selection-placeholder {
|
|
|
|
|
+ color: @m-grey10;
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-select-arrow {
|
|
|
|
|
+ color: @m-blue0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-form.inlineForm {
|
|
|
|
|
+ .ant-row.dialogRowTitle {
|
|
|
|
|
+ .ant-col {
|
|
|
|
|
+ .ant-row.ant-form-item {
|
|
|
|
|
+ .ant-col.ant-form-item-control-wrapper {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ .ant-form-item-control {
|
|
|
|
|
+ .ant-form-item-children {
|
|
|
|
|
+ .ant-input.dialogInput {
|
|
|
|
|
+ border-radius: 0;
|
|
|
|
|
+ margin-top: 1px;
|
|
|
|
|
+ // margin-left: -1px;
|
|
|
|
|
+ // width: calc(100% + 2px);
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-select.inlineFormSelect {
|
|
|
|
|
+ margin-top: 1px;
|
|
|
|
|
+ .ant-select-selector {
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-form-item-control.has-error {
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ .ant-form-item-children {
|
|
|
|
|
+ .ant-input.dialogInput {
|
|
|
|
|
+ background: @m-grey21;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-form-explain {
|
|
|
|
|
+ color: @m-red1;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-col.tc {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .ant-row.dialogRowTitle2 {
|
|
|
|
|
+ .ant-col:nth-child(3),
|
|
|
|
|
+ .ant-col:nth-child(4) {
|
|
|
|
|
+ border-top: 1px solid @m-grey20;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
</style
|
|
</style
|
|
|
>;
|
|
>;
|