|
|
@@ -22,7 +22,7 @@
|
|
|
<component :is="PerformanceTemplate" v-model="formData.PerformanceTemplateID" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="最小采购单位" prop="MinBuyQty">
|
|
|
- <el-input type="number" placeholder="请输入" v-model.number="formData.MinBuyQty">
|
|
|
+ <el-input placeholder="请添加采集价格" :value="minQty" disabled>
|
|
|
<template #append>(克拉)</template>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
@@ -65,30 +65,49 @@
|
|
|
</el-form>
|
|
|
<h3 class="g-details__title">钻石参考信息</h3>
|
|
|
<el-form class="el-form--horizontal" label-width="140px" :model="formData" :rules="formRules">
|
|
|
+ <el-form-item label="形状" prop="ZSShapeTypeStr" v-if="formData.YSZSCategory === YSZSCategory.Diamonds">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.ZSShapeTypeStr" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="颜色" prop="ZSColorTypeStr">
|
|
|
<el-input placeholder="请输入" v-model="formData.ZSColorTypeStr" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="尺寸" prop="SizeStr">
|
|
|
<el-input placeholder="请输入" v-model="formData.SizeStr" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="抛光" prop="ZSPolishTypeStr" v-if="formData.YSZSCategory === YSZSCategory.Diamonds">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.ZSPolishTypeStr" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="净度" prop="ZSClarityTypeStr">
|
|
|
<el-input placeholder="请输入" v-model="formData.ZSClarityTypeStr" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="成品率" prop="YieldRate">
|
|
|
- <el-input placeholder="请输入" v-model="formData.YieldRate" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="数量描述" prop="QtyDesc">
|
|
|
- <el-input placeholder="请输入" v-model="formData.QtyDesc" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="重量描述" prop="WeightDesc">
|
|
|
- <el-input placeholder="请输入" v-model="formData.WeightDesc" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="生产方式" prop="YSProductionMode">
|
|
|
- <el-select v-model="formData.YSProductionMode">
|
|
|
- <el-option :label="item.label" :value="item.value" v-for="(item, index) in getYSProductionModeList()"
|
|
|
- :key="index" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
+ <template v-if="formData.YSZSCategory === YSZSCategory.Diamonds">
|
|
|
+ <el-form-item label="对称" prop="ZSSymmetryTypeStr">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.ZSSymmetryTypeStr" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="切工" prop="ZSCutTypeStr">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.ZSCutTypeStr" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="荧光" prop="ZSFluorescenceTypeStr">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.ZSFluorescenceTypeStr" />
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ <template v-if="formData.YSZSCategory === YSZSCategory.Rough">
|
|
|
+ <el-form-item label="成品率" prop="YieldRate">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.YieldRate" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="数量描述" prop="QtyDesc">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.QtyDesc" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="重量描述" prop="WeightDesc">
|
|
|
+ <el-input placeholder="请输入" v-model="formData.WeightDesc" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="生产方式" prop="YSProductionMode">
|
|
|
+ <el-select v-model="formData.YSProductionMode">
|
|
|
+ <el-option :label="item.label" :value="item.value"
|
|
|
+ v-for="(item, index) in getYSProductionModeList()" :key="index" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
<el-form-item class="el-form-item--row" label="图片" prop="PictureUrls">
|
|
|
<app-upload :file-types="['image']" :limit="5" type-message="请选择正确的图片类型" @change="onUploadChange" />
|
|
|
</el-form-item>
|
|
|
@@ -105,11 +124,11 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { ref, reactive, defineAsyncComponent } from 'vue'
|
|
|
+import { ref, reactive, defineAsyncComponent, computed } from 'vue'
|
|
|
import { ElMessage, FormInstance, FormRules } from 'element-plus'
|
|
|
import { formatDate } from '@/filters'
|
|
|
import { regular } from '@/constants/regex'
|
|
|
-import { getYSProductionModeList, getYSZSCategoryList } from '@/constants/presale'
|
|
|
+import { getYSProductionModeList, getYSZSCategoryList, YSZSCategory } from '@/constants/presale'
|
|
|
import { gzCenterPurchaseApply } from '@/services/api/presale'
|
|
|
import AppDrawer from '@pc/components/base/drawer/index.vue'
|
|
|
import AppUpload from '@pc/components/base/upload/index.vue'
|
|
|
@@ -133,6 +152,9 @@ const formData = reactive<Partial<Proto.GZCenterPurchaseApplyReq>>({
|
|
|
GZCenterPurchasePriceLists: [],
|
|
|
})
|
|
|
|
|
|
+// 最小采购单位
|
|
|
+const minQty = computed(() => formData.GZCenterPurchasePriceLists![0]?.Qty)
|
|
|
+
|
|
|
const columns: Ermcp.TableColumn[] = [
|
|
|
{ prop: 'StepIndex', label: '序号' },
|
|
|
{ prop: 'Qty', label: '数量' },
|
|
|
@@ -158,11 +180,6 @@ const formRules: FormRules = {
|
|
|
message: '请输入集采数量',
|
|
|
pattern: regular.integer.reg
|
|
|
}],
|
|
|
- MinBuyQty: [{
|
|
|
- required: true,
|
|
|
- message: '请输入最小采购单位',
|
|
|
- pattern: regular.integer.reg
|
|
|
- }],
|
|
|
MinSuccessQty: [{
|
|
|
required: true,
|
|
|
message: '请输入最低成团量',
|
|
|
@@ -215,14 +232,22 @@ const deleteRecord = (index: number) => {
|
|
|
// 更新价格数据
|
|
|
const onUpdate = (item: Proto.GZCenterPurchasePrice) => {
|
|
|
const list = formData.GZCenterPurchasePriceLists ?? []
|
|
|
- const index = list.findIndex((e) => e.StepIndex === item.StepIndex)
|
|
|
- if (index > -1) {
|
|
|
- list[index] = item
|
|
|
+ const findQty = list.findIndex((e) => e.Qty === item.Qty)
|
|
|
+ if (findQty > -1) {
|
|
|
+ list[findQty] = item
|
|
|
} else {
|
|
|
- const n = list.length
|
|
|
- item.StepIndex = n + 1
|
|
|
- list[n] = item
|
|
|
+ const findIndex = list.findIndex((e) => e.StepIndex === item.StepIndex)
|
|
|
+ if (findIndex > -1) {
|
|
|
+ list[findIndex] = item
|
|
|
+ } else {
|
|
|
+ const n = list.length
|
|
|
+ item.StepIndex = n + 1
|
|
|
+ list[n] = item
|
|
|
+ }
|
|
|
}
|
|
|
+ // 重新排序
|
|
|
+ formData.GZCenterPurchasePriceLists = formData.GZCenterPurchasePriceLists?.sort(((a, b) => a.Qty - b.Qty))
|
|
|
+ formData.GZCenterPurchasePriceLists?.forEach((e, i) => e.StepIndex = i + 1)
|
|
|
formRef.value?.validateField('GZCenterPurchasePriceLists')
|
|
|
}
|
|
|
|
|
|
@@ -241,6 +266,7 @@ const onSubmit = () => {
|
|
|
const [startDate, endDate] = datePickerValue.value
|
|
|
formData.StartDate = formatDate(startDate, 'YYYY-MM-DD')
|
|
|
formData.EndDate = formatDate(endDate, 'YYYY-MM-DD')
|
|
|
+ formData.MinBuyQty = minQty.value
|
|
|
|
|
|
loading.value = true
|
|
|
gzCenterPurchaseApply({
|