From ec9f12898d3fa6c57485c9f43af15203bb867639 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期五, 14 十一月 2025 17:28:09 +0800
Subject: [PATCH] 修改

---
 src/views/work/sealManagement/apply/index.vue                                          |    7 
 src/api/productAndServe/index.js                                                       |   34 ++++++
 src/views/work/qualityManage/productAndServe/finalInspecte/index.vue                   |   67 +++++++-----
 src/views/work/qualityManage/productAndServe/processInspecte/index.vue                 |   67 +++++++-----
 src/views/work/qualityManage/productAndServe/finalInspecte/components/editDialog.vue   |   45 ++++----
 src/views/work/qualityManage/productAndServe/processInspecte/components/editDialog.vue |   25 ++--
 6 files changed, 151 insertions(+), 94 deletions(-)

diff --git a/src/api/productAndServe/index.js b/src/api/productAndServe/index.js
new file mode 100644
index 0000000..42148e0
--- /dev/null
+++ b/src/api/productAndServe/index.js
@@ -0,0 +1,34 @@
+import request from "@/utils/request";
+
+//采购申请
+export function getInspection(params) {
+    return request({
+        url: '/process/inspection/list',
+        method: 'get',
+        params: params
+    })
+}
+
+export function addInspection(data) {
+    return request({
+        url: '/process/inspection/insert',
+        method: 'post',
+        data: data
+    })
+}
+
+export function editInspection(params) {
+    return request({
+        url: `/process/inspection/update`,
+        method: 'post',
+        data: params
+    })
+}
+
+export function delInspection(data) {
+    return request({
+        url: `/process/inspection/deleted?inspectionId=${data}`,
+        method: 'get'
+    })
+}
+
diff --git a/src/views/work/qualityManage/productAndServe/finalInspecte/components/editDialog.vue b/src/views/work/qualityManage/productAndServe/finalInspecte/components/editDialog.vue
index 7bc6ee3..0c09e07 100644
--- a/src/views/work/qualityManage/productAndServe/finalInspecte/components/editDialog.vue
+++ b/src/views/work/qualityManage/productAndServe/finalInspecte/components/editDialog.vue
@@ -19,25 +19,25 @@
             </el-option>
           </el-select>
         </el-form-item>
-<!--        <el-form-item label="所属部门:" prop="deptId">-->
-<!--          <el-select v-model="state.form.deptId" placeholder="请选择" style="width: 100%" clearable>-->
-<!--            <el-option-->
-<!--                v-for="item in state.deptList"-->
-<!--                :key="item.deptId"-->
-<!--                :label="item.deptName"-->
-<!--                :value="item.deptId">-->
-<!--            </el-option>-->
-<!--          </el-select>-->
-<!--        </el-form-item>-->
+        <!--        <el-form-item label="所属部门:" prop="deptId">-->
+        <!--          <el-select v-model="state.form.deptId" placeholder="请选择" style="width: 100%" clearable>-->
+        <!--            <el-option-->
+        <!--                v-for="item in state.deptList"-->
+        <!--                :key="item.deptId"-->
+        <!--                :label="item.deptName"-->
+        <!--                :value="item.deptId">-->
+        <!--            </el-option>-->
+        <!--          </el-select>-->
+        <!--        </el-form-item>-->
 
-        <el-form-item label="名称:" prop="templateName">
-          <el-input v-model.trim="state.form.templateName" :disabled="state.title =='查看'" placeholder="名称"></el-input>
+        <el-form-item label="名称:" prop="fileName">
+          <el-input v-model.trim="state.form.fileName" :disabled="state.title =='查看'" placeholder="名称"></el-input>
         </el-form-item>
         <el-form-item label="文件:" prop="filePath">
-          <el-upload accept=".doc,.docx" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
+          <el-upload accept=".doc,.docx,.pdf,.jpg,.jpeg,.png" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
             <el-button type="primary">点击上传</el-button>
             <template #tip>
