添加详情

This commit is contained in:
wangxk 2025-05-24 11:11:36 +08:00
parent 6cff241b69
commit 4b08b3f7a9
3 changed files with 213 additions and 89 deletions

View File

@ -177,16 +177,25 @@ onMounted(() => {
getDictOne()
});
//
function typeName(arr:any,itemCode:any){
let nameone:any
arr.forEach((item:any) => {
if(item.itemcode==itemCode){
function typeName(arr: any, itemCode: any) {
let nameone: any
arr.forEach((item: any) => {
if (item.itemcode == itemCode) {
nameone = item.dictname
}
});
return nameone
}
const logqing= ref(false)
const logTxt = ref('')
function Loglist(row:any){
title.value = row.projectName + '_项目描述'
logqing.value = true
logTxt.value = row.description
}
function handleClose1(){
logqing.value = false
}
</script>
<template>
@ -195,15 +204,17 @@ function typeName(arr:any,itemCode:any){
<div class="sou_title">
<div class="sou_title_left">
<el-input style="margin-right: 10px ;" v-model="queryParams.projectName" clearable
@change="getdata()" placeholder="项目名称"></el-input>
<el-select v-model="queryParams.projectType" placeholder="项目类型" style="margin-right: 10px ;" clearable @change="getdata()" >
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname" :value="item.itemcode" />
@change="getdata()" placeholder="项目名称"></el-input>
<el-select v-model="queryParams.projectType" placeholder="项目类型" style="margin-right: 10px ;"
clearable @change="getdata()">
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" />
</el-select>
<el-input style="margin-right: 10px ;" v-model="queryParams.description" clearable
@change="getdata()" placeholder="项目描述"></el-input>
<!-- <el-input style="margin-right: 10px ;" v-model="queryParams.projectType" clearable
@change="getdata()" placeholder="项目类型"></el-input> -->
<el-button type="primary" @click="getdata()">搜索</el-button>
</div>
<div>
@ -221,12 +232,21 @@ function typeName(arr:any,itemCode:any){
<el-table-column prop="projectName" label="项目名称" width="200"></el-table-column>
<el-table-column prop="projectType" label="项目类型" width="200">
<template #default="scope">
<span>{{ typeName(dictType,scope.row.projectType) }}</span>
<span>{{ typeName(dictType, scope.row.projectType) }}</span>
</template>
</el-table-column>
<el-table-column prop="description" label="项目描述"></el-table-column>
<!-- <el-table-column prop="projectProps" label="项目信息"></el-table-column> -->
<el-table-column prop="projectTime" label="项目启动时间" width="165" align="center"></el-table-column>
<el-table-column prop="description" label="项目描述">
<template #default="scope">
<div class="ellipsis">
<span class="single-line-ellipsis">{{ scope.row.description }}</span>
<img src="@/assets/MenuIcon/xqing.png" alt="" title="详情" @click="Loglist(scope.row)" style="cursor: pointer;" >
</div>
</template>
</el-table-column>
<!-- <el-table-column prop="projectProps" label="项目信息"></el-table-column> -->
<el-table-column fixed="right" label="操作" width="80" align="center">
<template #default="scope">
<span
@ -243,29 +263,37 @@ function typeName(arr:any,itemCode:any){
@pagination="getdata()">
</Page>
</div>
<el-dialog :title="title" v-model="frame" width="30%" :before-close="handleClose" top="30px" draggable :close-on-click-modal="false"
destroy-on-close>
<el-form ref="ruleFormRef" style="max-width: 600px" :model="projectForme" :rules="moderules"
label-width="auto" class="demo-ruleForm" status-icon>
<el-form-item label=" 项目编号" >
<el-input v-model="projectForme.projectCode" maxlength="40" show-word-limit disabled />
</el-form-item>
<el-form-item label=" 项目名称" prop="projectName">
<el-input v-model="projectForme.projectName" maxlength="40" show-word-limit :disabled="projectForme.id" />
</el-form-item>
<el-form-item label=" 项目类型" prop="projectType">
<el-select v-model="projectForme.projectType" clearable placeholder=" " @change="getdata()" >
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname" :value="item.itemcode" />
</el-select>
<!-- <el-input v-model="projectForme.projectType" /> -->
</el-form-item>
<el-dialog :title="title" v-model="frame" width="60%" :before-close="handleClose" top="30px" draggable
:close-on-click-modal="false" destroy-on-close>
<el-form ref="ruleFormRef" :model="projectForme" :rules="moderules" label-width="auto" class="demo-ruleForm"
status-icon>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label=" 项目编号" style="width: 50%;">
<el-input v-model="projectForme.projectCode" maxlength="40" show-word-limit disabled />
</el-form-item>
<el-form-item label=" 项目名称" prop="projectName" style="width: 50%;margin-left: 15px;">
<el-input v-model="projectForme.projectName" maxlength="40" show-word-limit
:disabled="projectForme.id" />
</el-form-item>
</div>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label=" 项目类型" prop="projectType" style="width: 50%;">
<el-select v-model="projectForme.projectType" clearable placeholder=" " @change="getdata()">
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" />
</el-select>
<!-- <el-input v-model="projectForme.projectType" /> -->
</el-form-item>
<el-form-item label=" 项目启动时间" style="width: 50%;margin-left: 15px;">
<el-date-picker v-model="projectForme.projectTime" type="datetime" format="YYYY-MM-DD HH:mm:ss"
style="width:100%;" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
</div>
<el-form-item label=" 项目描述">
<el-input v-model="projectForme.description" :rows="2" type="textarea" show-word-limit />
</el-form-item>
<el-form-item label=" 项目启动时间">
<el-date-picker v-model="projectForme.projectTime" type="datetime" format="YYYY-MM-DD HH:mm:ss"
style="width:100%;" value-format="YYYY-MM-DD HH:mm:ss" />
<el-input v-model="projectForme.description" :rows="25" type="textarea" show-word-limit />
</el-form-item>
<el-form-item>
<div style="width: 100%;display: flex;justify-content: end;">
<el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button>
@ -274,10 +302,41 @@ function typeName(arr:any,itemCode:any){
</el-form-item>
</el-form>
</el-dialog>
<el-dialog :title="title" v-model="logqing" width="60%" :before-close="handleClose1" top="30px" draggable
:close-on-click-modal="false" destroy-on-close>
<div class="texlog">
<el-scrollbar height="80vh">
{{ logTxt }}
</el-scrollbar>
</div>
</el-dialog>
</div>
</template>
<style lang="scss" scoped>
.texlog{
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.ellipsis{
display: flex;
width: 100%;
align-items: center;
justify-content: space-between;
}
.single-line-ellipsis {
width: 800px;
/* 限制容器宽度 */
white-space: nowrap;
/* 禁止文本换行 */
overflow: hidden;
/* 隐藏超出范围的内容 */
text-overflow: ellipsis;
/* 使用省略号 */
}
.record-box {
padding: 20px;
width: 100%;

View File

@ -93,13 +93,13 @@ function scan() {
})
}
const tonloading = ref(false)
const buttonmsg = ref('扫描验数据')
const buttonmsg = ref('扫描验数据')
function tonstatus(){
//sao
obtaintestData({id:projectId.value}).then((res:any)=>{
if(res.msg == '1'){
tonloading.value = false
buttonmsg.value = '扫描验数据'
buttonmsg.value = '扫描验数据'
}else{
tonloading.value = true
buttonmsg.value = '处理中...'
@ -1664,11 +1664,11 @@ function repstring(row:any){
</template>
</el-table-column>
<el-table-column prop="keywords" label="关键字"></el-table-column>
<el-table-column prop="workPath" label="路径">
<!-- <el-table-column prop="workPath" label="路径">
<template #default="scope">
<span>{{'/' + repstring(scope.row.workPath) }}</span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column prop="fileName" label="预览" width="60px" align="center">
<template #default="{ row }">
<div class="preview-icon">

View File

@ -81,7 +81,7 @@ function addproject() {
taskCode: "",//
deviceCode: "",//
taskType: "",
testDescribe: "",//
testDescribe: "",//
sensorDescribe: "",//
}
}
@ -169,7 +169,7 @@ const projectForme: any = ref({
taskCode: "",//
deviceCode: ""//
, taskType: "",
testDescribe: "",//
testDescribe: "",//
sensorDescribe: "",//
})
//
@ -232,7 +232,16 @@ function typeName(arr: any, itemCode: any) {
});
return nameone
}
const logqing= ref(false)
const logTxt = ref('')
function Loglist(row:any,title1:any){
title.value = title1
logqing.value = true
logTxt.value = row
}
function handleClose1(){
logqing.value = false
}
</script>
<template>
@ -240,20 +249,22 @@ function typeName(arr: any, itemCode: any) {
<div class="record-box">
<div class="sou_title">
<div class="sou_title_left">
<el-input style="margin-right: 10px ;width:80px;margin-bottom: 10px;" v-model="queryParams.taskCode" clearable @change="getdata()"
placeholder="任务编号"></el-input>
<el-input style="margin-right: 10px ;width:180px;margin-bottom: 10px;" v-model="queryParams.taskName" clearable @change="getdata()"
placeholder="任务名称"></el-input>
<el-select style="margin-right: 10px ;width:180px;margin-bottom: 10px;" v-model="queryParams.taskType" clearable placeholder="任务类型" @change="getdata()">
<el-input style="margin-right: 10px ;width:80px;margin-bottom: 10px;" v-model="queryParams.taskCode"
clearable @change="getdata()" placeholder="任务编号"></el-input>
<el-input style="margin-right: 10px ;width:180px;margin-bottom: 10px;"
v-model="queryParams.taskName" clearable @change="getdata()" placeholder="任务名称"></el-input>
<el-select style="margin-right: 10px ;width:180px;margin-bottom: 10px;"
v-model="queryParams.taskType" clearable placeholder="任务类型" @change="getdata()">
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" />
</el-select>
<el-input style="margin-right: 10px ;width:180px;margin-bottom: 10px;" v-model="queryParams.taskPlace" clearable @change="getdata()"
placeholder="任务地点"></el-input>
<el-input style="margin-right: 10px ;width:180px;margin-bottom: 10px;" v-model="queryParams.taskPerson" clearable
@change="getdata()" placeholder="任务人员"></el-input>
<el-input style="margin-right: 10px ;width:180px;margin-bottom: 10px;"
v-model="queryParams.taskPlace" clearable @change="getdata()" placeholder="任务地点"></el-input>
<el-input style="margin-right: 10px ;width:180px;margin-bottom: 10px;"
v-model="queryParams.taskPerson" clearable @change="getdata()" placeholder="任务人员"></el-input>
<el-date-picker v-model="dataduan" type="daterange" range-separator="" @change="getdata()"
style="margin-right: 10px ;margin-bottom: 10px;" start-placeholder="开始时间" end-placeholder="结束时间" />
style="margin-right: 10px ;margin-bottom: 10px;" start-placeholder="开始时间"
end-placeholder="结束时间" />
<el-input style="margin-right: 10px ;width:180px;" v-model="queryParams.carrierName" clearable
@change="getdata()" placeholder="载机名称"></el-input>
<el-input style="margin-right: 10px ;width:180px;" v-model="queryParams.deviceCode" clearable
@ -262,7 +273,7 @@ function typeName(arr: any, itemCode: any) {
@change="getdata()" placeholder="试验描述"></el-input>
<el-input style="margin-right: 10px ;width:380px;" v-model="queryParams.sensorDescribe" clearable
@change="getdata()" placeholder="传感器描述"></el-input>
<el-button type="primary" @click="getdata()">搜索</el-button>
</div>
<div>
@ -289,11 +300,27 @@ function typeName(arr: any, itemCode: any) {
</template>
</el-table-column>
<el-table-column prop="taskPlace" label="任务地点" width="180"></el-table-column>
<el-table-column prop="taskPerson" label="任务人员" width="280"></el-table-column>
<el-table-column prop="taskPerson" label="任务人员" width="280"></el-table-column>
<el-table-column prop="carrierName" label="载机名称" width="180"></el-table-column>
<el-table-column prop="deviceCode" label="设备代号_编号" width="180"></el-table-column>
<el-table-column prop="testDescribe" label="实验描述" width="320"></el-table-column>
<el-table-column prop="sensorDescribe" label="传感器描述" width="320"></el-table-column>
<el-table-column prop="testDescribe" label="试验描述" width="320">
<template #default="scope">
<!-- <span>{{ scope.row.testDescribe }}</span> -->
<div class="ellipsis">
<span class="single-line-ellipsis">{{ scope.row.testDescribe }}</span>
<img src="@/assets/MenuIcon/xqing.png" alt="" title="详情" @click="Loglist(scope.row.testDescribe,'试验描述详情')" style="cursor: pointer;" >
</div>
</template>
</el-table-column>
<el-table-column prop="sensorDescribe" label="传感器描述" width="320">
<template #default="scope">
<!-- <span>{{ scope.row.testDescribe }}</span> -->
<div class="ellipsis">
<span class="single-line-ellipsis">{{ scope.row.sensorDescribe }}</span>
<img src="@/assets/MenuIcon/xqing.png" alt="" title="详情" @click="Loglist(scope.row.sensorDescribe,'传感器描述详情')" style="cursor: pointer;" >
</div>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="80" align="center">
<template #default="scope">
<span
@ -310,48 +337,56 @@ function typeName(arr: any, itemCode: any) {
@pagination="getdata()">
</Page>
</div>
<el-dialog :title="title" v-model="frame" width="35%" :before-close="handleClose" top="30px" draggable :close-on-click-modal="false"
destroy-on-close>
<el-dialog :title="title" v-model="frame" width="60%" :before-close="handleClose" top="30px" draggable
:close-on-click-modal="false" destroy-on-close>
<el-form ref="ruleFormRef" style="max-width:100%" :model="projectForme" :rules="moderules"
label-width="auto" class="demo-ruleForm" status-icon>
<el-form-item label="任务编号">
<el-input v-model="projectForme.taskCode" maxlength="40" show-word-limit disabled />
</el-form-item>
<el-form-item label="任务名称">
<el-input v-model="projectForme.taskName" show-word-limit disabled />
</el-form-item>
<el-form-item label="任务类型" prop="taskType">
<el-select v-model="projectForme.taskType" clearable placeholder=" " @change="getdata()">
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" />
</el-select>
</el-form-item>
<el-form-item label="任务时间" prop="taskDate">
<el-date-picker v-model="projectForme.taskDate" type="daterange" range-separator="-"
start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD" style="width:100%;"
value-format="YYYY-MM-DD" />
</el-form-item>
<el-form-item label="任务地点" prop="taskPlace">
<el-input v-model="projectForme.taskPlace" maxlength="500" show-word-limit />
</el-form-item>
<el-form-item label="任务人员">
<el-input v-model="projectForme.taskPerson" maxlength="500" show-word-limit />
</el-form-item>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="任务编号" style="width: 50%;" >
<el-input v-model="projectForme.taskCode" maxlength="40" show-word-limit disabled style="width: 100%;" />
</el-form-item>
<el-form-item label="任务名称" style="width: 50%;margin-left: 15px;">
<el-input v-model="projectForme.taskName" show-word-limit disabled />
</el-form-item>
</div>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="任务类型" prop="taskType" style="width: 50%;">
<el-select v-model="projectForme.taskType" clearable placeholder=" " @change="getdata()">
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" />
</el-select>
</el-form-item>
<el-form-item label="任务时间" prop="taskDate" style="width: 50%;margin-left: 15px;">
<el-date-picker v-model="projectForme.taskDate" type="daterange" range-separator="-"
start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" />
</el-form-item>
</div>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="任务地点" prop="taskPlace" style="width: 50%;">
<el-input v-model="projectForme.taskPlace" maxlength="500" show-word-limit />
</el-form-item>
<el-form-item label="任务人员" style="width: 50%;margin-left: 15px;">
<el-input v-model="projectForme.taskPerson" maxlength="500" show-word-limit />
</el-form-item>
</div>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="载机名称" style="width: 50%;">
<el-input v-model="projectForme.carrierName" maxlength="40" show-word-limit />
</el-form-item>
<el-form-item label="设备代号_编号" style="width: 50%;margin-left: 15px;">
<el-input v-model="projectForme.deviceCode" maxlength="40" show-word-limit />
</el-form-item>
</div>
<!-- <el-form-item label="载体类型">
<el-input v-model="projectForme.carrierType" maxlength="200" show-word-limit />
</el-form-item> -->
<el-form-item label="载机名称">
<el-input v-model="projectForme.carrierName" maxlength="40" show-word-limit />
</el-form-item>
<el-form-item label="设备代号_编号">
<el-input v-model="projectForme.deviceCode" maxlength="40" show-word-limit />
</el-form-item>
<el-form-item label="实验描述">
<el-input v-model="projectForme.testDescribe" show-word-limit />
<el-form-item label="试验描述">
<el-input v-model="projectForme.testDescribe" :rows="12" type="textarea" show-word-limit />
</el-form-item>
<el-form-item label="传感器描述">
<el-input v-model="projectForme.sensorDescribe" show-word-limit />
<el-input v-model="projectForme.sensorDescribe" :rows="12" type="textarea" show-word-limit />
</el-form-item>
<!-- <el-form-item label="设备名称">
<el-input v-model="projectForme.deviceName" maxlength="40" show-word-limit />
@ -364,10 +399,40 @@ function typeName(arr: any, itemCode: any) {
</el-form-item>
</el-form>
</el-dialog>
<el-dialog :title="title" v-model="logqing" width="60%" :before-close="handleClose1" top="30px" draggable
:close-on-click-modal="false" destroy-on-close>
<div class="texlog">
<el-scrollbar height="80vh">
{{ logTxt }}
</el-scrollbar>
</div>
</el-dialog>
</div>
</template>
<style lang="scss" scoped>
.texlog{
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.ellipsis{
display: flex;
width: 100%;
align-items: center;
justify-content: space-between;
}
.single-line-ellipsis {
width: 270px;
/* 限制容器宽度 */
white-space: nowrap;
/* 禁止文本换行 */
overflow: hidden;
/* 隐藏超出范围的内容 */
text-overflow: ellipsis;
/* 使用省略号 */
}
.record-box {
padding: 20px;
width: 100%;