li.shaoyi 2 years ago
parent
commit
e2adf29585

+ 2 - 2
src/filters/index.ts

@@ -57,9 +57,9 @@ export function handleNoneValue<T>(value?: T, suffix = '') {
  * @param suffix 后缀名
  * @returns 
  */
-export function handleNumberValue(value: number | string, suffix = '') {
+export function handleNumberValue(value?: number | string, suffix = '') {
     try {
-        if (Number(value) === 0) {
+        if (value === undefined || Number(value) === 0) {
             return '--'
         }
         return value + suffix

+ 2 - 2
src/packages/pc/views/centralize/list/components/details/index.vue

@@ -1,6 +1,6 @@
 <!-- 集采交易-预售大厅-详情 -->
 <template>
-    <app-drawer title="详情" :width="800" v-model:show="show" :loading="loading" :refresh="refresh">
+    <app-drawer title="详情" :width="960" v-model:show="show" :loading="loading" :refresh="refresh">
         <app-table-details title="集采信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">
             <!-- 采购保证金比例 -->
             <template #buymarginvalue="{ value }">
@@ -41,7 +41,7 @@
 
 <script lang="ts" setup>
 import { shallowRef, reactive, PropType, onMounted, defineAsyncComponent } from 'vue'
-import { getFileUrl, parsePercent,handleNumberValue } from '@/filters'
+import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
 import { getWRPresaleStatusName, getYSProductionModeName } from '@/constants/presale'
 import { useRequest } from '@/hooks/request'
 import { queryPresaleorderapplyprice } from '@/services/api/presale'

+ 55 - 29
src/packages/pc/views/centralize/mine/components/add/index.vue

@@ -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({