浏览代码

字典调整

lipenghui 5 月之前
父节点
当前提交
348c483867

+ 3 - 0
src/api/supplier/product/supplierdetail.ts

@@ -56,3 +56,6 @@ export const exportSupplierProduct = (params) => {
     params
   })
 }
+export const getAll= async () =>{
+  return await request.get({ url: `/supplier/product/all` })
+}

+ 6 - 2
src/views/supplier/certificate/CertificateForm.vue

@@ -40,7 +40,7 @@
     </template>
   </Dialog>
 </template>
-<script setup lang="ts">
+<script lang="ts" setup>
 import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
 import { CertificateApi, CertificateVO } from '@/api/supplier/certificate'
 import {SupplierVO} from "@/api/supplier/base";
@@ -103,7 +103,11 @@ const submitForm = async () => {
     // const supplier = data.supplierId
     // data.supplierId = supplier.id
     // data.supplierName = supplier.name
-    data.urls = data.urls.join(",")
+    if (data.urls) {
+      if (Array.isArray(data.urls)) {
+        data.urls = data.urls.join(",")
+      }
+    }
     if (formType.value === 'create') {
       await CertificateApi.createCertificate(data)
       message.success(t('common.createSuccess'))

+ 4 - 4
src/views/supplier/connect/ConnectRecordForm.vue

@@ -13,7 +13,7 @@
             v-for="dict in supplierList"
             :key="dict.id"
             :label="dict.name"
-            :value="dict"
+            :value="dict.id"
           />
         </el-select>
       </el-form-item>
@@ -103,9 +103,9 @@ const submitForm = async () => {
   formLoading.value = true
   try {
     const data = formData.value as unknown as ConnectRecordVO
-    const supplier = data.supplierId
-    data.supplierId = supplier.id
-    data.supplierName = supplier.name
+    // const supplier = data.supplierId
+    // data.supplierId = supplier.id
+    // data.supplierName = supplier.name
     if (formType.value === 'create') {
       await ConnectRecordApi.createConnectRecord(data)
       message.success(t('common.createSuccess'))

+ 11 - 3
src/views/supplier/connect/index.vue

@@ -61,7 +61,11 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="供应商" align="center" prop="supplierName" />
+      <el-table-column label="供应商" align="center" prop="supplierId" >
+        <template #default="scope">
+          <span>{{ supplierList.find((item) => item.id === scope.row.supplierId)?.name }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="我方联系人姓名" align="center" prop="username" />
       <el-table-column label="供应商联系人姓名" align="center" prop="contactName" />
       <el-table-column label="联系原因" align="center" prop="reason" />
@@ -111,6 +115,8 @@ import { dateFormatter } from '@/utils/formatTime'
 import download from '@/utils/download'
 import { ConnectRecordApi, ConnectRecordVO } from '@/api/supplier/connect/index'
 import ConnectRecordForm from './ConnectRecordForm.vue'
+import {SupplierVO} from "@/api/supplier/base";
+import * as SupplierBaseApi from "@/api/supplier/base";
 
 /** 供应商联系记录 列表 */
 defineOptions({ name: 'ConnectRecord' })
@@ -121,6 +127,7 @@ const { t } = useI18n() // 国际化
 const loading = ref(true) // 列表的加载中
 const list = ref<ConnectRecordVO[]>([]) // 列表的数据
 const total = ref(0) // 列表的总页数
+const supplierList = ref([] as SupplierVO[])
 const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
@@ -196,7 +203,8 @@ const handleExport = async () => {
 }
 
 /** 初始化 **/
-onMounted(() => {
-  getList()
+onMounted(async () => {
+  await getList()
+  supplierList.value = await SupplierBaseApi.Api.getAll()
 })
 </script>

+ 16 - 5
src/views/supplier/contact/ContactForm.vue

@@ -13,7 +13,7 @@
             v-for="dict in supplierList"
             :key="dict.id"
             :label="dict.name"
-            :value="dict"
+            :value="dict.id"
           />
         </el-select>
       </el-form-item>
@@ -33,7 +33,15 @@
       <!--        <el-input v-model="formData.productIds" placeholder="请输入联系人负责的产品/业务模块" />-->
       <!--      </el-form-item>-->
       <el-form-item label="产品业务模块" prop="productIds">
-        <el-input v-model="formData.productIds" placeholder="请输入联系人负责的产品/业务模块" />
+<!--        <el-input v-model="formData.productIds" placeholder="请输入联系人负责的产品/业务模块" />-->
+        <el-select v-model="formData.productIds" filterable placeholder="请选择">
+          <el-option
+            v-for="dict in productList"
+            :key="dict.id"
+            :label="dict.name"
+            :value="dict.id"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="备注" prop="remark">
         <el-input type="textarea" v-model="formData.remark" placeholder="请输入备注" />
@@ -50,6 +58,7 @@ import { ContactApi, ContactVO } from '@/api/supplier/contact'
 import {SupplierVO} from "@/api/supplier/base";
 import * as SupplierBaseApi from "@/api/supplier/base";
 import {FormRules} from "element-plus";
+import * as SupplierDetailApi from '@/api/supplier/product/supplierdetail'
 
 /** 供应商联系人 表单 */
 defineOptions({ name: 'ContactForm' })
@@ -57,6 +66,7 @@ defineOptions({ name: 'ContactForm' })
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 const supplierList = ref([] as SupplierVO[])
+const productList = ref([] as SupplierProductVo[])
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogTitle = ref('') // 弹窗的标题
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
@@ -110,6 +120,7 @@ const open = async (type: string, id?: number) => {
     }
   }
   supplierList.value = await SupplierBaseApi.Api.getAll()
+  productList.value = await SupplierDetailApi.getAll()
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
@@ -122,9 +133,9 @@ const submitForm = async () => {
   formLoading.value = true
   try {
     const data = formData.value as unknown as ContactVO
-    const supplier = data.supplierId;
-    data.supplierId = supplier.id
-    data.supplierName = supplier.name
+    // const supplier = data.supplierId;
+    // data.supplierId = supplier.id
+    // data.supplierName = supplier.name
     if (formType.value === 'create') {
       await ContactApi.createContact(data)
       message.success(t('common.createSuccess'))

+ 20 - 6
src/views/supplier/contact/index.vue

@@ -60,13 +60,21 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="供应商" align="center" prop="supplierName" />
+      <el-table-column label="供应商" align="center" prop="supplierId" >
+        <template #default="scope">
+          <span>{{ supplierList.find((item) => item.id === scope.row.supplierId)?.name }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="姓名" align="center" prop="name" />
       <el-table-column label="职务" align="center" prop="position" />
       <el-table-column label="电话" align="center" prop="telephone" />
       <el-table-column label="邮箱" align="center" prop="email" />
-      <el-table-column label="联系人负责的产品/业务模块" align="center" prop="productIds" />
-      <el-table-column label="联系人负责的产品/业务模块" align="center" prop="productNames" />
+      <el-table-column label="联系人负责的产品/业务模块" align="center" prop="productIds" >
+        <template #default="scope">
+          <span>{{ productList.find((item) => item.id === scope.row.productIds)?.name }}</span>
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="联系人负责的产品/业务模块" align="center" prop="productNames" />-->
       <el-table-column label="备注" align="center" prop="remark" />
       <el-table-column
         label="创建时间"
@@ -114,13 +122,17 @@ import { dateFormatter } from '@/utils/formatTime'
 import download from '@/utils/download'
 import { ContactApi, ContactVO } from '@/api/supplier/contact'
 import ContactForm from './ContactForm.vue'
+import {SupplierVO} from "@/api/supplier/base";
+import * as SupplierBaseApi from "@/api/supplier/base";
+import * as SupplierDetailApi from "@/api/supplier/product/supplierdetail";
 
 /** 供应商联系人 列表 */
 defineOptions({ name: 'SupplierContact' })
 
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
-
+const supplierList = ref([] as SupplierVO[])
+const productList = ref([] as SupplierProductVo[])
 const loading = ref(true) // 列表的加载中
 const list = ref<ContactVO[]>([]) // 列表的数据
 const total = ref(0) // 列表的总页数
@@ -200,7 +212,9 @@ const handleExport = async () => {
 }
 
 /** 初始化 **/
-onMounted(() => {
-  getList()
+onMounted(async () => {
+  await getList()
+  supplierList.value = await SupplierBaseApi.Api.getAll()
+  productList.value = await SupplierDetailApi.getAll()
 })
 </script>

+ 18 - 7
src/views/supplier/coreproduct/CoreProductForm.vue

@@ -13,15 +13,23 @@
             v-for="dict in supplierList"
             :key="dict.id"
             :label="dict.name"
-            :value="dict"
+            :value="dict.id"
           />
         </el-select>
       </el-form-item>
 <!--      <el-form-item label="产品" prop="productId">-->
 <!--        <el-input v-model="formData.productId" placeholder="请输入产品" />-->
 <!--      </el-form-item>-->
-      <el-form-item label="产品名称" prop="productName">
-        <el-input v-model="formData.productName" placeholder="请输入产品名称" />
+      <el-form-item label="产品名称" prop="productId">
+        <!--        <el-input v-model="formData.productIds" placeholder="请输入联系人负责的产品/业务模块" />-->
+        <el-select v-model="formData.productId" filterable placeholder="请选择">
+          <el-option
+            v-for="dict in productList"
+            :key="dict.id"
+            :label="dict.name"
+            :value="dict.id"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="优势介绍" prop="advantage">
         <el-input type="textarea" v-model="formData.advantage" placeholder="请输入优势介绍" />
@@ -38,6 +46,7 @@ import { CoreProductApi, CoreProductVO } from '@/api/supplier/coreproduct'
 import * as SupplierBaseApi from "@/api/supplier/base";
 import {SupplierVO} from "@/api/supplier/base";
 import {FormRules} from "element-plus";
+import * as SupplierDetailApi from "@/api/supplier/product/supplierdetail";
 
 /** 供应商核心产品 表单 */
 defineOptions({ name: 'CoreProductForm' })
@@ -45,6 +54,7 @@ defineOptions({ name: 'CoreProductForm' })
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 const supplierList = ref([] as SupplierVO[])
+const productList = ref([] as SupplierProductVo[])
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogTitle = ref('') // 弹窗的标题
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
@@ -59,7 +69,7 @@ const formData = ref({
 })
 const formRules = reactive<FormRules>({
   supplierId: [{ required: true, message: '供应商不能为空', trigger: 'blur' }],
-  productName: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
+  productId: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
 })
 const formRef = ref() // 表单 Ref
 
@@ -79,6 +89,7 @@ const open = async (type: string, id?: number) => {
     }
   }
   supplierList.value = await SupplierBaseApi.Api.getAll()
+  productList.value = await SupplierDetailApi.getAll()
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
@@ -91,9 +102,9 @@ const submitForm = async () => {
   formLoading.value = true
   try {
     const data = formData.value as unknown as CoreProductVO
-    const supplier = data.supplierId;
-    data.supplierId = supplier.id
-    data.supplierName = supplier.name
+    // const supplier = data.supplierId;
+    // data.supplierId = supplier.id
+    // data.supplierName = supplier.name
     if (formType.value === 'create') {
       await CoreProductApi.createCoreProduct(data)
       message.success(t('common.createSuccess'))

+ 19 - 4
src/views/supplier/coreproduct/index.vue

@@ -53,8 +53,16 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="供应商" align="center" prop="supplierName" />
-      <el-table-column label="产品名称" align="center" prop="productName" />
+      <el-table-column label="供应商" align="center" prop="supplierId" >
+        <template #default="scope">
+          <span>{{ supplierList.find((item) => item.id === scope.row.supplierId)?.name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="产品名称" align="center" prop="productId" >
+        <template #default="scope">
+          <span>{{ productList.find((item) => item.id === scope.row.productId)?.name }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="优势介绍" align="center" prop="advantage" />
       <el-table-column
         label="创建时间"
@@ -102,6 +110,9 @@ import { dateFormatter } from '@/utils/formatTime'
 import download from '@/utils/download'
 import { CoreProductApi, CoreProductVO } from '@/api/supplier/coreproduct'
 import CoreProductForm from './CoreProductForm.vue'
+import * as SupplierBaseApi from "@/api/supplier/base";
+import {SupplierVO} from "@/api/supplier/base";
+import * as SupplierDetailApi from "@/api/supplier/product/supplierdetail";
 
 /** 供应商核心产品 列表 */
 defineOptions({ name: 'CoreProduct' })
@@ -111,6 +122,8 @@ const { t } = useI18n() // 国际化
 
 const loading = ref(true) // 列表的加载中
 const list = ref<CoreProductVO[]>([]) // 列表的数据
+const supplierList = ref([] as SupplierVO[])
+const productList = ref([] as SupplierProductVo[])
 const total = ref(0) // 列表的总页数
 const queryParams = reactive({
   pageNo: 1,
@@ -183,7 +196,9 @@ const handleExport = async () => {
 }
 
 /** 初始化 **/
-onMounted(() => {
-  getList()
+onMounted(async () => {
+  await getList()
+  supplierList.value = await SupplierBaseApi.Api.getAll()
+  productList.value = await SupplierDetailApi.getAll()
 })
 </script>