li.shaoyi 2 năm trước cách đây
mục cha
commit
5b4f33fc32

+ 12 - 3
src/constants/presale.ts

@@ -3,15 +3,15 @@ import { enumStore } from '@/stores'
 const { getEnumTypeList, getEnumTypeName } = enumStore.actions
 
 /**
- * 发票类型
+ * 预售钻石类型
  */
 export enum YSZSCategory {
-    Diamonds = 1, // 成裸钻
+    Diamonds = 1, // 成裸钻
     Rough = 2, // 毛坯钻石
 }
 
 /**
- * 获取预售钻石类列表
+ * 获取预售钻石类列表
  * @returns 
  */
 export function getYSZSCategoryList() {
@@ -19,6 +19,15 @@ export function getYSZSCategoryList() {
 }
 
 /**
+ * 获取预售钻石类型名称
+ * @returns 
+ */
+export function getYSZSCategoryName(value?: number) {
+    const enums = getYSZSCategoryList()
+    return getEnumTypeName(enums, value)
+}
+
+/**
  * 获取预售生产方式列表
  * @returns 
  */

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

@@ -2,6 +2,10 @@
 <template>
     <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 #yszscategory="{ value }">
+                {{ getYSZSCategoryName(value) }}
+            </template>
             <!-- 采购保证金比例 -->
             <template #buymarginvalue="{ value }">
                 {{ parsePercent(value) }}
@@ -42,7 +46,7 @@
 <script lang="ts" setup>
 import { shallowRef, reactive, PropType, onMounted, defineAsyncComponent } from 'vue'
 import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
-import { getWRPresaleStatusName, getYSProductionModeName } from '@/constants/presale'
+import { getYSZSCategoryName, getWRPresaleStatusName, getYSProductionModeName, YSZSCategory } from '@/constants/presale'
 import { useRequest } from '@/hooks/request'
 import { queryPresaleorderapplyprice } from '@/services/api/presale'
 import { performanceStore } from '@/stores'
@@ -91,17 +95,40 @@ const details1 = [
     { prop: 'price', label: '集采价格:', entireRow: true },
 ]
 
-const details2 = [
-    { prop: 'zscolortypestr', label: '颜色:' },
-    { prop: 'sizestr', label: '尺寸:' },
-    { prop: 'zsclaritytypestr', label: '净度:' },
-    { prop: 'yieldrate', label: '成品率:' },
-    { prop: 'qtydesc', label: '数量描述:' },
-    { prop: 'weightdesc', label: '重量描述:' },
-    { prop: 'ysproductionmode', label: '生产方式:' },
-    { prop: 'pictureurls', label: '图片:', entireRow: true },
-    { prop: 'remark', label: '备注:', entireRow: true },
-]
+const details2 = (() => {
+    switch (props.selectedRow.yszscategory) {
+        case YSZSCategory.Diamonds: {
+            return [
+                { prop: 'zsshapetypestr', label: '形状:' },
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zspolishtypestr', label: '抛光:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'zssymmetrytypestr', label: '对称:' },
+                { prop: 'zscuttypestr', label: '切工:' },
+                { prop: 'zsfluorescencetypestr', label: '荧光:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        case YSZSCategory.Rough: {
+            return [
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'yieldrate', label: '成品率:' },
+                { prop: 'qtydesc', label: '数量描述:' },
+                { prop: 'weightdesc', label: '重量描述:' },
+                { prop: 'ysproductionmode', label: '生产方式:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        default: {
+            return []
+        }
+    }
+})()
 
 const priceColumns: Ermcp.TableColumn[] = [
     { prop: 'stepindex', label: '序号' },

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

@@ -6,7 +6,7 @@
             <el-form-item label="商品名称" prop="WRStandardName">
                 <el-input placeholder="请输入" v-model="formData.WRStandardName" />
             </el-form-item>
-            <el-form-item label="钻石类" prop="YSZSCategory">
+            <el-form-item label="钻石类" prop="YSZSCategory">
                 <el-radio-group v-model="formData.YSZSCategory">
                     <el-radio :label="item.value" v-for="(item, index) in getYSZSCategoryList()" :key="index">
                         {{ item.label }}

+ 41 - 14
src/packages/pc/views/centralize/mine/components/apply/details.vue

@@ -2,6 +2,10 @@
 <template>
     <app-drawer title="详情" :width="960" v-model:show="show">
         <app-table-details title="预售信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">
+            <!-- 钻石类型 -->
+            <template #yszscategory="{ value }">
+                {{ getYSZSCategoryName(value) }}
+            </template>
             <!-- 采购保证金比例 -->
             <template #buymarginvalue="{ value }">
                 {{ parsePercent(value) }}
@@ -37,7 +41,7 @@
 <script lang="ts" setup>
 import { shallowRef, reactive, PropType, onMounted } from 'vue'
 import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
-import { getInOutApplyStatusName, getYSProductionModeName } from '@/constants/presale'
+import { getYSZSCategoryName, getInOutApplyStatusName, getYSProductionModeName, YSZSCategory } from '@/constants/presale'
 import { performanceStore } from '@/stores'
 import { useRequest } from '@/hooks/request'
 import { queryPresaleorderapplyprice } from '@/services/api/presale'
@@ -66,8 +70,8 @@ const { dataList: priceList } = useRequest(queryPresaleorderapplyprice, {
 const details1 = [
     { prop: 'wrstandardname', label: '商品名称:' },
     { prop: 'applytime', label: '申请日期:' },
-    { prop: 'presaleqty', label: '预售总量:' },
-    { prop: 'unitprice', label: '预售价格:' },
+    { prop: 'presaleqty', label: '集采总量:' },
+    { prop: 'yszscategory', label: '钻石类型:' },
     { prop: 'minbuyqty', label: '最小采购单位:' },
     { prop: 'minsuccessqty', label: '最低成团量:' },
     { prop: 'maxbuyqty', label: '最大采购单位:' },
@@ -80,17 +84,40 @@ const details1 = [
     { prop: 'price', label: '集采价格:', entireRow: true },
 ]
 
-const details2 = [
-    { prop: 'zscolortypestr', label: '颜色:' },
-    { prop: 'sizestr', label: '尺寸:' },
-    { prop: 'zsclaritytypestr', label: '净度:' },
-    { prop: 'yieldrate', label: '成品率:' },
-    { prop: 'qtydesc', label: '数量描述:' },
-    { prop: 'weightdesc', label: '重量描述:' },
-    { prop: 'ysproductionmode', label: '生产方式:' },
-    { prop: 'pictureurls', label: '图片:', entireRow: true },
-    { prop: 'remark', label: '备注:', entireRow: true },
-]
+const details2 = (() => {
+    switch (props.selectedRow.yszscategory) {
+        case YSZSCategory.Diamonds: {
+            return [
+                { prop: 'zsshapetypestr', label: '形状:' },
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zspolishtypestr', label: '抛光:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'zssymmetrytypestr', label: '对称:' },
+                { prop: 'zscuttypestr', label: '切工:' },
+                { prop: 'zsfluorescencetypestr', label: '荧光:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        case YSZSCategory.Rough: {
+            return [
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'yieldrate', label: '成品率:' },
+                { prop: 'qtydesc', label: '数量描述:' },
+                { prop: 'weightdesc', label: '重量描述:' },
+                { prop: 'ysproductionmode', label: '生产方式:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        default: {
+            return []
+        }
+    }
+})()
 
 const priceColumns: Ermcp.TableColumn[] = [
     { prop: 'stepindex', label: '序号' },

+ 40 - 13
src/packages/pc/views/centralize/mine/components/details/index.vue

@@ -2,6 +2,10 @@
 <template>
     <app-drawer class="g-details" title="详情" :width="960" v-model:show="show">
         <app-table-details title="预售信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">
+            <!-- 钻石类型 -->
+            <template #yszscategory="{ value }">
+                {{ getYSZSCategoryName(value) }}
+            </template>
             <!-- 采购保证金比例 -->
             <template #buymarginvalue="{ value }">
                 {{ parsePercent(value) }}
@@ -45,8 +49,8 @@
 <script lang="ts" setup>
 import { shallowRef, reactive, PropType, onMounted } from 'vue'
 import { ElMessage } from 'element-plus'
-import { getFileUrl, parsePercent,handleNumberValue } from '@/filters'
-import { getWRPresaleStatusName, getYSProductionModeName } from '@/constants/presale'
+import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
+import { getYSZSCategoryName, getWRPresaleStatusName, getYSProductionModeName, YSZSCategory } from '@/constants/presale'
 import { useRequest } from '@/hooks/request'
 import { performanceStore } from '@/stores'
 import { queryGZMyPresell, queryPresaleorderapplyprice } from '@/services/api/presale'
@@ -100,17 +104,40 @@ const details1 = [
     { prop: 'price', label: '集采价格:', entireRow: true },
 ]
 
-const details2 = [
-    { prop: 'zscolortypestr', label: '颜色:' },
-    { prop: 'sizestr', label: '尺寸:' },
-    { prop: 'zsclaritytypestr', label: '净度:' },
-    { prop: 'yieldrate', label: '成品率:' },
-    { prop: 'qtydesc', label: '数量描述:' },
-    { prop: 'weightdesc', label: '重量描述:' },
-    { prop: 'ysproductionmode', label: '生产方式:' },
-    { prop: 'pictureurls', label: '图片:', entireRow: true },
-    { prop: 'remark', label: '备注:', entireRow: true },
-]
+const details2 = (() => {
+    switch (props.selectedRow.yszscategory) {
+        case YSZSCategory.Diamonds: {
+            return [
+                { prop: 'zsshapetypestr', label: '形状:' },
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zspolishtypestr', label: '抛光:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'zssymmetrytypestr', label: '对称:' },
+                { prop: 'zscuttypestr', label: '切工:' },
+                { prop: 'zsfluorescencetypestr', label: '荧光:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        case YSZSCategory.Rough: {
+            return [
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'yieldrate', label: '成品率:' },
+                { prop: 'qtydesc', label: '数量描述:' },
+                { prop: 'weightdesc', label: '重量描述:' },
+                { prop: 'ysproductionmode', label: '生产方式:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        default: {
+            return []
+        }
+    }
+})()
 
 const columns: Ermcp.TableColumn[] = [
     { prop: 'customername', label: '采购方' },

+ 47 - 13
src/packages/pc/views/centralize/partake/components/details/index.vue

@@ -1,11 +1,19 @@
 <!-- 集采交易-我参与的预售-详情 -->
 <template>
     <app-drawer title="详情" :width="960" v-model:show="show">
-        <app-table-details title="集采信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">
+        <app-table-details title="集采信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">、
+            <!-- 钻石类型 -->
+            <template #yszscategory="{ value }">
+                {{ getYSZSCategoryName(value) }}
+            </template>
             <!-- 采购保证金比例 -->
             <template #marginvalue="{ value }">
                 {{ parsePercent(value) }}
             </template>
+            <!-- 履约方式 -->
+            <template #performancetemplateid="{ value }">
+                <app-performance-rule :item="getPerformanceTemplateById(value)" />
+            </template>
         </app-table-details>
         <app-table-details title="钻石参考信息" :label-width="140" :data="selectedRow" :cell-props="details2" :column="2">
             <!-- 生产方式 -->
@@ -25,9 +33,11 @@
 <script lang="ts" setup>
 import { shallowRef, reactive, PropType, onMounted } from 'vue'
 import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
-import { getYSProductionModeName } from '@/constants/presale'
+import { getYSZSCategoryName, getYSProductionModeName, YSZSCategory } from '@/constants/presale'
+import { performanceStore } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
+import AppPerformanceRule from '@pc/components/modules/performance-rule/index.vue'
 
 const props = defineProps({
     selectedRow: {
@@ -36,6 +46,7 @@ const props = defineProps({
     },
 })
 
+const { getPerformanceTemplateById } = performanceStore.actions
 const show = shallowRef(true)
 const imageUrl = reactive<string[]>([])
 
@@ -52,17 +63,40 @@ const details1 = [
     { prop: 'performancetemplateid', label: '履约方式:', entireRow: true },
 ]
 
-const details2 = [
-    { prop: 'zscolortypestr', label: '颜色:' },
-    { prop: 'sizestr', label: '尺寸:' },
-    { prop: 'zsclaritytypestr', label: '净度:' },
-    { prop: 'yieldrate', label: '成品率:' },
-    { prop: 'qtydesc', label: '数量描述:' },
-    { prop: 'weightdesc', label: '重量描述:' },
-    { prop: 'ysproductionmode', label: '生产方式:' },
-    { prop: 'pictureurls', label: '图片:', entireRow: true },
-    { prop: 'remark', label: '备注:', entireRow: true },
-]
+const details2 = (() => {
+    switch (props.selectedRow.yszscategory) {
+        case YSZSCategory.Diamonds: {
+            return [
+                { prop: 'zsshapetypestr', label: '形状:' },
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zspolishtypestr', label: '抛光:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'zssymmetrytypestr', label: '对称:' },
+                { prop: 'zscuttypestr', label: '切工:' },
+                { prop: 'zsfluorescencetypestr', label: '荧光:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        case YSZSCategory.Rough: {
+            return [
+                { prop: 'zscolortypestr', label: '颜色:' },
+                { prop: 'sizestr', label: '尺寸:' },
+                { prop: 'zsclaritytypestr', label: '净度:' },
+                { prop: 'yieldrate', label: '成品率:' },
+                { prop: 'qtydesc', label: '数量描述:' },
+                { prop: 'weightdesc', label: '重量描述:' },
+                { prop: 'ysproductionmode', label: '生产方式:' },
+                { prop: 'pictureurls', label: '图片:', entireRow: true },
+                { prop: 'remark', label: '备注:', entireRow: true },
+            ]
+        }
+        default: {
+            return []
+        }
+    }
+})()
 
 onMounted(() => {
     const images = props.selectedRow.pictureurls.split(',')

+ 7 - 0
src/packages/pc/views/presale/partake/components/details/index.vue

@@ -6,6 +6,10 @@
             <template #marginvalue="{ value }">
                 {{ parsePercent(value) }}
             </template>
+            <!-- 履约方式 -->
+            <template #performancetemplateid="{ value }">
+                <app-performance-rule :item="getPerformanceTemplateById(value)" />
+            </template>
         </app-table-details>
         <app-table-details title="钻石参考信息" :label-width="140" :data="selectedRow" :cell-props="details2" :column="2">
             <!-- 生产方式 -->
@@ -26,8 +30,10 @@
 import { shallowRef, reactive, PropType, onMounted } from 'vue'
 import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
 import { getYSProductionModeName } from '@/constants/presale'
+import { performanceStore } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
+import AppPerformanceRule from '@pc/components/modules/performance-rule/index.vue'
 
 const props = defineProps({
     selectedRow: {
@@ -36,6 +42,7 @@ const props = defineProps({
     },
 })
 
+const { getPerformanceTemplateById } = performanceStore.actions
 const show = shallowRef(true)
 const imageUrl = reactive<string[]>([])