暂时提交 ----- 需求表单

master
xce 2026-01-12 00:50:04 +08:00
parent 83de83a7fd
commit 6c84207582
6 changed files with 733 additions and 69 deletions

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询无线传输线管数据列表
export function listSpecialData(query) {
return request({
url: '/data/specialData/list',
method: 'get',
params: query
})
}
// 查询无线传输线管数据详细
export function getSpecialData(id) {
return request({
url: '/data/specialData/' + id,
method: 'get'
})
}
// 新增无线传输线管数据
export function addSpecialData(data) {
return request({
url: '/data/specialData',
method: 'post',
data: data
})
}
// 修改无线传输线管数据
export function updateSpecialData(data) {
return request({
url: '/data/specialData',
method: 'put',
data: data
})
}
// 删除无线传输线管数据
export function delSpecialData(id) {
return request({
url: '/data/specialData/' + id,
method: 'delete'
})
}

44
src/api/system/require.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询需求清单列表
export function listRequire(query) {
return request({
url: '/system/require/list',
method: 'get',
params: query
})
}
// 查询需求清单详细
export function getRequire(id) {
return request({
url: '/system/require/' + id,
method: 'get'
})
}
// 新增需求清单
export function addRequire(data) {
return request({
url: '/system/require',
method: 'post',
data: data
})
}
// 修改需求清单
export function updateRequire(data) {
return request({
url: '/system/require',
method: 'put',
data: data
})
}
// 删除需求清单
export function delRequire(id) {
return request({
url: '/system/require/' + id,
method: 'delete'
})
}

View File

