主体名称变更为开滋阀门(昆山)有限公司

This commit is contained in:
赵正易 2025-06-16 11:33:06 +08:00
parent db1048412f
commit 1d3d6872ff
11 changed files with 262 additions and 239 deletions

4
.env
View File

@ -1,6 +1,6 @@
# 页面标题
VITE_APP_TITLE = '北泽阀门MES'
VITE_APP_TITLE = '开滋阀门MES'
VITE_APP_LOGINFO="北泽阀门昆山有限公司成立于2003年09月10日注册地位于江苏省昆山综合保税区B区中央大道188号法定代表人为高岛江TAKASHIMA
VITE_APP_LOGINFO="开滋阀门昆山有限公司成立于2003年09月10日注册地位于江苏省昆山综合保税区B区中央大道188号法定代表人为高岛江TAKASHIMA
KOH。经营范围包括各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务。"

View File

@ -1,7 +1,7 @@
# 北泽阀门MES-Vue前端
# 开滋阀门MES-Vue前端
#### Description
北泽阀门mes 前端 vue端
开滋阀门mes 前端 vue端
#### Software Architecture
Software architecture description

View File

@ -2,7 +2,7 @@
<div class="box">
<div class="row-box">
<img class="logo" :src="imgUrl" />
<span class="text">北泽阀门(昆山)有限公司</span>
<span class="text">开滋阀门(昆山)有限公司</span>
</div>
</div>
</template>

View File

@ -2,7 +2,7 @@
<div class="box">
<div class="row-box">
<img class="logo" :src="imgUrl" />
<span class="text">北泽阀门(昆山)有限公司</span>
<span class="text">开滋阀门(昆山)有限公司</span>
</div>
</div>
</template>

View File

@ -2,7 +2,7 @@
<div class="box">
<div class="row-box">
<img class="logo" :src="imgUrl" />
<span class="text">北泽阀门(昆山)有限公司</span>
<span class="text">开滋阀门(昆山)有限公司</span>
</div>
</div>
</template>

View File

@ -2,7 +2,7 @@
<div class="box">
<div class="row-box">
<img class="logo" :src="imgUrl" />
<span class="text">北泽阀门(昆山)有限公司</span>
<span class="text">开滋阀门(昆山)有限公司</span>
</div>
</div>
</template>

View File

@ -2,7 +2,7 @@
<div class="box">
<div class="row-box">
<img class="logo" :src="imgUrl" />
<span class="text">北泽阀门(昆山)有限公司</span>
<span class="text">开滋阀门(昆山)有限公司</span>
</div>
</div>
</template>

View File

@ -2,7 +2,7 @@
<div class="kb-logo-box">
<div class="kb-row-box">
<img class="kb-logo-icon" :src="imgUrl" />
<span class="kb-logo-text">北泽阀门(昆山)有限公司</span>
<span class="kb-logo-text">开滋阀门(昆山)有限公司</span>
</div>
</div>
</template>

View File

