Commit d6cfbc3d by cat

zd

parent 962762e4
import request from '@/utils/request'
// 查询钻头基础信息列表
export function listZtxxJcxx(query) {
return request({
url: '/system/ztxxJcxx/list',
method: 'get',
params: query
})
}
// 查询钻头基础信息详细
export function getZtxxJcxx(id) {
return request({
url: '/system/ztxxJcxx/' + id,
method: 'get'
})
}
// 新增钻头基础信息
export function addZtxxJcxx(data) {
return request({
url: '/system/ztxxJcxx',
method: 'post',
data: data
})
}
// 修改钻头基础信息
export function updateZtxxJcxx(data) {
return request({
url: '/system/ztxxJcxx',
method: 'put',
data: data
})
}
// 删除钻头基础信息
export function delZtxxJcxx(id) {
return request({
url: '/system/ztxxJcxx/' + id,
method: 'delete'
})
}
......@@ -13,10 +13,10 @@
<el-input v-model="queryParams.jh" placeholder="请输入井号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="完井日期">
<el-date-picker v-model="queryParams.wjrqks" type="year" value-format="yyyy" placeholder="完井开始年份">
<el-date-picker v-model="queryParams.wjrqks" type="date" value-format="yyyy-MM-dd"placeholder="完井开始年份">
</el-date-picker>
-
<el-date-picker v-model="queryParams.wjrqjs" type="year" value-format="yyyy" placeholder="完井结束年份">
<el-date-picker v-model="queryParams.wjrqjs" type="date" value-format="yyyy-MM-dd" placeholder="完井结束年份">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -50,8 +50,8 @@
<el-table border v-loading="loading" :data="jskdList" @selection-change="handleSelectionChange"
height="calc(100vh - 200px)" class="table-container">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="井号" align="center" prop="jh" />
<el-table-column label="序号" align="center" prop="xh" />
<el-table-column label="井号" align="center" prop="jh" />
<el-table-column label="斜井深" align="center" prop="xjs" />
<el-table-column label="段长" align="center" prop="dc" />
<el-table-column label="井斜" align="center" prop="jx" />
......@@ -84,135 +84,125 @@
class="pagination-fixed" />
<!-- 添加或修改定向井测斜数据计算数据对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井号" prop="jh">
<el-input v-model="form.jh" placeholder="请输入井号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="序号" prop="xh">
<el-input v-model="form.xh" placeholder="请输入序号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="斜井深" prop="xjs">
<el-input v-model="form.xjs" placeholder="请输入斜井深" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="段长" prop="dc">
<el-input v-model="form.dc" placeholder="请输入段长" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井斜" prop="jx">
<el-input v-model="form.jx" placeholder="请输入井斜" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="平均井斜" prop="pjjx">
<el-input v-model="form.pjjx" placeholder="请输入平均井斜" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="方位" prop="fw">
<el-input v-model="form.fw" placeholder="请输入方位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="平均方位" prop="pjfw">
<el-input v-model="form.pjfw" placeholder="请输入平均方位" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="全角变化率" prop="qjbhl">
<el-input v-model="form.qjbhl" placeholder="请输入全角变化率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="垂直段长" prop="czdc">
<el-input v-model="form.czdc" placeholder="请输入垂直段长" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="累计垂直井深" prop="ljczjs">
<el-input v-model="form.ljczjs" placeholder="请输入累计垂直井深" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="分段水平位移" prop="fdspwy">
<el-input v-model="form.fdspwy" placeholder="请输入分段水平位移" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井底横坐标1" prop="jdhzb1">
<el-input v-model="form.jdhzb1" placeholder="请输入井底横坐标1" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井底横坐标2" prop="jdhzb2">
<el-input v-model="form.jdhzb2" placeholder="请输入井底横坐标2" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井底纵坐标1" prop="jdzzb1">
<el-input v-model="form.jdzzb1" placeholder="请输入井底纵坐标1" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井底纵坐标2" prop="jdzzb2">
<el-input v-model="form.jdzzb2" placeholder="请输入井底纵坐标2" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="闭合方位" prop="bhfw">
<el-input v-model="form.bhfw" placeholder="请输入闭合方位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="闭合位移" prop="bhwy">
<el-input v-model="form.bhwy" placeholder="请输入闭合位移" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="位移投影度" prop="wytyjd">
<el-input v-model="form.wytyjd" placeholder="请输入位移在设计方位线上投影度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="位移投影米" prop="wytyc">
<el-input v-model="form.wytyc" placeholder="请输入位移在设计方位线上投影米" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="测斜方式" prop="cxfs">
<el-input v-model="form.cxfs" placeholder="请输入测斜方式" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="备注" prop="bz">
<el-input v-model="form.bz" placeholder="请输入备注" />
</el-form-item>
......@@ -446,4 +436,9 @@ export default {
padding: 5px !important;
margin: 0;
}
::v-deep .el-form-item{
margin-bottom: 10px !important;
}
</style>
\ No newline at end of file
......@@ -12,10 +12,10 @@
<el-input v-model="queryParams.jh" placeholder="请输入井号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="完井日期">
<el-date-picker v-model="queryParams.wjrqks" type="year" value-format="yyyy" placeholder="完井开始年份">
<el-date-picker v-model="queryParams.wjrqks" type="date" value-format="yyyy-MM-dd" placeholder="完井开始年份">
</el-date-picker>
-
<el-date-picker v-model="queryParams.wjrqjs" type="year" value-format="yyyy" placeholder="完井结束年份">
<el-date-picker v-model="queryParams.wjrqjs" type="date" value-format="yyyy-MM-dd" placeholder="完井结束年份">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -49,7 +49,7 @@
<el-table v-loading="loading" border :data="jsaaList" @selection-change="handleSelectionChange"
height="calc(100vh - 200px)" class="table-container">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="井号" align="center" prop="jh" width="180" show-overflow-tooltip />
<el-table-column label="井号" align="center" prop="jh" width="180" show-overflow-tooltip fixed />
<el-table-column label="区块" align="center" prop="qk" width="180" show-overflow-tooltip />
<el-table-column label="设计井深" align="center" prop="sjjs" width="180" show-overflow-tooltip />
<el-table-column label="完井井深" align="center" prop="wjjs" width="180" show-overflow-tooltip />
......@@ -140,7 +140,7 @@
<el-table-column label="采油厂" align="center" prop="cyc" />
<el-table-column label="侧钻点深" align="center" prop="czds" />
<el-table-column label="设计层位" align="center" prop="sjcw" /> -->
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleUpdate(scope.row)"
v-hasPermi="['system:jsaa:edit']">查看</el-button>
......@@ -152,29 +152,27 @@
:page-sizes="[10, 20, 30, 50, 100]" @pagination="getList" />
<!-- 添加或修改基础数据对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井号" prop="jh">
<el-input v-model="form.jh" placeholder="请输入井号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="搬迁日期" prop="bqrq">
<el-date-picker clearable v-model="form.bqrq" type="date" value-format="yyyy-MM-dd" placeholder="请选择搬迁日期"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="搬迁时间" prop="bqsj">
<el-input v-model="form.bqsj" placeholder="请输入搬迁时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="安装日期" prop="azrq">
<el-date-picker clearable v-model="form.azrq" type="date" value-format="yyyy-MM-dd" placeholder="请选择安装日期"
style="width: 100%;">
......@@ -183,26 +181,24 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="安装时间" prop="azsj">
<el-input v-model="form.azsj" placeholder="请输入安装时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第一次开钻日期" prop="kzrq1">
<el-date-picker clearable v-model="form.kzrq1" type="date" value-format="yyyy-MM-dd" style="width: 100%;"
placeholder="请选择第一次开钻日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第一次开钻时间" prop="kzsj1">
<el-input v-model="form.kzsj1" placeholder="请输入第一次开钻时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第二次开钻日期" prop="kzrq2">
<el-date-picker clearable v-model="form.kzrq2" type="date" value-format="yyyy-MM-dd" style="width: 100%;"
placeholder="请选择第二次开钻日期">
......@@ -211,26 +207,24 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第二次开钻时间" prop="kzsj2">
<el-input v-model="form.kzsj2" placeholder="请输入第二次开钻时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第三次开钻日期" prop="kzrq3">
<el-date-picker clearable v-model="form.kzrq3" type="date" value-format="yyyy-MM-dd" style="width: 100%;"
placeholder="请选择第三次开钻日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第三次开钻时间" prop="kzsj3">
<el-input v-model="form.kzsj3" placeholder="请输入第三次开钻时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第四次开钻日期" prop="kzrq4">
<el-date-picker clearable v-model="form.kzrq4" type="date" value-format="yyyy-MM-dd" style="width: 100%;"
placeholder="请选择第四次开钻日期">
......@@ -239,26 +233,24 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第四次开钻时间" prop="kzsj4">
<el-input v-model="form.kzsj4" placeholder="请输入第四次开钻时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第五次开钻日期" prop="kzrq5">
<el-date-picker clearable v-model="form.kzrq5" type="date" value-format="yyyy-MM-dd" style="width: 100%;"
placeholder="请选择第五次开钻日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第五次开钻时间" prop="kzsj5">
<el-input v-model="form.kzsj5" placeholder="请输入第五次开钻时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完钻日期" prop="wzrq">
<el-date-picker clearable v-model="form.wzrq" type="date" value-format="yyyy-MM-dd" placeholder="请选择完钻日期"
style="width: 100%;">
......@@ -267,230 +259,212 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完钻时间" prop="wzsj">
<el-input v-model="form.wzsj" placeholder="请输入完钻时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完井日期" prop="wjrq">
<el-date-picker clearable v-model="form.wjrq" type="date" value-format="yyyy-MM-dd" placeholder="请选择完井日期"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完井时间" prop="wjsj">
<el-input v-model="form.wjsj" placeholder="请输入完井时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="钻井周期d" prop="zjzq1">
<el-input v-model="form.zjzq1" placeholder="请输入钻井周期(天)" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="钻井周期h" prop="zjzq2">
<el-input v-model="form.zjzq2" placeholder="请输入钻井周期(小时)" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="建井周期d" prop="jjzq1">
<el-input v-model="form.jjzq1" placeholder="请输入建井周期(天)" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="建井周期h" prop="jjzq2">
<el-input v-model="form.jjzq2" placeholder="请输入建井周期(小时)" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="钻杆测试时间d" prop="zgcssj1">
<el-input v-model="form.zgcssj1" placeholder="请输入钻杆测试时间(天)" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="钻杆测试时间h" prop="zgcssj2">
<el-input v-model="form.zgcssj2" placeholder="请输入钻杆测试时间(小时)" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="返工进尺" prop="fgjc">
<el-input v-model="form.fgjc" placeholder="请输入返工进尺" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="取心进尺" prop="qxjc">
<el-input v-model="form.qxjc" placeholder="请输入取心进尺" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="岩心长度" prop="yxcd">
<el-input v-model="form.yxcd" placeholder="请输入岩心长度" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="岩心收获率" prop="yxshl">
<el-input v-model="form.yxshl" placeholder="请输入岩心收获率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="平均单筒进尺" prop="pjdtjc">
<el-input v-model="form.pjdtjc" placeholder="请输入平均单筒进尺" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="设计井深" prop="sjjs">
<el-input v-model="form.sjjs" placeholder="请输入设计井深" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完井井深" prop="wjjs">
<el-input v-model="form.wjjs" placeholder="请输入完井井深" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完钻垂直井深" prop="wzczjs">
<el-input v-model="form.wzczjs" placeholder="请输入完钻垂直井深" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完钻层位" prop="wzcw">
<el-input v-model="form.wzcw" placeholder="请输入完钻层位" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="完井方法" prop="wjff">
<el-input v-model="form.wjff" placeholder="请输入完井方法" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="钻机月" prop="zjy">
<el-input v-model="form.zjy" placeholder="请输入钻机月" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="钻机月速" prop="zjys">
<el-input v-model="form.zjys" placeholder="请输入钻机月速" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="平均机械钻速" prop="pjjxzs">
<el-input v-model="form.pjjxzs" placeholder="请输入平均机械钻速" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井身质量" prop="jszl">
<el-input v-model="form.jszl" placeholder="请输入井身质量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="固井质量" prop="gjzl">
<el-input v-model="form.gjzl" placeholder="请输入固井质量" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="事故次数" prop="sgcs">
<el-input v-model="form.sgcs" placeholder="请输入事故次数" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="直接成本" prop="zjcb">
<el-input v-model="form.zjcb" placeholder="请输入直接成本" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="综合成本" prop="zhcb">
<el-input v-model="form.zhcb" placeholder="请输入综合成本" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="每米直接成本" prop="mmzjcb">
<el-input v-model="form.mmzjcb" placeholder="请输入每米直接成本" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="每米综合成本" prop="mmzhcb">
<el-input v-model="form.mmzhcb" placeholder="请输入每米综合成本" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="油公司名称" prop="ygsmc">
<el-input v-model="form.ygsmc" placeholder="请输入油公司名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="区块" prop="qk">
<el-input v-model="form.qk" placeholder="请输入区块" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="特殊工艺井" prop="tsgyj">
<el-input v-model="form.tsgyj" placeholder="请输入特殊工艺井" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="主井号" prop="zjh">
<el-input v-model="form.zjh" placeholder="请输入主井号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="分支数" prop="fzs">
<el-input v-model="form.fzs" placeholder="请输入分支数" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="第几分支" prop="djfz">
<el-input v-model="form.djfz" placeholder="请输入第几分支" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="采油厂" prop="cyc">
<el-input v-model="form.cyc" placeholder="请输入采油厂" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="侧钻点深" prop="czds">
<el-input v-model="form.czds" placeholder="请输入侧钻点深" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="设计层位" prop="sjcw">
<el-input v-model="form.sjcw" placeholder="请输入设计层位" />
</el-form-item>
......@@ -804,4 +778,8 @@ export default {
padding: 5px !important;
margin: 0;
}
::v-deep .el-form-item{
margin-bottom: 10px !important;
}
</style>
......@@ -79,42 +79,76 @@
@pagination="getList" :page-sizes="[20, 50, 100]" />
<!-- 添加或修改地质简介地层及岩性描述数据对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="井号" prop="jh">
<el-input v-model="form.jh" placeholder="请输入井号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地质时代名称" prop="dzsdmc">
<el-input v-model="form.dzsdmc" placeholder="请输入地质时代名称" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="层位" prop="cw">
<el-input v-model="form.cw" placeholder="请输入层位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设计底界深度" prop="sjdjsd">
<el-input v-model="form.sjdjsd" placeholder="请输入设计底界深度" @input="handleDecimalInput(form.sjdjsd, 'sjdjsd')" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="实际底界深度" prop="sjdjsd2">
<el-input v-model="form.sjdjsd2" placeholder="请输入实际底界深度"
@input="handleDecimalInput(form.sjdjsd2, 'sjdjsd2')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设计厚度" prop="sjhd">
<el-input v-model="form.sjhd" placeholder="请输入设计厚度" @input="handleDecimalInput(form.sjhd, 'sjhd')" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="实际厚度" prop="sjhd2">
<el-input v-model="form.sjhd2" placeholder="请输入实际厚度" @input="handleDecimalInput(form.sjhd2, 'sjhd2')" />
</el-form-item>
<el-form-item label="主要岩性描述" prop="zyyxms">
<el-input v-model="form.zyyxms" placeholder="请输入主要岩性描述" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地层走向" prop="dczx">
<el-input v-model="form.dczx" placeholder="请输入地层走向" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="地层倾角" prop="dcqj">
<el-input v-model="form.dcqj" placeholder="请输入地层倾角" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="主要岩性描述" prop="zyyxms">
<el-input v-model="form.zyyxms" placeholder="请输入主要岩性描述" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="bz">
<el-input v-model="form.bz" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
......@@ -168,14 +202,14 @@ export default {
form: {},
// 表单校验
rules: {
sjdjsd: [
{ required: true, message: "设计底界深度不能为空", trigger: "blur" }
sjdjsd2: [
{ required: true, message: "实际底界深度不能为空", trigger: "blur" }
],
jh: [
{ required: true, message: "井号不能为空", trigger: "blur" }
],
sjhd: [
{ required: true, message: "设计厚度不能为空", trigger: "blur" }
sjhd2: [
{ required: true, message: "实际厚度不能为空", trigger: "blur" }
],
dzsdmc: [
{ required: true, message: "地质时代名称不能为空", trigger: "blur" }
......
......@@ -13,9 +13,9 @@
<el-input v-model="queryParams.jh" placeholder="请输入井号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="完井开始日期" prop="wjrqks">
<el-date-picker v-model="queryParams.wjrqks" type="year" placeholder="选择完井开始年份" clearable value-format="yyyy" />
<el-date-picker v-model="queryParams.wjrqks" type="date" placeholder="选择完井开始年份" clearable value-format="yyyy-MM-dd" />
-
<el-date-picker v-model="queryParams.wjrqjs" type="year" placeholder="选择完井结束年份" clearable value-format="yyyy" />
<el-date-picker v-model="queryParams.wjrqjs" type="date" placeholder="选择完井结束年份" clearable value-format="yyyy-MM-dd"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
......@@ -48,7 +48,7 @@
<el-table border v-loading="loading" :data="jsdbList" @selection-change="handleSelectionChange"
height="calc(100vh - 210px)" class="table-container">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="井号" align="center" prop="jh" width="205" show-overflow-tooltip />
<el-table-column label="井号" align="center" prop="jh" width="205" show-overflow-tooltip fixed />
<el-table-column label="套管层次" align="center" prop="tgcc" width="185" show-overflow-tooltip />
<el-table-column label="钻头直径" align="center" prop="ztzj" width="185" show-overflow-tooltip />
<el-table-column label="井深" align="center" prop="js" width="185" show-overflow-tooltip />
......@@ -78,7 +78,7 @@
<el-table-column label="套管附件深度6" align="center" prop="tgfj6sd" />
<el-table-column label="套管附件深度7" align="center" prop="tgfj7sd" />
<el-table-column label="套管附件深度8" align="center" prop="tgfj8sd" /> -->
<el-table-column label="操作" align="center" width="170" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" width="170" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)">查看</el-button>
</template>
......@@ -89,171 +89,157 @@
:page-sizes="[10, 20, 30, 50, 100]" @pagination="getList" />
<!-- 查看井身结构数据对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="钻头直径" prop="ztzj">
<el-input v-model="form.ztzj" placeholder="请输入钻头直径" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="井深" prop="js">
<el-input v-model="form.js" placeholder="请输入井深" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管外径" prop="tgwj">
<el-input v-model="form.tgwj" placeholder="请输入套管外径" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管顶部深度" prop="tgdbsd">
<el-input v-model="form.tgdbsd" placeholder="请输入套管顶部深度" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管鞋深度" prop="tgxsd">
<el-input v-model="form.tgxsd" placeholder="请输入套管鞋深度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="人工井底深度" prop="rgjdsd">
<el-input v-model="form.rgjdsd" placeholder="请输入人工井底深度" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="阻流环深度1" prop="zlhsd">
<el-input v-model="form.zlhsd" placeholder="请输入阻流环深度1" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="水泥外返深度" prop="snwfsd">
<el-input v-model="form.snwfsd" placeholder="请输入水泥外返深度" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="扶正器" prop="tgfzq">
<el-input v-model="form.tgfzq" placeholder="请输入扶正器" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件1" prop="tgfj1">
<el-input v-model="form.tgfj1" placeholder="请输入套管附件1" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件2" prop="tgfj2">
<el-input v-model="form.tgfj2" placeholder="请输入套管附件2" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件3" prop="tgfj3">
<el-input v-model="form.tgfj3" placeholder="请输入套管附件3" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件4" prop="tgfj4">
<el-input v-model="form.tgfj4" placeholder="请输入套管附件4" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度1" prop="tgfj1sd">
<el-input v-model="form.tgfj1sd" placeholder="请输入套管附件深度1" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度2" prop="tgfj2sd">
<el-input v-model="form.tgfj2sd" placeholder="请输入套管附件深度2" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度3" prop="tgfj3sd">
<el-input v-model="form.tgfj3sd" placeholder="请输入套管附件深度3" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度4" prop="tgfj4sd">
<el-input v-model="form.tgfj4sd" placeholder="请输入套管附件深度4" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套补距" prop="tbj">
<el-input v-model="form.tbj" placeholder="请输入套补距" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="阻流环深度2" prop="zlhsd1">
<el-input v-model="form.zlhsd1" placeholder="请输入阻流环深度2" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="阻流环深度3" prop="zlhsd2">
<el-input v-model="form.zlhsd2" placeholder="请输入阻流环深度3" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件5" prop="tgfj5">
<el-input v-model="form.tgfj5" placeholder="请输入套管附件5" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件6" prop="tgfj6">
<el-input v-model="form.tgfj6" placeholder="请输入套管附件6" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件7" prop="tgfj7">
<el-input v-model="form.tgfj7" placeholder="请输入套管附件7" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件8" prop="tgfj8">
<el-input v-model="form.tgfj8" placeholder="请输入套管附件8" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度5" prop="tgfj5sd">
<el-input v-model="form.tgfj5sd" placeholder="请输入套管附件深度5" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度6" prop="tgfj6sd">
<el-input v-model="form.tgfj6sd" placeholder="请输入套管附件深度6" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度7" prop="tgfj7sd">
<el-input v-model="form.tgfj7sd" placeholder="请输入套管附件深度7" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="套管附件深度8" prop="tgfj8sd">
<el-input v-model="form.tgfj8sd" placeholder="请输入套管附件深度8" />
</el-form-item>
......@@ -515,4 +501,7 @@ export default {
padding: 5px !important;
margin: 0;
}
::v-deep .el-form-item{
margin-bottom: 10px !important;
}
</style>
\ No newline at end of file
......@@ -38,15 +38,20 @@
<el-table border v-loading="loading" :data="jshaList" @selection-change="handleSelectionChange"
@row-click="handleRowClick" :max-height="tableHeight" style="width: 100%">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="井号" align="center" prop="jh" width="120" show-overflow-tooltip />
<el-table-column label="序号" align="center" prop="xh" width="120" show-overflow-tooltip />
<el-table-column label="序号" align="center" prop="xh" width="120" show-overflow-tooltip fixed/>
<el-table-column label="井号" align="center" prop="jh" width="120" show-overflow-tooltip fixed/>
<el-table-column label="钻头序列号" align="center" prop="ztxlh" width="120" show-overflow-tooltip />
<el-table-column label="尺寸" align="center" prop="cc" width="120" show-overflow-tooltip />
<el-table-column label="钻进井段自" align="center" prop="qsjs" width="120" show-overflow-tooltip />
<el-table-column label="钻进井段至" align="center" prop="zzjs" width="120" show-overflow-tooltip />
<el-table-column label="进尺" align="center" prop="jc" width="120" show-overflow-tooltip />
<el-table-column label="机械钻速" align="center" prop="jxzs" width="120" show-overflow-tooltip />
<el-table-column label="所钻地层" align="center" prop="szdc" width="120" show-overflow-tooltip />
<el-table-column label="厂家" align="center" prop="cj" width="120" show-overflow-tooltip />
<el-table-column label="钻头型号" align="center" prop="ztxh" width="120" show-overflow-tooltip />
<el-table-column label="IADC号" align="center" prop="iadc" width="120" show-overflow-tooltip />
<el-table-column label="下井次数" align="center" prop="xjcs" width="120" show-overflow-tooltip />
<el-table-column label="尺寸" align="center" prop="cc" width="120" show-overflow-tooltip />
<el-table-column label="类型" align="center" prop="lx" width="120" show-overflow-tooltip />
<el-table-column label="厂家" align="center" prop="cj" width="120" show-overflow-tooltip />
<el-table-column label="入井新度" align="center" prop="rjxd" width="120" show-overflow-tooltip />
<el-table-column label="出井新度" align="center" prop="cjxd" width="120" show-overflow-tooltip />
<el-table-column label="喷嘴直径1号" align="center" prop="pz1" width="120" show-overflow-tooltip />
......@@ -59,11 +64,6 @@
<el-table-column label="喷嘴直径8号" align="center" prop="pz8" />
<el-table-column label="喷嘴直径9号" align="center" prop="pz9" />
<el-table-column label="喷嘴直径10号" align="center" prop="pz10" /> -->
<el-table-column label="钻进井段自" align="center" prop="qsjs" width="120" show-overflow-tooltip />
<el-table-column label="钻进井段至" align="center" prop="zzjs" width="120" show-overflow-tooltip />
<el-table-column label="所钻地层" align="center" prop="szdc" width="120" show-overflow-tooltip />
<el-table-column label="进尺" align="center" prop="jc" width="120" show-overflow-tooltip />
<el-table-column label="机械钻速" align="center" prop="jxzs" width="120" show-overflow-tooltip />
<el-table-column label="进尺工作时间合计" align="center" prop="jcsjhj" width="220" show-overflow-tooltip />
<el-table-column label="进尺工作时间纯钻进" align="center" prop="jcsjczj" width="220" show-overflow-tooltip />
<el-table-column label="进尺工作时间起下钻" align="center" prop="jcsjqxz" width="220" show-overflow-tooltip />
......@@ -110,7 +110,7 @@
<el-table-column label="喷嘴类型" align="center" prop="pzlx" />
<el-table-column label="钻头价格" align="center" prop="ztjg" /> -->
<el-table-column label="操作" width="120" align="center" class-name="small-padding fixed-width"
property="operation">
property="operation" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:jsha:edit']">修改</el-button>
......@@ -147,54 +147,58 @@
<div class="section-title">基础信息</div>
<el-row>
<el-col :span="8">
<el-form-item label="井号" prop="jh">
<el-input v-model="form.jh" placeholder="请输入井号" :disabled="isEdit" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="序号" prop="xh">
<el-input v-model="form.xh" placeholder="请输入序号" @input="(val) => handleNumberInput(val, 'xh')"
maxlength="3" :disabled="isEdit" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="钻头序列号" prop="ztxlh">
<el-input v-model="form.ztxlh" placeholder="请输入钻头序列号" />
<el-form-item label="井号" prop="jh">
<el-input v-model="form.jh" placeholder="请输入井号" :disabled="isEdit" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="尺寸" prop="cc">
<el-input v-model="form.cc" placeholder="请输入尺寸" @input="(val) => handleDecimalInput(val, 'cc')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="钻头型号" prop="ztxh">
<el-input v-model="form.ztxh" placeholder="请输入钻头型号" />
<el-form-item label="钻进井段自" prop="qsjs">
<el-input v-model="form.qsjs" placeholder="请输入钻进井段自"
@input="(val) => handleDecimalInput(val, 'qsjs')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="IADC号" prop="iadc">
<el-input v-model="form.iadc" placeholder="请输入IADC号" />
<el-form-item label="钻进井段至" prop="zzjs">
<el-input v-model="form.zzjs" placeholder="请输入钻进井段至"
@input="(val) => handleDecimalInput(val, 'zzjs')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="下井次数" prop="xjcs">
<el-input v-model="form.xjcs" placeholder="请输入下井次数" @input="(val) => handleNumberInput(val, 'xjcs')"
maxlength="3" />
<el-form-item label="进尺" prop="jc">
<el-input v-model="form.jc" placeholder="请输入进尺" @input="(val) => handleDecimalInput(val, 'jc')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="尺寸" prop="cc">
<el-input v-model="form.cc" placeholder="请输入尺寸" @input="(val) => handleDecimalInput(val, 'cc')" />
<el-form-item label="机械钻速" prop="jxzs">
<el-input v-model="form.jxzs" placeholder="请输入机械钻速" @input="(val) => handleDecimalInput(val, 'jxzs')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="类型" prop="lx">
<el-input v-model="form.lx" placeholder="请输入类型" />
<el-form-item label="厂家" prop="cj">
<el-input v-model="form.cj" placeholder="请输入厂家" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="厂家" prop="cj">
<el-input v-model="form.cj" placeholder="请输入厂家" />
<el-form-item label="类型" prop="lx">
<el-input v-model="form.lx" placeholder="请输入类型" />
</el-form-item>
</el-col>
</el-row>
......@@ -227,17 +231,15 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="钻进井段自" prop="qsjs">
<el-input v-model="form.qsjs" placeholder="请输入钻进井段自"
@input="(val) => handleDecimalInput(val, 'qsjs')" />
<el-form-item label="钻头序列号" prop="ztxlh">
<el-input v-model="form.ztxlh" placeholder="请输入钻头序列号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="钻进井段至" prop="zzjs">
<el-input v-model="form.zzjs" placeholder="请输入钻进井段至"
@input="(val) => handleDecimalInput(val, 'zzjs')" />
<el-form-item label="钻头型号" prop="ztxh">
<el-input v-model="form.ztxh" placeholder="请输入钻头型号" />
</el-form-item>
</el-col>
<el-col :span="8">
......@@ -246,15 +248,17 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="进尺" prop="jc">
<el-input v-model="form.jc" placeholder="请输入进尺" @input="(val) => handleDecimalInput(val, 'jc')" />
<el-form-item label="IADC号" prop="iadc">
<el-input v-model="form.iadc" placeholder="请输入IADC号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="机械钻速" prop="jxzs">
<el-input v-model="form.jxzs" placeholder="请输入机械钻速" @input="(val) => handleDecimalInput(val, 'jxzs')" />
<el-form-item label="下井次数" prop="xjcs">
<el-input v-model="form.xjcs" placeholder="请输入下井次数" @input="(val) => handleNumberInput(val, 'xjcs')"
maxlength="3" />
</el-form-item>
</el-col>
<el-col :span="8">
......@@ -491,21 +495,21 @@
<el-col :span="8">
<el-form-item label="刀翼总数" prop="t01">
<el-select v-model="form.t01" placeholder="请选择刀翼总数" clearable style="width: 100%">
<el-option v-for="item in t01Options" :key="item.tzdm" :label="item.tzxl" :value="item.tzdm" />
<el-option v-for="item in t01Options" :key="item.tzdm" :label="`${item.tzxl}(${item.tzdm})`" :value="item.tzdm" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="布齿密度" prop="t02">
<el-select v-model="form.t02" placeholder="请选择布齿密度" clearable style="width: 100%">
<el-option v-for="item in t02Options" :key="item.tzdm" :label="item.tzxl" :value="item.tzdm" />
<el-option v-for="item in t02Options" :key="item.tzdm" :label="`${item.tzxl}(${item.tzdm})`" :value="item.tzdm" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="切削齿尺寸mm" prop="t03">
<el-select v-model="form.t03" placeholder="请选择切削齿尺寸" clearable style="width: 100%">
<el-option v-for="item in t03Options" :key="item.tzdm" :label="item.tzxl" :value="item.tzdm" />
<el-option v-for="item in t03Options" :key="item.tzdm" :label="`${item.tzxl}(${item.tzdm})`" :value="item.tzdm" />
</el-select>
</el-form-item>
</el-col>
......@@ -514,21 +518,21 @@
<el-col :span="8">
<el-form-item label="切削齿负前角°" prop="t04">
<el-select v-model="form.t04" placeholder="请选择切削齿负前角" clearable style="width: 100%">
<el-option v-for="item in t04Options" :key="item.tzdm" :label="item.tzxl" :value="item.tzdm" />
<el-option v-for="item in t04Options" :key="item.tzdm" :label="`${item.tzxl}(${item.tzdm})`" :value="item.tzdm" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="冠部形状" prop="t05">
<el-select v-model="form.t05" placeholder="请选择冠部形状" clearable style="width: 100%">
<el-option v-for="item in t05Options" :key="item.tzdm" :label="item.tzxl" :value="item.tzdm" />
<el-option v-for="item in t05Options" :key="item.tzdm" :label="`${item.tzxl}(${item.tzdm})`" :value="item.tzdm" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="保径" prop="t06">
<el-select v-model="form.t06" placeholder="请选择保径" clearable style="width: 100%">
<el-option v-for="item in t06Options" :key="item.tzdm" :label="item.tzxl" :value="item.tzdm" />
<el-option v-for="item in t06Options" :key="item.tzdm" :label="`${item.tzxl}(${item.tzdm})`" :value="item.tzdm" />
</el-select>
</el-form-item>
</el-col>
......@@ -653,6 +657,21 @@ export default {
],
xh: [
{ required: true, message: "序号不能为空", trigger: "blur" }
],
cc: [
{ required: true, message: "尺寸不能为空", trigger: "blur" }
],
qsjs: [
{ required: true, message: "钻进井段自不能为空", trigger: "blur" }
],
zzjs: [
{ required: true, message: "钻进井段至不能为空", trigger: "blur" }
],
jc: [
{ required: true, message: "进尺不能为空", trigger: "blur" }
],
jxzs: [
{ required: true, message: "机械钻速不能为空", trigger: "blur" }
]
},
selectedRow: null, // 当前选中的行数据
......@@ -903,7 +922,7 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/jsha/export', {
this.download('system/jshaPdc/export', {
...this.queryParams
}, `jsha_${new Date().getTime()}.xlsx`)
},
......@@ -1072,4 +1091,8 @@ export default {
margin-bottom: 18px;
padding-right: 20px;
}
::v-deep .el-form-item{
margin-bottom: 10px !important;
}
</style>
<!-- 测井数据 -->
<template>
<div class="app-container">
<el-tabs v-model="activeTab" v-loading="loading">
<el-tab-pane label="测井数据" name="loggingData">
<!-- <el-tabs v-model="activeTab" v-loading="loading"> -->
<!-- <el-tab-pane label="测井数据" name="loggingData"> -->
<el-form :model="cjqueryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="100px">
<el-form-item label="井号" prop="jh">
......@@ -17,7 +17,7 @@
</el-form-item>
</el-form>
<div style="background-color: #fff;">
<el-form style="background-color: #fff" ref="queryForm" size="small" :inline="true"
<!-- <el-form style="background-color: #fff" ref="queryForm" size="small" :inline="true"
v-show="showSearch" label-width="68px">
<el-form-item style="margin: 5px 0 5px 10px;">
<el-button type="primary" @click="handleImport2">导入las文件</el-button>
......@@ -27,7 +27,7 @@
<el-button type="primary" @click="jscs">计算参数</el-button>
<el-button type="primary" @click="js">计算</el-button>
</el-form-item>
</el-form>
</el-form> -->
<el-table border :height="TableHeight()" style="background-color: #fff;margin-top: 5px"
:data="cjsjLasList" :header-cell-style="{
padding: '1px 0',
......@@ -43,11 +43,11 @@
<pagination v-show="total > 0" :total="total" :page.sync="cjqueryParams.pageNum"
:limit.sync="cjqueryParams.pageSize" @pagination="handleCjData" />
</div>
</el-tab-pane>
<!-- </el-tab-pane>
<el-tab-pane label="钻头优选" name="drillBitSelection">
<cjqx></cjqx>
</el-tab-pane>
</el-tabs>
</el-tab-pane> -->
<!-- </el-tabs> -->
<!-- 弹窗组件 -->
<el-dialog title="变量取值范围" :visible.sync="open" width="700px" append-to-body>
......
......@@ -216,6 +216,8 @@
v-hasPermi="['system:ljSssjSd:add']">新增</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:ljSssjSd:export']">导出</el-button>
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['system:ljSssjSd:import']">导入</el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">
......@@ -241,7 +243,7 @@
style="width: 100%">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<!-- <el-table-column label="id" align="center" prop="id" /> -->
<el-table-column label="井号" align="center" prop="jh" />
<el-table-column label="井号" align="center" prop="jh" fixed/>
<el-table-column label="井眼编号" align="center" prop="jybh" />
<el-table-column label="日期" align="center" prop="rq" width="180">
<template slot-scope="scope">
......@@ -310,7 +312,7 @@
<el-table-column label="井眼名称" align="center" prop="jymc" show-overflow-tooltip />
<el-table-column label="迟到时间" align="center" prop="cdsj" show-overflow-tooltip />
<el-table-column label="出口电导" align="center" prop="ckdd" show-overflow-tooltip />
<el-table-column label="操作" align="center" width="220px" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" width="220px" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:ljSssjSd:edit']">修改</el-button>
......@@ -327,16 +329,25 @@
<el-row>
<el-col :span="8">
<el-form-item label="井号" prop="jh">
<template slot="label">
井号
</template>
<el-input v-model="form.jh" placeholder="请输入井号" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="井眼编号" prop="jybh">
<el-input v-model="form.jybh" placeholder="请输入井眼编号" :disabled="true" />
<template slot="label">
井眼编号
</template>
<el-input v-model="form.jybh" placeholder="请输入井眼编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="钻达时间" prop="rq">
<template slot="label">
钻达时间
</template>
<el-date-picker clearable v-model="form.rq" type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" placeholder="请选择日期" style="width: 100%;">
</el-date-picker>
......@@ -346,6 +357,9 @@
<el-row>
<el-col :span="8">
<el-form-item label="井深" prop="js">
<template slot="label">
井深
</template>
<el-input v-model="form.js" placeholder="请输入井深"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.js = $event.target.value" />
......@@ -353,6 +367,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="垂深" prop="cs">
<template slot="label">
垂深
</template>
<el-input v-model="form.cs" placeholder="请输入垂深"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.cs = $event.target.value" />
......@@ -360,6 +377,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="迟到井深" prop="cdjs">
<template slot="label">
迟到井深
</template>
<el-input v-model="form.cdjs" placeholder="请输入迟到井深"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.cdjs = $event.target.value" />
......@@ -369,11 +389,17 @@
<el-row>
<el-col :span="8">
<el-form-item label="钻头型号" prop="ztxh">
<template slot="label">
钻头型号
</template>
<el-input v-model="form.ztxh" placeholder="请输入钻头型号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="钻头直径" prop="ztzj">
<template slot="label">
钻头直径
</template>
<el-input v-model="form.ztzj" placeholder="请输入钻头直径"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.ztzj = $event.target.value" />
......@@ -381,6 +407,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="进尺" prop="jc">
<template slot="label">
进尺
</template>
<el-input v-model="form.jc" placeholder="请输入进尺"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.jc = $event.target.value" />
......@@ -390,6 +419,9 @@
<el-row>
<el-col :span="8">
<el-form-item label="大钩负荷" prop="dgfh">
<template slot="label">
大钩负荷
</template>
<el-input v-model="form.dgfh" placeholder="请输入大钩负荷"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.dgfh = $event.target.value" />
......@@ -397,6 +429,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="钻压" prop="zy">
<template slot="label">
钻压
</template>
<el-input v-model="form.zy" placeholder="请输入钻压"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.zy = $event.target.value" />
......@@ -404,6 +439,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="转速" prop="zs1">
<template slot="label">
转速
</template>
<el-input v-model="form.zs1" placeholder="请输入转速"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.zs1 = $event.target.value" />
......@@ -413,6 +451,9 @@
<el-row>
<el-col :span="8">
<el-form-item label="扭矩" prop="nj">
<template slot="label">
扭矩
</template>
<el-input v-model="form.nj" placeholder="请输入扭矩"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.nj = $event.target.value" />
......@@ -420,6 +461,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="顶驱扭矩" prop="dqnj">
<template slot="label">
顶驱扭矩
</template>
<el-input v-model="form.dqnj" placeholder="请输入顶驱扭矩"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.dqnj = $event.target.value" />
......@@ -427,6 +471,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="成本" prop="cb">
<template slot="label">
成本
</template>
<el-input v-model="form.cb" placeholder="请输入成本"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.cb = $event.target.value" />
......@@ -436,6 +483,9 @@
<el-row>
<el-col :span="8">
<el-form-item label="纯钻进时间" prop="zzsj">
<template slot="label">
纯钻进时间
</template>
<el-input v-model="form.zzsj" placeholder="请输入纯钻进时间"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.zzsj = $event.target.value" />
......@@ -443,6 +493,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="运行时间" prop="yxsj">
<template slot="label">
运行时间
</template>
<el-input v-model="form.yxsj" placeholder="请输入运行时间"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.yxsj = $event.target.value" />
......@@ -450,6 +503,9 @@
</el-col>
<el-col :span="8">
<el-form-item label="钻井天数" prop="zjts">
<template slot="label">
钻井天数
</template>
<el-input v-model="form.zjts" placeholder="请输入钻井天数"
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
@blur="form.zjts = $event.target.value" />
......@@ -815,6 +871,33 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="500px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
@click="importTemplate" >下载模板
</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="upload.open = false"> </el-button>
</div>
</el-dialog>
</div>
......@@ -822,6 +905,7 @@
<script>
import { listLjSssjSd, getLjSssjSd, delLjSssjSd, addLjSssjSd, updateLjSssjSd } from "@/api/optimization/ljSssjSd";
import { getToken } from "@/utils/auth";
export default {
name: "LjSssjSd",
......@@ -919,6 +1003,47 @@ export default {
form: {},
// 表单校验
rules: {
jh: [
{ required: true, message: "井号不能为空", trigger: "blur" }
],
jybh: [
{ required: true, message: "井眼编号不能为空", trigger: "blur" }
],
rq: [
{ required: true, message: "钻达时间不能为空", trigger: "change" }
],
js: [
{ required: true, message: "井深不能为空", trigger: "blur" }
],
cs: [
{ required: true, message: "垂深不能为空", trigger: "blur" }
],
cdjs: [
{ required: true, message: "迟到井深不能为空", trigger: "blur" }
],
ztxh: [
{ required: true, message: "钻头型号不能为空", trigger: "blur" }
],
ztzj: [
{ required: true, message: "钻头直径不能为空", trigger: "blur" }
],
jc: [
{ required: true, message: "进尺不能为空", trigger: "blur" }
],
},
importOpen: false,
uploadForm: {},
isUploading: false,
importing: false,
importUrl: process.env.VUE_APP_BASE_API + '/system/ljSssjSd/importData',
uploadHeaders: { Authorization: 'Bearer ' + getToken() },
upload: {
open: false,
title: "录井整米数据导入",
isUploading: false,
headers: {Authorization: "Bearer " + getToken()},
url: process.env.VUE_APP_BASE_API + "/system/ljSssjSd/importData"
}
};
},
......@@ -930,7 +1055,7 @@ export default {
getList() {
this.loading = true;
this.queryParams.jhdm = this.$route.query.jhdm;
this.queryParams.jybh = '1';
// this.queryParams.jybh = '1';
listLjSssjSd(this.queryParams).then(response => {
this.ljSssjSdList = response.rows;
this.total = response.total;
......@@ -1088,7 +1213,56 @@ export default {
this.download('system/ljSssjSd/export', {
...this.queryParams
}, `ljSssjSd_${new Date().getTime()}.xlsx`)
}
},
handleImport() {
this.upload.title = "录井整米数据导入";
this.upload.open = true;
},
importTemplate() {
this.download('system/ljSssjSd/exportMb', {}, `录井整米数据导入模板.xlsx`)
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + (response.msg || '导入成功') + "</div>", "导入结果", {dangerouslyUseHTMLString: true});
this.getList();
},
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.importOpen = false;
this.isUploading = false;
this.importing = false;
this.$refs.upload.clearFiles();
},
handleImportSuccess(response, file, fileList) {
this.importOpen = false;
this.isUploading = false;
this.importing = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
(response.msg || '导入成功') +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
handleImportError() {
this.isUploading = false;
this.importing = false;
this.$message.error('导入失败');
this.importOpen = false;
},
handleDownloadTemplate() {
this.download('system/ljSssjSd/exportMb', {}, '录井整米数据导入模板.xlsx');
},
}
};
</script>
......@@ -1118,4 +1292,26 @@ export default {
margin-top: 5px;
height: auto;
}
::v-deep .el-form-item{
margin-bottom: 10px !important;
}
.mask {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(255,255,255,0.7);
display: flex;
align-items: center;
justify-content: center;
z-index: 10;
}
.mask-content {
display: flex;
align-items: center;
font-size: 18px;
color: #409EFF;
}
.mask-content i {
margin-right: 8px;
}
</style>
......@@ -1790,7 +1790,7 @@ export default {
.button-container {
display: flex;
justify-content: end;
justify-content: flex-end;
margin: 0 50px;
/* justify-content: space-around; */
font-size: 20px;
......
<!-- 钻头基础信息 basicInformationOfDrillBit -->
<template>
<div class="app-container">
<!-- 查询表单 -->
<el-form ref="queryForm" :inline="true" :model="queryParams" class="drillbit-form">
<el-form-item label="钻头尺寸">
<el-input v-model="queryParams.ztcc" placeholder="请输入钻头尺寸" clearable />
</el-form-item>
<el-form-item label="钻头型号">
<el-input v-model="queryParams.ztxh" placeholder="请输入钻头型号" clearable />
</el-form-item>
<el-form-item label="钻头类别">
<el-input v-model="queryParams.ztlb" placeholder="请输入钻头类别" clearable />
</el-form-item>
<el-form-item label="生产厂家">
<el-input v-model="queryParams.sccj" placeholder="请输入生产厂家" clearable />
</el-form-item>
<el-form-item label="钻头编号">
<el-input v-model="queryParams.ztbh" placeholder="请输入钻头编号" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSearch" size="mini">查询</el-button>
<el-button @click="onReset" size="mini">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="onAdd"
v-hasPermi="['system:ztxxJcxx:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="onEdit"
v-hasPermi="['system:ztxxJcxx:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="onDelete"
v-hasPermi="['system:ztxxJcxx:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:ztxxJcxx:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="onSearch"></right-toolbar>
</el-row>
<!-- 数据表格 -->
<el-table :data="tableData" style="width: 100%;margin: 10px 0;" stripe highlight-current-row border
v-loading="loading" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="ztbh" label="钻头编号" width="100" align="center" />
<el-table-column prop="ztcc" label="钻头尺寸" align="center" />
<el-table-column prop="ztxh" label="钻头型号" align="center" />
<el-table-column prop="ztlb" label="钻头类别" align="center" />
<el-table-column prop="sccj" label="生产厂家" align="center" />
<el-table-column prop="t01" label="刀翼总数" width="100" align="center" show-overflow-tooltip
:formatter="(row) => getOptionLabel(row.t01, bladeCountOptions)" />
<el-table-column prop="t02" label="布齿密度" width="100" align="center" show-overflow-tooltip
:formatter="(row) => getOptionLabel(row.t02, bcmdOptions)" />
<el-table-column prop="t03" label="切削齿尺寸mm" width="150" align="center" show-overflow-tooltip
:formatter="(row) => getOptionLabel(row.t03, qxccOptions)" />
<el-table-column prop="t04" label="切削齿负前角" width="150" align="center" show-overflow-tooltip
:formatter="(row) => getOptionLabel(row.t04, qxfnjOptions)" />
<el-table-column prop="t05" label="冠部形状" width="150" align="center" show-overflow-tooltip
:formatter="(row) => getOptionLabel(row.t05, gbxzOptions)" />
<el-table-column prop="t06" label="保径" width="150" align="center" show-overflow-tooltip
:formatter="(row) => getOptionLabel(row.t06, bjOptions)" />
<el-table-column label="操作" width="220" align="center">
<template #default="scope">
<el-button type="primary" size="mini" @click="onDetail(scope.row)">详情</el-button>
<el-button type="warning" size="mini" @click="onEdit(scope.row)">编辑</el-button>
<el-button type="danger" size="mini" @click="onDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 新增弹窗 -->
<el-dialog title="新增钻头" :visible.sync="dialogVisible" width="90%" @close="handleDialogClose">
<div class="dialog-card">
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="钻头编号" prop="ztbh">
<el-input v-model="form.ztbh" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="钻头尺寸" prop="ztcc">
<el-input v-model="form.ztcc" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="钻头型号" prop="ztxh">
<el-input v-model="form.ztxh" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="钻头类别" prop="ztlb">
<el-input v-model="form.ztlb" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产厂家" prop="sccj">
<el-input v-model="form.sccj" />
</el-form-item>
</el-col>
</el-row>
<el-divider class="divider-strong">特征参数</el-divider>
<el-collapse v-model="activeCollapse" class="collapse-area">
<el-collapse-item title="刀翼总数" name="dyzs">
<el-form-item prop="tzdm01">
<el-radio-group v-model="form.tzdm01" style="width:100%" @change="onTzdm01Change">
<el-radio-button v-for="item in bladeCountOptions" :key="item.value" :label="item.value"
style="margin-right:24px;display:inline-block;min-width:100px;">
<div style="display:flex;flex-direction:column;align-items:center;">
<img :src="item.img" style="width:80px;height:80px;margin-bottom:4px;" v-if="item.img"
@click.stop="handlePreview(item.img)" />
<span>{{ item.label }}</span>
</div>
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-collapse-item>
<el-collapse-item title="布齿密度" name="bcmd">
<el-form-item prop="tzdm02">
<el-radio-group v-model="form.tzdm02" style="width:100%">
<el-radio-button v-for="item in bcmdOptions" :key="item.value" :label="item.value"
style="margin-right:24px;display:inline-block;min-width:100px;">
<div style="display:flex;flex-direction:column;align-items:center;">
<img :src="item.img" style="width:80px;height:80px;margin-bottom:4px;" v-if="item.img"
@click.stop="handlePreview(item.img)" />
<span>{{ item.label }}</span>
</div>
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-collapse-item>
<el-collapse-item title="切削齿尺寸mm" name="qxcc">
<el-form-item prop="tzdm03">
<el-radio-group v-model="form.tzdm03" style="width:100%">
<el-radio-button v-for="item in qxccOptions" :key="item.value" :label="item.value"
style="margin-right:24px;display:inline-block;min-width:100px;">
<div style="display:flex;flex-direction:column;align-items:center;">
<img :src="item.img" style="width:80px;height:80px;margin-bottom:4px;" v-if="item.img"
@click.stop="handlePreview(item.img)" />
<span>{{ item.label }}</span>
</div>
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-collapse-item>
<el-collapse-item title="切削齿负前角" name="qxfnj">
<el-form-item prop="tzdm04">
<el-radio-group v-model="form.tzdm04" style="width:100%">
<el-radio-button v-for="item in qxfnjOptions" :key="item.value" :label="item.value"
style="margin-right:24px;display:inline-block;min-width:100px;">
<div style="display:flex;flex-direction:column;align-items:center;">
<img :src="item.img" style="width:80px;height:80px;margin-bottom:4px;" v-if="item.img"
@click.stop="handlePreview(item.img)" />
<span>{{ item.label }}</span>
</div>
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-collapse-item>
<el-collapse-item title="冠部形状" name="gbxz">
<el-form-item prop="tzdm05">
<el-radio-group v-model="form.tzdm05" style="width:100%">
<el-radio-button v-for="item in gbxzOptions" :key="item.value" :label="item.value"
style="margin-right:24px;display:inline-block;min-width:100px;">
<div style="display:flex;flex-direction:column;align-items:center;">
<img :src="item.img" style="width:80px;height:80px;margin-bottom:4px;" v-if="item.img"
@click.stop="handlePreview(item.img)" />
<span>{{ item.label }}</span>
</div>
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-collapse-item>
<el-collapse-item title="保径" name="bj">
<el-form-item prop="tzdm06">
<el-radio-group v-model="form.tzdm06" style="width:100%">
<el-radio-button v-for="item in bjOptions" :key="item.value" :label="item.value"
style="margin-right:24px;display:inline-block;min-width:100px;">
<div style="display:flex;flex-direction:column;align-items:center;">
<img :src="item.img" style="width:80px;height:80px;margin-bottom:4px;" v-if="item.img"
@click.stop="handlePreview(item.img)" />
<span>{{ item.label }}</span>
</div>
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-collapse-item>
</el-collapse>
</el-form>
<span slot="footer" class="dialog-footer dialog-footer-strong">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onSave">保 存</el-button>
</span>
</div>
</el-dialog>
<!-- 详情弹窗 -->
<el-dialog title="查看" :visible.sync="detailVisible" width="95%" @close="detailVisible = false">
<div class="detail-container">
<!-- 基本信息 -->
<div class="basic-info">
<div class="info-row">
<span class="info-label">钻头型号:</span>
<span class="info-value">{{ detailData.ztxh }}</span>
<span class="info-label">尺寸:</span>
<span class="info-value">{{ detailData.ztcc }}mm</span>
<span class="info-label">类别:</span>
<span class="info-value">{{ detailData.ztlb }}</span>
<span class="info-label">编号:</span>
<span class="info-value">{{ detailData.ztbh }}</span>
</div>
</div>
<!-- 现代化特征代码卡片区 -->
<div class="feature-code-cards">
<div class="code-card" v-for="(item, i) in featureMap" :key="i">
<div class="code-title">T{{ String(i + 1).padStart(2, '0') }}</div>
<div class="code-value">{{ detailData[item.codeField + '_tzdm'] || '--' }}</div>
<!-- <div class="code-value">{{ detailData[item.codeField + '_value'] || (detailData[item.codeField] || '--') }}</div> -->
</div>
</div>
<!-- 特征参数 -->
<div class="feature-params">
<div class="params-header">
<div class="params-grid">
<div class="param-item" v-for="(item, i) in detailParams" :key="i">
<div class="param-content">
<div class="param-text">{{ item.label }}: {{ item.value }}</div>
<div class="param-image">
<img :src="item.img" v-if="item.img" alt="参数图片" />
<div class="placeholder-img" v-else></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="detailVisible = false">关闭</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="imgPreviewVisible" width="80%" append-to-body class="img-preview-dialog"
:show-close="true" center>
<img :src="imgPreviewUrl" style="max-width:80vw;max-height:80vh;border-radius:18px;" />
</el-dialog>
</div>
</template>
<script>
import { listTzsj } from "@/api/system/jsha";
import { listZtxxJcxx, addZtxxJcxx, updateZtxxJcxx, delZtxxJcxx, getZtxxJcxx } from '@/api/ztxx';
export default {
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 查询参数
queryParams: {
ztcc: '',
ztxh: '',
ztlb: '',
sccj: '',
ztbh: '',
},
imgPreviewVisible: false,
imgPreviewUrl: '',
form: {
ztcc: '',
ztxh: '',
ztlb: '',
sccj: '',
ztbh: '',
// 刀翼总数
tzdm01: '',
tzxl01: '',
slt01: '',
t01: '', // 刀翼总数选项ID
// 布齿密度
tzdm02: '',
tzxl02: '',
slt02: '',
t02: '', // 布齿密度选项ID
// 切削齿尺寸mm
tzdm03: '',
tzxl03: '',
slt03: '',
t03: '', // 切削齿尺寸选项ID
// 切削齿负前角
tzdm04: '',
tzxl04: '',
slt04: '',
t04: '', // 切削齿负前角选项ID
// 冠部形状
tzdm05: '',
tzxl05: '',
slt05: '',
t05: '', // 冠部形状选项ID
// 保径
tzdm06: '',
tzxl06: '',
slt06: '',
t06: '', // 保径选项ID
},
// 模拟接口数据
tableData: [],
dialogVisible: false,
detailVisible: false, // 详情弹窗显示状态
detailData: {}, // 详情数据
bcmdOptions: [], // 布齿密度选项
qxccOptions: [], // 切削齿尺寸mm选项
qxfnjOptions: [], // 切削齿负前角°选项
gbxzOptions: [], // 冠部形状选项
bjOptions: [], // 保径选项
bladeCountOptions: [], // 刀翼总数选项
activeCollapse: ['dyzs'], // 默认展开第一个
editType: '',
// 表单校验规则
rules: {
ztbh: [
{ required: true, message: '请输入钻头编号', trigger: 'blur' }
],
ztcc: [
{ required: true, message: '请输入钻头尺寸', trigger: 'blur' }
],
ztxh: [
{ required: true, message: '请输入钻头型号', trigger: 'blur' }
],
ztlb: [
{ required: true, message: '请输入钻头类别', trigger: 'blur' }
],
sccj: [
{ required: true, message: '请输入生产厂家', trigger: 'blur' }
],
tzdm01: [
{ required: true, message: '请选择刀翼总数', trigger: 'change' },
{
validator: (rule, value, callback) => {
//console\.log('刀翼总数校验:', value);
if (!value || value === '') {
callback(new Error('请选择刀翼总数'));
} else {
callback();
}
},
trigger: 'change'
}
],
tzdm02: [
{ required: true, message: '请选择布齿密度', trigger: 'change' }
],
tzdm03: [
{ required: true, message: '请选择切削齿尺寸', trigger: 'change' }
],
tzdm04: [
{ required: true, message: '请选择切削齿负前角', trigger: 'change' }
],
tzdm05: [
{ required: true, message: '请选择冠部形状', trigger: 'change' }
],
tzdm06: [
{ required: true, message: '请选择保径', trigger: 'change' }
]
},
// 详情页特征参数列表
featureMap: [
{ tzdl: '刀翼总数', field: 'bladeCountOptions', codeField: 't01' },
{ tzdl: '布齿密度', field: 'bcmdOptions', codeField: 't02' },
{ tzdl: '切削齿尺寸mm', field: 'qxccOptions', codeField: 't03' },
{ tzdl: '切削齿负前角', field: 'qxfnjOptions', codeField: 't04' },
{ tzdl: '冠部形状', field: 'gbxzOptions', codeField: 't05' },
{ tzdl: '保径', field: 'bjOptions', codeField: 't06' }
],
detailParams: [
// { label: '刀翼总数', value: '3刀翼', img: 'xxx.png' }
]
}
},
async mounted() {
//console\.log('mounted 执行了');
await Promise.all([
this.getFeatureOptions('刀翼总数', 'bladeCountOptions'),
this.getFeatureOptions('布齿密度', 'bcmdOptions'),
this.getFeatureOptions('切削齿尺寸mm', 'qxccOptions'),
this.getFeatureOptions('切削齿负前角°', 'qxfnjOptions'),
this.getFeatureOptions('冠部形状', 'gbxzOptions'),
this.getFeatureOptions('保径', 'bjOptions')
]);
this.onSearch();
},
methods: {
onSearch() {
// 查询接口
listZtxxJcxx(this.queryParams).then(res => {
this.tableData = res.rows || [];
this.total = res.total || 0;
this.loading = false
});
},
onAdd() {
// 新增逻辑
this.editType = 'add';
// 设置所有特征参数都展开
this.activeCollapse = ['dyzs', 'bcmd', 'qxcc', 'qxfnj', 'gbxz', 'bj'];
this.openDialog();
// 清空表单
this.form = {
ztcc: '', ztxh: '', ztlb: '', sccj: '', ztbh: '',
tzdm01: '', tzdm02: '', tzdm03: '', tzdm04: '', tzdm05: '', tzdm06: '',
tzxl01: '', tzxl02: '', tzxl03: '', tzxl04: '', tzxl05: '', tzxl06: '',
slt01: '', slt02: '', slt03: '', slt04: '', slt05: '', slt06: '',
t01: '', t02: '', t03: '', t04: '', t05: '', t06: ''
};
},
onReset() {
this.queryParams = {
ztcc: '',
ztxh: '',
ztlb: '',
sccj: '',
ztbh: '',
};
this.resetForm("queryForm");
this.onSearch();
},
async onDetail(row) {
const res = await getZtxxJcxx(row.id);
this.detailData = res.data;
// 等待所有options加载完
await Promise.all([
this.getFeatureOptions('刀翼总数', 'bladeCountOptions'),
this.getFeatureOptions('布齿密度', 'bcmdOptions'),
this.getFeatureOptions('切削齿尺寸mm', 'qxccOptions'),
this.getFeatureOptions('切削齿负前角°', 'qxfnjOptions'),
this.getFeatureOptions('冠部形状', 'gbxzOptions'),
this.getFeatureOptions('保径', 'bjOptions')
]);
// 查找每个参数
this.detailParams = this.getDetailFeatureList();
this.detailVisible = true;
},
findOptionById(id, options, label) {
const item = options.find(opt => opt.id === id);
return {
label,
value: item ? item.label : '未设置',
img: item ? item.img : ''
}
},
onDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除钻头基础信息编号为"' + ids + '"的数据项?').then(function () {
return delZtxxJcxx(ids);
}).then(() => {
this.onSearch();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
// 打开弹窗时初始化
openDialog() {
this.dialogVisible = true;
// 加载所有特征选项数据
const optionPromises = [
this.getFeatureOptions('刀翼总数', 'bladeCountOptions'),
this.getFeatureOptions('布齿密度', 'bcmdOptions'),
this.getFeatureOptions('切削齿尺寸mm', 'qxccOptions'),
this.getFeatureOptions('切削齿负前角°', 'qxfnjOptions'),
this.getFeatureOptions('冠部形状', 'gbxzOptions'),
this.getFeatureOptions('保径', 'bjOptions')
];
// 等待所有选项数据加载完成
Promise.all(optionPromises).then(() => {
// 如果是编辑模式,设置选中值
if (this.editType === 'edit') {
this.setSelectedValues();
}
});
},
// 刀翼数量切换时
onBladeChange(val) {
this.currentBladeImg = this.bladeImgs[val] || '';
// 可在此处联动其他特征数据
this.getFeatureOptions();
},
// 获取特征数据选项
getFeatureOptions(tzdl, targetOptionsKey) {
//console\.log('getFeatureOptions 调用', tzdl, targetOptionsKey);
return listTzsj({ tzdl }).then(res => {
//console\.log('listTzsj返回', tzdl, res.rows);
this[targetOptionsKey] = res.rows.map(item => ({
label: item.tzxl,
value: item.tzdm,
img: item.slt,
id: item.id
}));
//console\.log('赋值后', targetOptionsKey, this[targetOptionsKey]);
});
},
// 编辑
onEdit(row) {
this.editType = 'edit';
this.onReset();
const id = row.id || this.ids
getZtxxJcxx(id).then(response => {
this.form = response.data;
this.openDialog();
this.title = "修改钻头基础信息";
});
},
// 根据ID设置选中值
setSelectedValues() {
const idMapping = [
{ idField: 't01', valueField: 'tzdm01', options: 'bladeCountOptions' },
{ idField: 't02', valueField: 'tzdm02', options: 'bcmdOptions' },
{ idField: 't03', valueField: 'tzdm03', options: 'qxccOptions' },
{ idField: 't04', valueField: 'tzdm04', options: 'qxfnjOptions' },
{ idField: 't05', valueField: 'tzdm05', options: 'gbxzOptions' },
{ idField: 't06', valueField: 'tzdm06', options: 'bjOptions' }
];
idMapping.forEach(mapping => {
const idValue = this.form[mapping.idField];
if (idValue && this[mapping.options]) {
const selectedOption = this[mapping.options].find(opt => opt.id === idValue);
if (selectedOption) {
this.form[mapping.valueField] = selectedOption.value;
}
}
});
},
handlePreview(url) {
// this.imgPreviewUrl = url;
// this.imgPreviewVisible = true;
},
onSave() {
// 表单校验
//console\.log('保存前表单数据:', this.form);
//console\.log('刀翼总数值:', this.form.tzdm01);
// 强制校验所有字段
this.$refs.formRef.validate((valid) => {
//console\.log('校验结果:', valid);
if (valid) {
// 1. 组装特征参数
const featureMap = [
{ code: 'tzdm01', name: 'tzxl01', img: 'slt01', idField: 't01', options: this.bladeCountOptions },
{ code: 'tzdm02', name: 'tzxl02', img: 'slt02', idField: 't02', options: this.bcmdOptions },
{ code: 'tzdm03', name: 'tzxl03', img: 'slt03', idField: 't03', options: this.qxccOptions },
{ code: 'tzdm04', name: 'tzxl04', img: 'slt04', idField: 't04', options: this.qxfnjOptions },
{ code: 'tzdm05', name: 'tzxl05', img: 'slt05', idField: 't05', options: this.gbxzOptions },
{ code: 'tzdm06', name: 'tzxl06', img: 'slt06', idField: 't06', options: this.bjOptions }
];
featureMap.forEach(item => {
const selected = item.options.find(opt => opt.value === this.form[item.code]);
if (selected) {
this.form[item.name] = selected.label;
this.form[item.img] = selected.img;
this.form[item.idField] = selected.id; // 保存选中选项的ID
} else {
this.form[item.name] = '';
this.form[item.img] = '';
this.form[item.idField] = '';
}
});
// 打印form
//console\.log('保存的表单数据:', this.form);
// 2. 保存 - 确保编辑模式下传递ID
const saveApi = this.editType === 'edit' ? updateZtxxJcxx : addZtxxJcxx;
const saveData = { ...this.form };
// 如果是编辑模式,确保ID字段存在
if (this.editType === 'edit' && this.form.id) {
saveData.id = this.form.id;
}
saveApi(saveData).then(() => {
this.$message.success('保存成功');
this.dialogVisible = false;
this.onSearch();
});
} else {
this.$message.error('请完善必填信息');
return false;
}
});
},
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 导出按钮操作 */
handleExport() {
this.download('system/ztxxJcxx/export', {
...this.queryParams
}, `ztxxJcxx_${new Date().getTime()}.xlsx`)
},
/** 弹窗关闭处理 */
handleDialogClose() {
this.dialogVisible = false;
// 重置表单校验状态
if (this.$refs.formRef) {
this.$refs.formRef.resetFields();
}
},
/** 刀翼总数变化处理 */
onTzdm01Change(val) {
//console\.log('刀翼总数变化:', val);
this.$refs.formRef.validateField('tzdm01');
},
// 获取参数标签
getParamLabel(index) {
switch (index) {
case 1: return '刀翼总数';
case 2: return '布齿密度';
case 3: return '切削齿尺寸mm';
case 4: return '切削齿负前角';
case 5: return '冠部形状';
case 6: return '保径';
default: return '';
}
},
// 获取参数值
getParamValue(index) {
switch (index) {
case 1: return this.detailData.tzxl01 || '未设置';
case 2: return this.detailData.tzxl02 || '未设置';
case 3: return this.detailData.tzxl03 || '未设置';
case 4: return this.detailData.tzxl04 || '未设置';
case 5: return this.detailData.tzxl05 || '未设置';
case 6: return this.detailData.tzxl06 || '未设置';
default: return '';
}
},
// 获取参数图片
getParamImage(index) {
switch (index) {
case 1: return this.detailData.slt01;
case 2: return this.detailData.slt02;
case 3: return this.detailData.slt03;
case 4: return this.detailData.slt04;
case 5: return this.detailData.slt05;
case 6: return this.detailData.slt06;
default: return '';
}
},
// 获取选项标签
getOptionLabel(id, options) {
const item = options.find(opt => String(opt.id) === String(id));
//console\.log(options, item, 111);
return item ? item.label : '未设置';
},
// 详情页特征参数列表
getDetailFeatureList() {
// 在显示详情时,更新detailData,将t01-t06从tzdm转为tzxl
this.featureMap.forEach(item => {
const id = this.detailData[item.codeField]; // 这是id
const options = this[item.field] || [];
const option = options.find(opt => String(opt.id) === String(id));
if (option) {
// 存 tzdm
this.detailData[`${item.codeField}_tzdm`] = option.value; // value 就是 tzdm
} else {
this.detailData[`${item.codeField}_tzdm`] = '--';
}
});
return this.featureMap.map((item, idx) => {
// 取出当前特征的id
const code = this.detailData[item.codeField];
// 取出当前特征的options
const options = this[item.field] || [];
// 查找对应的option(用id比对!)
const option = options.find(opt => String(opt.id) === String(code));
return {
label: item.tzdl,
code: code || '--',
value: option ? option.label : '未设置',
img: option ? option.img : ''
}
});
}
}
}
</script>
<style lang="scss" scoped>
.form-card {
margin-bottom: 24px;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}
.drillbit-form {
display: flex;
flex-wrap: wrap;
gap: 16px 24px;
align-items: center;
padding: 8px 0 10px 0;
}
.drillbit-form .el-form-item {
margin-bottom: 0;
}
.table-card {
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}
.el-table th {
font-weight: bold;
background: #f0f2f5;
}
.el-table .el-button {
margin: 0 4px;
border-radius: 16px;
}
.detail-container {
display: flex;
flex-direction: column;
gap: 20px;
}
.basic-info {
background: linear-gradient(135deg, #409eff 0%, #3f9cfb 50%);
padding: 20px;
border-radius: 12px;
color: white;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
.info-row {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 20px;
font-size: 20px;
.info-label {
font-weight: bold;
color: rgba(255, 255, 255, 0.9);
}
.info-value {
color: #fff;
font-weight: 500;
}
}
}
.feature-params {
background-color: #f8f9fa;
padding: 20px;
border-radius: 12px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
.params-header {
margin-bottom: 20px;
.params-title {
font-size: 18px;
font-weight: bold;
color: #303133;
margin-bottom: 15px;
}
}
.params-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
.param-item {
background: #fff;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(64, 158, 255, 0.08);
border: 1.5px solid #e3eafc;
transition: box-shadow 0.3s, border-color 0.3s;
&:hover {
box-shadow: 0 6px 24px rgba(64, 158, 255, 0.18);
border-color: #409eff;
}
}
.param-label {
font-size: 16px;
font-weight: bold;
color: #409eff;
margin-bottom: 10px;
background: linear-gradient(135deg, #409eff, #67c23a);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.param-content {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
margin: 20px 0;
}
.param-text {
font-size: 14px;
color: #606266;
margin-bottom: 15px;
font-weight: 500;
}
.param-image {
width: 120px;
height: 120px;
background: linear-gradient(135deg, #eaf3fc 0%, #e3eafc 100%);
border-radius: 50%;
overflow: hidden;
box-shadow: 0 2px 8px rgba(64, 158, 255, 0.08);
margin: 0 auto 10px auto;
display: flex;
justify-content: center;
align-items: center;
img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 50%;
background: #fff;
transition: transform 0.3s;
}
.placeholder-img {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background: #eaf3fc;
border-radius: 50%;
font-size: 32px;
color: #b3c6e0;
}
}
}
.feature-code-cards {
display: flex;
justify-content: space-between;
align-items: stretch;
gap: 18px;
margin: 18px 0 32px 0;
padding: 0 8px;
}
.code-card {
flex: 1 1 0;
min-width: 120px;
background: linear-gradient(135deg, #f6faff 0%, #eaf3fc 100%);
border-radius: 12px;
box-shadow: 0 2px 8px rgba(64, 158, 255, 0.06);
display: flex;
flex-direction: column;
align-items: center;
padding: 14px 0 10px 0;
transition: box-shadow 0.2s;
border: 1.5px solid #e3eafc;
&:hover {
box-shadow: 0 6px 24px rgba(64, 158, 255, 0.13);
border-color: #409eff;
}
.code-title {
font-size: 13px;
color: #8a99b3;
margin-bottom: 6px;
letter-spacing: 1px;
font-weight: 500;
}
.code-value {
font-size: 18px;
color: #409eff;
font-weight: bold;
word-break: break-all;
text-align: center;
letter-spacing: 1px;
}
}
@media (max-width: 900px) {
.feature-code-cards {
flex-wrap: wrap;
}
.code-card {
min-width: 45%;
margin-bottom: 10px;
}
}
@media (max-width: 600px) {
.feature-code-cards {
flex-direction: column;
}
.code-card {
min-width: 100%;
}
}
::v-deep .el-dialog .el-radio-button__inner {
border-radius: 16px !important;
transition:
box-shadow 0.25s cubic-bezier(0.4, 0.2, 0.2, 1),
border-color 0.2s,
background 0.2s,
transform 0.18s;
box-shadow: 0 2px 8px rgba(64, 158, 255, 0.10) !important;
background: #fff !important;
border: 1.5px solid #e3eafc !important;
padding: 16px 10px 10px 10px !important;
height: auto !important;
line-height: 1.4 !important;
min-width: 110px !important;
min-height: 110px !important;
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
}
::v-deep .el-dialog .el-radio-button__inner:hover {
box-shadow: 0 8px 32px rgba(64, 158, 255, 0.18) !important;
border-color: #409eff !important;
background: #f0f7ff !important;
// transform: translateY(-2px) scale(1.04) !important;
z-index: 2 !important;
}
::v-deep .el-dialog .el-radio-button.is-active .el-radio-button__inner {
box-shadow: 0 12px 40px rgba(64, 158, 255, 0.22) !important;
border-color: #409eff !important;
background: linear-gradient(135deg, #eaf3fc 0%, #f6faff 100%) !important;
color: #409eff !important;
// transform: scale(1.06) !important;
z-index: 3 !important;
}
::v-deep .el-dialog .el-radio-button__inner img {
box-shadow: 0 2px 12px rgba(64, 158, 255, 0.13) !important;
border-radius: 12px !important;
background: #fff !important;
transition: box-shadow 0.2s, transform 0.2s !important;
}
::v-deep .el-dialog .el-radio-button__inner:hover img,
::v-deep .el-dialog .el-radio-button.is-active .el-radio-button__inner img {
box-shadow: 0 8px 32px rgba(64, 158, 255, 0.18) !important;
// transform: scale(1.08) !important;
}
.dialog-card {
background: #fff;
border-radius: 18px;
box-shadow: 0 8px 32px rgba(64, 158, 255, 0.13);
padding: 32px 32px 0 32px;
margin: 0 8px;
transition: box-shadow 0.3s, transform 0.3s;
min-width: 100%;
max-width: 100%;
position: relative;
}
.dialog-card:hover {
box-shadow: 0 16px 48px rgba(64, 158, 255, 0.18);
// transform: translateY(-2px);
}
.dialog-card .el-form {
background: #f8faff;
border-radius: 12px;
padding: 24px 18px 10px 18px;
box-shadow: 0 2px 8px rgba(64, 158, 255, 0.06);
}
.divider-strong {
margin: 32px 0 24px 0;
border-top: 2px solid #e3eafc !important;
font-weight: bold;
font-size: 18px;
color: #409eff;
letter-spacing: 2px;
}
.collapse-area {
background: #fafdff;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(64, 158, 255, 0.06);
margin-bottom: 18px;
padding: 10px 0 10px 0;
}
.dialog-footer-strong {
display: flex;
justify-content: flex-end;
gap: 18px;
background: #f8faff;
border-radius: 0 0 18px 18px;
box-shadow: 0 -2px 8px rgba(64, 158, 255, 0.05);
padding: 18px 32px 18px 0;
margin-top: 0;
}
.dialog-footer-strong .el-button {
min-width: 80px;
font-size: 16px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(64, 158, 255, 0.08);
transition: box-shadow 0.2s, background 0.2s;
}
.dialog-footer-strong .el-button:hover {
box-shadow: 0 6px 24px rgba(64, 158, 255, 0.13);
background: #eaf3fc;
}
::v-deep .el-collapse-item {
margin: 0 15px !important;
}
::v-deep .el-form-item{
margin-bottom: 10px !important;
}
</style>
\ No newline at end of file
......@@ -59,11 +59,27 @@
<el-input v-model="form.tzdm" placeholder="请输入特征代码" />
</el-form-item>
<el-form-item label="示例图" prop="slt">
<el-upload class="avatar-uploader" :action="uploadUrl" :headers="headers" :show-file-list="false"
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload" :limit="1" :on-exceed="handleExceed">
<el-upload
ref="uploadRef"
class="avatar-uploader"
:action="uploadUrl"
:headers="headers"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:limit="1"
:on-exceed="handleExceed"
>
<img v-if="form.slt" :src="form.slt" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<el-button
v-if="form.slt"
size="mini"
type="danger"
style="margin-top: 10px;"
@click="handleRemoveImage"
>删除图片</el-button>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -238,6 +254,7 @@ export default {
handleAvatarSuccess(res, file) {
if (res.code === 200) {
this.form.slt = res.url;
this.$refs.uploadRef.clearFiles(); // 关键:上传成功后清空文件列表
this.$modal.msgSuccess("上传成功");
} else {
this.$modal.msgError("上传失败");
......@@ -261,12 +278,14 @@ export default {
this.$message.error('上传图片大小不能超过 2MB!');
return false;
}
// 如果已经有图片,阻止上传
if (this.form.slt) {
this.$message.warning("只能上传一张图片,如需更换请先删除当前图片");
return false;
}
// 不再做“只能上传一张图片”的判断,交给 handleAvatarSuccess 统一清理
return true;
},
/** 删除图片按钮操作 */
handleRemoveImage() {
this.$refs.uploadRef.clearFiles();
this.form.slt = null;
this.$message.success('图片已删除');
}
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment