Commit 6f2901c2 authored by 李驰骋's avatar 李驰骋

检测项添加输入类型字段添加导入功能

检测模版添加选择框值的录入
parent 233f9986
<template>
<el-dialog title="物料产品选择"
<el-dialog title="检测项选择"
v-if="showFlag"
:visible.sync="showFlag"
:modal= false
width="60%"
center
>
>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="检测项类型" prop="indexType">
<el-radio-group v-model="queryParams.indexType" @change="handleQuery">
<el-radio-button v-for="dict in dict.type.mes_index_type"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>{{dict.label}}</el-radio-button>
</el-radio-group>
</el-form-item>
:value="dict.value"
>{{dict.label}}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="检测项名称" prop="indexName">
<el-input
v-model="queryParams.indexName"
......@@ -23,7 +23,7 @@
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -43,6 +43,12 @@
<dict-tag :options="dict.type.mes_index_type" :value="scope.row.indexType"/>
</template>
</el-table-column>
<el-table-column label="输入类型" align="center" prop="inputType">
<template slot-scope="scope">
<span v-if="scope.row.inputType==1">文本框</span>
<span v-if="scope.row.inputType==2">选择框</span>
</template>
</el-table-column>
<el-table-column label="检测工具" align="center" prop="qcTool" />
</el-table>
<pagination
......@@ -86,6 +92,7 @@ export default {
title: "",
// 是否显示弹出层
open: false,
inputTypeOptions: [{"label":"输入框","value":1},{"label":"选择框","value":2}],
// 查询参数
queryParams: {
pageNum: 1,
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="车辆名称" prop="vehicleName">
<el-input
v-model="queryParams.vehicleName"
placeholder="请输入车辆名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="车牌号" prop="licensePlate">
<el-input
v-model="queryParams.licensePlate"
placeholder="请输入车牌号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="车型" prop="vehicleMod">
<el-input
v-model="queryParams.vehicleMod"
placeholder="请输入车型"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="座位数" prop="seating">
<el-input
v-model="queryParams.seating"
placeholder="请输入座位数"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="购买时间">
<el-date-picker
v-model="daterangePurchaseDate"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</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="handleAdd"
v-hasPermi="['md:vehicle:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['md:vehicle:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['md:vehicle: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="['md:vehicle:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['md:vehicle:import']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="vehicleList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="车辆编码" align="center" prop="vehicleCode"/>
<el-table-column label="车辆名称" align="center" prop="vehicleName" />
<el-table-column label="车牌号" align="center" prop="licensePlate" />
<el-table-column label="车型" align="center" prop="vehicleModel">
<template slot-scope="scope">
<dict-tag
:options="dict.type.vehicle_model"
:value="scope.row.vehicleModel"
/>
</template>
</el-table-column>
<el-table-column label="座位数" align="center" prop="seating" />
<el-table-column label="购买时间" align="center" prop="purchaseDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.purchaseDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="验车时间" align="center" prop="inspectionDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.inspectionDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['md:vehicle:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['md:vehicle:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改车辆列表对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px"
:inline="true"
size="small"
class="page-form">
<el-form-item label="车辆编码" prop="vehicleCode" v-if="form.vehicleId != null">
<el-input v-model="form.vehicleCode" placeholder="请输入车辆编码" readonly/>
</el-form-item>
<el-form-item label="车辆名称" prop="vehicleName">
<el-input v-model="form.vehicleName" placeholder="请输入车辆名称" />
</el-form-item>
<el-form-item label="车牌号" prop="licensePlate">
<el-input v-model="form.licensePlate" placeholder="请输入车牌号" />
</el-form-item>
<el-form-item label="车型" prop="vehicleModel">
<el-select v-model="form.vehicleModel" placeholder="请选择尺码组类型">
<el-option
v-for="dict in dict.type.vehicle_model"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="座位数" prop="seating">
<el-input v-model="form.seating" placeholder="请输入座位数" />
</el-form-item>
<el-form-item label="购买时间" prop="purchaseDate">
<el-date-picker clearable
v-model="form.purchaseDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择购买时间">
</el-date-picker>
</el-form-item>
<el-form-item label="验车时间" prop="inspectionDate">
<el-date-picker clearable
v-model="form.inspectionDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择验车时间">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
: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">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div>
<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>
</template>
<script>
import { listVehicle, getVehicle, delVehicle, addVehicle, updateVehicle } from "@/api/mes/md/vehicle";
import { getToken } from "@/utils/auth";
export default {
name: "Vehicle",
dicts: [
"vehicle_model",
],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 车辆列表表格数据
vehicleList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
upload: {
// 是否显示弹出层
open: false,
// 弹出层标题
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/md/vehicle/importData"
},
daterangePurchaseDate: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
vehicleCode: null, vehicleName: null, licensePlate: null, vehicleMod: null, seating: null, purchaseDate: null, inspectionDate: null, },
// 表单参数
form: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询车辆列表列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangePurchaseDate && '' != this.daterangePurchaseDate) {
this.queryParams.params["beginPurchaseDate"] = this.daterangePurchaseDate[0];
this.queryParams.params["endPurchaseDate"] = this.daterangePurchaseDate[1];
}
listVehicle(this.queryParams).then(response => {
this.vehicleList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.daterangePurchaseDate = [];
this.form = {
vehicleId: null, vehicleCode: null, vehicleName: null, licensePlate: null, vehicleModel: null, seating: null, purchaseDate: null, inspectionDate: null, remark: null, createBy: null, createTime: null, updateBy: null, updateTime: null };
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.vehicleId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加车辆列表";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const vehicleId = row.vehicleId || this.ids
getVehicle(vehicleId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改车辆列表";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.vehicleId != null) {
updateVehicle(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addVehicle(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const vehicleIds = row.vehicleId || this.ids;
this.$modal.confirm('是否确认删除车辆列表编号为"' + vehicleIds + '"的数据项?').then(function() {
return delVehicle(vehicleIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('md/vehicle/export', {
...this.queryParams
}, `vehicle_${new Date().getTime()}.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();
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "车辆导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download('md/vehicle/importTemplate', {
}, `车辆导入模版_${new Date().getTime()}.xlsx`)
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
}
};
</script>
......@@ -223,6 +223,7 @@
if (row != undefined && row != null) {
this.form.indexCode = row.indexCode;
this.form.indexName = row.indexName;
this.form.indexType = row.indexType;
this.form.qcTool = row.qcTool;
this.form.qcindexId = row.indexId;
}
......
......@@ -223,6 +223,7 @@
if (row != undefined && row != null) {
this.form.indexCode = row.indexCode;
this.form.indexName = row.indexName;
this.form.indexType = row.indexType;
this.form.qcTool = row.qcTool;
this.form.qcindexId = row.indexId;
}
......
......@@ -26,7 +26,7 @@
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -76,6 +76,16 @@
v-hasPermi="['mes:qc:qcindex:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['mes:qc:qcindex:import']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
......@@ -88,6 +98,12 @@
<dict-tag :options="dict.type.mes_index_type" :value="scope.row.indexType"/>
</template>
</el-table-column>
<el-table-column label="输入类型" align="center" prop="inputType">
<template slot-scope="scope">
<span v-if="scope.row.inputType==1">文本框</span>
<span v-if="scope.row.inputType==2">选择框</span>
</template>
</el-table-column>
<el-table-column label="检测工具" align="center" prop="qcTool" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
......@@ -108,7 +124,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
......@@ -131,7 +147,7 @@
<el-switch v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
</el-switch>
</el-form-item>
</el-col>
......@@ -154,6 +170,16 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="输入类型" prop="inputType">
<el-select v-model="form.inputType" placeholder="请选择输入类型">
<el-option key="1" label="文本框" :value="1"></el-option>
<el-option key="2" label="选择框" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="检测工具" prop="qcTool">
<el-input v-model="form.qcTool" placeholder="请输入检测工具" />
......@@ -174,12 +200,43 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
: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">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</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>
</template>
<script>
import { listQcindex, getQcindex, delQcindex, addQcindex, updateQcindex } from "@/api/mes/qc/qcindex";
import {genCode} from "@/api/system/autocode/rule"
import {genCode} from "@/api/system/autocode/rule";
import { getToken } from "@/utils/auth";
export default {
name: "Qcindex",
dicts: ['mes_index_type'],
......@@ -206,6 +263,20 @@ export default {
title: "",
// 是否显示弹出层
open: false,
upload: {
// 是否显示弹出层
open: false,
// 弹出层标题
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/mes/qc/qcindex/importData"
},
// 查询参数
queryParams: {
pageNum: 1,
......@@ -228,6 +299,9 @@ export default {
indexType: [
{ required: true, message: "检测项类型不能为空", trigger: "change" }
],
inputType: [
{ required: true, message: "输入类型不能为空", trigger: "change" }
],
}
};
},
......@@ -256,6 +330,7 @@ export default {
indexCode: null,
indexName: null,
indexType: null,
inputType: null,
qcTool: null,
remark: null,
attr1: null,
......@@ -345,11 +420,37 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
// 文件上传中处理
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();
},
/** 导出按钮操作 */
handleExport() {
this.download('qc/qcindex/export', {
this.download('mes/qc/qcindex/export', {
...this.queryParams
}, `qcindex_${new Date().getTime()}.xlsx`)
}, `检测项_${new Date().getTime()}.xlsx`)
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "检测项";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download('mes/qc/qcindex/importTemplate', {
}, `检测项导入模版_${new Date().getTime()}.xlsx`)
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
//自动生成编码
handleAutoGenChange(autoGenFlag){
......
......@@ -39,11 +39,17 @@
<el-table v-loading="loading" :data="templateindexList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="检测项名称" align="center" prop="indexName" />
<el-table-column label="检测项类型" align="center" prop="indexType">
<el-table-column label="检测项类型" align="center" prop="indexType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.mes_index_type" :value="scope.row.indexType"/>
</template>
</el-table-column>
<el-table-column label="输入类型" align="center" prop="inputType">
<template slot-scope="scope">
<span v-if="scope.row.inputType==1">文本框</span>
<span v-if="scope.row.inputType==2">选择框</span>
</template>
</el-table-column>
<el-table-column label="检测工具" align="center" prop="qcTool" />
<el-table-column label="检测方法" align="center" prop="checkMethod" :show-overflow-tooltip="true"/>
<el-table-column label="标准值" align="center" prop="standerVal" />
......@@ -69,7 +75,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
......@@ -103,6 +109,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.inputType == 2">
<el-col :span="24">
<el-form-item label="选择框值" prop="selectValues">
<el-input v-model="form.selectValues" type="textarea" placeholder="请输入下拉选择框内容,格式为:[{&quot;label&quot;:&quot;显式值&quot;,&quot;value&quot;:&quot;存储值&quot;}]" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="标准值" prop="standerVal">
......@@ -193,6 +206,7 @@ export default {
title: "",
// 是否显示弹出层
open: false,
inputTypeOptions: [{"label":"输入框","value":1},{"label":"选择框","value":2}],
// 查询参数
queryParams: {
pageNum: 1,
......@@ -202,6 +216,7 @@ export default {
indexCode: null,
indexName: null,
indexType: null,
selectValues: null,
qcTool: null,
checkMethod: null,
standerVal: null,
......@@ -344,7 +359,8 @@ export default {
this.form.indexCode = obj.indexCode;
this.form.indexName = obj.indexName;
this.form.indexType = obj.indexType;
this.form.qcTool = obj.qcTool;
this.form.qcTool = obj.qcTool;
this.form.inputType = obj.inputType;
}
}
}
......
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