-              <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于5M,最多可上传1份</div>
+              <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.jpg、.jpeg、.png格式,尺寸小于5M,最多可上传1份</div>
             </template>
           </el-upload>
         </el-form-item>
@@ -62,6 +62,7 @@
 import {delPic} from "@/api/onlineEducation/banner";
 import {saveStandardTemp, updateStandardTemp} from "@/api/standardSys/standardSys";
 import {getDept} from "@/api/qualityObjectives/object";
+import {addInspection, editInspection} from "@/api/productAndServe";
 
 const emit = defineEmits(["getList"]);
 const dialogVisible = ref(false)
@@ -77,16 +78,16 @@
   title: '',
   form: {
     id: null,
-    templateName: '',
+    fileName: '',
     filePath: '',
     format: '',
     companyId: null,
     deptId:null,
-    templateType: 2
+   type:2
   },
   formRules:{
     companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
-    templateName: [{ required: true, message: '请输入名称', trigger: 'blur' }],
+    fileName: [{ required: true, message: '请输入名称', trigger: 'blur' }],
     filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }],
     deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
   },
@@ -120,7 +121,7 @@
     if(value.filePath) {
       const obj = {
         url: value.filePath,
-        name: '文件'
+        name: value.fileName
       }
       state.fileList = [obj]
     }
@@ -148,7 +149,7 @@
   if(valid){
     if(state.title == '新增'){
       const {id,...data} = state.form
-      const res = await saveStandardTemp(data)
+      const res = await addInspection(data)
       if(res.code == 200){
         ElMessage.success(res.message)
         emit('getList')
@@ -158,7 +159,7 @@
         ElMessage.warning(res.message)
       }
     }else{
-      const res = await updateStandardTemp(state.form)
+      const res = await editInspection(state.form)
       if(res.code == 200){
         ElMessage.success(res.message)
         emit('getList')
@@ -223,12 +224,12 @@
 const handleClose = () => {
   state.form = {
     id: null,
-    templateName: '',
+    fileName: '',
     filePath: '',
     format: '',
     companyId: null,
     deptId:null,
-    templateType: 2
+   type:2
   }
   state.fileList = []
   superRef.value.clearValidate();
diff --git a/src/views/work/qualityManage/productAndServe/finalInspecte/index.vue b/src/views/work/qualityManage/productAndServe/finalInspecte/index.vue
index 6e6e2f8..11b20aa 100644
--- a/src/views/work/qualityManage/productAndServe/finalInspecte/index.vue
+++ b/src/views/work/qualityManage/productAndServe/finalInspecte/index.vue
@@ -29,10 +29,10 @@
     <!-- 表格数据 -->
     <el-table v-loading="loading" :data="dataList" :border="true">
       <el-table-column label="序号" type="index" align="center" width="80"/>
-      <el-table-column label="文件名称" prop="templateName" header-align="center" align="left"/>
+      <el-table-column label="文件名称" prop="fileName" header-align="center" align="left"/>
       <el-table-column label="文件" header-align="center" align="left">
         <template #default="scope">
-          <el-link type="primary" @click="openFile(scope.row.filePath)">{{scope.row.templateName + '模板' + scope.row.format}}</el-link>
+          <el-link type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName  +'.'+ scope.row.format}}</el-link>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
@@ -65,6 +65,7 @@
 import useUserStore from "@/store/modules/user";
 import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys";
 import { renderAsync } from "docx-preview";
+import {delInspection, getInspection} from "@/api/productAndServe";
 const userStore = useUserStore()
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
@@ -74,7 +75,7 @@
     pageNum: 1,
     pageSize: 10,
     companyId: null,
-    templateType: 10
+    type:2
   },
   total: 0,
   dataList: [],
@@ -107,14 +108,14 @@
       console.log('取消预览')
     });
     return
-  }
-  try {
-    // 1. 获取文件
-    const response = await fetch(import.meta.env.VITE_APP_BASE_API + '/' + path);
-    const arrayBuffer = await response.arrayBuffer();
-    // 2. 创建新窗口
-    const win = window.open('', '_blank')
-    win.document.write(`
+  }else if(ext === 'docx'){
+    try {
+      // 1. 获取文件
+      const response = await fetch(import.meta.env.VITE_APP_BASE_API + '/' + path);
+      const arrayBuffer = await response.arrayBuffer();
+      // 2. 创建新窗口
+      const win = window.open('', '_blank')
+      win.document.write(`
       <!DOCTYPE html>
       <html>
         <head>
@@ -129,25 +130,35 @@
         </body>
       </html>
     `);
-    // 3. 渲染 DOCX
-    await renderAsync(arrayBuffer, win.document.getElementById('container'));
+      // 3. 渲染 DOCX
+      await renderAsync(arrayBuffer, win.document.getElementById('container'));
 
-  } catch (error) {
-    console.error('预览失败:', error);
-    alert(`预览失败: ${error.message}`);
+    } catch (error) {
+      console.error('预览失败:', error);
+      alert(`预览失败: ${error.message}`);
+    }
+  }else {
+    window.open(`${import.meta.env.VITE_APP_BASE_API}/${path}`, '_blank');
   }
+
 }
 const getList = async () => {
-  // loading.value = true
-  // const res = await getStandardTemp(data.queryParams)
-  // if(res.code == 200){
-  //   console.log(res.data,'data')
-  //   data.dataList = res.data.list || []
-  //   data.total = res.data.total
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
-  // loading.value = false
+  loading.value = true
+  const res = await getInspection(data.queryParams)
+  if(res.code == 200){
+    console.log(res.data,'data')
+    data.dataList = res.data.list || []
+    data.dataList = data.dataList.map(item => {
+      return {
+        ...item,
+        format: item.filePath ? item.filePath.split('.').pop().toLowerCase():''
+      }
+    })
+    data.total = res.data.total
+  }else{
+    ElMessage.warning(res.message)
+  }
+  loading.value = false
 }
 
 const getCompanyList = async ()=>{
@@ -178,7 +189,7 @@
     pageNum: 1,
     pageSize: 10,
     companyId: null,
-    templateType: 10
+    type:2
   }
   await getCompanyList()
   await getList()
@@ -193,7 +204,7 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await delStandardTemp({standardizedTemplateId: val.id})
+        const res = await delInspection(val.id)
         if(res.code == 200){
           ElMessage.success('数据删除成功')
           await getList()
diff --git a/src/views/work/qualityManage/productAndServe/processInspecte/components/editDialog.vue b/src/views/work/qualityManage/productAndServe/processInspecte/components/editDialog.vue
index 7bc6ee3..7a41fb3 100644
--- a/src/views/work/qualityManage/productAndServe/processInspecte/components/editDialog.vue
+++ b/src/views/work/qualityManage/productAndServe/processInspecte/components/editDialog.vue
@@ -30,14 +30,14 @@
 <!--          </el-select>-->
 <!--        </el-form-item>-->
 
-        <el-form-item label="名称:" prop="templateName">
-          <el-input v-model.trim="state.form.templateName" :disabled="state.title =='查看'" placeholder="名称"></el-input>
+        <el-form-item label="名称:" prop="fileName">
+          <el-input v-model.trim="state.form.fileName" :disabled="state.title =='查看'" placeholder="名称"></el-input>
         </el-form-item>
         <el-form-item label="文件:" prop="filePath">
-          <el-upload accept=".doc,.docx" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
+          <el-upload accept=".doc,.docx,.pdf,.jpg,.jpeg,.png" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >
             <el-button type="primary">点击上传</el-button>
             <template #tip>
-              <div class="el-upload__tip">支持上传.doc、.docx格式文档,尺寸小于5M,最多可上传1份</div>
+              <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.jpg、.jpeg、.png格式,尺寸小于5M,最多可上传1份</div>
             </template>
           </el-upload>
         </el-form-item>
@@ -62,6 +62,7 @@
 import {delPic} from "@/api/onlineEducation/banner";
 import {saveStandardTemp, updateStandardTemp} from "@/api/standardSys/standardSys";
 import {getDept} from "@/api/qualityObjectives/object";
+import {addInspection, editInspection} from "@/api/productAndServe";
 
 const emit = defineEmits(["getList"]);
 const dialogVisible = ref(false)
@@ -77,16 +78,16 @@
   title: '',
   form: {
     id: null,
-    templateName: '',
+    fileName: '',
     filePath: '',
     format: '',
     companyId: null,
     deptId:null,
-    templateType: 2
+    type: 1
   },
   formRules:{
     companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
-    templateName: [{ required: true, message: '请输入名称', trigger: 'blur' }],
+    fileName: [{ required: true, message: '请输入名称', trigger: 'blur' }],
     filePath: [{ required: true, validator: checkFiles, trigger: 'blur' }],
     deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
   },
@@ -120,7 +121,7 @@
     if(value.filePath) {
       const obj = {
         url: value.filePath,
-        name: '文件'
+        name: value.fileName
       }
       state.fileList = [obj]
     }
@@ -148,7 +149,7 @@
   if(valid){
     if(state.title == '新增'){
       const {id,...data} = state.form
-      const res = await saveStandardTemp(data)
+      const res = await addInspection(data)
       if(res.code == 200){
         ElMessage.success(res.message)
         emit('getList')
@@ -158,7 +159,7 @@
         ElMessage.warning(res.message)
       }
     }else{
-      const res = await updateStandardTemp(state.form)
+      const res = await editInspection(state.form)
       if(res.code == 200){
         ElMessage.success(res.message)
         emit('getList')
@@ -223,12 +224,12 @@
 const handleClose = () => {
   state.form = {
     id: null,
-    templateName: '',
+    fileName: '',
     filePath: '',
     format: '',
     companyId: null,
     deptId:null,
-    templateType: 2
+    type: 1
   }
   state.fileList = []
   superRef.value.clearValidate();
diff --git a/src/views/work/qualityManage/productAndServe/processInspecte/index.vue b/src/views/work/qualityManage/productAndServe/processInspecte/index.vue
index 6e6e2f8..a12509b 100644
--- a/src/views/work/qualityManage/productAndServe/processInspecte/index.vue
+++ b/src/views/work/qualityManage/productAndServe/processInspecte/index.vue
@@ -29,10 +29,10 @@
     <!-- 表格数据 -->
     <el-table v-loading="loading" :data="dataList" :border="true">
       <el-table-column label="序号" type="index" align="center" width="80"/>
-      <el-table-column label="文件名称" prop="templateName" header-align="center" align="left"/>
+      <el-table-column label="文件名称" prop="fileName" header-align="center" align="left"/>
       <el-table-column label="文件" header-align="center" align="left">
         <template #default="scope">
-          <el-link type="primary" @click="openFile(scope.row.filePath)">{{scope.row.templateName + '模板' + scope.row.format}}</el-link>
+          <el-link type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName  +'.'+ scope.row.format}}</el-link>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
@@ -65,6 +65,7 @@
 import useUserStore from "@/store/modules/user";
 import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys";
 import { renderAsync } from "docx-preview";
+import {delInspection, getInspection} from "@/api/productAndServe";
 const userStore = useUserStore()
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
@@ -74,7 +75,7 @@
     pageNum: 1,
     pageSize: 10,
     companyId: null,
-    templateType: 10
+    type: 1
   },
   total: 0,
   dataList: [],
@@ -107,14 +108,14 @@
       console.log('取消预览')
     });
     return
-  }
-  try {
-    // 1. 获取文件
-    const response = await fetch(import.meta.env.VITE_APP_BASE_API + '/' + path);
-    const arrayBuffer = await response.arrayBuffer();
-    // 2. 创建新窗口
-    const win = window.open('', '_blank')
-    win.document.write(`
+  }else if(ext === 'docx'){
+    try {
+      // 1. 获取文件
+      const response = await fetch(import.meta.env.VITE_APP_BASE_API + '/' + path);
+      const arrayBuffer = await response.arrayBuffer();
+      // 2. 创建新窗口
+      const win = window.open('', '_blank')
+      win.document.write(`
       <!DOCTYPE html>
       <html>
         <head>
@@ -129,25 +130,35 @@
         </body>
       </html>
     `);
-    // 3. 渲染 DOCX
-    await renderAsync(arrayBuffer, win.document.getElementById('container'));
+      // 3. 渲染 DOCX
+      await renderAsync(arrayBuffer, win.document.getElementById('container'));
 
-  } catch (error) {
-    console.error('预览失败:', error);
-    alert(`预览失败: ${error.message}`);
+    } catch (error) {
+      console.error('预览失败:', error);
+      alert(`预览失败: ${error.message}`);
+    }
+  }else {
+    window.open(`${import.meta.env.VITE_APP_BASE_API}/${path}`, '_blank');
   }
+
 }
 const getList = async () => {
-  // loading.value = true
-  // const res = await getStandardTemp(data.queryParams)
-  // if(res.code == 200){
-  //   console.log(res.data,'data')
-  //   data.dataList = res.data.list || []
-  //   data.total = res.data.total
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
-  // loading.value = false
+  loading.value = true
+  const res = await getInspection(data.queryParams)
+  if(res.code == 200){
+    console.log(res.data,'data')
+    data.dataList = res.data.list || []
+    data.dataList = data.dataList.map(item => {
+      return {
+        ...item,
+        format: item.filePath ? item.filePath.split('.').pop().toLowerCase():''
+      }
+    })
+    data.total = res.data.total
+  }else{
+    ElMessage.warning(res.message)
+  }
+  loading.value = false
 }
 
 const getCompanyList = async ()=>{
@@ -178,7 +189,7 @@
     pageNum: 1,
     pageSize: 10,
     companyId: null,
-    templateType: 10
+    type: 1
   }
   await getCompanyList()
   await getList()