@ -7,7 +7,7 @@ module.exports = {
/**
* 侧边栏主题 深色主题theme-dark浅色主题theme-light
*/
sideTheme: 'theme-dark',
sideTheme: 'theme-light',
/**
* 系统布局配置

View File

@ -25,62 +25,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="卷被开限位时间(秒)" prop="jbkLimit">
<el-input-number
id="jbkLimit" v-model="queryParams.jbkLimit"
/>
</el-form-item>
<el-form-item label="卷被关限位时间(秒)" prop="jbgLimit">
<el-input-number
id="jbgLimit" v-model="queryParams.jbgLimit"
/>
</el-form-item>
<el-form-item label="卷膜1开限位时间(秒)" prop="jm1kLimit">
<el-input-number
id="jm1kLimit" v-model="queryParams.jm1kLimit"
/>
</el-form-item>
<el-form-item label="卷膜1关限位时间(秒)" prop="jm1gLimit">
<el-input-number
id="jm1gLimit" v-model="queryParams.jm1gLimit"
/>
</el-form-item>
<el-form-item label="卷膜2开限位时间(秒)" prop="jm2kLimit">
<el-input-number
id="jm2kLimit" v-model="queryParams.jm2kLimit"
/>
</el-form-item>
<el-form-item label="卷膜2关限位时间(秒)" prop="jm2gLimit">
<el-input-number
id="jm2gLimit" v-model="queryParams.jm2gLimit"
/>
</el-form-item>
<el-form-item label="卷膜3开限位时间(秒)" prop="jm3kLimit">
<el-input-number
id="jm3kLimit" v-model="queryParams.jm3kLimit"
/>
</el-form-item>
<el-form-item label="卷膜3关限位时间(秒)" prop="jm3gLimit">
<el-input-number
id="jm3gLimit" v-model="queryParams.jm3gLimit"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateBy">
<el-input
id="updateBy" v-model="queryParams.updateBy"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="删除时间" prop="deleteTime">
<el-date-picker clearable
id="deleteTime" v-model="queryParams.deleteTime"
type="date"
value-format="yyyy-MM-dd"
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>
@ -275,18 +219,6 @@ export default {
agriId: null,
agriName: null,
imei: null,
jbkLimit: null,
jbgLimit: null,
jm1kLimit: null,
jm1gLimit: null,
jm2kLimit: null,
jm2gLimit: null,
jm3kLimit: null,
jm3gLimit: null,
version: null,
updateBy: null,
deleted: null,
deleteTime: null
},
//
form: {},

View File

@ -0,0 +1,324 @@
<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="设备唯一标识(IMEI/DeviceId)" prop="imei">
<el-input
id="imei" v-model="queryParams.imei"
placeholder="请输入设备唯一标识(IMEI/DeviceId)"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备上报时间戳(ms或s建议统一ms)" prop="ts">
<el-input
id="ts" v-model="queryParams.ts"
placeholder="请输入设备上报时间戳(ms或s建议统一ms)"
clearable
@keyup.enter.native="handleQuery"
/>
</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="['data:specialData: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="['data:specialData: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="['data:specialData: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="['data:specialData:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" border :data="specialDataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键ID" align="center" prop="id" />
<el-table-column label="设备唯一标识(IMEI/DeviceId)" align="center" prop="imei" />
<el-table-column label="设备上报时间戳(ms或s建议统一ms)" align="center" prop="ts" />
<el-table-column label="ts转换后的正常时间(由服务端转换入库)" align="center" prop="time" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="温度1(℃)" align="center" prop="temp1" />
<el-table-column label="湿度1(%RH)" align="center" prop="humi1" />
<el-table-column label="温度2(℃)" align="center" prop="temp2" />
<el-table-column label="湿度2(%RH)" align="center" prop="humi2" />
<el-table-column label="温度3(℃)" align="center" prop="temp3" />
<el-table-column label="湿度3(%RH)" align="center" prop="humi3" />
<el-table-column label="温度4(℃)" align="center" prop="temp4" />
<el-table-column label="湿度4(%RH)" align="center" prop="humi4" />
<el-table-column label="温度5(℃)" align="center" prop="temp5" />
<el-table-column label="湿度5(%RH)" align="center" prop="humi5" />
<el-table-column label="温度6(℃)" align="center" prop="temp6" />
<el-table-column label="湿度6(%RH)" align="center" prop="humi6" />
<el-table-column label="温度7(℃)" align="center" prop="temp7" />
<el-table-column label="湿度7(%RH)" align="center" prop="humi7" />
<el-table-column label="温度8(℃)" align="center" prop="temp8" />
<el-table-column label="湿度8(%RH)" align="center" prop="humi8" />
<el-table-column label="温度9(℃)" align="center" prop="temp9" />
<el-table-column label="湿度9(%RH)" align="center" prop="humi9" />
<el-table-column label="温度10(℃)" align="center" prop="temp10" />
<el-table-column label="湿度10(%RH)" align="center" prop="humi10" />
<el-table-column label="温度11(℃)" align="center" prop="temp11" />
<el-table-column label="湿度11(%RH)" align="center" prop="humi11" />
<el-table-column label="温度12(℃)" align="center" prop="temp12" />
<el-table-column label="湿度12(%RH)" align="center" prop="humi12" />
<el-table-column label="原始JSON元信息(原始上报码/额外字段)" align="center" prop="raw" />
<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="['data:specialData:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['data:specialData: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="80px">
</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>
</div>
</template>
<script>
import { listSpecialData, getSpecialData, delSpecialData, addSpecialData, updateSpecialData } from "@/api/data/specialData"
export default {
name: "SpecialData",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 线线
specialDataList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
imei: null,
ts: null,
},
//
form: {},
//
rules: {
imei: [
{ required: true, message: "设备唯一标识(IMEI/DeviceId)不能为空", trigger: "blur" }
],
ts: [
{ required: true, message: "设备上报时间戳(ms或s建议统一ms)不能为空", trigger: "blur" }
],
time: [
{ required: true, message: "ts转换后的正常时间(由服务端转换入库)不能为空", trigger: "blur" }
],
}
}
},
created() {
this.getList()
},
methods: {
/** 查询无线传输线管数据列表 */
getList() {
this.loading = true
listSpecialData(this.queryParams).then(response => {
this.specialDataList = response.rows
this.total = response.total
this.loading = false
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
id: null,
imei: null,
ts: null,
time: null,
temp1: null,
humi1: null,
temp2: null,
humi2: null,
temp3: null,
humi3: null,
temp4: null,
humi4: null,
temp5: null,
humi5: null,
temp6: null,
humi6: null,
temp7: null,
humi7: null,
temp8: null,
humi8: null,
temp9: null,
humi9: null,
temp10: null,
humi10: null,
temp11: null,
humi11: null,
temp12: null,
humi12: null,
raw: null,
createBy: null,
createTime: 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.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = "添加无线传输线管数据"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const id = row.id || this.ids
getSpecialData(id).then(response => {
this.form = response.data
this.open = true
this.title = "修改无线传输线管数据"
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSpecialData(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
})
} else {
addSpecialData(this.form).then(response => {
if (response.code===200) {
this.$modal.msgSuccess("新增成功")
} else {
this.$modal.msgError("新增失败")
}
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids
this.$modal.confirm('是否确认删除无线传输线管数据编号为"' + ids + '"的数据项?').then(function() {
return delSpecialData(ids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('data/specialData/export', {
...this.queryParams
}, `specialData_${new Date().getTime()}.xlsx`)
}
}
}
</script>

View File

@ -0,0 +1,320 @@
<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="title">
<el-input
id="title" v-model="queryParams.title"
placeholder="请输入需求标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="优先级1-高2-中3-低" prop="priority">
<el-input
id="priority" v-model="queryParams.priority"
placeholder="请输入优先级1-高2-中3-低"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="进度0-未开始1-已完成2-进行中" prop="progress">
<el-input
id="progress" v-model="queryParams.progress"
placeholder="请输入进度0-未开始1-已完成2-进行中"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="经办人名称" prop="assigneeName">
<el-input
id="assigneeName" v-model="queryParams.assigneeName"
placeholder="请输入经办人名称"
clearable
@keyup.enter.native="handleQuery"
/>
</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="['system:require: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="['system:require: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="['system:require: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:require:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" border :data="requireList" @selection-change="handleSelectionChange">
<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="title" />
<el-table-column label="需求详情" align="center" prop="detail" />
<el-table-column label="优先级1-高2-中3-低" align="center" prop="priority" />
<el-table-column label="进度0-未开始1-已完成2-进行中" align="center" prop="progress" />
<el-table-column label="需求类型1-功能需求2-优化需求3-BUG修复" align="center" prop="reqType" />
<el-table-column label="经办人ID" align="center" prop="assigneeId" />
<el-table-column label="经办人名称" align="center" prop="assigneeName" />
<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="['system:require:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:require: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="80px">
<el-form-item label="需求标题" prop="title">
<el-input id="title" v-model="form.title" placeholder="请输入需求标题" />
</el-form-item>
<el-form-item label="需求详情" prop="detail">
<el-input id="detail" v-model="form.detail" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="优先级1-高2-中3-低" prop="priority">
<el-input id="priority" v-model="form.priority" placeholder="请输入优先级1-高2-中3-低" />
</el-form-item>
<el-form-item label="进度0-未开始1-已完成2-进行中" prop="progress">
<el-input id="progress" v-model="form.progress" placeholder="请输入进度0-未开始1-已完成2-进行中" />
</el-form-item>
<el-form-item label="经办人名称" prop="assigneeName">
<el-input id="assigneeName" v-model="form.assigneeName" 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>
</div>
</template>
<script>
import { listRequire, getRequire, delRequire, addRequire, updateRequire } from "@/api/system/require"
export default {
name: "Require",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
requireList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
title: null,
detail: null,
priority: null,
progress: null,
reqType: null,
assigneeId: null,
assigneeName: null,
},
//
form: {},
//
rules: {
title: [
{ required: true, message: "需求标题不能为空", trigger: "blur" }
],
detail: [
{ required: true, message: "需求详情不能为空", trigger: "blur" }
],
priority: [
{ required: true, message: "优先级1-高2-中3-低不能为空", trigger: "blur" }
],
progress: [
{ required: true, message: "进度0-未开始1-已完成2-进行中不能为空", trigger: "blur" }
],
}
}
},
created() {
this.getList()
},
methods: {
/** 查询需求清单列表 */
getList() {
this.loading = true
listRequire(this.queryParams).then(response => {
this.requireList = response.rows
this.total = response.total
this.loading = false
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
id: null,
title: null,
detail: null,
priority: null,
progress: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
reqType: null,
assigneeId: null,
assigneeName: null,
version: 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.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = "添加需求清单"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const id = row.id || this.ids
getRequire(id).then(response => {
this.form = response.data
this.open = true
this.title = "修改需求清单"
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateRequire(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
})
} else {
addRequire(this.form).then(response => {
if (response.code===200) {
this.$modal.msgSuccess("新增成功")
} else {
this.$modal.msgError("新增失败")
}
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids
this.$modal.confirm('是否确认删除需求清单编号为"' + ids + '"的数据项?').then(function() {
return delRequire(ids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('system/require/export', {
...this.queryParams
}, `require_${new Date().getTime()}.xlsx`)
}
}
}
</script>