From 5b5c6374749159db03a14ee645760327930bbb28 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期一, 13 十月 2025 14:46:41 +0800
Subject: [PATCH] 修改
---
src/api/continuousImprovement/index.js | 7
src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue | 10
src/api/standardSys/standardSys.js | 8
src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue | 128 +++++++++--
src/api/environment/factors.js | 4
src/api/customerList/index.js | 8
src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue | 24 +
src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue | 6
src/views/work/qualityManage/continuousImprovement/components/editDialog.vue | 23 +
src/views/work/qualityManage/continuousImprovement/index.vue | 112 +++++++--
src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue | 14
src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue | 24 +
src/api/monthlyInspectionRecord/index.js | 7
src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue | 72 ++++++
src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue | 17 +
src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue | 119 ++++++++--
src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue | 13 +
src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue | 14
src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue | 2
19 files changed, 490 insertions(+), 122 deletions(-)
diff --git a/src/api/continuousImprovement/index.js b/src/api/continuousImprovement/index.js
index 0b925a1..5654f4c 100644
--- a/src/api/continuousImprovement/index.js
+++ b/src/api/continuousImprovement/index.js
@@ -7,6 +7,13 @@
params: params
})
}
+export function getInsideById(params) {
+ return request({
+ url: '/continuous/inside/listByid',
+ method: 'get',
+ params: params
+ })
+}
export function addInside(data) {
diff --git a/src/api/customerList/index.js b/src/api/customerList/index.js
index 2e6bb7c..b2c3472 100644
--- a/src/api/customerList/index.js
+++ b/src/api/customerList/index.js
@@ -7,6 +7,14 @@
params: params
})
}
+export function getCustomerAll(params) {
+ return request({
+ url: 'market/inventory/listAll',
+ method: 'get',
+ params: params
+ })
+}
+
export function addCustomer(data) {
return request({
diff --git a/src/api/environment/factors.js b/src/api/environment/factors.js
index 6166149..cb9b820 100644
--- a/src/api/environment/factors.js
+++ b/src/api/environment/factors.js
@@ -64,9 +64,9 @@
})
}
-export function delControl(data) {
+export function delControl(data,dataD) {
return request({
- url: `/composite/factor/control/deleted?factorControlId=${data}`,
+ url: `/composite/factor/control/deleted?factorControlId=${data}&factorDiscrenId=${dataD}`,
method: 'get'
})
}
diff --git a/src/api/monthlyInspectionRecord/index.js b/src/api/monthlyInspectionRecord/index.js
index 7be3549..6becc4c 100644
--- a/src/api/monthlyInspectionRecord/index.js
+++ b/src/api/monthlyInspectionRecord/index.js
@@ -7,6 +7,13 @@
params: params
})
}
+export function getMonthlyRecordById(params) {
+ return request({
+ url: 'market/monthly/listByid',
+ method: 'get',
+ params: params
+ })
+}
export function addMonthlyRecord(data) {
return request({
diff --git a/src/api/standardSys/standardSys.js b/src/api/standardSys/standardSys.js
index 5a924e0..62d9aaf 100644
--- a/src/api/standardSys/standardSys.js
+++ b/src/api/standardSys/standardSys.js
@@ -73,6 +73,14 @@
})
}
+export function getQualityTemplateById(params) {
+ return request({
+ url: '/template/listByid',
+ method: 'get',
+ params: params
+ })
+}
+
export function addQualityTemplate(data) {
return request({
url: '/template/insert',
diff --git a/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue b/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue
index d0b23a7..6491f6e 100644
--- a/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue
+++ b/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue
@@ -50,11 +50,11 @@
</el-form>
</div>
<!-- 表格数据 -->
- <el-table v-loading="loading" :data="dataList" :border="true">
+ <el-table v-loading="loading" :data="dataList" :border="true" >
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
- <el-table-column label="公司概况" prop="companySummary" align="center" >
+ <el-table-column label="公司概况" prop="companySummary" align="center" width="600" >
<template #default="scope">
- <div v-html="scope.row.companySummary" ></div>
+ <div style="height: 250px;" v-html="scope.row.companySummary" ></div>
</template>
</el-table-column>
<el-table-column label="营业执照" prop="fileName" align="center" >
diff --git a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue
index 88a4f6d..7d033b8 100644
--- a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue
@@ -171,7 +171,7 @@
import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object";
import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
-import {addQualityTemplate, editQualityTemplate} from "@/api/standardSys/standardSys";
+import {addQualityTemplate, editQualityTemplate, getQualityTemplateById} from "@/api/standardSys/standardSys";
const dialogVisible = ref(false);
const title = ref("");
@@ -248,11 +248,17 @@
}
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
if(type === 'edit' || type === 'review') {
- state.form = JSON.parse(JSON.stringify(value));
+ const res = await getQualityTemplateById({planId: value.id})
+ if(res.code === 200){
+ state.form = res.data
+
+ }else{
+ ElMessage.warning(res.message)
+ }
if(state.isAdmin){
- state.form.companyId = value.companyId
- state.form.companyName = value.companyName
+ state.form.companyId = res.data.companyId
+ state.form.companyName = res.data.companyName
}
}
await getPeopleList()
diff --git a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue
index e8190ef..69bceae 100644
--- a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue
+++ b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue
@@ -52,15 +52,18 @@
</el-form>
</div>
<!-- 表格数据 -->
- <el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" />
- <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
- <el-table-column label="名称" prop="companyName" align="center" >
- <template #default="scope">
- <span>{{scope.row.year}}年度{{scope.row.companyName}}质量管理体系工作策划安排及完成情况</span>
- </template>
- </el-table-column>
- <el-table-column label="操作" align="center" class-naame="small-padding fixed-width" >
+ <el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange" :span-method="mergeCells">
+ <el-table-column type="selection" width="55" prop="selection" />
+<!-- <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>-->
+ <el-table-column label="企业名称" v-if="data.isAdmin" prop="companyName" align="center" />
+ <el-table-column label="年份" prop="year" align="center" />
+ <el-table-column label="项目" prop="project" align="center" />
+ <el-table-column label="内容" prop="content" align="center" />
+ <el-table-column label="参加人员" prop="participant" align="center" />
+ <el-table-column label="时间" prop="applyTime" align="center" />
+ <el-table-column label="完成时间" prop="accomplishTime" align="center" />
+ <el-table-column label="完成情况" prop="accomplishStatus" align="center" />
+ <el-table-column label="操作" align="center" prop="operate" class-naame="small-padding fixed-width" >
<template #default="scope">
<el-button link type="primary" @click="openDialog('review',scope.row)" >查看</el-button>
<el-button link type="primary" @click="openDialog('edit',scope.row)" >编辑</el-button>
@@ -69,17 +72,17 @@
</el-table-column>
</el-table>
- <div class="pag-container">
- <el-pagination
- v-model:current-page="data.queryParams.pageNum"
- v-model:page-size="data.queryParams.pageSize"
- :page-sizes="[10,15,20,25]"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
- </div>
+<!-- <div class="pag-container">-->
+<!-- <el-pagination-->
+<!-- v-model:current-page="data.queryParams.pageNum"-->
+<!-- v-model:page-size="data.queryParams.pageSize"-->
+<!-- :page-sizes="[10,15,20,25]"-->
+<!-- layout="total, sizes, prev, pager, next, jumper"-->
+<!-- :total="total"-->
+<!-- @size-change="handleSizeChange"-->
+<!-- @current-change="handleCurrentChange"-->
+<!-- />-->
+<!-- </div>-->
<editDialog ref="noticeRef" @getList = "getList"></editDialog>
</div>
</template>
@@ -93,7 +96,7 @@
import {generateWordDocument} from "@/utils/exportWord";
import {delTable, getTable} from "@/api/qualityObjectives/table";
import {delDiscern, getDiscern} from "@/api/environment/factors";
-import {delQualityTemplate, getQualityTemplate} from "@/api/standardSys/standardSys";
+import {delQualityTemplate, getQualityTemplate, getQualityTemplateById} from "@/api/standardSys/standardSys";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const noticeRef = ref();
@@ -153,12 +156,33 @@
getCompanyList()
}
});
+
const getList = async () => {
loading.value = true;
const res = await getQualityTemplate(data.queryParams);
if(res.code === 200){
- dataList.value = res.data.list
- total.value = res.data.total
+ const resultArray = [];
+ for (const obj of res.data.list) {
+ const listItemArray = obj.planMesses;
+ for (const listItem of listItemArray) {
+ resultArray.push({
+ id:obj.id,
+ companyName: obj.companyName,
+ year: obj.year,
+ project: listItem.project,
+ content: listItem.content,
+ participant: listItem.participant,
+ applyTime: listItem.applyTime,
+ accomplishTime: listItem.accomplishTime,
+ accomplishStatus: listItem.accomplishStatus,
+ });
+ }
+ }
+ dataList.value = resultArray
+ calculateSpan()
+ // total.value = resultArray.length
+ // dataList.value = res.data.list
+ // total.value = res.data.total
}else{
ElMessage.warning(res.message)
}
@@ -246,7 +270,7 @@
item.tableList = item.planMesses
try {
- generateWordDocument(templatePath.value, item, item.companyName+`_质量管理体系工作策划安排及完成情况.docx`);
+ generateWordDocument(templatePath.value, item, `${item.year}质量管理体系工作策划安排及完成情况.docx`);
} catch (error){
ElMessage({
type: 'warning',
@@ -256,8 +280,19 @@
})
}
-const handleSelectionChange = (val) => {
- choosedData.value = val
+const handleSelectionChange = async (val) => {
+ let arr = []
+ for (const item of val) {
+ const res = await getQualityTemplateById({planId: item.id})
+ if(res.code == 200){
+ arr.push(res.data)
+ }else{
+ ElMessage.warning(res.message)
+ }
+ }
+ choosedData.value = arr
+
+
}
const handleDelete = (val) => {
ElMessageBox.confirm(
@@ -289,6 +324,38 @@
data.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同)
}
}
+const mergeCells = ({ row, column, rowIndex, columnIndex }) => {
+ if ( column.property == 'operate' || column.property == 'selection' || column.property == 'year') {
+ const _row = spanArr.value[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return [_row, _col];
+ }
+};
+
+const spanArr = ref([]); // 存储每一行的合并信息
+const position = ref(0); // 记录当前位置
+// 计算合并的行数
+const calculateSpan = () => {
+ spanArr.value = [];
+ position.value = 0;
+
+ dataList.value.forEach((item, index) => {
+ if (index === 0) {
+ spanArr.value.push(1);
+ position.value = 0;
+ } else {
+ // 判断当前行的id与上一行是否相同
+ if (dataList.value[index].id === dataList.value[index - 1].id) {
+ spanArr.value[position.value] += 1;
+ spanArr.value.push(0);
+ } else {
+ spanArr.value.push(1);
+ position.value = index;
+ }
+ }
+ });
+};
+
</script>
<style lang="scss">
diff --git a/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue
index 269267a..975be51 100644
--- a/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue
@@ -446,6 +446,19 @@
factorContents = i.factorContents
}
})
+ if(!factorContents[0].influence){
+ factorContents = factorContents.map(item => {
+ return {
+ ...item,
+ influence:'正面',
+ monitorMethod:'每年管理评审前',
+ review:'全面评价',
+ solutions:'可控',
+ result:'Y',
+
+ }
+ })
+ }
state.form.outEnvironment = factorContents.filter(i => i.type == 1)
state.form.inEnvironment = factorContents.filter(i => i.type == 2)
}
diff --git a/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue b/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue
index bc061ee..74c53dc 100644
--- a/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue
+++ b/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue
@@ -299,7 +299,7 @@
type: 'warning',
})
.then( async() => {
- const res = await delControl(val.id);
+ const res = await delControl(val.id,val.factorDiscernId);
if(res.code === 200){
ElMessage({
type: 'success',
diff --git a/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue
index 2dc0c60..9c386a4 100644
--- a/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue
@@ -3,7 +3,7 @@
<el-dialog
v-model="dialogVisible"
:title="title"
- width="900px"
+ width="950px"
:before-close="handleClose"
:close-on-press-escape="false"
:close-on-click-modal="false"
@@ -70,7 +70,7 @@
<div style="display: flex;width: 100%;margin-top: 5px">
<el-table :data="state.form.outEnvironment" :border="true">
<el-table-column type="index" label="序号" align="center"></el-table-column>
- <el-table-column label="环境因素" prop="factorName" align="center" width="140">
+ <el-table-column label="环境因素" prop="factorName" align="center" min-width="130">
<template #default="{row,$index}">
<el-form-item :prop="'outEnvironment.' + '[' + $index + ']' + '.factorName'" :rules="state.rules.factorName">
<el-select
@@ -78,6 +78,11 @@
v-model="row.factorName"
placeholder="请选择环境因素"
style="width: 240px"
+ filterable
+ allow-create
+ default-first-option
+ :reserve-keyword="false"
+ clearable
>
<el-option
v-for="item in state.outReasonList"
@@ -89,14 +94,14 @@
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="主要内容" prop="factorMess" align="center" width="220">
+ <el-table-column label="主要内容" prop="factorMess" align="center" width="360">
<template #default="{row,$index}">
<el-form-item :prop="'outEnvironment.' + '[' + $index + ']' + '.factorMess'" :rules="state.rules.factorMess">
<el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="row.factorMess" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="备注" prop="remark" align="center" >
+ <el-table-column label="备注" prop="remark" align="center" max-width="140">
<template #default="{row,$index}">
<el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.remark" placeholder="请输入"></el-input>
</template>
@@ -123,7 +128,7 @@
<div style="display: flex;width: 100%;">
<el-table :data="state.form.inEnvironment" :border="true" >
<el-table-column type="index" label="序号" align="center"></el-table-column>
- <el-table-column label="环境因素" prop="factorName" align="center" width="140">
+ <el-table-column label="环境因素" prop="factorName" align="center" min-width="130">
<template #default="{row,$index}">
<el-form-item :prop="'inEnvironment.' + '[' + $index + ']' + '.factorName'" :rules="state.rules.factorName">
<el-select
@@ -131,6 +136,11 @@
v-model="row.factorName"
placeholder="请选择环境因素"
style="width: 240px"
+ filterable
+ allow-create
+ default-first-option
+ :reserve-keyword="false"
+ clearable
>
<el-option
v-for="item in state.inReasonList"
@@ -142,14 +152,14 @@
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="主要内容" prop="factorMess" align="center" width="220">
+ <el-table-column label="主要内容" prop="factorMess" align="center" width="360">
<template #default="{row,$index}">
<el-form-item :prop="'inEnvironment.' + '[' + $index + ']' + '.factorMess'" :rules="state.rules.factorMess">
<el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="row.factorMess" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="备注" prop="remark" align="center" >
+ <el-table-column label="备注" prop="remark" align="center" max-width="140">
<template #default="{row,$index}">
<el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.remark" placeholder="请输入"></el-input>
</template>
diff --git a/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
index 1516904..c78150e 100644
--- a/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
@@ -106,7 +106,7 @@
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
<el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.severity'" :rules="state.rules.severity">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.severity" placeholder="请输入"></el-input>
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.severity" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
@@ -115,7 +115,7 @@
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
<el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.frequency'" :rules="state.rules.frequency">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.frequency" placeholder="请输入"></el-input>
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.frequency" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
@@ -124,7 +124,7 @@
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
<el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.rpn'" :rules="state.rules.rpn">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.rpn" placeholder="请输入"></el-input>
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.rpn" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
@@ -133,7 +133,7 @@
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
<el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.riskLevel'" :rules="state.rules.riskLevel">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.riskLevel" placeholder="请输入"></el-input>
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.riskLevel" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
@@ -151,7 +151,7 @@
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
<el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.chargeUser'" :rules="state.rules.chargeUser">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.chargeUser" placeholder="请输入"></el-input>
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.chargeUser" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
diff --git a/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue
index eb236ca..3a4cc8f 100644
--- a/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue
@@ -67,28 +67,28 @@
<el-table-column label="风险评估-严重度" prop="remark" align="center" >
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
- <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.severity"></el-input>
+ <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.severity"></el-input>
</div>
</template>
</el-table-column>
<el-table-column label="风险评估-发生频率" prop="remark" align="center" >
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
- <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.frequency"></el-input>
+ <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.frequency"></el-input>
</div>
</template>
</el-table-column>
<el-table-column label="风险评估-RPN" prop="remark" align="center" >
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
- <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.rpn"></el-input>
+ <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.rpn"></el-input>
</div>
</template>
</el-table-column>
<el-table-column label="风险评估-风险等级" prop="remark" align="center" >
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
- <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.riskLevel"></el-input>
+ <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.riskLevel"></el-input>
</div>
</template>
</el-table-column>
@@ -102,7 +102,7 @@
<el-table-column label="风险对应措施-责任人" prop="remark" align="center" width="120">
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
- <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.chargeUser"></el-input>
+ <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.chargeUser"></el-input>
</div>
</template>
</el-table-column>
@@ -110,7 +110,7 @@
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
<el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.monitorTime'" :rules="state.rules.monitorTime">
- <el-input style="margin-bottom: 15px" :disabled="title === '查看'" type="textarea" v-model="i.monitorTime" placeholder="请输入"></el-input>
+ <el-input style="margin-bottom: 15px" :disabled="title === '查看'" :rows="3" type="textarea" v-model="i.monitorTime" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
@@ -119,7 +119,7 @@
<template #default="{row,$index}">
<div v-for="(i,index) in row.contentMesses" :key="index">
<el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.review'" :rules="state.rules.review">
- <el-input style="margin-bottom: 15px" :disabled="title === '查看'" type="textarea" v-model="i.review" placeholder="请输入"></el-input>
+ <el-input style="margin-bottom: 15px" :disabled="title === '查看'" :rows="3" type="textarea" v-model="i.review" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
diff --git a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue
index 1cd97cc..eafbece 100644
--- a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue
+++ b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue
@@ -42,7 +42,7 @@
<div style="display: flex;width: 100%;">
<el-table :data="state.form.inspectionMesses" :border="true" >
<el-table-column type="index" label="序号" align="center"></el-table-column>
- <el-table-column label="时间" prop="monthlyTime" align="center" width="100">
+ <el-table-column label="时间" prop="monthlyTime" align="center" width="140">
<template #default="{row,$index}">
<el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'monthlyTime'" :rules="state.rules.monthlyTime">
<el-date-picker
@@ -142,7 +142,8 @@
import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object";
import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
-import {addMonthlyRecord, editMonthlyRecord} from "@/api/monthlyInspectionRecord";
+import {addMonthlyRecord, editMonthlyRecord, getMonthlyRecordById} from "@/api/monthlyInspectionRecord";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
const dialogVisible = ref(false);
const title = ref("");
@@ -193,11 +194,22 @@
}
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
if(type === 'edit' || type === 'review') {
- state.form = JSON.parse(JSON.stringify(value));
- if(state.isAdmin){
- state.form.companyId = value.companyId
- state.form.companyName = value.companyName
+ const res = await getMonthlyRecordById({monthlyId: value.id})
+ if(res.code === 200){
+ state.form = res.data
+
+ }else{
+ ElMessage.warning(res.message)
}
+ if(state.isAdmin){
+ state.form.companyId = res.data.companyId
+ state.form.companyName = res.data.companyName
+ }
+ // state.form = JSON.parse(JSON.stringify(value));
+ // if(state.isAdmin){
+ // state.form.companyId = value.companyId
+ // state.form.companyName = value.companyName
+ // }
}
await getPeopleList()
dialogVisible.value = true;
diff --git a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue
index fb3e233..2b3892a 100644
--- a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue
+++ b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue
@@ -33,16 +33,22 @@
</el-form>
</div>
<!-- 表格数据 -->
- <el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" />
- <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
- <el-table-column label="企业名称" prop="companyName" align="center" v-if="data.isAdmin" />
- <el-table-column label="名称" align="center">
- <template #default="scope">
- <span>{{scope.row.recordName}}登记</span>
- </template>
+ <el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange" :span-method="mergeCells">
+ <el-table-column type="selection" prop="selection" width="55" />
+<!-- <el-table-column type="index" prop="sequenceNumber" label="序号" width="80" align="center"></el-table-column>-->
+<!-- <el-table-column label="企业名称" prop="companyName" align="center" v-if="data.isAdmin" />-->
+ <el-table-column label="名称" prop="recordName" align="center">
</el-table-column>
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
+ <el-table-column label="时间" prop="monthlyTime" align="center" />
+ <el-table-column label="检查人" prop="checkUser" align="center" />
+ <el-table-column label="防护" prop="entrench" align="center" />
+ <el-table-column label="标识" prop="identification" align="center" />
+ <el-table-column label="摆放" prop="place" align="center" />
+ <el-table-column label="清洁" prop="clean" align="center" />
+ <el-table-column label="安全" prop="safety" align="center" />
+ <el-table-column label="环境" prop="environment" align="center" />
+ <el-table-column label="帐务卡一致性" prop="consistency" align="center" />
+ <el-table-column label="操作" align="center" prop="operate" class-name="small-padding fixed-width" width="160">
<template #default="scope">
<el-button link type="primary" @click="openDialog('review',scope.row)" >查看</el-button>
<el-button link type="primary" @click="openDialog('edit',scope.row)" >编辑</el-button>
@@ -51,17 +57,17 @@
</el-table-column>
</el-table>
- <div class="pag-container">
- <el-pagination
- v-model:current-page="data.queryParams.pageNum"
- v-model:page-size="data.queryParams.pageSize"
- :page-sizes="[10,15,20,25]"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
- </div>
+<!-- <div class="pag-container">-->
+<!-- <el-pagination-->
+<!-- v-model:current-page="data.queryParams.pageNum"-->
+<!-- v-model:page-size="data.queryParams.pageSize"-->
+<!-- :page-sizes="[10,15,20,25]"-->
+<!-- layout="total, sizes, prev, pager, next, jumper"-->
+<!-- :total="total"-->
+<!-- @size-change="handleSizeChange"-->
+<!-- @current-change="handleCurrentChange"-->
+<!-- />-->
+<!-- </div>-->
<editDialog ref="noticeRef" @getList = "getList"></editDialog>
</div>
</template>
@@ -75,7 +81,8 @@
import {generateWordDocument} from "@/utils/exportWord";
import {delTable, getTable} from "@/api/qualityObjectives/table";
import {delNeedDiscren, getNeedDiscren} from "@/api/need/need";
-import {delMonthlyRecord, getMonthlyRecord} from "@/api/monthlyInspectionRecord";
+import {delMonthlyRecord, getMonthlyRecord, getMonthlyRecordById} from "@/api/monthlyInspectionRecord";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const noticeRef = ref();
@@ -113,12 +120,41 @@
getCompanyList()
}
});
+
+const resData = ref([])
const getList = async () => {
loading.value = true;
const res = await getMonthlyRecord(data.queryParams);
if(res.code === 200){
- dataList.value = res.data.list
- total.value = res.data.total
+ const resultArray = [];
+ for (const obj of res.data.list) {
+ const listItemArray = obj.inspectionMesses;
+ for (const listItem of listItemArray) {
+ resultArray.push({
+ id:obj.id,
+ companyName: obj.companyName,
+ recordName: obj.recordName,
+ monthlyTime: listItem.monthlyTime,
+ checkUser: listItem.checkUser,
+ entrench: listItem.entrench,
+ identification: listItem.identification,
+ place: listItem.place,
+ clean: listItem.clean,
+ safety: listItem.safety,
+ environment: listItem.environment,
+ consistency: listItem.consistency,
+ });
+ }
+ }
+ dataList.value = resultArray.map((item,index) => {
+ return {
+ ...item,
+ sequenceNumber: index + 1
+ }
+ })
+ calculateSpan()
+ // dataList.value = res.data.list
+ // total.value = res.data.total
}else{
ElMessage.warning(res.message)
}
@@ -193,7 +229,7 @@
item.tableData = item.inspectionMesses
console.log('xxx',item.tableData)
try {
- generateWordDocument(templatePath.value, item, item.companyName + `_月度检查记录表.docx`);
+ generateWordDocument(templatePath.value, item, item.recordName + `_月度检查记录表.docx`);
} catch (error){
ElMessage({
type: 'warning',
@@ -202,8 +238,17 @@
}
})
}
-const handleSelectionChange = (val) => {
- choosedData.value = val
+const handleSelectionChange = async (val) => {
+ let arr = []
+ for (const item of val) {
+ const res = await getMonthlyRecordById({monthlyId: item.id})
+ if(res.code == 200){
+ arr.push(res.data)
+ }else{
+ ElMessage.warning(res.message)
+ }
+ }
+ choosedData.value = arr
}
const handleDelete = (val) => {
ElMessageBox.confirm(
@@ -228,6 +273,37 @@
})
}
+const mergeCells = ({ row, column, rowIndex, columnIndex }) => {
+ if ( column.property == 'operate' || column.property == 'recordName' || column.property == 'selection') {
+ const _row = spanArr.value[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return [_row, _col];
+ }
+};
+
+const spanArr = ref([]); // 存储每一行的合并信息
+const position = ref(0); // 记录当前位置
+// 计算合并的行数
+const calculateSpan = () => {
+ spanArr.value = [];
+ position.value = 0;
+
+ dataList.value.forEach((item, index) => {
+ if (index === 0) {
+ spanArr.value.push(1);
+ position.value = 0;
+ } else {
+ // 判断当前行的id与上一行是否相同
+ if (dataList.value[index].id === dataList.value[index - 1].id) {
+ spanArr.value[position.value] += 1;
+ spanArr.value.push(0);
+ } else {
+ spanArr.value.push(1);
+ position.value = index;
+ }
+ }
+ });
+};
</script>
<style lang="scss">
diff --git a/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue b/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue
index 49fa348..302b7d1 100644
--- a/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue
+++ b/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue
@@ -38,7 +38,15 @@
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="单位名称:" prop="unitName" >
- <el-input :disabled="title === '查看'" v-model="state.form.unitName" placeholder="单位名称"></el-input>
+<!-- <el-input :disabled="title === '查看'" v-model="state.form.unitName" placeholder="单位名称"></el-input>-->
+ <el-select v-model="state.form.unitName" placeholder="请选择" filterable clearable style="width: 100%" :disabled="title == '查看'" @change="selectUnitCom">
+ <el-option
+ v-for="item in state.supplierList"
+ :key="item.id"
+ :label="item.customerName"
+ :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -141,6 +149,7 @@
import {verifyPhone} from "@/utils/validate";
import {developList} from "@/views/work/qualityInfo/supplierQuality/supplierList/components/qualityDatas";
import {addDelivery, editDelivery} from "@/api/satisfiedNew/satisfiedNew";
+import {getCustomer, getCustomerAll} from "@/api/customerList";
const dialogVisible = ref(false);
const title = ref("");
@@ -250,7 +259,8 @@
name: '其他'
},
],
- checkProductTypes: []
+ checkProductTypes: [],
+ supplierList: []
})
onMounted(() => {
@@ -258,6 +268,7 @@
});
const openDialog = async (type, value,companyList) => {
+
const userInfo = JSON.parse(Cookies.get('userInfo'))
state.isAdmin = userInfo.userType === 0;
state.form.companyName = userInfo.companyName
@@ -267,9 +278,11 @@
state.form.companyName = value.companyName
state.companyList = companyList
}
+ await getSupplier()
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
if(type === 'edit' || type === 'review') {
state.form = JSON.parse(JSON.stringify(value));
+ state.form.unitName = Number(state.form.unitName)
if(state.isAdmin){
state.form.companyId = value.companyId
state.form.companyName = value.companyName
@@ -281,6 +294,17 @@
dialogVisible.value = true;
}
+const getSupplier = async () => {
+ const param = {
+ companyId: state.form.companyId,
+ }
+ const res = await getCustomerAll(param);
+ if(res.code === 200){
+ state.supplierList = res.data.data
+ }else{
+ ElMessage.warning(res.message)
+ }
+}
const onSubmit = async () => {
state.form.mess = JSON.stringify(state.dataList)
state.form.product = state.checkProductTypes.join(',')
@@ -343,6 +367,38 @@
}
state.checkProductTypes = []
state.companyList = []
+ state.dataList =[
+ {
+ num: '说明',
+ item: '哪项不满意,请在相应的选项“⬜︎︎︎”内打“√”',
+ satisfied:'总体评价,请在相应的选项“⬜︎︎︎”内打“√”'
+ },
+ {
+ num: '1',
+ item: ['产品性能','技术资料','操作性','维护性','稳定性'],
+ satisfied:['满意','基本满意','不满意']
+ },
+ {
+ num: '2',
+ item: ['节点控制','交付及时性','可靠性'],
+ satisfied:['满意','基本满意','不满意']
+ },
+ {
+ num: '3',
+ item: ['顾客培训','技术支持','售后维修','备品及备件供应'],
+ satisfied:['满意','基本满意','不满意']
+ },
+ {
+ num: '4',
+ item: ['技术技能','服务态度','过程规范','综合素质'],
+ satisfied:['满意','基本满意','不满意']
+ },
+ {
+ num: '5',
+ item: ['服务的及时性','有效性','服务态度'],
+ satisfied:['满意','基本满意','不满意']
+ },
+ ]
}
@@ -367,7 +423,19 @@
state.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同)
}
}
+const selectUnitCom = (val) => {
+ state.form.person = ''
+ state.form.address = ''
+ state.form.phone = ''
+ state.supplierList.forEach(item => {
+ if(val == item.id){
+ state.form.person = item.person
+ state.form.address = item.customerAddr
+ state.form.phone = item.phone
+ }
+ })
+}
defineExpose({
openDialog
});
diff --git a/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue b/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue
index 44c7e53..89cc68b 100644
--- a/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue
+++ b/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue
@@ -191,7 +191,8 @@
import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
import {addCustomerNeed, editCustomerNeed} from "@/api/customerNeed";
-import {addInside, editInside} from "@/api/continuousImprovement";
+import {addInside, editInside, getInsideById} from "@/api/continuousImprovement";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
const dialogVisible = ref(false);
const title = ref("");
@@ -267,11 +268,23 @@
}
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
if(type === 'edit' || type === 'review') {
- state.form = JSON.parse(JSON.stringify(value));
- if(state.isAdmin){
- state.form.companyId = value.companyId
- state.form.companyName = value.companyName
+ const res = await getInsideById({improveId: value.id})
+ if(res.code === 200){
+ state.form = res.data
+
+ }else{
+ ElMessage.warning(res.message)
}
+ if(state.isAdmin){
+ state.form.companyId = res.data.companyId
+ state.form.companyName = res.data.companyName
+ }
+
+ // state.form = JSON.parse(JSON.stringify(value));
+ // if(state.isAdmin){
+ // state.form.companyId = value.companyId
+ // state.form.companyName = value.companyName
+ // }
console.log('xx',state.form)
diff --git a/src/views/work/qualityManage/continuousImprovement/index.vue b/src/views/work/qualityManage/continuousImprovement/index.vue
index b7c4aab..fcb666f 100644
--- a/src/views/work/qualityManage/continuousImprovement/index.vue
+++ b/src/views/work/qualityManage/continuousImprovement/index.vue
@@ -52,16 +52,17 @@
</el-form>
</div>
<!-- 表格数据 -->
- <el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" />
- <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
+ <el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange" :span-method="mergeCells">
+ <el-table-column type="selection" width="55" prop="selection" />
+<!-- <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>-->
<el-table-column label="企业名称" prop="companyName" align="center" v-if="data.isAdmin" />
- <el-table-column label="名称" align="center">
- <template #default="scope">
- <span>{{scope.row.year}}年度质量体系改进计划</span>
- </template>
- </el-table-column>
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
+ <el-table-column label="年份" prop="year" align="center" />
+ <el-table-column label="改进项" prop="items" align="center" />
+ <el-table-column label="具体措施" prop="measure" align="center" />
+ <el-table-column label="责任部门" prop="dutyName" align="center" />
+ <el-table-column label="完成时间" prop="finishTime" align="center" />
+ <el-table-column label="跟踪验证" prop="verify" align="center" />
+ <el-table-column label="操作" align="center" prop="operate" class-name="small-padding fixed-width" width="160">
<template #default="scope">
<el-button link type="primary" @click="openDialog('review',scope.row)" >查看</el-button>
<el-button link type="primary" @click="openDialog('edit',scope.row)" >编辑</el-button>
@@ -70,17 +71,17 @@
</el-table-column>
</el-table>
- <div class="pag-container">
- <el-pagination
- v-model:current-page="data.queryParams.pageNum"
- v-model:page-size="data.queryParams.pageSize"
- :page-sizes="[10,15,20,25]"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
- </div>
+<!-- <div class="pag-container">-->
+<!-- <el-pagination-->
+<!-- v-model:current-page="data.queryParams.pageNum"-->
+<!-- v-model:page-size="data.queryParams.pageSize"-->
+<!-- :page-sizes="[10,15,20,25]"-->
+<!-- layout="total, sizes, prev, pager, next, jumper"-->
+<!-- :total="total"-->
+<!-- @size-change="handleSizeChange"-->
+<!-- @current-change="handleCurrentChange"-->
+<!-- />-->
+<!-- </div>-->
<editDialog ref="noticeRef" @getList = "getList"></editDialog>
</div>
</template>
@@ -95,7 +96,8 @@
import {delTable, getTable} from "@/api/qualityObjectives/table";
import {delNeedDiscren, getNeedDiscren} from "@/api/need/need";
import {delCustomerNeed, getCustomerNeed} from "@/api/customerNeed";
-import {delInside, getInside} from "@/api/continuousImprovement";
+import {delInside, getInside, getInsideById} from "@/api/continuousImprovement";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const noticeRef = ref();
@@ -157,8 +159,26 @@
loading.value = true;
const res = await getInside(data.queryParams);
if(res.code === 200){
- dataList.value = res.data.list
- total.value = res.data.total
+ const resultArray = [];
+ for (const obj of res.data.list) {
+ const listItemArray = obj.plans;
+ for (const listItem of listItemArray) {
+ resultArray.push({
+ id:obj.id,
+ companyName: obj.companyName,
+ year: obj.year,
+ items: listItem.items,
+ measure: listItem.measure,
+ dutyName: listItem.dutyName,
+ finishTime: listItem.finishTime,
+ verify: listItem.verify,
+ });
+ }
+ }
+ dataList.value = resultArray
+ calculateSpan()
+ // dataList.value = res.data.list
+ // total.value = res.data.total
}else{
ElMessage.warning(res.message)
}
@@ -238,7 +258,7 @@
})
console.log('xxx',item.tableData)
try {
- generateWordDocument(templatePath.value, item, item.companyName + `_${item.year}年度体系改进计划.docx`);
+ generateWordDocument(templatePath.value, item, `${item.year}年度体系改进计划.docx`);
} catch (error){
ElMessage({
type: 'warning',
@@ -247,8 +267,17 @@
}
})
}
-const handleSelectionChange = (val) => {
- choosedData.value = val
+const handleSelectionChange = async (val) => {
+ let arr = []
+ for (const item of val) {
+ const res = await getInsideById({improveId: item.id})
+ if(res.code == 200){
+ arr.push(res.data)
+ }else{
+ ElMessage.warning(res.message)
+ }
+ }
+ choosedData.value = arr
}
const handleDelete = (val) => {
ElMessageBox.confirm(
@@ -281,6 +310,37 @@
data.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同)
}
}
+const mergeCells = ({ row, column, rowIndex, columnIndex }) => {
+ if ( column.property == 'operate' || column.property == 'selection' || column.property == 'year' ) {
+ const _row = spanArr.value[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return [_row, _col];
+ }
+};
+
+const spanArr = ref([]); // 存储每一行的合并信息
+const position = ref(0); // 记录当前位置
+// 计算合并的行数
+const calculateSpan = () => {
+ spanArr.value = [];
+ position.value = 0;
+
+ dataList.value.forEach((item, index) => {
+ if (index === 0) {
+ spanArr.value.push(1);
+ position.value = 0;
+ } else {
+ // 判断当前行的id与上一行是否相同
+ if (dataList.value[index].id === dataList.value[index - 1].id) {
+ spanArr.value[position.value] += 1;
+ spanArr.value.push(0);
+ } else {
+ spanArr.value.push(1);
+ position.value = index;
+ }
+ }
+ });
+};
</script>
<style lang="scss">
.pag-container{
diff --git a/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue b/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue
index cd3139d..ae82025 100644
--- a/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue
+++ b/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue
@@ -109,13 +109,14 @@
<el-table-column label="责任部门" prop="deptId" align="center" >
<template #default="{row,$index}">
<div v-for="(i,index) in row.analyses" :key="index">
- <el-form-item :prop="'types.' + '[' + $index + '].' +'analyses.' + '[' + index + ']' + '.deptId'">
+ <el-form-item :prop="'types.' + '[' + $index + '].' +'analyses.' + '[' + index + ']' + '.deptId'" style="margin-bottom: 10px">
<el-select
clearable
:disabled="title === '查看'"
v-model="i.deptId"
placeholder="请选择部门"
- style="width: 240px;margin-bottom: 5px"
+ class="select-same-as-textarea"
+ style="width: 240px;margin-top: 5px"
>
<el-option
v-for="item in state.deptList"
@@ -590,5 +591,17 @@
flex-direction: column;
align-items: flex-start;
}
+ /* 同步高度 */
+ ::v-deep .select-same-as-textarea {
+ height: 90px;
+ }
+
+ /* 确保选择器内部区域高度匹配 */
+ ::v-deep .select-same-as-textarea .el-input__inner {
+ height: 90px;
+ line-height: 1.5; /* 保持文字垂直居中 */
+ padding-top: 8px; /* 调整文字位置 */
+ }
+
}
</style>
--
Gitblit v1.9.2