@@ -193,7 +204,7 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await delStandardTemp({standardizedTemplateId: val.id})
+        const res = await delInspection(val.id)
         if(res.code == 200){
           ElMessage.success('数据删除成功')
           await getList()
diff --git a/src/views/work/sealManagement/apply/index.vue b/src/views/work/sealManagement/apply/index.vue
index 3e70918..e8e6c03 100644
--- a/src/views/work/sealManagement/apply/index.vue
+++ b/src/views/work/sealManagement/apply/index.vue
@@ -47,16 +47,15 @@
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160" >
         <template #default="scope">
-          <div v-if="data.tabName === 'apply'">
+          <div v-if="data.tabName === 'apply' || data.tabName === 'all'">
             <el-button link type="primary"  @click="openDialog('review',scope.row)">查看</el-button>
-            <el-button link type="primary"  @click="openDialog('edit',scope.row)" v-hasPermi="['sealApply:list:edit']">编辑</el-button>
+            <el-button link type="primary" v-if="scope.row.status == 1" @click="openDialog('edit',scope.row)" v-hasPermi="['sealApply:list:edit']">编辑</el-button>
             <el-button link type="danger"  @click="handleDelete(scope.row)" v-hasPermi="['sealApply:list:del']">删除</el-button>
           </div>
-          <div v-else>
+          <div v-if="data.tabName === 'approval'">
             <el-button link type="primary"  @click="openDialog('review',scope.row)">查看</el-button>
             <el-button link type="primary"  @click="openApplyDialog(scope.row)" v-hasPermi="['sealApply:list:apply']">审批</el-button>
           </div>
-
         </template>
       </el-table-column>
     </el-table>

--
Gitblit v1.9.2