This commit is contained in:
hzz 2024-04-03 10:26:09 +08:00
parent 37099c0634
commit c63df0bd55
6 changed files with 227 additions and 102 deletions

View File

@ -1,42 +0,0 @@
<template>
<el-dialog v-model="props.modelValue" :title="props.title" @close="close" width="800">
<el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline" label-width="100px">
<el-form-item label="设备名称" prop="name">
<el-input v-model="props.form.name" placeholder="请输入设备名称" />
</el-form-item>
<el-form-item label="设备编号" prop="code">
<el-input v-model="props.form.code" 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>
</template>
<script setup>
import { ref } from "vue";
const emit = defineEmits();
const props = defineProps({
modelValue: [String, Object, Array],
title: String,
form: {
type: Object,
default: () => ({}),
},
});
const baseUrl = import.meta.env.VITE_APP_BASE_API;
function close() {
emit("update:modelValue", false);
}
function submitForm() {
emit("submitForm", props.form);
}
function cancel() {
emit("update:form", {});
close();
}
</script>
<style lang="scss" scoped></style>

View File

@ -49,19 +49,19 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="plus" size="mini" @click="handleAdd"
v-hasPermi="['casm:device:add']">新增</el-button>
v-hasPermi="['device:device:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['casm:device:edit']">修改</el-button>
v-hasPermi="['device:device:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['casm:device:remove']">删除</el-button>
v-hasPermi="['device:device:remove']">删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="download" size="mini" @click="handleExport"
v-hasPermi="['casm:device:export']">导出</el-button>
v-hasPermi="['device:device:export']">导出</el-button>
</el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
@ -70,7 +70,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="设备名称" align="center" v-if="columns[0].visible" prop="name" />
<el-table-column label="设备编号" align="center" v-if="columns[1].visible" prop="code" />
<el-table-column label="设备编号" align="center" v-if="columns[1].visible" prop="code" />
<el-table-column label="设备类型" align="center" v-if="columns[2].visible" prop="type" />
<el-table-column label="车间名称" align="center" v-if="columns[3].visible" prop="workShop" />
<el-table-column label="产线名称" align="center" v-if="columns[4].visible" prop="lineName" />
@ -88,15 +88,15 @@
<template #default="scope">
<el-tooltip content="详情" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Tickets" @click="handleInfo(scope.row)"
v-hasPermi="['casm:device:info']"></el-button>
v-hasPermi="['device:device:info']"></el-button>
</el-tooltip>
<el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['casm:device:edit']"></el-button>
v-hasPermi="['device:device:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['casm:device:remove']"></el-button>
v-hasPermi="['device:device:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
@ -107,7 +107,7 @@
<!-- 添加或修改设备信息对话框 -->
<el-dialog :title="title" v-model="open" width="800px" append-to-body>
<el-form ref="formRef" :inline="true" :model="form" :rules="rules" class="demo-form-inline" label-width="100px">
<el-form ref="formRef" :inline="true" :model="form" :rules="rules" class="demo-form-inline" label-width="100px">
<el-form-item label="设备名称" prop="name">
<el-input v-model="form.name" placeholder="请输入设备名称" />
</el-form-item>
@ -142,7 +142,7 @@
<el-input v-model="form.brand" placeholder="请输入品牌" />
</el-form-item>
<el-form-item label="针数" prop="needleNum">
<el-input-number v-model="form.needleNum" :min="1" />
<el-input-number v-model="form.needleNum" :min="1" />
</el-form-item>
<el-form-item label="设备型号" prop="model">
<el-input v-model="form.model" placeholder="请输入设备型号" />
@ -154,10 +154,12 @@
<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>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
<InfoVue v-model="infoDialog" :info="deviceinfo" />
</div>
@ -212,7 +214,7 @@ let form = ref({})
//
let rules = ref({
needleNum: [
{
{
type: 'number',
required: true,
message: '针数只能为数字',
@ -310,7 +312,7 @@ function handleSelectionChange(selection) {
/**详情按钮操作 */
function handleInfo(row) {
deviceinfo.value = row
infoDialog.value = true
infoDialog.value = true
}
/** 新增按钮操作 */
function handleAdd() {

View File

@ -0,0 +1,161 @@
<template>
<el-dialog v-model="props.modelValue" :title="props.title" @close="close" width="800">
<el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline"
label-width="100px">
<el-form-item label="产品名称" prop="name">
<el-input v-model="props.form.name" placeholder="请输入产品名称" />
</el-form-item>
<el-form-item label="产品类型" prop="code">
<el-input v-model="props.form.code" placeholder="请输入产品类型" />
</el-form-item>
<el-form-item label="产品编码" prop="code">
<el-input v-model="props.form.code" placeholder="请输入产品编码" />
</el-form-item>
<el-form-item label="针(2)" prop="code">
<div style="width: 100%;">
<el-row :gutter="10">
<el-col :span="8">
针号
</el-col>
<el-col :span="8">
面线
</el-col>
<el-col :span="8">
底线
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入针号" />
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入面线" />
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入底线" />
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入针号" />
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入面线" />
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入底线" />
</el-col>
</el-row>
</div>
</el-form-item>
<el-form-item label="张力" prop="code">
<el-row :gutter="10">
<el-col :span="2">
针1
</el-col>
<el-col :span="3">
最小值
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入最小值" />
</el-col>
<el-col :span="3">
最大值
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入最大值" />
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="2">
针2
</el-col>
<el-col :span="3">
最小值
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入最小值" />
</el-col>
<el-col :span="3">
最大值
</el-col>
<el-col :span="8">
<el-input v-model="props.form.name" placeholder="请输入最大值" />
</el-col>
</el-row>
</el-form-item>
<el-form-item label="缝纫针数" prop="code">
<el-row :gutter="10">
<el-col :span="3">
最小值
</el-col>
<el-col :span="9">
<el-input v-model="props.form.name" placeholder="请输入最小值" />
</el-col>
<el-col :span="3">
最大值
</el-col>
<el-col :span="9">
<el-input v-model="props.form.name" placeholder="请输入最大值" />
</el-col>
</el-row>
</el-form-item>
<el-form-item label="标签针数" prop="code">
<el-row :gutter="10">
<el-col :span="3">
最小值
</el-col>
<el-col :span="9">
<el-input v-model="props.form.name" placeholder="请输入最小值" />
</el-col>
<el-col :span="3">
最大值
</el-col>
<el-col :span="9">
<el-input v-model="props.form.name" placeholder="请输入最大值" />
</el-col>
</el-row>
</el-form-item>
<el-form-item label="备注" prop="code">
<el-input v-model="props.form.textarea" style="width: 600px" :rows="4" type="textarea"
placeholder="Please input" />
</el-form-item>
<el-form-item label="图片(文件)" prop="file">
<image-upload v-model="props.form.file" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { ref } from "vue";
const emit = defineEmits();
const props = defineProps({
modelValue: [String, Object, Array],
title: String,
form: {
type: Object,
default: () => ({}),
},
});
const baseUrl = import.meta.env.VITE_APP_BASE_API;
function close() {
emit("update:modelValue", false);
}
function submitForm() {
emit("submitForm", props.form);
}
function cancel() {
emit("update:form", {});
close();
}
</script>
<style lang="scss" scoped></style>

View File

@ -15,40 +15,41 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="plus" size="mini" @click="handleAdd"
v-hasPermi="['casm:device:add']">新增</el-button>
v-hasPermi="['product:product:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['casm:device:edit']">修改</el-button>
v-hasPermi="['product:product:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['casm:device:remove']">删除</el-button>
v-hasPermi="['product:product:remove']">删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="download" size="mini" @click="handleExport"
v-hasPermi="['casm:device:export']">导出</el-button>
v-hasPermi="['product:product:export']">导出</el-button>
</el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="产品名称" align="center" v-if="columns[0].visible" prop="name" />
<el-table-column label="产品类别" align="center" v-if="columns[1].visible" prop="code" />
<el-table-column label="产品类型" align="center" v-if="columns[1].visible" prop="code" />
<el-table-column label="产品编码" align="center" v-if="columns[2].visible" prop="a" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="详情" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Tickets" @click="handleInfo(scope.row)"
v-hasPermi="['casm:device:info']"></el-button>
v-hasPermi="['product:product:info']"></el-button>
</el-tooltip>
<el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['casm:device:edit']"></el-button>
v-hasPermi="['product:product:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['casm:device:remove']"></el-button>
v-hasPermi="['product:product:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
@ -91,11 +92,14 @@ let queryParams = reactive({
let total = ref(0)
//
let deviceList = ref([])
let productList = ref([
{name:'设备1',code:'code1',id:1},
])
//
const columns = ref([
{ key: 0, label: `产品名称`, visible: true },
{ key: 1, label: `产品类别`, visible: true },
{ key: 1, label: `产品类型`, visible: true },
{ key: 2, label: `产品编码`, visible: true },
]);
/** 查询设备信息列表 */
function getList() {
@ -182,6 +186,10 @@ function handleUpdate(row) {
// open.value = true;
// title.value = "";
// });
setTimeout(() => {
open.value = true;
title.value = "修改设备信息";
}, 100);
}
/** 删除按钮操作 */
@ -191,7 +199,7 @@ function handleDelete(row) {
return //delDevice(id);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
proxy.$modal.msgSuccess("删除成功" );
}).catch(() => { });
}
onMounted(() => {

View File

@ -29,10 +29,10 @@
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名称" prop="userName">
<el-form-item label="账号" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
placeholder="请输入账号"
clearable
style="width: 240px"
@keyup.enter="handleQuery"
@ -131,12 +131,13 @@
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<el-table-column label="ID" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="用户编号" align="center" key="code" prop="code" v-if="columns[1].visible" />
<el-table-column label="账号" align="center" key="userName" prop="userName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="用户姓名" align="center" key="nickName" prop="nickName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[4].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[5].visible" width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[6].visible">
<template #default="scope">
<el-switch
v-model="scope.row.status"
@ -146,7 +147,7 @@
></el-switch>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[7].visible" width="160">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
@ -183,8 +184,8 @@
<el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
<el-form-item label="用户姓名" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户姓名" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -214,8 +215,8 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
<el-form-item v-if="form.userId == undefined" label="账号" prop="userName">
<el-input v-model="form.userName" placeholder="请输入账号" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -226,15 +227,8 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择">
<el-option
v-for="dict in sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
<el-form-item label="用户编号" prop="code">
<el-input v-model="form.code" placeholder="请输入用户编号" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -369,13 +363,14 @@ const upload = reactive({
});
//
const columns = ref([
{ key: 0, label: `用户编号`, visible: true },
{ key: 1, label: `用户名称`, visible: true },
{ key: 2, label: `用户昵称`, visible: true },
{ key: 3, label: `部门`, visible: true },
{ key: 4, label: `手机号码`, visible: true },
{ key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true }
{ key: 0, label: `ID`, visible: true },
{ key: 1, label: `用户编号`, visible: true },
{ key: 2, label: `账号`, visible: true },
{ key: 3, label: `用户姓名`, visible: true },
{ key: 4, label: `部门`, visible: true },
{ key: 5, label: `手机号码`, visible: true },
{ key: 6, label: `状态`, visible: true },
{ key: 7, label: `创建时间`, visible: true }
]);
const data = reactive({
@ -389,11 +384,12 @@ const data = reactive({
deptId: undefined
},
rules: {
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
userName: [{ required: true, message: "账号不能为空", trigger: "blur" }, { min: 2, max: 20, message: "账号长度必须介于 2 和 20 之间", trigger: "blur" }],
nickName: [{ required: true, message: "用户姓名不能为空", trigger: "blur" }],
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
code: [{ required: true, message: "用户编号不能为空", trigger: "blur" }],
}
});