This commit is contained in:
hzz 2024-04-08 17:10:20 +08:00
parent 2699ecec64
commit d064e3ac2b
15 changed files with 1161 additions and 250 deletions

142
src/api/casm/product.js Normal file
View File

@ -0,0 +1,142 @@
import request from '@/utils/request'
/***************产品管理 */
// 查询产品信息列表
export function listProduction(query) {
return request({
url: '/casm/production/list',
method: 'get',
params: query
})
}
// 查询产品信息详细
export function getProduction(code) {
return request({
url: '/casm/production/' + code,
method: 'get'
})
}
// 新增产品信息
export function addProduction(data) {
return request({
url: '/casm/production',
method: 'post',
data: data
})
}
// 修改产品信息
export function updateProduction(data) {
return request({
url: '/casm/production',
method: 'put',
data: data
})
}
// 删除产品信息
export function delProduction(code) {
return request({
url: '/casm/production/' + code,
method: 'delete'
})
}
/**针数管理 */
// 查询针(底线/面线)/张力列表
export function listProductionLineRelation(query) {
return request({
url: '/casm/productionLineRelation/list',
method: 'get',
params: query
})
}
// 查询针(底线/面线)/张力详细
export function getProductionLineRelation(id) {
return request({
url: '/casm/productionLineRelation/' + id,
method: 'get'
})
}
// 新增针(底线/面线)/张力
export function addProductionLineRelation(data) {
return request({
url: '/casm/productionLineRelation',
method: 'post',
data: data
})
}
// 修改针(底线/面线)/张力
export function updateProductionLineRelation(data) {
return request({
url: '/casm/productionLineRelation',
method: 'put',
data: data
})
}
// 删除针(底线/面线)/张力
export function delProductionLineRelation(id) {
return request({
url: '/casm/productionLineRelation/' + id,
method: 'delete'
})
}
/**加工次数管理 */
// 查询缝纫/标签列表
export function listProcedure(query) {
return request({
url: '/casm/procedure/list',
method: 'get',
params: query
})
}
// 查询缝纫/标签详细
export function getProcedure(id) {
return request({
url: '/casm/procedure/' + id,
method: 'get'
})
}
// 新增缝纫/标签
export function addProcedure(data) {
return request({
url: '/casm/procedure',
method: 'post',
data: data
})
}
// 修改缝纫/标签
export function updateProcedure(data) {
return request({
url: '/casm/procedure',
method: 'put',
data: data
})
}
// 删除缝纫/标签
export function delProcedure(id) {
return request({
url: '/casm/procedure/' + id,
method: 'delete'
})
}

View File

@ -1,13 +1,13 @@
<template>
<div class="top-right-btn" :style="style">
<el-row>
<el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top" v-if="search">
<el-tooltip class="item" effect="dark" :content="showSearch ? $t('tagsView.隐藏搜索') : $t('tagsView.显示搜索')" placement="top" v-if="search">
<el-button circle icon="Search" @click="toggleSearch()" />
</el-tooltip>
<el-tooltip class="item" effect="dark" content="刷新" placement="top">
<el-tooltip class="item" effect="dark" :content="$t('tagsView.刷新')" placement="top">
<el-button circle icon="Refresh" @click="refresh()" />
</el-tooltip>
<el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
<el-tooltip class="item" effect="dark" :content="$t('tagsView.显隐列')" placement="top" v-if="columns">
<el-button circle icon="Menu" @click="showColumn()" v-if="showColumnsType == 'transfer'"/>
<el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px" v-if="showColumnsType == 'checkbox'">
<el-button circle icon="Menu" />
@ -25,7 +25,7 @@
</el-row>
<el-dialog :title="title" v-model="open" append-to-body>
<el-transfer
:titles="['显示', '隐藏']"
:titles="[$t('tagsView.显示'), $t('tagsView.隐藏')]"
v-model="value"
:data="columns"
@change="dataChange"

View File