@ -1,214 +1,203 @@
<template>
<div class="app-container">
<el-carousel :interval="4000" type="card" height="300px">
<el-carousel-item v-for="item in imagesArray" :key="item">
<el-image :src="item"></el-image>
</el-carousel-item>
</el-carousel>
<div class="idea_main">
<div class="idea_left">
<p class="title">北泽阀门昆山有限公司</p>
<p class="sub_title">公司介绍</p>
<p class="desc">
北泽阀门昆山有限公司成立于2003年09月10日注册地位于江苏省昆山综合保税区B区中央大道188号法定代表人为高岛江TAKASHIMA
KOH经营范围包括各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务
</p>
</div>
<div class="idea_right">
<el-image :src="imagesArray[0]"></el-image>
</div>
<div class="app-container">
<el-carousel :interval="4000" type="card" height="300px">
<el-carousel-item v-for="item in imagesArray" :key="item">
<el-image :src="item"></el-image>
</el-carousel-item>
</el-carousel>
<div class="idea_main">
<div class="idea_left">
<p class="title">开滋阀门昆山有限公司</p>
<p class="sub_title">公司介绍</p>
<p class="desc">
开滋阀门昆山有限公司成立于2003年09月10日注册地位于江苏省昆山综合保税区B区中央大道188号法定代表人为高岛江TAKASHIMA
KOH经营范围包括各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务
</p>
</div>
<div class="idea_right">
<el-image :src="imagesArray[0]"></el-image>
</div>
</div>
<div class="intro_main">
<div class="title">我们的产品</div>
<div class="intro_context">
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[0]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务</p>
</div>
</div>
</div>
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[1]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务</p>
</div>
</div>
</div>
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[2]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务</p>
</div>
</div>
</div>
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[3]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="intro_main">
<div class="title">我们的产品</div>
<div class="intro_context">
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[0]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">
各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务
</p>
</div>
</div>
</div>
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[1]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">
各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务
</p>
</div>
</div>
</div>
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[2]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">
各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务
</p>
</div>
</div>
</div>
<div class="card">
<div class="card-wrap">
<el-image :src="imagesArray[3]" class="image"></el-image>
<div>
<p class="title">我们的产品</p>
<p class="card-context">
各类阀门及零配件的生产及销售从事与本企业同类商品的批发及进出口业务
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import logoImg1 from '@/assets/images/door/1.jpg'
import logoImg2 from '@/assets/images/door/2.jpg'
import logoImg3 from '@/assets/images/door/3.jpg'
import logoImg4 from '@/assets/images/door/4.jpg'
import logoImg5 from '@/assets/images/door/5.jpg'
import logoImg0 from '@/assets/images/door/1.png'
import logoImg6 from '@/assets/images/door/6.jpg'
import logoImg7 from '@/assets/images/door/2.png'
import logoImg8 from '@/assets/images/door/3.png'
export default {
name: 'index',
data() {
return {
imagesArray: [logoImg8, logoImg0, logoImg6, logoImg1, logoImg5],
name: 'index',
data() {
return {
imagesArray: [logoImg8, logoImg0, logoImg6, logoImg1, logoImg5]
}
}
},
}
</script>
<style lang="scss" scoped>
.el-carousel__item h3 {
color: #475669;
font-size: 14px;
opacity: 0.75;
line-height: 200px;
margin: 0;
color: #475669;
font-size: 14px;
opacity: 0.75;
line-height: 200px;
margin: 0;
}
.el-carousel__item:nth-child(2n) {
background-color: #99a9bf;
background-color: #99a9bf;
}
.el-carousel__item:nth-child(2n + 1) {
background-color: #d3dce6;
background-color: #d3dce6;
}
.idea_main {
display: flex;
justify-content: space-between;
.idea_left {
flex: 1;
padding: 5px;
.title {
font-weight: 700;
font-size: 32px;
position: relative;
bottom: 2px;
margin-left: 10px;
}
.sub_title {
font-size: 16px;
line-height: 1.5;
color: #646a73;
margin-top: 10px;
margin-left: 10px;
}
.desc {
overflow: hidden;
height: 120px;
width: calc(38.2vw - 50px);
font-size: 14px;
line-height: 30px;
color: #646a73;
margin-left: 10px;
}
.idea {
width: 38.2vw;
max-height: 500px;
padding-left: 50px;
margin-left: 10px;
}
}
.idea_right {
flex: 1;
padding: 5px;
}
}
.intro_main {
overflow: hidden;
margin: 30px auto;
width: 80%;
.title {
color: #31285d;
font-weight: 600;
font-size: 20px;
line-height: 28px;
margin: 50px 450px;
}
.intro_context {
display: flex;
justify-content: space-between;
.card {
display: flex;
flex: 1;
flex-direction: column;
align-items: center;
padding: 32px;
background: #fff;
border-radius: 4px;
box-shadow: 0 1px 60px 0 rgba(0, 0, 0, 0.05);
.image {
width: 150px;
height: 150px;
border-radius: 10px;
.idea_left {
flex: 1;
}
padding: 5px;
.title {
margin: 14px 0;
.title {
font-weight: 700;
font-size: 32px;
position: relative;
bottom: 2px;
margin-left: 10px;
}
.sub_title {
font-size: 16px;
line-height: 1.5;
color: #646a73;
margin-top: 10px;
margin-left: 10px;
}
.desc {
overflow: hidden;
height: 120px;
width: calc(38.2vw - 50px);
font-size: 14px;
line-height: 30px;
color: #646a73;
margin-left: 10px;
}
.idea {
width: 38.2vw;
max-height: 500px;
padding-left: 50px;
margin-left: 10px;
}
}
.idea_right {
flex: 1;
padding: 5px;
}
}
.intro_main {
overflow: hidden;
margin: 30px auto;
width: 80%;
.title {
color: #31285d;
font-weight: 600;
font-size: 18px;
flex: 1;
}
.card-context {
color: #646a73;
font-size: 16px;
font-family: PingFangSC-Regular, PingFang SC;
line-height: 30px;
letter-spacing: 0.34px;
flex: 1;
}
font-size: 20px;
line-height: 28px;
margin: 50px 450px;
}
.intro_context {
display: flex;
justify-content: space-between;
.card {
display: flex;
flex: 1;
flex-direction: column;
align-items: center;
padding: 32px;
background: #fff;
border-radius: 4px;
box-shadow: 0 1px 60px 0 rgba(0, 0, 0, 0.05);
.image {
width: 150px;
height: 150px;
border-radius: 10px;
flex: 1;
}
.title {
margin: 14px 0;
color: #31285d;
font-weight: 600;
font-size: 18px;
flex: 1;
}
.card-context {
color: #646a73;
font-size: 16px;
font-family: PingFangSC-Regular, PingFang SC;
line-height: 30px;
letter-spacing: 0.34px;
flex: 1;
}
}
}
}
}
</style>

View File

@ -8,94 +8,124 @@
<el-form-item label="组别" prop="groupCode">
<el-select v-model="queryParams.groupCode" placeholder="全部">
<el-option label="全部" value="" />
<el-option v-for="(item, index) in allGroupOptions" :key="index" :label="item.label"
:value="item.value" />
<el-option v-for="(item, index) in allGroupOptions" :key="index" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="线别" prop="lineCode">
<el-select v-model="queryParams.lineCode" placeholder="全部">
<el-option label="全部" value="" />
<el-option v-for="(item, index) in allRouteOptions" :key="index" :label="item.label"
:value="item.value" />
<el-option v-for="(item, index) in allRouteOptions" :key="index" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="筛选日期" prop="timeRange">
<el-date-picker :clearable="false" v-model="queryParams.timeRange" type="daterange" range-separator=""
start-placeholder="开始时间" end-placeholder="结束时间" placeholder="请选择日期区间" />
<el-date-picker
:clearable="false"
v-model="queryParams.timeRange"
type="daterange"
range-separator="到"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="请选择日期区间" />
</el-form-item>
<el-form-item>
<el-button icon="search" type="primary" @click="handleQuery(0)">{{ $t('btn.search') }}全部</el-button>
<el-button icon="search" type="primary" @click="handleQuery(1)">{{ $t('btn.search')
}}仓库确认数大于0</el-button>
<el-button icon="search" type="primary" @click="handleQuery(1)">{{ $t('btn.search') }}仓库确认数大于0</el-button>
<el-button icon="refresh" @click="resetQuery">{{ $t('btn.reset') }}</el-button>
</el-form-item>
</el-form>
<!-- 工具区域 -->
<el-row :gutter="15" class="mb10">
<el-col :span="1.5">
<el-button type="primary" v-hasPermi="['productManagement:proreportwork:add']" icon="plus"
@click="handleAdd">
<el-button type="primary" v-hasPermi="['productManagement:proreportwork:add']" icon="plus" @click="handleAdd">
{{ $t('btn.add') }}
</el-button>
</el-col>
<el-col :span="1.5">
<el-button class="tool-box" color="#00aa00" v-hasPermi="['productManagement:proworkorder:list']"
icon="Upload" @click="handleExport"> 报工导出 </el-button>
<el-button class="tool-box" color="#00aa00" v-hasPermi="['productManagement:proworkorder:list']" icon="Upload" @click="handleExport">
报工导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button class="tool-box" color="#55557f" v-hasPermi="['productManagement:proworkorder:list']"
icon="Printer" @click="handlePrint"> 打印 </el-button>
<el-button class="tool-box" color="#55557f" v-hasPermi="['productManagement:proworkorder:list']" icon="Printer" @click="handlePrint">
打印
</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table :data="dataList" v-loading="loading" ref="table" border :cell-class-name="tableCellClassName"
header-cell-class-name="el-table-header-cell" highlight-current-row @sort-change="sortChange">
<el-table
:data="dataList"
v-loading="loading"
ref="table"
border
:cell-class-name="tableCellClassName"
header-cell-class-name="el-table-header-cell"
highlight-current-row
@sort-change="sortChange">
<el-table-column type="index" width="50" align="center" />
<el-table-column prop="fkWorkorder" width="160" label="工单号" align="center" :show-overflow-tooltip="true"
<el-table-column
prop="fkWorkorder"
width="160"
label="工单号"
align="center"
:show-overflow-tooltip="true"
v-if="columns.showColumn('fkWorkorder')" />
<el-table-column prop="productionCode" label="存货编码" width="160" align="center" :show-overflow-tooltip="true"
<el-table-column
prop="productionCode"
label="存货编码"
width="160"
align="center"
:show-overflow-tooltip="true"
v-if="columns.showColumn('productionCode')" />
<el-table-column prop="productionName" label="产品名称" width="280" align="left" :show-overflow-tooltip="true"
<el-table-column
prop="productionName"
label="产品名称"
width="280"
align="left"
:show-overflow-tooltip="true"
v-if="columns.showColumn('productionName')" />
<el-table-column prop="specification" label="规格型号" width="160" align="left" :show-overflow-tooltip="true"
<el-table-column
prop="specification"
label="规格型号"
width="160"
align="left"
:show-overflow-tooltip="true"
v-if="columns.showColumn('specification')" />
<el-table-column prop="dispatchNum" label="计划装配数" align="center" v-if="columns.showColumn('dispatchNum')" />
<el-table-column prop="finishedNum" label="实际报工数" align="center" v-if="columns.showColumn('finishedNum')" />
<el-table-column prop="qualifiedNumber" label="仓库确认数" align="center"
v-if="columns.showColumn('qualifiedNumber')" />
<el-table-column prop="groupCode" label="组别" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('groupCode')" />
<el-table-column prop="lineCode" label="线别" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('lineCode')" />
<el-table-column prop="qualifiedNumber" label="仓库确认数" align="center" v-if="columns.showColumn('qualifiedNumber')" />
<el-table-column prop="groupCode" label="组别" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('groupCode')" />
<el-table-column prop="lineCode" label="线别" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('lineCode')" />
<!-- <el-table-column prop="qualifiedNumber" label="合格数" align="center" v-if="columns.showColumn('qualifiedNumber')" /> -->
<el-table-column prop="unqualifiedNumber" label="不合格数" align="center"
v-if="columns.showColumn('unqualifiedNumber')" />
<el-table-column prop="unqualifiedNumber" label="不合格数" align="center" v-if="columns.showColumn('unqualifiedNumber')" />
<el-table-column prop="reworkNumber" label="返工数" align="center" v-if="columns.showColumn('reworkNumber')" />
<el-table-column prop="scrapNumber" label="报废数" align="center" v-if="columns.showColumn('scrapNumber')" />
<el-table-column prop="remark" label="备注" align="center" v-if="columns.showColumn('remark')" />
<el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('createdBy')" />
<el-table-column prop="createdTime" label="创建时间" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('createdTime')" />
<el-table-column prop="updatedBy" label="更新人" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('updatedBy')" />
<el-table-column prop="updatedTime" label="更新时间" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('updatedTime')" />
<el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('createdBy')" />
<el-table-column prop="createdTime" label="创建时间" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('createdTime')" />
<el-table-column prop="updatedBy" label="更新人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('updatedBy')" />
<el-table-column prop="updatedTime" label="更新时间" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('updatedTime')" />
<el-table-column label="操作" width="120" fixed="right" align="center">
<template #default="scope">
<el-button type="success" size="small" icon="edit" title="编辑"
<el-button
type="success"
size="small"
icon="edit"
title="编辑"
v-hasPermi="['productManagement:proreportwork:edit']"
@click="handleUpdate(scope.row)"></el-button>
<el-button type="danger" size="small" icon="delete" title="删除"
<el-button
type="danger"
size="small"
icon="delete"
title="删除"
v-hasPermi="['productManagement:proreportwork:delete']"
@click="handleDelete(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改报工表对话框 -->
<el-dialog :title="title" :lock-scroll="false" v-model="open">
@ -121,8 +151,7 @@
<el-col :lg="12">
<el-form-item label="计划装配数" prop="dispatchNum">
<el-input :disabled="opertype != 1" v-model.number="form.dispatchNum"
placeholder="请输入计划装配数" />
<el-input :disabled="opertype != 1" v-model.number="form.dispatchNum" placeholder="请输入计划装配数" />
</el-form-item>
</el-col>
@ -173,12 +202,20 @@
</el-table>
</ZrDialog>
<!-- 导入对话框 -->
<el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body draggable
:close-on-click-modal="false">
<el-upload name="file" ref="uploadRef" :limit="1" accept=".xlsx,.xls" :headers="upload.headers"
<el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body draggable :close-on-click-modal="false">
<el-upload
name="file"
ref="uploadRef"
:limit="1"
accept=".xlsx,.xls"
:headers="upload.headers"
:action="`${upload.url}?updateSupport=${upload.updateSupport}$updateType=${upload.updateType}`"
:disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
:on-error="handleFileError" :auto-upload="false" drag>
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:on-error="handleFileError"
:auto-upload="false"
drag>
<el-icon class="el-icon--upload">
<upload-filled />
</el-icon>
@ -186,8 +223,7 @@
<template #tip>
<div class="el-upload__tip text-center">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">下载模板</el-link>
</div>
</template>
</el-upload>
@ -197,12 +233,10 @@
</template>
</el-dialog>
<!-- 导出 -->
<el-dialog v-model="exportDialog.open" :title="exportDialog.title" width="500" draggable
:close-on-click-modal="false">
<el-dialog v-model="exportDialog.open" :title="exportDialog.title" width="500" draggable :close-on-click-modal="false">
<el-form label-width="100px">
<el-form-item label="工单日期" prop="createWorkOrderDate">
<el-date-picker v-model="exportDialog.time" type="date" :clearable="false" :teleported="false"
placeholder="选择日期"></el-date-picker>
<el-date-picker v-model="exportDialog.time" type="date" :clearable="false" :teleported="false" placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-form>
<template #footer>
@ -214,7 +248,7 @@
<ZrDialog v-model="PrintDialogShow" :fullScreen="true" append-to-body draggable :close-on-click-modal="false">
<div id="printTable">
<div>
<div class="company-box">北泽阀门</div>
<div class="company-box">开滋阀门</div>
<div class="title-box">每日报工清单</div>
<div class="time-box">日期{{ getPrintTime() }}</div>
<!-- <div class="header-box">

View File

@ -406,7 +406,7 @@
<!-- <ZrDialog v-model="PrintDialogShow" :fullScreen="true" append-to-body draggable :close-on-click-modal="false">
<div id="printTable">
<div v-for="(printTableData, printTableIndex) in printList" :key="printTableIndex">
<div class="company-box">北泽阀门</div>
<div class="company-box">开滋阀门</div>
<div class="title-box">每日装配拉动工单</div>
<div class="time-box">日期{{ getPrintTime() }}</div>
<div class="header-box">