This commit is contained in:
hzz 2024-04-10 19:00:36 +08:00
parent db225eddc7
commit 65ec6ad84f
21 changed files with 617 additions and 330 deletions

View File

@ -28,8 +28,10 @@
"jsencrypt": "3.3.2", "jsencrypt": "3.3.2",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"pinia": "2.1.7", "pinia": "2.1.7",
"qrcode.vue": "^3.4.1",
"vue": "3.3.9", "vue": "3.3.9",
"vue-cropper": "1.1.1", "vue-cropper": "1.1.1",
"vue-echarts": "^6.6.9",
"vue-i18n": "^9.10.2", "vue-i18n": "^9.10.2",
"vue-router": "4.2.5" "vue-router": "4.2.5"
}, },

View File

@ -16,6 +16,13 @@ export function getOutput(id) {
method: 'get' method: 'get'
}) })
} }
// 查询生产管理详细
export function getOutputInfo(id) {
return request({
url: '/casm/output/getOutputInfo/' + id,
method: 'get'
})
}
// 新增生产管理 // 新增生产管理
export function addOutput(data) { export function addOutput(data) {

View File

@ -11,6 +11,23 @@ export function listProduction(query) {
}) })
} }
// 查询产品管理信息详情列表
export function selectProduction(code) {
return request({
url: '/casm/production/selectProduction/' + code,
method: 'get'
})
}
//获取二维码
export function getQRCode(code) {
return request({
url: '/casm/production/generateQRCode',
method: 'get',
params: code
})
}
// 查询产品信息详细 // 查询产品信息详细
export function getProduction(code) { export function getProduction(code) {
return request({ return request({

44
src/api/casm/quality.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询质量管理列表
export function listQuality(query) {
return request({
url: '/casm/quality/list',
method: 'get',
params: query
})
}
// 查询质量管理详细
export function getQuality(id) {
return request({
url: '/casm/quality/' + id,
method: 'get'
})
}
// 新增质量管理
export function addQuality(data) {
return request({
url: '/casm/quality',
method: 'post',
data: data
})
}
// 修改质量管理
export function updateQuality(data) {
return request({
url: '/casm/quality',
method: 'put',
data: data
})
}
// 删除质量管理
export function delQuality(id) {
return request({
url: '/casm/quality/' + id,
method: 'delete'
})
}

9
src/api/home.js Normal file
View File

@ -0,0 +1,9 @@
import request from '@/utils/request'
// 获取首页数据
export function getHomeDeviceInfoVO() {
return request({
url: '/home',
method: 'get'
})
}

View File

@ -55,6 +55,7 @@ export default {
"创建时间": "Create Time", "创建时间": "Create Time",
"更新时间": "Update Time", "更新时间": "Update Time",
"请输入": "Please input ", "请输入": "Please input ",
"请选择": "Please select",
"确 定": "OK", "确 定": "OK",
"取 消": "Cancel", "取 消": "Cancel",
"添加成功": "Add Success", "添加成功": "Add Success",
@ -62,12 +63,15 @@ export default {
"删除成功": "Delete Success", "删除成功": "Delete Success",
}, },
"validate": { "validate": {
"required": "Can not be empty", "不能为空": "Can not be empty ",
"format": "Format is incorrect", "格式不正确": "Format is incorrect",
"length": "Length is incorrect", "长度不正确": "Length is incorrect",
"range": "Range is incorrect", "范围不正确": "Range is incorrect",
"max": "Maximum value is", "最大值为": "Maximum value is",
"min": "Minimum value is" "最小值为": "Minimum value is"
},
"tip": {
"确定删除选中记录?": "Are you sure to delete the selected record?",
}, },
"login": { "login": {
"标题": "CASM Sewing Management System", "标题": "CASM Sewing Management System",
@ -102,7 +106,7 @@ export default {
"device": { "device": {
"设备信息": "Device Info", "设备信息": "Device Info",
"设备名称": "Device Name", "设备名称": "Device Name",
"设备编": "Number", "设备编": "Number",
"设备类型": "Type", "设备类型": "Type",
"车间名称": "Workshop", "车间名称": "Workshop",
"产线名称": "Prod Line", "产线名称": "Prod Line",
@ -140,4 +144,31 @@ export default {
"第几针": "Needle No.", "第几针": "Needle No.",
"步骤": "Step", "步骤": "Step",
}, },
"produce": {
"产品编码": "ProductCode",
"设备编码": "DeviceCode",
"员工编号": "StaffCode",
"目标产量": "TargetOutput",
"当前产量": "CurrentOutput",
"开始时间": "StartTime",
"结束时间": "EndTime",
"批次": "Batch",
"备注": "Remark",
"状态": "Status",
"二维码": "QRCode",
"获取二维码": "Get QRCode",
},
"quality": {
"产品名称": "ProductName",
"产品编码": "ProductCode",
"产品序列号": "ProductSN",
"员工姓名": "StaffName",
"设备名称": "DeviceName",
"开始时间": "StartTime",
"完成时间": "EndTime",
"状态": "Status",
"产品合格率": "PassRate",
"产品不合格率": "FailRate",
"产品完成量": "FinishCount",
}
} }

View File

@ -56,6 +56,7 @@ export default {
"创建时间": "创建时间", "创建时间": "创建时间",
"更新时间": "更新时间", "更新时间": "更新时间",
"请输入": "请输入", "请输入": "请输入",
"请选择": "请选择",
"确 定": "确 定", "确 定": "确 定",
"取 消": "取 消", "取 消": "取 消",
"添加成功": "添加成功", "添加成功": "添加成功",
@ -63,12 +64,15 @@ export default {
"删除成功": "删除成功", "删除成功": "删除成功",
}, },
"validate": { "validate": {
"required": "不能为空", "不能为空": "不能为空",
"format": "格式不正确", "格式不正确": "格式不正确",
"length": "长度不正确", "长度不正确": "长度不正确",
"range": "范围不正确", "范围不正确": "范围不正确",
"max": "最大值为", "最大值为": "最大值为",
"min": "最小值为", "最小值为": "最小值为",
},
"tip": {
"确定删除选中记录?": "确定删除选中记录?",
}, },
"login": { "login": {
"标题": "智能缝纫管理系统", "标题": "智能缝纫管理系统",
@ -103,7 +107,7 @@ export default {
"device": { "device": {
"设备信息": "设备信息", "设备信息": "设备信息",
"设备名称": "设备名称", "设备名称": "设备名称",
"设备编号": "设备编号", "设备编码": "设备编码",
"设备类型": "设备类型", "设备类型": "设备类型",
"车间名称": "车间名称", "车间名称": "车间名称",
"产线名称": "产线名称", "产线名称": "产线名称",
@ -141,4 +145,31 @@ export default {
"第几针": "第几针", "第几针": "第几针",
"步骤": "步骤", "步骤": "步骤",
}, },
"produce": {
"产品编码": "产品编码",
"设备编码": "设备编码",
"员工编号": "员工编号",
"目标产量": "目标产量",
"当前产量": "当前产量",
"开始时间": "开始时间",
"结束时间": "结束时间",
"批次": "批次",
"备注": "备注",
"状态": "状态",
"二维码": "二维码",
"获取二维码": "获取二维码",
},
"quality": {
"产品名称": "产品名称",
"产品编码": "产品编码",
"产品序列号": "产品序列号",
"员工姓名": "员工姓名",
"设备名称": "设备名称",
"开始时间": "开始时间",
"完成时间": "完成时间",
"状态": "状态",
"产品合格率": "产品合格率",
"产品不合格率": "产品不合格率",
"产品完成量": "产品完成量",
}
} }

View File

@ -48,6 +48,31 @@ import TreeSelect from '@/components/TreeSelect'
import DictTag from '@/components/DictTag' import DictTag from '@/components/DictTag'
import { getStoredLanguage, saveStoredLanguage } from "@/utils/languageStorage"; import { getStoredLanguage, saveStoredLanguage } from "@/utils/languageStorage";
import VECharts from 'vue-echarts'
import { use } from 'echarts/core'
// 手动引入 ECharts 各模块来减小打包体积
import {
CanvasRenderer
} from 'echarts/renderers'
import {
PieChart
} from 'echarts/charts'
import {
TitleComponent,
TooltipComponent,
LegendComponent
} from 'echarts/components'
use([
CanvasRenderer,
PieChart,
TitleComponent,
TooltipComponent,
LegendComponent
]);
// 设置语言
let locale = getStoredLanguage() === 'en-US' ? enLocale : zhLocale let locale = getStoredLanguage() === 'en-US' ? enLocale : zhLocale
const app = createApp(App) const app = createApp(App)
@ -80,7 +105,8 @@ app.component('ImageUpload', ImageUpload)
app.component('ImagePreview', ImagePreview) app.component('ImagePreview', ImagePreview)
app.component('RightToolbar', RightToolbar) app.component('RightToolbar', RightToolbar)
app.component('Editor', Editor) app.component('Editor', Editor)
// 全局注册组件(也可以使用局部注册)
app.component('v-chart', VECharts)
app.use(router) app.use(router)
app.use(store) app.use(store)
app.use(i18n) app.use(i18n)

View File

@ -4,8 +4,8 @@
<el-form-item :label="tLang('device','设备名称')" prop="name"> <el-form-item :label="tLang('device','设备名称')" prop="name">
<el-input v-model="queryParams.name" :placeholder="tLang('common','请输入') + tLang('device','设备名称')" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.name" :placeholder="tLang('common','请输入') + tLang('device','设备名称')" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('device','设备编')" prop="code"> <el-form-item :label="tLang('device','设备编')" prop="code">
<el-input v-model="queryParams.code" :placeholder="tLang('common','请输入') + tLang('device','设备编')" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.code" :placeholder="tLang('common','请输入') + tLang('device','设备编')" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('device','车间名称')" prop="workShop"> <el-form-item :label="tLang('device','车间名称')" prop="workShop">
<el-input v-model="queryParams.workShop" :placeholder="tLang('common','请输入') + tLang('device','车间名称')" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.workShop" :placeholder="tLang('common','请输入') + tLang('device','车间名称')" clearable @keyup.enter="handleQuery" />
@ -70,7 +70,7 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" :label="$t('common.序号')" width="60" align="center" /> <el-table-column type="index" :label="$t('common.序号')" width="60" align="center" />
<el-table-column :label="tLang('device','设备名称')" align="center" v-if="columns[0].visible" prop="name" /> <el-table-column :label="tLang('device','设备名称')" align="center" v-if="columns[0].visible" prop="name" />
<el-table-column :label="tLang('device','设备编')" align="center" v-if="columns[1].visible" prop="code" /> <el-table-column :label="tLang('device','设备编')" align="center" v-if="columns[1].visible" prop="code" />
<el-table-column :label="tLang('device','设备类型')" align="center" v-if="columns[2].visible" prop="type" /> <el-table-column :label="tLang('device','设备类型')" align="center" v-if="columns[2].visible" prop="type" />
<el-table-column :label="tLang('device','车间名称')" align="center" v-if="columns[3].visible" prop="workShop" /> <el-table-column :label="tLang('device','车间名称')" align="center" v-if="columns[3].visible" prop="workShop" />
<el-table-column :label="tLang('device','产线名称')" align="center" v-if="columns[4].visible" prop="lineName" /> <el-table-column :label="tLang('device','产线名称')" align="center" v-if="columns[4].visible" prop="lineName" />
@ -109,11 +109,11 @@
<el-form-item :label="tLang('device','设备名称')" prop="name"> <el-form-item :label="tLang('device','设备名称')" prop="name">
<el-input v-model="form.name" :placeholder="tLang('common','请输入') + tLang('device','设备名称')" /> <el-input v-model="form.name" :placeholder="tLang('common','请输入') + tLang('device','设备名称')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('device','设备编')" prop="code"> <el-form-item :label="tLang('device','设备编')" prop="code">
<el-input v-model="form.code" :placeholder="tLang('common','请输入') + tLang('device','设备编')" /> <el-input v-model="form.code" :placeholder="tLang('common','请输入') + tLang('device','设备编')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('device','设备类型')" prop="code"> <el-form-item :label="tLang('device','设备类型')" prop="code">
<el-input v-model="form.type" :placeholder="tLang('common','请输入') + tLang('device','设备编')" /> <el-input v-model="form.type" :placeholder="tLang('common','请输入') + tLang('device','设备编')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('device','车间名称')" prop="workShop"> <el-form-item :label="tLang('device','车间名称')" prop="workShop">
<el-input v-model="form.workShop" :placeholder="tLang('common','请输入') + tLang('device','车间名称')" /> <el-input v-model="form.workShop" :placeholder="tLang('common','请输入') + tLang('device','车间名称')" />
@ -224,7 +224,7 @@ let rules = ref({
// //
const columns = ref([ const columns = ref([
{ key: 0, label: proxy.tLang('device',`设备名称`), visible: true }, { key: 0, label: proxy.tLang('device',`设备名称`), visible: true },
{ key: 1, label: proxy.tLang('device',`设备编`), visible: true }, { key: 1, label: proxy.tLang('device',`设备编`), visible: true },
{ key: 2, label: proxy.tLang('device',`设备类型`), visible: true }, { key: 2, label: proxy.tLang('device',`设备类型`), visible: true },
{ key: 3, label:proxy.tLang('device',`车间名称`) , visible: true }, { key: 3, label:proxy.tLang('device',`车间名称`) , visible: true },
{ key: 4, label:proxy.tLang('device',`产线名称`) , visible: false }, { key: 4, label:proxy.tLang('device',`产线名称`) , visible: false },
@ -316,7 +316,7 @@ function handleInfo(row) {
function handleAdd() { function handleAdd() {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加设备信息"; title.value = proxy.tLang('common','添加') + ' ' + proxy.tLang('device','设备信息');
} }
/** 修改按钮操作 */ /** 修改按钮操作 */
function handleUpdate(row) { function handleUpdate(row) {
@ -325,7 +325,7 @@ function handleUpdate(row) {
getDevice(id).then(response => { getDevice(id).then(response => {
form.value = response.data; form.value = response.data;
open.value = true; open.value = true;
title.value = "修改设备信息"; title.value = proxy.tLang('common','修改') + ' ' + proxy.tLang('device','设备信息');
}); });
} }
/** 提交按钮 */ /** 提交按钮 */
@ -334,13 +334,13 @@ function submitForm() {
if (valid) { if (valid) {
if (form.value.id != null) { if (form.value.id != null) {
updateDevice(form.value).then(response => { updateDevice(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功"); proxy.$modal.msgSuccess(proxy.tLang('common','修改成功'));
open.value = false; open.value = false;
getList(); getList();
}); });
} else { } else {
addDevice(form.value).then(response => { addDevice(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功"); proxy.$modal.msgSuccess(proxy.tLang('common','新增成功'));
open.value = false; open.value = false;
getList(); getList();
}); });
@ -351,11 +351,11 @@ function submitForm() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
const id = row.id || ids.value; const id = row.id || ids.value;
proxy.$modal.confirm('是否确认删除设备信息编号为"' + id + '"的数据项?').then(function () { proxy.$modal.confirm(proxy.tLang('tip','确定删除选中记录?') + ` [${id}]`).then(function () {
return delDevice(id); return delDevice(id);
}).then(() => { }).then(() => {
getList(); getList();
proxy.$modal.msgSuccess("删除成功"); proxy.$modal.msgSuccess(proxy.tLang('common','删除成功'));
}).catch(() => { }); }).catch(() => { });
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

View File

@ -1,7 +1,7 @@
<template> <template>
<el-dialog v-model="props.modelValue" title="设备详情" @close="close" width="800"> <el-dialog v-model="props.modelValue" title="设备详情" @close="close" width="800">
<el-descriptions title="设备信息"> <el-descriptions title="设备信息">
<el-descriptions-item label="设备编">{{ props.info.code }}</el-descriptions-item> <el-descriptions-item label="设备编">{{ props.info.code }}</el-descriptions-item>
<el-descriptions-item label="设备名称">{{ props.info.name }}</el-descriptions-item> <el-descriptions-item label="设备名称">{{ props.info.name }}</el-descriptions-item>
<el-descriptions-item label="设备类型">{{ props.info.type }}</el-descriptions-item> <el-descriptions-item label="设备类型">{{ props.info.type }}</el-descriptions-item>

View File

@ -1,12 +1,53 @@
<template> <template>
<div class="app-container home"> <el-row :gutter="10" class="mb8">
</div> </el-row>
<v-chart class="chart" :option="option" />
</template> </template>
<script setup> <script setup>
const option = ref({
title: {
text: "Traffic Sources",
left: "center"
},
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: "vertical",
left: "left",
data: ["Direct", "Email", "Ad Networks", "Video Ads", "Search Engines"]
},
series: [
{
name: "Traffic Sources",
type: "pie",
radius: "55%",
center: ["50%", "60%"],
data: [
{ value: 335, name: "Direct" },
{ value: 310, name: "Email" },
{ value: 234, name: "Ad Networks" },
{ value: 135, name: "Video Ads" },
{ value: 1548, name: "Search Engines" }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)"
}
}
}
]
});
</script> </script>
<style scoped lang="scss"> <style scoped>
.chart {
height: 400px;
}
</style> </style>

View File

@ -3,39 +3,41 @@
<el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline" <el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline"
label-width="100px"> label-width="100px">
<el-form-item label="产品编码" prop="productionCode"> <el-form-item label="产品编码" prop="productionCode">
<el-input v-model="props.form.productionCode" placeholder="请输入产品编码" /> <el-input v-model="props.form.productionCode" :placeholder="tLang('common','请输入') + tLang('produce','产品编码')" />
</el-form-item> </el-form-item>
<el-form-item label="设备编码" prop="deviceCode"> <el-form-item label="设备编码" prop="deviceCode">
<el-input v-model="props.form.deviceCode" placeholder="请输入设备编码" /> <el-input v-model="props.form.deviceCode" :placeholder="tLang('common','请输入') + tLang('produce','设备编码')" />
</el-form-item> </el-form-item>
<el-form-item label="员工编" prop="persionCode"> <el-form-item label="员工编" prop="persionCode">
<el-input v-model="props.form.persionCode" placeholder="请输入员工编码" /> <el-input v-model="props.form.persionCode" :placeholder="tLang('common','请输入') + tLang('produce','员工编号')" />
</el-form-item> </el-form-item>
<el-form-item label="目标产量" prop="planOutput"> <el-form-item label="目标产量" prop="planOutput">
<el-input v-model="props.form.planOutput" placeholder="请输入目标产量" /> <el-input v-model="props.form.planOutput" :placeholder="tLang('common','请输入') + tLang('produce','目标产量')" />
</el-form-item> </el-form-item>
<el-form-item label="当前产量" prop="output"> <el-form-item label="当前产量" prop="output">
<el-input v-model="props.form.output" placeholder="请输入当前产量" /> <el-input v-model="props.form.output" :placeholder="tLang('common','请输入') + tLang('produce','当前产量')" />
</el-form-item> </el-form-item>
<el-form-item label="开始时间" prop="starttime"> <el-form-item label="开始时间" prop="starttime">
<el-date-picker clearable v-model="props.form.starttime" type="date" value-format="yyyy-MM-dd" placeholder="请选择开始时间"> <el-date-picker clearable v-model="props.form.starttime" type="date" format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss" :placeholder="tLang('common','请选择') + tLang('produce','开始时间')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="endtime"> <el-form-item label="结束时间" prop="endtime">
<el-date-picker clearable v-model="props.form.endtime" type="date" value-format="yyyy-MM-dd" placeholder="请选择结束时间"> <el-date-picker clearable v-model="props.form.endtime" type="date" format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss" :placeholder="tLang('common','请选择') + tLang('produce','结束时间')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="批次" prop="batch"> <el-form-item label="批次" prop="batch">
<el-input v-model="props.form.batch" placeholder="请输入批次" /> <el-input v-model="props.form.batch" :placeholder="tLang('common','请输入') + tLang('produce','批次')" />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="props.form.remark" placeholder="请输入备注" /> <el-input v-model="props.form.remark" :placeholder="tLang('common','请输入') + tLang('produce','备注')" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm">{{tLang('common',' ')}}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{tLang('common',' ')}}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -53,23 +55,24 @@ const props = defineProps({
default: () => ({}), default: () => ({}),
}, },
}); });
const formRef = ref(null);
const baseUrl = import.meta.env.VITE_APP_BASE_API; const baseUrl = import.meta.env.VITE_APP_BASE_API;
const rules = { const rules = {
productionCode: [ productionCode: [
{ required: true, message: "产品编码不能为空", trigger: "blur" } { required: true, message: `${proxy.tLang('produce','产品编码')} ` + proxy.tLang('validate','不能为空'), trigger: "blur" }
], ],
deviceCode: [ deviceCode: [
{ required: true, message: "设备编码不能为空", trigger: "blur" } { required: true, message: `${proxy.tLang('produce','设备编码')} ` + proxy.tLang('validate','不能为空'), trigger: "blur" }
], ],
persionCode: [ persionCode: [
{ required: true, message: "员工编码不能为空", trigger: "blur" } { required: true, message: `${proxy.tLang('produce','员工编号')} ` + proxy.tLang('validate','不能为空'), trigger: "blur" }
], ],
} }
function close() { function close() {
emit("update:modelValue", false); emit("update:modelValue", false);
} }
function submitForm() { function submitForm() {
proxy.$refs["formRef"].validate(valid => { formRef.value.validate(valid => {
if (valid) { if (valid) {
emit("submitForm", props.form); emit("submitForm", props.form);

View File

@ -2,56 +2,56 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px"> label-width="68px">
<el-form-item label="产品编码" prop="productionCode"> <el-form-item :label="tLang('produce','产品编码')" prop="productionCode">
<el-input v-model="queryParams.productionCode" placeholder="请输入产品编码" clearable <el-input v-model="queryParams.productionCode" :placeholder="tLang('common','请输入') + tLang('produce','产品编码')" clearable
@keyup.enter="handleQuery" /> @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="设备编码" prop="deviceCode"> <el-form-item :label="tLang('produce','设备编码')" prop="deviceCode">
<el-input v-model="queryParams.deviceCode" placeholder="请输入设备编码" clearable <el-input v-model="queryParams.deviceCode" :placeholder="tLang('common','请输入') + tLang('produce','设备编码')" clearable
@keyup.enter="handleQuery" /> @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="员工编码" prop="persionCode"> <el-form-item :label="tLang('produce','员工编号')" prop="persionCode">
<el-input v-model="queryParams.persionCode" placeholder="请输入员工编码" clearable <el-input v-model="queryParams.persionCode" :placeholder="tLang('common','请输入') + tLang('produce','员工编号')" clearable
@keyup.enter="handleQuery" /> @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="目标产量" prop="planOutput"> <el-form-item :label="tLang('produce','目标产量')" prop="planOutput">
<el-input v-model="queryParams.planOutput" placeholder="请输入目标产量" clearable <el-input v-model="queryParams.planOutput" :placeholder="tLang('common','请输入') + tLang('produce','目标产量')" clearable
@keyup.enter="handleQuery" /> @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="当前产量" prop="output"> <el-form-item :label="tLang('produce','当前产量')" prop="output">
<el-input v-model="queryParams.output" placeholder="请输入当前产量" clearable <el-input v-model="queryParams.output" :placeholder="tLang('common','请输入') + tLang('produce','当前产量')" clearable
@keyup.enter="handleQuery" /> @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="开始时间" prop="starttime"> <el-form-item :label="tLang('produce','开始时间')" prop="starttime">
<el-date-picker clearable v-model="queryParams.starttime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.starttime" type="datetime" format="YYYY-MM-DD hh:mm:ss"
placeholder="请选择开始时间"> value-format="YYYY-MM-DD hh:mm:ss" :placeholder="tLang('common','请选择') + tLang('produce','开始时间')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="endtime"> <el-form-item :label="tLang('produce','结束时间')" prop="endtime">
<el-date-picker clearable v-model="queryParams.endtime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.endtime" type="date" format="YYYY-MM-DD hh:mm:ss"
placeholder="请选择结束时间"> value-format="YYYY-MM-DD hh:mm:ss" :placeholder="tLang('common','请选择') + tLang('produce','结束时间')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="批次" prop="batch"> <el-form-item label="tLang('produce','批次')" prop="batch">
<el-input v-model="queryParams.batch" placeholder="请输入批次" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.batch" :placeholder="tLang('common','请输入') + tLang('produce','批次')" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="search" size="mini" @click="handleQuery">{{tLang('common','搜索')}}</el-button>
<el-button icon="refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="refresh" size="mini" @click="resetQuery">{{tLang('common','重置')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="plus" size="mini" @click="handleAdd"
v-hasPermi="['casm:produce:add']">新增</el-button> v-hasPermi="['casm:produce:add']">{{tLang('common','新增')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="edit" size="mini" :disabled="single" @click="handleUpdate" <el-button type="success" plain icon="edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['casm:produce:edit']">修改</el-button> v-hasPermi="['casm:produce:edit']">{{tLang('common','修改')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="delete" size="mini" :disabled="multiple" @click="handleDelete" <el-button type="danger" plain icon="delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['casm:produce:remove']">删除</el-button> v-hasPermi="['casm:produce:remove']">{{tLang('common','删除')}}</el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button type="warning" plain icon="download" size="mini" @click="handleExport" <el-button type="warning" plain icon="download" size="mini" @click="handleExport"
@ -59,37 +59,37 @@
</el-col> --> </el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="produceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键ID" align="center" prop="id" /> <el-table-column type="index" :label="tLang('common','序号')" width="60" align="center" />
<el-table-column label="产品编码" align="center" prop="productionCode" /> <el-table-column :label="tLang('produce','产品编码')" v-if="columns[0].visible" align="center" prop="productionCode" />
<el-table-column label="设备编码" align="center" prop="deviceCode" /> <el-table-column :label="tLang('produce','设备编码')" v-if="columns[1].visible" align="center" prop="deviceCode" />
<el-table-column label="员工编码" align="center" prop="persionCode" /> <el-table-column :label="tLang('produce','员工编号')" v-if="columns[2].visible" align="center" prop="persionCode" />
<el-table-column label="目标产量" align="center" prop="planOutput" /> <el-table-column :label="tLang('produce','目标产量')" v-if="columns[3].visible" align="center" prop="planOutput" />
<el-table-column label="当前产量" align="center" prop="output" /> <el-table-column :label="tLang('produce','当前产量')" v-if="columns[4].visible" align="center" prop="output" />
<el-table-column label="开始时间" align="center" prop="starttime" width="180"> <el-table-column :label="tLang('produce','开始时间')" v-if="columns[5].visible" align="center" prop="starttime" width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.starttime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.starttime, '{y}-{m}-{d} {hh}:{mm}:{ss}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="结束时间" align="center" prop="endtime" width="180"> <el-table-column :label="tLang('produce','结束时间')" v-if="columns[6].visible" align="center" prop="endtime" width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.endtime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.endtime, '{y}-{m}-{d} {hh}:{mm}:{ss}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="批次" align="center" prop="batch" /> <el-table-column :label="tLang('produce','批次')" v-if="columns[7].visible" align="center" prop="batch" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column :label="tLang('produce','备注')" v-if="columns[8].visible" align="center" 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"> <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)" <el-button link type="primary" icon="Tickets" @click="handleInfo(scope.row)"
v-hasPermi="['casm:produce:info']"></el-button> v-hasPermi="['casm:produce:info']"></el-button>
</el-tooltip> </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)" <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['casm:produce:edit']"></el-button> v-hasPermi="['casm:produce:edit']"></el-button>
</el-tooltip> </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)" <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['casm:produce:remove']"></el-button> v-hasPermi="['casm:produce:remove']"></el-button>
</el-tooltip> </el-tooltip>
@ -107,7 +107,7 @@
<script setup> <script setup>
import { ref, reactive, watch, onMounted } from 'vue' import { ref, reactive, watch, onMounted } from 'vue'
import { listOutput, getOutput, delOutput, addOutput, updateOutput } from "@/api/casm/produce"; import { listOutput, getOutput, delOutput, addOutput, updateOutput,getOutputInfo } from "@/api/casm/produce";
import AddEdit from './add_edit.vue'; import AddEdit from './add_edit.vue';
import InfoVue from './info.vue'; import InfoVue from './info.vue';
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
@ -144,14 +144,20 @@ let queryParams = reactive({
let total = ref(0) let total = ref(0)
// //
let productList = ref([ let produceList = ref([
{ name: '设备1', code: 'code1', id: 1 }, { name: '设备1', code: 'code1', id: 1 },
]) ])
// //
const columns = ref([ const columns = ref([
{ key: 0, label: `产品名称`, visible: true }, { key: 0, label: proxy.tLang('produce','产品编码'), visible: true },
{ key: 1, label: `产品类型`, visible: true }, { key: 1, label: proxy.tLang('produce','设备编码'), visible: true },
{ key: 2, label: `产品编码`, visible: true }, { key: 2, label: proxy.tLang('produce','员工编号'), visible: true },
{ key: 3, label: proxy.tLang('produce','目标产量'), visible: true },
{ key: 4, label: proxy.tLang('produce','当前产量'), visible: true },
{ key: 5, label: proxy.tLang('produce','开始时间'), visible: true },
{ key: 6, label: proxy.tLang('produce','结束时间'), visible: true },
{ key: 7, label: proxy.tLang('produce','批次'), visible: true },
{ key: 8, label: proxy.tLang('produce','备注'), visible: false },
]); ]);
const infoDialog = ref(false) const infoDialog = ref(false)
@ -159,14 +165,11 @@ let produceinfo = ref({})
/** 查询设备信息列表 */ /** 查询设备信息列表 */
function getList() { function getList() {
loading.value = true; loading.value = true;
// listOutput(queryParams).then(response => { listOutput(queryParams).then(response => {
// deviceList.value = response.rows; produceList.value = response.rows;
// total.value = response.total; total.value = response.total;
// loading.value = false;
// });
setTimeout(() => {
loading.value = false; loading.value = false;
}, 1000); });
} }
// //
function handleSelectionChange(selection) { function handleSelectionChange(selection) {
@ -193,20 +196,20 @@ function resetQuery() {
function handleAdd() { function handleAdd() {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加产品信息"; title.value = proxy.tLang('common','添加') + ' ' + proxy.tLang('produce','生产信息');
} }
/** 提交按钮 */ /** 提交按钮 */
function submitForm(propform) { function submitForm(propform) {
if (propform.id != null) { if (propform.id != null) {
updateOutput(form.value).then(response => { updateOutput(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功"); proxy.$modal.msgSuccess(proxy.tLang('common','修改成功'));
open.value = false; open.value = false;
getList(); getList();
}); });
} else { } else {
addOutput(form.value).then(response => { addOutput(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功"); proxy.$modal.msgSuccess(proxy.tLang('common','新增成功'));
open.value = false; open.value = false;
getList(); getList();
}); });
@ -249,18 +252,18 @@ function handleUpdate(row) {
getOutput(id).then(response => { getOutput(id).then(response => {
form.value = response.data; form.value = response.data;
open.value = true; open.value = true;
title.value = "修改生产信息"; title.value = proxy.tLang('common','修改') + ' ' + proxy.tLang('produce','生产信息');
}); });
} }
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
const id = row.id || ids.value; const id = row.id || ids.value;
proxy.$modal.confirm('是否确认删除生产管理编号为"' + id + '"的数据项?').then(function () { proxy.$modal.confirm(proxy.tLang('tip','确定删除选中记录?') + ` [${id}]`).then(function () {
return delOutput(id); return delOutput(id);
}).then(() => { }).then(() => {
getList(); getList();
proxy.$modal.msgSuccess("删除成功"); proxy.$modal.msgSuccess(proxy.tLang('common','删除成功'));
}).catch(() => { }); }).catch(() => { });
} }
onMounted(() => { onMounted(() => {

View File

@ -3,7 +3,7 @@
<el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline" <el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline"
label-width="100px"> label-width="100px">
<el-form-item :label="tLang('product', '产品编码')" prop="code"> <el-form-item :label="tLang('product', '产品编码')" prop="code">
<el-input v-model="form.code" :placeholder="tLang('common','请输入') + tLang('product','产品编码')" /> <el-input v-model="form.code" :disabled="Boolean(props.form.code)" :placeholder="tLang('common', '请输入') + tLang('product', '产品编码')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '针号')" prop="needleNum"> <el-form-item :label="tLang('product', '针号')" prop="needleNum">
<el-input v-model="form.needleNum" :placeholder="tLang('common', '请输入') + tLang('product', '针号')" /> <el-input v-model="form.needleNum" :placeholder="tLang('common', '请输入') + tLang('product', '针号')" />
@ -14,20 +14,21 @@
<el-form-item :label="tLang('product', '底线信息')" prop="bottomlineId"> <el-form-item :label="tLang('product', '底线信息')" prop="bottomlineId">
<el-input v-model="form.bottomlineId" :placeholder="tLang('common', '请输入') + tLang('product', '底线信息')" /> <el-input v-model="form.bottomlineId" :placeholder="tLang('common', '请输入') + tLang('product', '底线信息')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product','梭芯信息')" prop="shuttlecoreId"> <!-- <el-form-item :label="tLang('product', '梭芯信息')" prop="shuttlecoreId">
<el-input v-model="form.shuttlecoreId" :placeholder="tLang('common', '请输入') + tLang('product', '梭芯信息')" /> <el-input v-model="form.shuttlecoreId" :placeholder="tLang('common', '请输入') + tLang('product', '梭芯信息')" />
</el-form-item> </el-form-item> -->
<el-form-item :label="tLang('product', '排序')" prop="sort"> <el-form-item :label="tLang('product', '排序')" prop="sort">
<el-input v-model="form.sort" :placeholder="tLang('common','请输入') + tLang('product','排序')" /> <el-input v-model.number="form.sort" :placeholder="tLang('common', '请输入') + tLang('product', '排序')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '最小值')" prop="min"> <el-form-item :label="tLang('product', '最小值')" prop="min">
<el-input v-model="form.min" :placeholder="tLang('common','请输入') + tLang('product','最小值')" /> <el-input-number v-model="form.min" :min="1" @change="handleChange" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '最大值')" prop="max"> <el-form-item :label="tLang('product', '最大值')" prop="max">
<el-input v-model="form.max" :placeholder="tLang('common','请输入') + tLang('product','最大值')" /> <el-input-number v-model="form.max" :min="1" @change="handleChange" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '备注')" prop="remark"> <el-form-item :label="tLang('product', '备注')" prop="remark">
<el-input v-model="form.remark" :placeholder="tLang('common','请输入') + tLang('product','备注')" /> <el-input :rows="3" type="textarea" v-model="form.remark" style="width: 520px"
:placeholder="tLang('common', '请输入') + tLang('product', '备注')" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>

View File

@ -55,9 +55,9 @@
<el-table-column :label="tLang('product','排序')" align="center" v-if="columns[5].visible" prop="sort" /> <el-table-column :label="tLang('product','排序')" align="center" v-if="columns[5].visible" prop="sort" />
<el-table-column :label="tLang('product','最小值')" align="center" v-if="columns[6].visible" prop="min" /> <el-table-column :label="tLang('product','最小值')" align="center" v-if="columns[6].visible" prop="min" />
<el-table-column :label="tLang('product','最大值')" align="center" v-if="columns[7].visible" prop="max" /> <el-table-column :label="tLang('product','最大值')" align="center" v-if="columns[7].visible" prop="max" />
<el-table-column :label="tLang('product','类型')" align="center" v-if="columns[8].visible" prop="type" /> <!-- <el-table-column :label="tLang('product','类型')" align="center" v-if="columns[8].visible" prop="type" /> -->
<!-- <el-table-column :label="备注" align="center" prop="remark" /> --> <!-- <el-table-column :label="备注" align="center" 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"> <template #default="scope">
<el-tooltip :content="tLang('common','修改')" 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)" <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
@ -127,7 +127,7 @@ const columns = ref([
{ key: 5, label: proxy.tLang('product','排序'), visible: true }, { key: 5, label: proxy.tLang('product','排序'), visible: true },
{ key: 6, label: proxy.tLang('product','最小值'), visible: true }, { key: 6, label: proxy.tLang('product','最小值'), visible: true },
{ key: 7, label: proxy.tLang('product','最大值'), visible: true }, { key: 7, label: proxy.tLang('product','最大值'), visible: true },
{ key: 8, label: proxy.tLang('product','类型'), visible: true }, // { key: 8, label: proxy.tLang('product',''), visible: true },
]); ]);
let infoDialog = ref(false) let infoDialog = ref(false)
@ -212,8 +212,8 @@ function reset() {
bottomlineId: null, bottomlineId: null,
shuttlecoreId: null, shuttlecoreId: null,
sort: null, sort: null,
min: null, min: 1,
max: null, max: 1,
type: null, type: null,
createTime: null, createTime: null,
remark: null remark: null
@ -236,7 +236,7 @@ function handleUpdate(row) {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
const id = row.id || ids.value; const id = row.id || ids.value;
proxy.$modal.confirm('是否确认删除针信息编号为"' + id + '"的数据项?').then(function () { proxy.$modal.confirm(proxy.tLang('tip','确定删除选中记录?') + ` [${id}]`).then(function () {
return delProductionLineRelation(id); return delProductionLineRelation(id);
}).then(() => { }).then(() => {
getList(); getList();

View File

@ -2,18 +2,18 @@
<el-dialog v-model="props.modelValue" :title="props.title" @close="close" width="800"> <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" <el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline"
label-width="100px"> label-width="100px">
<el-form-item :label="tLang('product', '产品编码')" prop="code">
<el-input v-model="props.form.code" :disabled="Boolean(props.form.code)" :placeholder="tLang('common', '请输入') + tLang('product', '产品编码')" />
</el-form-item>
<el-form-item :label="tLang('product', '产品名称')" prop="name"> <el-form-item :label="tLang('product', '产品名称')" prop="name">
<el-input v-model="props.form.name" :placeholder="tLang('common', '请输入') + tLang('product', '产品名称')" /> <el-input v-model="props.form.name" :placeholder="tLang('common', '请输入') + tLang('product', '产品名称')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '产品类型')" prop="type"> <el-form-item :label="tLang('product', '产品类型')" prop="type">
<el-input v-model="props.form.type" :placeholder="tLang('common', '请输入') + tLang('product', '产品类型')" /> <el-input v-model="props.form.type" :placeholder="tLang('common', '请输入') + tLang('product', '产品类型')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product','产品编码')" prop="code">
<el-input v-model="props.form.code" :placeholder="tLang('common','请输入') + tLang('product','产品编码')" />
</el-form-item>
<el-form-item :label="tLang('product', '备注')" prop="remark"> <el-form-item :label="tLang('product', '备注')" prop="remark">
<el-input v-model="props.form.remark" style="width: 600px" :rows="4" type="textarea" :placeholder="tLang('common','请输入')" /> <el-input v-model="props.form.remark" style="width: 600px" :rows="4" type="textarea"
:placeholder="tLang('common', '请输入')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '图片')" prop="file"> <el-form-item :label="tLang('product', '图片')" prop="file">
<image-upload v-model="props.form.file" /> <image-upload v-model="props.form.file" />

View File

@ -2,13 +2,16 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="tLang('product', '产品名称')" prop="name"> <el-form-item :label="tLang('product', '产品名称')" prop="name">
<el-input v-model="queryParams.name" :placeholder="tLang('common','请输入') + tLang('product','产品名称')" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.name" :placeholder="tLang('common', '请输入') + tLang('product', '产品名称')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '产品编码')" prop="code"> <el-form-item :label="tLang('product', '产品编码')" prop="code">
<el-input v-model="queryParams.code" :placeholder="tLang('common','请输入') + tLang('product','产品编码')" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.code" :placeholder="tLang('common', '请输入') + tLang('product', '产品编码')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '产品类型')" prop="type"> <el-form-item :label="tLang('product', '产品类型')" prop="type">
<el-input v-model="queryParams.type" :placeholder="tLang('common','请输入') + tLang('product','产品类型')" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.type" :placeholder="tLang('common', '请输入') + tLang('product', '产品类型')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="search" size="mini" @click="handleQuery">{{ tLang('common', '搜索') }}</el-button> <el-button type="primary" icon="search" size="mini" @click="handleQuery">{{ tLang('common', '搜索') }}</el-button>
@ -40,6 +43,14 @@
<el-table-column :label="tLang('product', '产品名称')" align="center" v-if="columns[0].visible" prop="name" /> <el-table-column :label="tLang('product', '产品名称')" align="center" v-if="columns[0].visible" prop="name" />
<el-table-column :label="tLang('product', '产品类型')" align="center" v-if="columns[1].visible" prop="type" /> <el-table-column :label="tLang('product', '产品类型')" align="center" v-if="columns[1].visible" prop="type" />
<el-table-column :label="tLang('product', '产品编码')" align="center" v-if="columns[2].visible" prop="code" /> <el-table-column :label="tLang('product', '产品编码')" align="center" v-if="columns[2].visible" prop="code" />
<el-table-column :label="tLang('product', '二维码')" align="center" v-if="columns[2].visible" prop="code">
<template #default="scope">
<el-button type="primary" @click="getProductQRCode(scope.row.code)">{{ tLang('product', '查看')
}}</el-button>
<el-button type="warning" @click="downloadQRCode(scope.row.code)">{{ tLang('product', '下载')
}}</el-button>
</template>
</el-table-column>
<el-table-column :label="tLang('common', '操作')" 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"> <template #default="scope">
<el-tooltip :content="tLang('common', '详情')" placement="top" v-if="scope.row.userId !== 1"> <el-tooltip :content="tLang('common', '详情')" placement="top" v-if="scope.row.userId !== 1">
@ -62,16 +73,21 @@
@pagination="getList" /> @pagination="getList" />
<AddEdit :title="title" v-model="open" :form="form" @submitForm="submitForm"></AddEdit> <AddEdit :title="title" v-model="open" :form="form" @submitForm="submitForm"></AddEdit>
<InfoVue v-model="infoDialog" :info="productinfo" /> <InfoVue v-model="infoDialog" :info="productinfo" />
<el-image-viewer v-if="showImagePreview" :url-list="showsrcListref" hide-on-click-modal teleported
@close="closePreview" style="z-index: 3000" />
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, reactive, watch, onMounted } from 'vue' import { ref, reactive, watch, onMounted } from 'vue'
import { listProduction, getProduction, delProduction, addProduction, updateProduction } from "@/api/casm/product"; import { listProduction, getProduction, delProduction, addProduction, updateProduction, selectProduction, getQRCode } from "@/api/casm/product";
import AddEdit from './add_edit.vue'; import AddEdit from './add_edit.vue';
import InfoVue from "./info.vue"; import InfoVue from "./info.vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
let showsrcListref = ref([])
// //
let loading = ref(true) let loading = ref(true)
// //
@ -102,6 +118,53 @@ let total = ref(0)
let productionList = ref([ let productionList = ref([
{ name: '设备1', code: 'code1', id: 1 }, { name: '设备1', code: 'code1', id: 1 },
]) ])
//
let showImagePreview = ref(false)
function closePreview() {
showImagePreview.value = false
}
function getProductQRCode(code) {
getQRCode({ code }).then(response => {
if (response.code == 200) {
let base64Image = response.data
//
var newWindow = window.open('', '_blank');
//
if (newWindow) {
newWindow.href = base64Image
newWindow.document.write(`
<div style="width:100%;height:100%;display:flex;flex-direction: column;justify-content:center;align-items:center;">
<img src="${base64Image}" alt="Image" style="align:center;" />
<button style="width: 100px;height: 40px;border-radius: 10px;background: #67c23a;border: none;color: #fff;" onclick="window.print()">打印</button>
</div>
`);
} else {
alert('无法打开新窗口。请允许弹出窗口。');
}
// showsrcListref.value = [response.data]
// showImagePreview.value = true
}
});
}
//
function downloadQRCode(code) {
getQRCode({ code }).then(response => {
if (response.code == 200) {
let base64Image = response.data
// a
var a = document.createElement('a');
a.href = base64Image;
//
var event = new MouseEvent('click');
// a
a.download = code + '.png';
// a
a.dispatchEvent(event);
}
});
}
// //
const columns = ref([ const columns = ref([
{ key: 0, label: proxy.tLang('product', '产品名称'), visible: true }, { key: 0, label: proxy.tLang('product', '产品名称'), visible: true },
@ -150,15 +213,17 @@ function handleAdd() {
/**详情按钮操作 */ /**详情按钮操作 */
function handleInfo(row) { function handleInfo(row) {
productinfo.value = row selectProduction(row.code).then(response => {
productinfo.value = response.data
infoDialog.value = true infoDialog.value = true
});
} }
/** 提交按钮 */ /** 提交按钮 */
/** 提交按钮 */ /** 提交按钮 */
function submitForm(propform) { function submitForm(propform) {
if (propform.id != null) { if (propform.code != null) {
updateProduction(propform).then(response => { updateProduction(propform).then(response => {
proxy.$modal.msgSuccess(proxy.tLang('common', '修改成功')); proxy.$modal.msgSuccess(proxy.tLang('common', '修改成功'));
open.value = false; open.value = false;
@ -206,7 +271,7 @@ function handleUpdate(row) {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
const id = row.code || ids.value; const id = row.code || ids.value;
proxy.$modal.confirm('是否确认删除产品信息编号为"' + id + '"的数据项?').then(function () { proxy.$modal.confirm(proxy.tLang('tip', '确定删除选中记录?') + ` [${id}]`).then(function () {
return delProduction(id); return delProduction(id);
}).then(() => { }).then(() => {
getList(); getList();

View File

@ -5,33 +5,22 @@
<el-descriptions-item :label="tLang('product','产品类型')">{{ props.info.type }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','产品类型')">{{ props.info.type }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','产品编码')">{{ props.info.code }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','产品编码')">{{ props.info.code }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions title="" column="3"> <el-descriptions title="" column="3" v-for="(zhen,index) in props.info.zhen" :key="index">
<el-descriptions-item>{{ "针1" }}</el-descriptions-item> <el-descriptions-item>{{ zhen.needle_num }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','底线编码')">{{ props.info.remark }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','底线编码')">{{ zhen.bottomline_code }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','面线编码')">{{ props.info.remark }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','面线编码')">{{ zhen.surfaceline_code }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions title="" column="3"> <el-descriptions title="" column="3" v-for="(zhen,index) in props.info.zhen" :key="index">
<el-descriptions-item >{{ "针2" }}</el-descriptions-item> <el-descriptions-item >{{ zhen.needle_num + "表面张力" }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','底线编码')">{{ props.info.remark }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','最小值')">{{ zhen.min }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','面线编码')">{{ props.info.remark }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','最大值')">{{ zhen.max }}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="" column="3">
<el-descriptions-item >{{ "针1表面张力" }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','最小值')">{{ props.info.remark }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','最大值')">{{ props.info.remark }}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="" column="3">
<el-descriptions-item >{{ "针2表面张力" }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','最小值')">{{ props.info.remark }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','最大值')">{{ props.info.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :title="tLang('product','缝纫次数')" column="3"> <el-descriptions :title="tLang('product','缝纫次数')" column="3">
<el-descriptions-item >{{ "缝纫" }}</el-descriptions-item> <div v-for="(working,index) in props.info.working">
<el-descriptions-item :label="tLang('product','最小针数')">{{ props.info.remark }}</el-descriptions-item> <el-descriptions-item >{{ working.step }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','最大针数')">{{ props.info.remark }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','最小针数')">{{ working.min }}</el-descriptions-item>
<el-descriptions-item >{{ "标签" }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','最大针数')">{{ working.max }}</el-descriptions-item>
<el-descriptions-item :label="tLang('product','最小针数')">{{ props.info.remark }}</el-descriptions-item> </div>
<el-descriptions-item :label="tLang('product','最大针数')">{{ props.info.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions title="" column="1"> <el-descriptions title="" column="1">
<el-descriptions-item :label="tLang('product','备注')">{{ props.info.remark }}</el-descriptions-item> <el-descriptions-item :label="tLang('product','备注')">{{ props.info.remark }}</el-descriptions-item>

View File

@ -3,25 +3,26 @@
<el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline" <el-form ref="formRef" :inline="true" :model="props.form" :rules="rules" class="demo-form-inline"
label-width="100px"> label-width="100px">
<el-form-item :label="tLang('product', '产品编码')" prop="code"> <el-form-item :label="tLang('product', '产品编码')" prop="code">
<el-input v-model="form.code" :placeholder="tLang('common','请输入') + tLang('product','产品编码')" /> <el-input v-model="form.code" :disabled="Boolean(props.form.code)" :placeholder="tLang('common', '请输入') + tLang('product', '产品编码')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '第几针')" prop="num"> <el-form-item :label="tLang('product', '第几针')" prop="num">
<el-input v-model="form.num" :placeholder="tLang('common','请输入') + tLang('product','第几针')" /> <el-input-number v-model="form.num" :min="1" @change="handleChange" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '步骤')" prop="step"> <el-form-item :label="tLang('product', '步骤')" prop="step">
<el-input v-model="form.step" :placeholder="tLang('common', '请输入') + tLang('product', '步骤')" /> <el-input v-model="form.step" :placeholder="tLang('common', '请输入') + tLang('product', '步骤')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product','最小值')" prop="min">
<el-input v-model="form.min" :placeholder="tLang('common','请输入') + tLang('product','最小值')" />
</el-form-item>
<el-form-item :label="tLang('product','最大值')" prop="max">
<el-input v-model="form.max" :placeholder="tLang('common','请输入') + tLang('product','最大值')" />
</el-form-item>
<el-form-item :label="tLang('product', '排序')" prop="sort"> <el-form-item :label="tLang('product', '排序')" prop="sort">
<el-input v-model="form.sort" :placeholder="tLang('common', '请输入') + tLang('product', '排序')" /> <el-input v-model="form.sort" :placeholder="tLang('common', '请输入') + tLang('product', '排序')" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product', '最小值')" prop="min">
<el-input-number v-model="form.min" :min="1" @change="handleChange" />
</el-form-item>
<el-form-item :label="tLang('product', '最大值')" prop="max">
<el-input-number v-model="form.max" :min="1" @change="handleChange" />
</el-form-item>
<el-form-item :label="tLang('product', '备注')" prop="remark"> <el-form-item :label="tLang('product', '备注')" prop="remark">
<el-input v-model="form.remark" :placeholder="tLang('common','请输入') + tLang('product','备注')" /> <el-input :rows="3" type="textarea" v-model="form.remark" style="width: 520px"
:placeholder="tLang('common', '请输入') + tLang('product', '备注')" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="tLang('product','产品码')" prop="code"> <el-form-item :label="tLang('product','产品码')" prop="code">
<el-input v-model="queryParams.code" :placeholder="tLang('common','请输入') + tLang('product','产品编码')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.code" :placeholder="tLang('common','请输入') + tLang('product','产品编码')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="tLang('product','步骤')" prop="step"> <el-form-item :label="tLang('product','步骤')" prop="step">
@ -173,11 +173,13 @@ function cancel() {
function reset() { function reset() {
form.value = { form.value = {
id: null, id: null,
name: '',
type: '',
code: '', code: '',
num: 1,
step: '',
min: 1,
max: 1,
sort: "",
remark: "", remark: "",
file: ""
}; };
//resetForm("form"); //resetForm("form");
} }
@ -196,7 +198,7 @@ function handleUpdate(row) {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
const id = row.id || ids.value; const id = row.id || ids.value;
proxy.$modal.confirm('是否确认删除缝纫次数编号为"' + id + '"的数据项?').then(function () { proxy.$modal.confirm(proxy.tLang('tip','确定删除选中记录?') + ` [${id}]`).then(function () {
return delProcedure(id); return delProcedure(id);
}).then(() => { }).then(() => {
getList(); getList();

View File

@ -2,83 +2,96 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px"> label-width="68px">
<el-form-item label="产品编码" prop="productionCode"> <el-form-item :label="tLang('quality', '产品名称')" prop="productName">
<el-input v-model="queryParams.productionCode" placeholder="请输入产品编码" clearable <el-input v-model="queryParams.productName"
@keyup.enter.native="handleQuery" /> :placeholder="tLang('common', '请输入') + tLang('quality', '产品名称')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="设备编码" prop="deviceCode"> <el-form-item :label="tLang('quality', '产品编码')" prop="productCode">
<el-input v-model="queryParams.deviceCode" placeholder="请输入设备编码" clearable <el-input v-model="queryParams.productCode"
@keyup.enter.native="handleQuery" /> :placeholder="tLang('common', '请输入') + tLang('quality', '产品编码')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="员工编码" prop="persionCode"> <el-form-item :label="tLang('quality', '产品序列号')" prop="serialNumber">
<el-input v-model="queryParams.persionCode" placeholder="请输入员工编码" clearable <el-input v-model="queryParams.serialNumber"
@keyup.enter.native="handleQuery" /> :placeholder="tLang('common', '请输入') + tLang('quality', '产品序列号')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="目标产量" prop="planOutput"> <el-form-item :label="tLang('quality', '员工姓名')" prop="operator">
<el-input v-model="queryParams.planOutput" placeholder="请输入目标产量" clearable <el-input v-model="queryParams.operator"
@keyup.enter.native="handleQuery" /> :placeholder="tLang('common', '请输入') + tLang('quality', '员工姓名')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="当前产量" prop="output"> <el-form-item :label="tLang('quality', '设备名称')" prop="deviceName">
<el-input v-model="queryParams.output" placeholder="请输入当前产量" clearable <el-input v-model="queryParams.deviceName"
@keyup.enter.native="handleQuery" /> :placeholder="tLang('common', '请输入') + tLang('quality', '设备名称')" clearable
@keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="开始时间" prop="starttime"> <el-form-item :label="tLang('quality', '开始时间')" prop="starttime">
<el-date-picker clearable v-model="queryParams.starttime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.starttime" type="datetime" format="YYYY-MM-DD hh:mm:ss"
placeholder="请选择开始时间"> value-format="YYYY-MM-DD hh:mm:ss" :placeholder="tLang('common', '请选择') + tLang('quality', '开始时间')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="endtime"> <el-form-item :label="tLang('quality', '完成时间')" prop="endtime">
<el-date-picker clearable v-model="queryParams.endtime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.endtime" type="datetime" format="YYYY-MM-DD hh:mm:ss"
placeholder="请选择结束时间"> value-format="YYYY-MM-DD hh:mm:ss" :placeholder="tLang('common', '请选择') + tLang('quality', '完成时间')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="批次" prop="batch"> <el-form-item :label="tLang('quality', '状态')" prop="state">
<el-input v-model="queryParams.batch" placeholder="请输入批次" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.state" :placeholder="tLang('common', '请输入') + tLang('quality', '状态')"
clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="search" size="mini" @click="handleQuery">{{ tLang('common', '搜索')
<el-button icon="refresh" size="mini" @click="resetQuery">重置</el-button> }}</el-button>
<el-button icon="refresh" size="mini" @click="resetQuery">{{ tLang('common', '重置') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="20" class="mb8">
<!-- <el-col :span="1.5"> <el-col :span="2">
<el-button type="primary" plain icon="plus" size="mini" @click="handleAdd" <el-statistic :title="tLang('quality', '产品合格率')" :value="66" :value-style="{ color: 'green' }"
v-hasPermi="['casm:produce:add']">新增</el-button> :formatter="(val) => { return val + '%' }" />
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="2">
<el-button type="success" plain icon="edit" size="mini" :disabled="single" @click="handleUpdate" <el-statistic :title="tLang('quality', '产品不合格率')" :value="66" :value-style="{ color: 'red' }"
v-hasPermi="['casm:produce:edit']">修改</el-button> :formatter="(val) => { return val + '%' }" />
</el-col>
<el-col :span="2">
<el-statistic :title="tLang('quality', '产品完成量')" :value="total" />
</el-col> </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-col :span="1.5">
<el-button type="warning" plain icon="download" size="mini" @click="handleExport" <el-button type="warning" plain icon="download" size="mini" @click="handleExport"
v-hasPermi="['product:product:export']">导出</el-button> v-hasPermi="['product:product:export']">导出</el-button>
</el-col> --> </el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="qualityList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> --> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column type="index" width="55" align="center" /> <el-table-column type="index" :label="tLang('common', '序号')" width="60" align="center" />
<el-table-column label="产品名称" align="center" prop="productionName" /> <el-table-column :label="tLang('quality', '产品名称')" v-if="columns[0].visible" align="center"
<el-table-column label="产品编码" align="center" prop="productionCode" /> prop="productName" />
<el-table-column label="产品序列号" align="center" prop="deviceCode" /> <el-table-column :label="tLang('quality', '产品编码')" v-if="columns[1].visible" align="center"
<el-table-column label="员工姓名" align="center" prop="persionCode" /> prop="productCode" />
<el-table-column label="设备名称" align="center" prop="planOutput" /> <el-table-column :label="tLang('quality', '产品序列号')" v-if="columns[2].visible" align="center"
<el-table-column label="开始时间" align="center" prop="starttime" width="180"> prop="serialNumber" />
<el-table-column :label="tLang('quality', '员工姓名')" v-if="columns[3].visible" align="center"
prop="operator" />
<el-table-column :label="tLang('quality', '设备名称')" v-if="columns[4].visible" align="center"
prop="deviceName" />
<el-table-column :label="tLang('quality', '开始时间')" v-if="columns[5].visible" align="center" prop="startTime"
width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.starttime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.starttime, '{y}-{m}-{d} {hh}:{mm}:{ss}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="完成时间" align="center" prop="endtime" width="180"> <el-table-column :label="tLang('quality', '完成时间')" v-if="columns[6].visible" align="center" prop="endTime"
width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.endtime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.endtime, '{y}-{m}-{d} {hh}:{mm}:{ss}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" prop="batch" /> <el-table-column :label="tLang('quality', '状态')" v-if="columns[7].visible" align="center" prop="batch" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <!-- <el-table-column :label="tLang('quality','')操作" align="center" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-tooltip content="详情" placement="top" v-if="scope.row.userId !== 1"> <el-tooltip content="详情" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Tickets" @click="handleInfo(scope.row)" <el-button link type="primary" icon="Tickets" @click="handleInfo(scope.row)"
@ -99,12 +112,13 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" /> :limit.sync="queryParams.pageSize" @pagination="getList" />
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, reactive, watch, onMounted } from 'vue' import { ref, reactive, watch, onMounted } from 'vue'
import { listOutput, getOutput, delOutput, addOutput, updateOutput } from "@/api/casm/produce"; import { listQuality } from "@/api/casm/quality";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
// //
@ -133,29 +147,30 @@ let queryParams = reactive({
let total = ref(0) let total = ref(0)
// //
let productList = ref([ let qualityList = ref([
{ name: '设备1', code: 'code1', id: 1 }, { name: '设备1', code: 'code1', id: 1 },
]) ])
// //
const columns = ref([ const columns = ref([
{ key: 0, label: `产品名称`, visible: true }, { key: 0, label: proxy.tLang('quality', '产品名称'), visible: true },
{ key: 1, label: `产品类型`, visible: true }, { key: 1, label: proxy.tLang('quality', '产品编码'), visible: true },
{ key: 2, label: `产品编码`, visible: true }, { key: 2, label: proxy.tLang('quality', '产品序列号'), visible: true },
{ key: 3, label: proxy.tLang('quality', '员工姓名'), visible: true },
{ key: 4, label: proxy.tLang('quality', '设备名称'), visible: true },
{ key: 5, label: proxy.tLang('quality', '开始时间'), visible: true },
{ key: 6, label: proxy.tLang('quality', '完成时间'), visible: true },
{ key: 7, label: proxy.tLang('quality', '状态'), visible: true },
]); ]);
const infoDialog = ref(false)
let produceinfo = ref({})
/** 查询设备信息列表 */ /** 查询设备信息列表 */
function getList() { function getList() {
loading.value = true; loading.value = true;
// listOutput(queryParams).then(response => { listQuality(queryParams).then(response => {
// deviceList.value = response.rows; qualityList.value = response.rows;
// total.value = response.total; total.value = response.total;
// loading.value = false;
// });
setTimeout(() => {
loading.value = false; loading.value = false;
}, 1000); });
} }
// //
function handleSelectionChange(selection) { function handleSelectionChange(selection) {