@ -1,9 +1,12 @@
export default {
"menus":{
"首页": "Home",
"实时生产监控": "Dashboard",
"仪表盘": "Dashboard",
"设备管理": "Device",
"产品管理": "Product",
"生产管理": "Production",
"质量管理": "Quality",
"系统管理": "System",
"用户管理": "User",
"角色管理": "Role",
@ -24,24 +27,28 @@ export default {
"添加": "Add",
"修改": "Edit",
"删除": "Delete",
"组织架构": "Organization",
"针管理": "Needle",
"加工次数管理": "Process",
},
"common": {
"add": "Add",
"edit": "Edit",
"delete": "Delete",
"search": "Search",
"reset": "Reset",
"import": "Import",
"export": "Export",
"confirm": "Confirm",
"cancel": "Cancel",
"success": "Success",
"error": "Error",
"operation": "Operation",
"status": "Status",
"id": "ID",
"create_time": "Create Time",
"update_time": "Update Time"
"新增": "Add",
"修改": "Edit",
"删除": "Delete",
"搜索": "Search",
"重置": "Reset",
"导入": "Import",
"导出": "Export",
"确定": "Confirm",
"取消": "Cancel",
"成功": "Success",
"失败": "Error",
"操作": "Operation",
"详情": "Detail",
"状态": "Status",
"序号": "ID",
"创建时间": "Create Time",
"更新时间": "Update Time"
},
"validate": {
"required": "Can not be empty",
@ -52,21 +59,27 @@ export default {
"min": "Minimum value is"
},
"login": {
"title": "CASM",
"user_login": "User Login",
"logIn": "Login in",
"username": "Username",
"password": "Password",
"code": "Code",
"rememberMe": "Remember Me",
"logging_in": "Logging in",
"register_now": "Register Now"
"标题": "CASM",
"用户登录": "User Login",
"登录": "Login in",
"账号": "Username",
"密码": "Password",
"验证码": "Code",
"记住密码": "Remember Me",
"登录中": "Logging in",
"立即注册": "Register Now",
"版权": "Copyright © 天津市再登软件有限公司, LIMITED All rights reserved"
},
"tagsView": {
"refresh": "Refresh",
"close": "Close",
"closeOthers": "Close Others",
"closeAll": "Close All"
"隐藏搜索": "Hide Search",
"显示搜索": "Show Search",
"显隐列": "Hide/Show Column",
"刷新": "Refresh",
"关闭": "Close",
"关闭其它": "Close Others",
"关闭所有": "Close All",
"显示": "Show",
"隐藏": "Hide",
},
"settings": {
"title": "Page style setting",

View File

@ -2,9 +2,12 @@ export default {
//菜单
"menus":{
"首页": "首页",
"实时生产监控": "实时生产监控",
"仪表盘": "仪表盘",
"设备管理": "设备管理",
"产品管理": "产品管理",
"生产管理": "生产管理",
"质量管理": "质量管理",
"系统管理": "系统管理",
"用户管理": "用户管理",
"角色管理": "角色管理",
@ -25,24 +28,28 @@ export default {
"添加": "添加",
"修改": "修改",
"删除": "删除",
"组织架构": "组织架构",
"针管理": "针管理",
"加工次数管理": "加工次数管理",
},
"common":{
"add": "新增",
"edit": "修改",
"delete": "删除",
"search": "搜索",
"reset": "重置",
"import": "导入",
"export": "导出",
"confirm": "确定",
"cancel": "取消",
"success": "成功",
"error": "失败",
"operation": "操作",
"status": "状态",
"id": "序号",
"create_time": "创建时间",
"update_time": "更新时间",
"新增": "新增",
"修改": "修改",
"删除": "删除",
"搜索": "搜索",
"重置": "重置",
"导入": "导入",
"导出": "导出",
"确定": "确定",
"取消": "取消",
"成功": "成功",
"失败": "失败",
"操作": "操作",
"详情": "详情",
"状态": "状态",
"序号": "序号",
"创建时间": "创建时间",
"更新时间": "更新时间",
},
"validate":{
@ -54,21 +61,27 @@ export default {
"min": "最小值为",
},
"login": {
"title": "智能缝纫管理系统",
"user_login": "用户登录",
"logIn": "登录",
"username": "账号",
"password": "密码",
"code": "验证码",
"rememberMe": "记住密码",
"logging_in": "登录中...",
"register_now": "立即注册"
"标题": "智能缝纫管理系统",
"用户登录": "用户登录",
"登录": "登录",
"账号": "账号",
"密码": "密码",
"验证码": "验证码",
"记住密码": "记住密码",
"登录中": "登录中...",
"立即注册": "立即注册",
"版权": "Copyright © 天津市再登软件有限公司 版权所有"
},
"tagsView": {
"refresh": "刷新",
"close": "关闭",
"closeOthers": "关闭其它",
"closeAll": "关闭所有"
"隐藏搜索": "隐藏搜索",
"显示搜索": "显示搜索",
"显隐列": "显隐列",
"刷新": "刷新",
"关闭": "关闭",
"关闭其它": "关闭其它",
"关闭所有": "关闭所有",
"显示": "显示",
"隐藏": "隐藏",
},
"settings": {
"title": "系统布局配置",

View File

@ -62,6 +62,15 @@ app.config.globalProperties.selectDictLabel = selectDictLabel
app.config.globalProperties.selectDictLabels = selectDictLabels
// 此段代码写入main.js中
app.config.globalProperties.$t = i18n.global.t
app.config.globalProperties.$te = i18n.global.te
app.config.globalProperties.tLang = (parent,item)=>{
if (i18n.global.te(parent + "." + item)) {
return i18n.global.t(parent + "." + item)
}
return item
}
// 全局组件挂载
app.component('DictTag', DictTag)
app.component('Pagination', Pagination)

View File

@ -66,7 +66,7 @@ export const constantRoutes = [
path: '/index',
component: () => import('@/views/index'),
name: 'Index',
meta: { title: '首页', icon: 'dashboard', affix: true }
meta: { title: '实时生产监控', icon: 'dashboard', affix: true }
}
]
},

View File

@ -49,15 +49,15 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="plus" size="mini" @click="handleAdd"
v-hasPermi="['device:device:add']">新增</el-button>
v-hasPermi="['device:device:add']">{{ $t('common.新增') }}</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:device:edit']">修改</el-button>
v-hasPermi="['device:device:edit']">{{ $t('common.修改') }}</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:device:remove']">删除</el-button>
v-hasPermi="['device:device:remove']">{{ $t('common.删除') }}</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="download" size="mini" @click="handleExport"
@ -68,7 +68,7 @@
<el-table v-loading="loading" :data="deviceList" @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 type="index" :label="$t('common.序号')" 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[2].visible" prop="type" />
@ -84,17 +84,17 @@
<el-table-column label="设备型号" align="center" v-if="columns[12].visible" prop="model" />
<!-- <el-table-column label="图片(文件)" align="center" prop="file" /> -->
<el-table-column label="备注" align="center" v-if="columns[13].visible" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column :label="tLang('common','操作')" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="详情" placement="top" v-if="scope.row.userId !== 1">
<el-tooltip :content="tLang('common','详情')" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Tickets" @click="handleInfo(scope.row)"
v-hasPermi="['device:device:info']"></el-button>
</el-tooltip>
<el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
<el-tooltip :content="tLang('common','修改')" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:device:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
<el-tooltip :content="tLang('common','删除')" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:device:remove']"></el-button>
</el-tooltip>

View File

@ -1,26 +1,26 @@
<template>
<div class="login">
<h2 class="title">{{ $t("login.title") }}</h2>
<h2 class="title">{{ $t("login.标题") }}</h2>
<div class="login-content">
<div class="main-left"></div>
<div class="main-right">
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="form-title">{{ $t("login.user_login") }}</h3>
<h3 class="form-title">{{ $t("login.用户登录") }}</h3>
<el-form-item prop="username">
<el-input v-model="loginForm.username" type="text" size="large" auto-complete="off"
:placeholder="$t('login.username')">
:placeholder="$t('login.账号')">
<template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="loginForm.password" type="password" size="large" auto-complete="off"
:placeholder="$t('login.password')" @keyup.enter="handleLogin">
:placeholder="$t('login.密码')" @keyup.enter="handleLogin">
<template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-input v-model="loginForm.code" size="large" auto-complete="off" :placeholder="$t('login.code')"
<el-input v-model="loginForm.code" size="large" auto-complete="off" :placeholder="$t('login.验证码')"
style="width: 63%" @keyup.enter="handleLogin">
<template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template>
</el-input>
@ -28,16 +28,16 @@
<img :src="codeUrl" @click="getCode" class="login-code-img" />
</div>
</el-form-item>
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">{{ $t("login.rememberMe")
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">{{ $t("login.记住密码")
}}</el-checkbox>
<el-form-item style="width:100%;">
<el-button :loading="loading" size="large" type="warning" color="#57667c" style="width:100%;"
@click.prevent="handleLogin">
<span v-if="!loading">{{ $t("login.logIn") }}</span>
<span v-else>{{ $t("login.logging_in") }}...</span>
<span v-if="!loading">{{ $t("login.登录") }}</span>
<span v-else>{{ $t("login.登录中") }}...</span>
</el-button>
<div style="float: right;" v-if="register">
<router-link class="link-type" :to="'/register'">{{ $t("login.register_now") }}</router-link>
<router-link class="link-type" :to="'/register'">{{ $t("login.立即注册") }}</router-link>
</div>
</el-form-item>
</el-form>
@ -47,7 +47,7 @@
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2018-2023 Copyright.vip All Rights Reserved.</span>
<span>{{ $t("login.版权") }}</span>
</div>
</div>
</template>

View File

@ -0,0 +1,78 @@
<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="code">
<el-input v-model="form.code" placeholder="请输入产品条码" />
</el-form-item>
<el-form-item label="针号" prop="needleNum">
<el-input v-model="form.needleNum" placeholder="请输入针号" />
</el-form-item>
<el-form-item label="面线信息" prop="surfacelineId">
<el-input v-model="form.surfacelineId" placeholder="请输入面线信息" />
</el-form-item>
<el-form-item label="底线信息" prop="bottomlineId">
<el-input v-model="form.bottomlineId" placeholder="请输入底线信息" />
</el-form-item>
<el-form-item label="梭芯信息" prop="shuttlecoreId">
<el-input v-model="form.shuttlecoreId" placeholder="请输入梭芯信息" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="form.sort" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="最小值" prop="min">
<el-input v-model="form.min" placeholder="请输入最小值" />
</el-form-item>
<el-form-item label="最大值" prop="max">
<el-input v-model="form.max" placeholder="请输入最大值" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</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 proxy = getCurrentInstance();
const rules = {
code: [{ required: true, message: "请输入产品编码", trigger: "blur" }],
};
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() {
proxy.refs["formRef"].validate(valid => {
if (valid) {
emit("submitForm", props.form);
}
}
);
}
function cancel() {
emit("update:form", {});
close();
}
</script>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,260 @@
<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="code">
<el-input v-model="queryParams.code" placeholder="请输入产品条码" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="针号" prop="needleNum">
<el-input v-model="queryParams.needleNum" placeholder="请输入针号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="面线信息" prop="surfacelineId">
<el-input v-model="queryParams.surfacelineId" placeholder="请输入面线信息" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="底线信息" prop="bottomlineId">
<el-input v-model="queryParams.bottomlineId" placeholder="请输入底线信息" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="梭芯信息" prop="shuttlecoreId">
<el-input v-model="queryParams.shuttlecoreId" placeholder="请输入梭芯信息" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="queryParams.sort" placeholder="请输入排序" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="最小值" prop="min">
<el-input v-model="queryParams.min" placeholder="请输入最小值" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="最大值" prop="max">
<el-input v-model="queryParams.max" placeholder="请输入最大值" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="search" size="mini" @click="handleQuery">搜索</el-button>
<el-button 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="plus" size="mini" @click="handleAdd"
v-hasPermi="['product:needle: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="['product:needle: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="['product:needle:remove']">删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="download" size="mini" @click="handleExport"
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="productionLineRelationList" @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="主键id" align="center" prop="id" /> -->
<el-table-column label="产品编号" align="center" v-if="columns[0].visible" prop="code" />
<el-table-column label="针号" align="center" v-if="columns[1].visible" prop="needleNum" />
<el-table-column label="面线信息" align="center" v-if="columns[2].visible" prop="surfacelineId" />
<el-table-column label="底线信息" align="center" v-if="columns[3].visible" prop="bottomlineId" />
<el-table-column label="梭芯信息" align="center" v-if="columns[4].visible" prop="shuttlecoreId" />
<el-table-column label="排序" align="center" v-if="columns[5].visible" prop="sort" />
<el-table-column label="最小值" align="center" v-if="columns[6].visible" prop="min" />
<el-table-column label="最大值" align="center" v-if="columns[7].visible" prop="max" />
<el-table-column label="类型" align="center" v-if="columns[8].visible" prop="type" />
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
<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="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['product:needle: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="['product:needle:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<AddEdit :title="title" v-model="open" :form="form" @submitForm="submitForm"></AddEdit>
</div>
</template>
<script setup>
import { ref, reactive, watch, onMounted } from 'vue'
import { listProductionLineRelation, getProductionLineRelation, delProductionLineRelation, addProductionLineRelation, updateProductionLineRelation } from '@/api/casm/product'
import AddEdit from './add_edit.vue';
const { proxy } = getCurrentInstance();
//
let loading = ref(true)
//
let ids = ref([])
//
let single = ref(true)
//
let multiple = ref(true)
//
let showSearch = ref(false)
//
let form = ref({})
//
let open = ref(false)
//
let title = ref("")
//
let queryParams = reactive({
pageNum: 1,
pageSize: 10,
code: null,
needleNum: null,
surfacelineId: null,
bottomlineId: null,
shuttlecoreId: null,
sort: null,
min: null,
max: null,
type: null,
})
let total = ref(0)
// (线/线)/
let productionLineRelationList = ref([])
//
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: 7, label: `最大值`, visible: true },
{ key: 8, label: `类型`, visible: true },
]);
let infoDialog = ref(false)
let productinfo = ref({})
/** 查询设备信息列表 */
function getList() {
loading.value = true;
listProductionLineRelation(queryParams).then(response => {
productionLineRelationList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id)
single.value = selection.length !== 1
multiple.value = !selection.length
}
//** */
function handleQuery() {
queryParams.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
queryParams.pageNum = 1
queryParams.pageSize = 10
queryParams.name = null
queryParams.code = null
handleQuery();
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加针(底线/面线)/张力";
}
/**详情按钮操作 */
function handleInfo(row) {
productinfo.value = row
infoDialog.value = true
}
/** 提交按钮 */
/** 提交按钮 */
function submitForm(propform) {
if (propform.id != null) {
updateProductionLineRelation(propform).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addProductionLineRelation(propform).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
//
function cancel() {
open.value = false;
reset();
}
//
function reset() {
form.value = {
id: null,
code: null,
needleNum: null,
surfacelineId: null,
bottomlineId: null,
shuttlecoreId: null,
sort: null,
min: null,
max: null,
type: null,
createTime: null,
remark: null
};
//resetForm("form");
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const id = row.id || ids.value
getProductionLineRelation(id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改针(底线/面线)/张力";
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const id = row.id || ids.value;
proxy.$modal.confirm('是否确认删除针信息编号为"' + id + '"的数据项?').then(function () {
return delProductionLineRelation(id);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => { });
}
onMounted(() => {
getList();
})
</script>
<style lang="scss" scoped></style>

View File

@ -5,125 +5,15 @@
<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 label="产品类型" prop="type">
<el-input v-model="props.form.type" 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="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-row :gutter="10">
<el-col :span="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-input v-model="props.form.textarea" style="width: 600px" :rows="4" type="textarea"
placeholder="Please input" />
<el-form-item label="备注" prop="remark">
<el-input v-model="props.form.remark" style="width: 600px" :rows="4" type="textarea" placeholder="请输入" />
</el-form-item>
<el-form-item label="图片(文件)" prop="file">
<image-upload v-model="props.form.file" />
@ -141,6 +31,12 @@
<script setup>
import { ref } from "vue";
const emit = defineEmits();
const proxy = getCurrentInstance();
const rules = {
name: [{ required: true, message: "请输入产品名称", trigger: "blur" }],
code: [{ required: true, message: "请输入产品编码", trigger: "blur" }],
type: [{ required: true, message: "请输入产品类型", trigger: "blur" }],
};
const props = defineProps({
modelValue: [String, Object, Array],
title: String,
@ -150,11 +46,25 @@ const props = defineProps({
},
});
const baseUrl = import.meta.env.VITE_APP_BASE_API;
//
function validateWorking(rule, value, callback) {
if (value[0].min === "" || value[0].max === "" || value[1].min === "" || value[1].max === "") {
callback(new Error("请输入加工针数"));
} else {
callback();
}
}
function close() {
emit("update:modelValue", false);
}
function submitForm() {
emit("submitForm", props.form);
proxy.refs["formRef"].validate((valid) => {
if (valid) {
emit("submitForm", props.form);
}
});
}
function cancel() {
emit("update:form", {});

View File

@ -1,12 +1,15 @@
<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="name">
<el-form-item label="产品名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="设备编号" prop="code">
<el-form-item label="产品编码" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入设备编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="产品类型" prop="type">
<el-input v-model="queryParams.type" placeholder="请输入设备编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="refresh" size="mini" @click="resetQuery">重置</el-button>
@ -31,12 +34,12 @@
</el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="productionList" @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[2].visible" prop="a" />
<el-table-column label="产品类型" align="center" v-if="columns[1].visible" prop="type" />
<el-table-column label="产品编码" align="center" v-if="columns[2].visible" prop="code" />
<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">
@ -57,13 +60,14 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<AddEdit :title="title" v-model="open" :form="form"></AddEdit>
<AddEdit :title="title" v-model="open" :form="form" @submitForm="submitForm"></AddEdit>
<InfoVue v-model="infoDialog" :info="productinfo" />
</div>
</template>
<script setup>
import { ref, reactive, watch, onMounted } from 'vue'
import { listProduction, getProduction, delProduction, addProduction, updateProduction } from "@/api/casm/product";
import AddEdit from './add_edit.vue';
import InfoVue from "./info.vue";
const { proxy } = getCurrentInstance();
@ -89,13 +93,14 @@ let queryParams = reactive({
pageNum: 1,
pageSize: 10,
name: null,
code: null
code: null,
type: null
})
let total = ref(0)
//
let productList = ref([
{name:'设备1',code:'code1',id:1},
let productionList = ref([
{ name: '设备1', code: 'code1', id: 1 },
])
//
const columns = ref([
@ -109,18 +114,15 @@ let productinfo = ref({})
/** 查询设备信息列表 */
function getList() {
loading.value = true;
// listDevice(queryParams).then(response => {
// deviceList.value = response.rows;
// total.value = response.total;
// loading.value = false;
// });
setTimeout(() => {
listProduction(queryParams).then(response => {
productionList.value = response.rows;
total.value = response.total;
loading.value = false;
}, 1000);
});
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id)
ids.value = selection.map(item => item.code)
single.value = selection.length !== 1
multiple.value = !selection.length
}
@ -153,26 +155,25 @@ function handleInfo(row) {
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["formRef"].validate(valid => {
if (valid) {
if (form.value.id != null) {
// updateDevice(form.value).then(response => {
// proxy.$modal.msgSuccess("");
// open.value = false;
// getList();
// });
} else {
// addDevice(form.value).then(response => {
// proxy.$modal.msgSuccess("");
// open.value = false;
// getList();
// });
}
}
});
/** 提交按钮 */
function submitForm(propform) {
if (propform.id != null) {
updateProduction(propform).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addProduction(propform).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
//
function cancel() {
open.value = false;
@ -182,8 +183,11 @@ function cancel() {
function reset() {
form.value = {
id: null,
name: null,
code: null,
name: '',
type: '',
code: '',
remark: "",
file: ""
};
//resetForm("form");
}
@ -191,26 +195,22 @@ function reset() {
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const id = row.id || ids.value
// getDevice(id).then(response => {
// form.value = response.data;
// open.value = true;
// title.value = "";
// });
setTimeout(() => {
const id = row.code || ids.value
getProduction(id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改设备信息";
}, 100);
title.value = "修改产品信息";
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const id = row.id || ids.value;
proxy.$modal.confirm('是否确认删除设备信息编号为"' + id + '"的数据项?').then(function () {
return //delDevice(id);
const id = row.code || ids.value;
proxy.$modal.confirm('是否确认删除产品信息编号为"' + id + '"的数据项?').then(function () {
return delProduction(id);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功" );
proxy.$modal.msgSuccess("删除成功");
}).catch(() => { });
}
onMounted(() => {
@ -218,6 +218,4 @@ onMounted(() => {
})
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,78 @@
<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="code">
<el-input v-model="form.code" placeholder="请输入产品条码" />
</el-form-item>
<el-form-item label="第几针" prop="num">
<el-input v-model="form.num" placeholder="请输入第几针" />
</el-form-item>
<el-form-item label="步骤(缝纫、标签)" prop="step">
<el-input v-model="form.step" placeholder="请输入步骤(缝纫、标签)" />
</el-form-item>
<el-form-item label="最小值" prop="min">
<el-input v-model="form.min" placeholder="请输入最小值" />
</el-form-item>
<el-form-item label="最大值" prop="max">
<el-input v-model="form.max" placeholder="请输入最大值" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="form.sort" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</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 proxy = getCurrentInstance();
const rules = {
code: [{ required: true, message: "请输入产品编码", trigger: "blur" }],
};
const props = defineProps({
modelValue: [String, Object, Array],
title: String,
form: {
type: Object,
default: () => ({}),
},
});
const baseUrl = import.meta.env.VITE_APP_BASE_API;
//
function validateWorking(rule, value, callback) {
if (value[0].min === "" || value[0].max === "" || value[1].min === "" || value[1].max === "") {
callback(new Error("请输入加工针数"));
} else {
callback();
}
}
function close() {
emit("update:modelValue", false);
}
function submitForm() {
proxy.refs["formRef"].validate((valid) => {
if (valid) {
emit("submitForm", props.form);
}
});
}
function cancel() {
emit("update:form", {});
close();
}
</script>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,220 @@
<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="code">
<el-input v-model="queryParams.code" placeholder="请输入产品条码" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="第几针" prop="num">
<el-input v-model="queryParams.num" placeholder="请输入第几针" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="步骤(缝纫、标签)" prop="step">
<el-input v-model="queryParams.step" placeholder="请输入步骤(缝纫、标签)" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="最小值" prop="min">
<el-input v-model="queryParams.min" placeholder="请输入最小值" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="最大值" prop="max">
<el-input v-model="queryParams.max" placeholder="请输入最大值" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="search" size="mini" @click="handleQuery">搜索</el-button>
<el-button 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="plus" size="mini" @click="handleAdd"
v-hasPermi="['product:working: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="['product:working: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="['product:working:remove']">删除</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="procedureList" @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="code" />
<el-table-column label="第几针" align="center" v-if="columns[1].visible" prop="num" />
<el-table-column label="步骤(缝纫、标签)" align="center" v-if="columns[2].visible" prop="step" />
<el-table-column label="最小值" align="center" v-if="columns[3].visible" prop="min" />
<el-table-column label="最大值" align="center" v-if="columns[4].visible" prop="max" />
<el-table-column label="排序" align="center" v-if="columns[5].visible" prop="sort" />
<el-table-column label="备注" align="center" v-if="columns[6].visible" prop="remark" />
<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="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['product:working: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="['product:working:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<AddEdit :title="title" v-model="open" :form="form" @submitForm="submitForm"></AddEdit>
</div>
</template>
<script setup>
import { ref, reactive, watch, onMounted } from 'vue'
import { listProcedure, getProcedure, delProcedure, addProcedure, updateProcedure } from "@/api/casm/product";
import AddEdit from './add_edit.vue';
const { proxy } = getCurrentInstance();
//
let loading = ref(true)
//
let ids = ref([])
//
let single = ref(true)
//
let multiple = ref(true)
//
let showSearch = ref(false)
//
let form = ref({})
//
let open = ref(false)
//
let title = ref("")
//
let queryParams = reactive({
pageNum: 1,
pageSize: 10,
code: null,
num: null,
step: null,
min: null,
max: null,
})
let total = ref(0)
//
let procedureList = ref([])
//
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 },
]);
let infoDialog = ref(false)
let productinfo = ref({})
/** 查询设备信息列表 */
function getList() {
loading.value = true;
listProcedure(queryParams).then(response => {
procedureList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id)
single.value = selection.length !== 1
multiple.value = !selection.length
}
//** */
function handleQuery() {
queryParams.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
queryParams.pageNum = 1
queryParams.pageSize = 10
queryParams.name = null
queryParams.code = null
handleQuery();
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加缝纫次数";
}
/** 提交按钮 */
function submitForm(propform) {
if (propform.id != null) {
updateProcedure(propform).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addProcedure(propform).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
//
function cancel() {
open.value = false;
reset();
}
//
function reset() {
form.value = {
id: null,
name: '',
type: '',
code: '',
remark: "",
file: ""
};
//resetForm("form");
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const id = row.id || ids.value
getProcedure(id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改缝纫次数";
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const id = row.id || ids.value;
proxy.$modal.confirm('是否确认删除缝纫次数编号为"' + id + '"的数据项?').then(function () {
return delProcedure(id);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => { });
}
onMounted(() => {
getList();
})
</script>
<style lang="scss" scoped></style>

190
src/views/quality/index.vue Normal file
View File

@ -0,0 +1,190 @@
<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="productionCode">
<el-input v-model="queryParams.productionCode" placeholder="请输入产品编码" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="设备编码" prop="deviceCode">
<el-input v-model="queryParams.deviceCode" placeholder="请输入设备编码" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="员工编码" prop="persionCode">
<el-input v-model="queryParams.persionCode" placeholder="请输入员工编码" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="目标产量" prop="planOutput">
<el-input v-model="queryParams.planOutput" placeholder="请输入目标产量" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="当前产量" prop="output">
<el-input v-model="queryParams.output" placeholder="请输入当前产量" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="开始时间" prop="starttime">
<el-date-picker clearable v-model="queryParams.starttime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endtime">
<el-date-picker clearable v-model="queryParams.endtime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="批次" prop="batch">
<el-input v-model="queryParams.batch" placeholder="请输入批次" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="search" size="mini" @click="handleQuery">搜索</el-button>
<el-button 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="plus" size="mini" @click="handleAdd"
v-hasPermi="['casm:produce: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:produce: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:produce:remove']">删除</el-button>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="download" size="mini" @click="handleExport"
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="productList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column type="index" width="55" align="center" />
<el-table-column label="产品名称" align="center" prop="productionName" />
<el-table-column label="产品编码" align="center" prop="productionCode" />
<el-table-column label="产品序列号" align="center" prop="deviceCode" />
<el-table-column label="员工姓名" align="center" prop="persionCode" />
<el-table-column label="设备名称" align="center" prop="planOutput" />
<el-table-column label="开始时间" align="center" prop="starttime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.starttime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="完成时间" align="center" prop="endtime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.endtime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="batch" />
<!-- <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:produce: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:produce: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:produce:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column> -->
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</template>
<script setup>
import { ref, reactive, watch, onMounted } from 'vue'
import { listOutput, getOutput, delOutput, addOutput, updateOutput } from "@/api/casm/produce";
const { proxy } = getCurrentInstance();
//
let loading = ref(true)
//
let ids = ref([])
//
let single = ref(true)
//
let multiple = ref(true)
//
let showSearch = ref(false)
//
let queryParams = reactive({
pageNum: 1,
pageSize: 10,
productionCode: null,
deviceCode: null,
persionCode: null,
planOutput: null,
output: null,
starttime: null,
endtime: null,
batch: null,
})
let total = ref(0)
//
let productList = ref([
{ name: '设备1', code: 'code1', id: 1 },
])
//
const columns = ref([
{ key: 0, label: `产品名称`, visible: true },
{ key: 1, label: `产品类型`, visible: true },
{ key: 2, label: `产品编码`, visible: true },
]);
const infoDialog = ref(false)
let produceinfo = ref({})
/** 查询设备信息列表 */
function getList() {
loading.value = true;
// listOutput(queryParams).then(response => {
// deviceList.value = response.rows;
// total.value = response.total;
// loading.value = false;
// });
setTimeout(() => {
loading.value = false;
}, 1000);
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id)
single.value = selection.length !== 1
multiple.value = !selection.length
}
//** */
function handleQuery() {
queryParams.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
queryParams.pageNum = 1
queryParams.pageSize = 10
queryParams.name = null
queryParams.code = null
handleQuery();
}
onMounted(() => {
getList();
})
</script>
<style lang="scss" scoped></style>