From f94b96403234f5927e74f72fc0cbc65d7b426019 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 10 十二月 2025 14:52:50 +0800
Subject: [PATCH] 修改
---
src/views/work/qualityManage/productAndServe/processInspecte/index.vue | 138 ++++++++++++++++++++++++++++++++++------------
1 files changed, 102 insertions(+), 36 deletions(-)
diff --git a/src/views/work/qualityManage/productAndServe/processInspecte/index.vue b/src/views/work/qualityManage/productAndServe/processInspecte/index.vue
index 6e6e2f8..bf7cfd2 100644
--- a/src/views/work/qualityManage/productAndServe/processInspecte/index.vue
+++ b/src/views/work/qualityManage/productAndServe/processInspecte/index.vue
@@ -8,14 +8,29 @@
plain
icon="Plus"
@click="openDialog('add',{})"
+ v-hasPermi="['processInspecte:list:edit']"
>新增</el-button>
</el-form-item>
<el-form-item v-if="isAdmin" label="单位:" >
- <el-select v-model="data.queryParams.companyId" placeholder="请选择" clearable>
+ <el-select v-model="queryParams.companyId" placeholder="请选择" clearable @change="getProjects">
<el-option
v-for="item in companyList"
:key="item.id"
:label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item style="margin-left: 15px" label="项目名称:">
+ <el-select v-model="queryParams.itemId"
+ filterable
+ placeholder="请选择"
+ clearable style="width: 100%"
+ >
+ <el-option
+ v-for="item in projectList"
+ :key="item.id"
+ :label="item.itemName"
:value="item.id">
</el-option>
</el-select>
@@ -29,17 +44,17 @@
<!-- 表格数据 -->
<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" >
<template #default="scope">
- <el-button link type="primary" @click="downloadFile(scope.row.filePath)">下载</el-button>
- <el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
- <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
+ <el-button link type="primary" @click="downloadFile(scope.row.filePath)" v-hasPermi="['processInspecte:list:edit']">下载</el-button>
+ <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['processInspecte:list:edit']">编辑</el-button>
+ <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['processInspecte:list:del']">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -65,6 +80,8 @@
import useUserStore from "@/store/modules/user";
import {getStandardTemp,delStandardTemp} from "@/api/standardSys/standardSys";
import { renderAsync } from "docx-preview";
+import {delInspection, getInspection} from "@/api/productAndServe";
+import {getProductSet} from "@/api/selfProblems/productFile";
const userStore = useUserStore()
const { proxy } = getCurrentInstance();
const loading = ref(false);
@@ -74,15 +91,18 @@
pageNum: 1,
pageSize: 10,
companyId: null,
- templateType: 10
+ type: 1,
+ itemId: null
},
total: 0,
dataList: [],
companyList: [],
- isAdmin: false
+ projectList: [],
+ isAdmin: false,
+ userId: null,
});
-const { queryParams, total, dataList,companyList, isAdmin } = toRefs(data);
+const { queryParams, total, dataList,companyList, isAdmin, projectList } = toRefs(data);
const userInfo = ref()
onMounted(async ()=>{
if(userStore.roles.includes('admin')){
@@ -92,7 +112,9 @@
data.isAdmin = false
data.queryParams.companyId = userStore.companyId
}
+ data.userId = userStore.id
await getList()
+ await getProjectList()
})
onUnmounted(()=>{
@@ -101,20 +123,20 @@
const openFile = async(path)=>{
const ext = path.split('.').pop().toLowerCase();
if (ext === 'doc') {
- ElMessageBox.confirm('暂不支持线上预览.doc文件,是否下载查看?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => {
+ ElMessageBox.confirm('暂不支持线上预览.doc、.xls、.xlsx文件,是否下载查看?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => {
window.open(`${import.meta.env.VITE_APP_BASE_API}/${path}`, '_blank');
}).catch(() => {
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,26 +151,59 @@
</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){
+ 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 getProjectList = async () => {
+ const param = {
+ companyId: data.queryParams.companyId,
+ userId: data.isAdmin ? null : data.userId
+ }
+ const res = await getProductSet(param);
+ if(res.code === 200){
+ data.projectList = res.data
+ // if(res.data && res.data.length >0 ){
+ // data.queryParams.itemId = res.data[0].id
+ // }
+ }else{
+ ElMessage.warning(res.message)
+ }
+
+}
+
+const getProjects = async ()=>{
+ data.projectList = []
+ data.queryParams.itemId = null
+ await getProjectList()
+}
+
const getCompanyList = async ()=>{
const queryParams = {
@@ -169,7 +224,17 @@
}
const openDialog = (type, value) => {
- dialogRef.value.openDialog(type, value, data.queryParams.companyId, data.isAdmin, data.companyList);
+ if(type === 'add' ){
+ if(!data.queryParams.companyId){
+ ElMessage.warning('请选择单位')
+ return
+ }
+ if(!data.queryParams.itemId){
+ ElMessage.warning('请先选择项目!')
+ return
+ }
+ }
+ dialogRef.value.openDialog(type, value, data.queryParams.companyId, data.isAdmin, data.companyList, data.queryParams.itemId)
}
/** 重置新增的表单以及其他数据 */
@@ -178,7 +243,8 @@
pageNum: 1,
pageSize: 10,
companyId: null,
- templateType: 10
+ type: 1,
+ itemId: null
}
await getCompanyList()
await getList()
@@ -193,7 +259,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()
--
Gitblit v1.9.2