Browse Source

【EQI前端】手动传出+明细+任务等功能开发

web
安虹睿 6 days ago
parent
commit
a330fee7d7
  1. 18
      Web/src/api/common/index.js
  2. 2
      Web/src/components/apiEditPop/index.vue
  3. 12
      Web/src/components/elPager/index.vue
  4. 2
      Web/src/components/elTable/index.vue
  5. 157
      Web/src/components/tablePage/index.vue
  6. 124
      Web/src/utils/common/apiServeNames.js
  7. 575
      Web/src/utils/common/apiTableColumns.js
  8. 82
      Web/src/utils/common/enumList.js
  9. 23
      Web/src/views/logisticsPlan/supplierMrpDate/index.vue
  10. 23
      Web/src/views/logisticsPlan/supplierMrpState/index.vue
  11. 23
      Web/src/views/logisticsPlan/supplierProHschedul/index.vue
  12. 2
      Web/src/views/productionQuality/supplierProMaterialStock/index.vue
  13. 23
      Web/src/views/productionQuality/supplierProScheduling/index.vue
  14. 34
      Web/src/views/system/taskConifgure/index.vue
  15. 57
      Web/src/views/task/taskSub/index.vue

18
Web/src/api/common/index.js

@ -45,4 +45,22 @@ export function getCommonImportTemplate(urlName) {
method: 'get',
responseType:'blob',
})
}
// 手动传出(单)
export function getCommonCustominvoke(urlName,params) {
return request({
url: `/api/${urlName}/custominvoke`,
method: 'get',
params:params
})
}
// 获取明细列表-如:任务列表-查看详情
export function getCommonDeatailPaged(urlName,data) {
return request({
url: `/api/${urlName}/getdetail`,
method: 'post',
data
})
}

2
Web/src/components/apiEditPop/index.vue

@ -54,7 +54,7 @@
/>
<!-- 选择框 -->
<el-select
v-if="getItemConfig(item) == 'select' || getItemConfig(item) == 'tagFilter'"
v-if="getItemConfig(item) == 'select' || getItemConfig(item) == 'tagFilter' || getItemConfig(item) == 'filter'"
v-model="formData[getItemConfig(item,'prop')]"
:filterable="!getItemConfig(item,'noSearch')"
placeholder="请选择"

12
Web/src/components/elPager/index.vue

@ -1,7 +1,7 @@
<template>
<el-pagination
:currentPage="state.currentPage"
:page-size="props.pager.pageSize"
:page-size="state.pageSize"
:total="props.pager.total"
:background="props.pageBackGround"
:layout="props.pageLayout"
@ -18,7 +18,8 @@
import { ElMessageBox, ElMessage,ElPagination } from 'element-plus'
const state = reactive({
currentPage:1
currentPage:1,
pageSize:null
})
const props = defineProps({
@ -53,12 +54,13 @@
watch(props.pager, (val) => {
state.currentPage = val.page
state.pageSize = val.pageSize
})
// size-change
function pageSizeChange(page){
state.currentPage = page
emits('pageSizeChange',page)
function pageSizeChange(pageSize){
state.pageSize = pageSize
emits('pageSizeChange',pageSize)
}
// current-change

2
Web/src/components/elTable/index.vue

@ -53,6 +53,8 @@
>
{{ formatTableTagFilter('label',scope.row,item) }}
</el-tag>
<!-- 字典 -->
<span v-else-if="item.type == 'filter'">{{ formatTableTagFilter('label',scope.row,item) }}</span>
<!-- 正常文本 -->
<span v-else> {{ scope.row[item.prop] }} </span>
</template>

157
Web/src/components/tablePage/index.vue

@ -107,7 +107,13 @@
import store from '@/stores'
import apiTableColumns from '@/utils/common/apiTableColumns'
import { reactive, ref, onMounted,computed } from 'vue'
import { getCommonPaged,postCommonExport,putCommonUpdate } from '@/api/common/index'
import {
getCommonPaged,
getCommonDeatailPaged,
postCommonExport,
putCommonUpdate,
getCommonCustominvoke
} from '@/api/common/index'
import { ElMessageBox, ElMessage,ElTable, ElTableColumn } from 'element-plus'
import elTable from '@/components/elTable/index.vue'
import elPager from '@/components/elPager/index.vue'
@ -116,6 +122,7 @@
import importPop from '@/components/importPop/index.vue'
import apiEditPop from '@/components/apiEditPop/index.vue'
import { formatDate } from '@/utils/formatTime'
import apiServeNames from '@/utils/common/apiServeNames'
import { useRoute } from 'vue-router'
const route = useRoute()
@ -150,6 +157,11 @@
type: String,
default: null
},
// api detailApigetdetailpageApigetdatapaged
apiType: {
type: String,
default: null
},
//
hideSearch:{
type: Boolean,
@ -286,10 +298,20 @@
apiEditPopRef.value.validate((valid) => {
if(valid){
//
formData.remark= `修改信息:${userInfo.realName} ${formatDate(new Date(), "YYYY-mm-dd HH:MM:SS")}`
if(formData.hasOwnProperty('updateByUser')){formData.updateByUser == userInfo.realName}
if(formData.hasOwnProperty('updateUser')){formData.updateUser == userInfo.realName}
if(formData.hasOwnProperty('updateTime')){formData.updateTime == formatDate(new Date(), "YYYY-mm-dd HH:MM:SS")}
if(
(formData.hasOwnProperty('updateByUser') && formData.hasOwnProperty('updateTime'))
|| (formData.hasOwnProperty('updateUser') && formData.hasOwnProperty('updateTime'))
){
if(formData.hasOwnProperty('updateByUser')){formData.updateByUser = userInfo.realName}
if(formData.hasOwnProperty('updateUser')){formData.updateUser = userInfo.realName}
if(formData.hasOwnProperty('updateTime')){formData.updateTime = formatDate(new Date(), "YYYY-mm-dd HH:MM:SS")}
}else{
//
let _notChange=['taskconifgure']
if(_notChange.indexOf(props.apiName) < 0){
formData.remark= `修改信息:${userInfo.realName} ${formatDate(new Date(), "YYYY-mm-dd HH:MM:SS")}`
}
}
apiEditPopRef.value.changeLoading(true)
putCommonUpdate(props.apiName,formData)
.then(res=>{
@ -305,42 +327,46 @@
//
function getPageParams(){
let _filters = []
for(let i in props.searchFilter){
let _item = props.searchOptions.filter(item=>item.prop == i)
let _type = (_item && _item.length > 0) ? _item[0].type : null
if(props.searchFilter[i] || props.searchFilter[i] == 0){
//
if(_type == 'datetimerange'){
_filters.push(
{
logic: "And",
column: i,
action: '>=',
value: props.searchFilter[i][0]
if(props.hideSearch){
_filters = props.searchFilter
}else{
for(let i in props.searchFilter){
let _item = props.searchOptions.filter(item=>item.prop == i)
let _type = (_item && _item.length > 0) ? _item[0].type : null
if(props.searchFilter[i] || props.searchFilter[i] == 0){
//
if(_type == 'datetimerange'){
_filters.push(
{
logic: "And",
column: i,
action: '>=',
value: props.searchFilter[i][0]
}
)
_filters.push(
{
logic: "And",
column: i,
action: '<=',
value: props.searchFilter[i][1]
}
)
}else{
let _action = 'like'
let _EqualTypes = ['tagFilter','filter','number','select']//
if(_EqualTypes.indexOf(_type) >= 0){
_action = '=='
}
)
_filters.push(
{
logic: "And",
column: i,
action: '<=',
value: props.searchFilter[i][1]
}
)
}else{
let _action = 'like'
let _EqualTypes = ['tagFilter','number','select']//
if(_EqualTypes.indexOf(_type) >= 0){
_action = '=='
_filters.push(
{
logic: "And",
column: i,
action: _action,
value: props.searchFilter[i]
}
)
}
_filters.push(
{
logic: "And",
column: i,
action: _action,
value: props.searchFilter[i]
}
)
}
}
}
@ -358,15 +384,27 @@
//
function getTableData(page) {
state.loading = true
if(!page)page = state.pager.page
if(page)state.pager.page = page
getCommonPaged(props.apiName,getPageParams())
.then((resp) => {
state.tableData = resp.data.data
state.pager.total = resp.data.totalCount
})
.finally(() => (state.loading = false))
if(props.apiType == 'detailApi'){
state.loading = true
if(!page)page = state.pager.page
if(page)state.pager.page = page
getCommonDeatailPaged(props.apiName,getPageParams())
.then((resp) => {
state.tableData = resp.data.data
state.pager.total = resp.data.totalCount
})
.finally(() => (state.loading = false))
}else{
state.loading = true
if(!page)page = state.pager.page
if(page)state.pager.page = page
getCommonPaged(props.apiName,getPageParams())
.then((resp) => {
state.tableData = resp.data.data
state.pager.total = resp.data.totalCount
})
.finally(() => (state.loading = false))
}
}
const importPopRef = ref()
@ -391,18 +429,24 @@
})
.finally(() => (state.loading = false))
}
// todo:
//
else if (btn == 'custominvoke'){
ElMessageBox.confirm('是否确定手动传出?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// state.loading = true
// deleteMenu({ ids:[id] }).then(() => {
// })
// .finally(() => (state.loading = false))
state.loading = true
let _data = {
taskName:apiServeNames[props.apiName].taskName,
client:'Chery'
}
getCommonCustominvoke(props.apiName,_data)
.then((res) => {
ElMessage.success('操作成功!')
getTableData(1)//
})
.finally(() => (state.loading = false))
})
}
// todo:
@ -446,8 +490,9 @@
}
// size-change
function pageSizeChange(page){
getTableData(page)
function pageSizeChange(pageSize){
state.pager.pageSize = pageSize
getTableData(1)
}
// current-change

124
Web/src/utils/common/apiServeNames.js

@ -0,0 +1,124 @@
const apiServeNames = {
// M+6月物料需求计划风险确认
cherysupplierconmmrp:{
tableName:'SUPPLIER_CON_MMRP',
taskName:'M+6月物料需求计划风险确认',
},
// 日物料需求计划风险确认
cherysuppliercondate:{
tableName:'SUPPLIER_CON_DATE',
taskName:'日物料需求计划风险确认'
},
// 采购订单风险确认
cherysupplierconpo:{
tableName:'SUPPLIER_CON_PO',
taskName:'采购订单风险确认'
},
// 来料检验数据
supplierpromaterialstock:{
tableName:'SUPPLIER_PRO_MATERIAL_STOCK',
taskName:'来料检验数据'
},
// 排产数据
cherysupplierproscheduling:{
tableName:'SUPPLIER_PRO_SCHEDULING',
taskName:'排产数据'
},
// 供应商基础信息
cherysupplierinfo:{
tableName:'SUPPLIER_INFO',
taskName:'供应商基础信息'
},
// 人员资质信息
cherysupplieremployee:{
tableName:'SUPPLIER_EMPLOYEE',
taskName:'人员资质信息'
},
// BOM主数据
cherysupplierbom:{
tableName:'SUPPLIER_BOM',
taskName:'BOM主数据'
},
// 过程控制项质量数据
cherysupplierprocps:{
tableName:'SUPPLIER_PRO_CPS',
taskName:'过程控制项质量数据'
},
// 生产过程数据
cherysupplierprodata:{
tableName:'SUPPLIER_PRO_DATA',
taskName:'生产过程数据'
},
// 产品一次合格率
cherysupplierprofirstpassyield:{
tableName:'SUPPLIER_PRO_FIRST_PASSYIELD',
taskName:'产品一次合格率'
},
// 工位一次合格率
cherysupplierprostationfirstpassyield:{
tableName:'SUPPLIER_PRO_STATION_FIRST_PASSYIELD',
taskName:'工位一次合格率'
},
// 缺陷业务数据
cherysupplierproflaw:{
tableName:'SUPPLIER_PRO_FLAW',
taskName:'缺陷业务数据'
},
// 物料主数据
cherysupplierpromaterialdata:{
tableName:'SUPPLIER_PRO_MATERIAL_DATA',
taskName:'物料主数据'
},
// 附件类数据
cherysupplierproattachmentdata:{
tableName:'SUPPLIER_PRO_ATTACHMENT_DATA',
taskName:'附件类数据'
},
// 工艺装备
cherysupplierproprocessequipment:{
tableName:'SUPPLIER_PRO_PROCESS_EQUIPMENT',
taskName:'工艺装备'
},
// 工艺
cherysupplierproprocess:{
tableName:'SUPPLIER_PRO_PROCESS',
taskName:'工艺'
},
/*无页面,供任务明细页面使用 */
// 环境业务数据
cherysupplierproenvironment:{
tableName:'SUPPLIER_PRO_ENVIRONMENT',
taskName:'环境业务数据'
},
// 设备OEE达成率
cherysupplierprooeeachievementrate:{
tableName:'SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE',
taskName:'设备OEE达成率'
},
// OEE时间明细
cherysupplierprooeetimedetails:{
tableName:'SUPPLIER_PRO_OEE_TIME_DETAILS',
taskName:'OEE时间明细'
},
}
export default apiServeNames

575
Web/src/utils/common/apiTableColumns.js

@ -3,18 +3,18 @@ import EnumList from '@/utils/common/enumList'
const apiTableColumns = {
// 接口设置表
taskconifgure:[
{prop:'tableName',title:'表名',align:'left',width:160},
{prop:'taskName',title:'任务名称',align:'left',width:160},
{prop:'api',title:'api',align:'left',width:200},
{prop:'url',title:'url',align:'left',width:300},
{prop:'corn',title:'corn'},
{prop:'module',title:'module'},
{prop:'client',title:'client'},
{prop:'tableName',title:'tableName',align:'left',width:160},
{prop:'taskName',title:'taskName',align:'left',width:160},
{prop:'url',title:'url',align:'left',width:200},
{prop:'writeState',title:'writeState',type:'tagFilter',options:EnumList.whether},
{prop:'readState',title:'readState',type:'tagFilter',options:EnumList.whether},
{prop:'isAuto',title:'isAuto',type:'tagFilter',options:EnumList.whether},
{prop:'creationTime',title:'创建时间',width:180},
{prop:'writeState',title:'writeState',type:'tagFilter',options:EnumList.whetherBoolean},
{prop:'readState',title:'readState',type:'tagFilter',options:EnumList.whetherBoolean},
{prop:'isAuto',title:'isAuto',type:'tagFilter',options:EnumList.whetherBoolean},
{prop:'remark',title:'remark',align:'left',width:300},
{prop:'creationTime',title:'创建时间',width:180,type:'datetime',noEdit:true},
{prop:'module',title:'module'},
{prop:'client',title:'客户'},
],
// 任务列表
@ -22,20 +22,20 @@ const apiTableColumns = {
// {prop:'writeState',title:'writeState'},
// {prop:'readState',title:'readState'},
// {prop:'taskId',title:'taskId'},
{prop:'tableName',title:'表名',align:'left',width:240},
{prop:'taskName',title:'任务名称',align:'left',width:160},
{prop:'dataCount',title:'同步总数量'},
{prop:'tableName',title:'表名',align:'left',width:240,disabled:true},
{prop:'taskName',title:'任务名称',align:'left',width:160,disabled:true},
{prop:'dataCount',title:'同步总数量',type:'number'},
{prop:'subscriber',title:'客户名'},
{prop:'failedCount',title:'失败次数',type:'number'},
{prop:'failedInfo',title:'失败信息'},
{prop:'domain',title:'域名'},
{prop:'site',title:'站点'},
{prop:'syncedPageCount',title:'更新完成时间',width:150},
{prop:'syncedPageCount',title:'更新完成次数',type:'number',width:160},
{prop:'remark',title:'备注',align:'left',width:300},
{prop:'createUser',title:'创建人'},
{prop:'creationTime',title:'创建时间',width:180},
{prop:'updateUser',title:'修改人'},
{prop:'updateTime',title:'修改时间',width:180},
{prop:'createUser',title:'创建人',noEdit:true},
{prop:'creationTime',title:'创建时间',width:180,noEdit:true},
{prop:'updateUser',title:'修改人',noEdit:true},
{prop:'updateTime',title:'修改时间',width:180,noEdit:true},
],
/*计划物流 */
@ -48,7 +48,6 @@ const apiTableColumns = {
{prop:'assembly',title:'动力总成'},
{prop:'pattern',title:'版型'},
{prop:'omterior',title:'内饰'},
{prop:'materialCode',title:'物料号'},
{prop:'startMonth',title:'起始月份'},
{prop:'quantity1',title:'数量1'},
{prop:'quantity2',title:'数量2'},
@ -92,15 +91,15 @@ const apiTableColumns = {
{prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
{prop:'version',title:'版本号'},
],
// M+M+6月物料需求计划风险确认
// M+6月物料需求计划风险确认
cherysupplierconmmrp:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'releaseEdition',title:'需求发布版次',width:150},
{prop:'materialCode',title:'零件号'},
{prop:'plantId',title:'工厂代码'},
{prop:'feedbackResults',title:'反馈结果',type:'tagFilter',options:EnumList.whether},
{prop:'feedbackResults',title:'反馈结果',type:'filter',options:EnumList.feedbackResults},
// todo:当反馈结果=1时,此字段必输
{prop:'ventureType',title:'风险类型',type:'tagFilter',options:EnumList.whether},
{prop:'ventureType',title:'风险类型',type:'filter',options:EnumList.ventureType},
// todo:当反馈结果=1时,此字段必输
{prop:'ventureSpecific',title:'具体风险'},
{prop:'measures',title:'应对措施'},
@ -118,6 +117,53 @@ const apiTableColumns = {
{prop:'quantityMeet11',title:'满足数量11',type:'number'},
{prop:'quantityMeet12',title:'满足数量12',type:'number'},
],
// 日物料需求计划
cherysuppliermrpdata:[
{prop:'releaseEdition',title:'需求发布版次',width:150},
{prop:'materialCode',title:'零件号'},
{prop:'materialDescription',title:'零件名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'startDate',title:'起始日期',width:180},
{prop:'quantityDemand1',title:'需求数量1'},
{prop:'quantityDemand2',title:'需求数量2'},
{prop:'quantityDemand3',title:'需求数量3'},
{prop:'quantityDemand4',title:'需求数量4'},
{prop:'quantityDemand5',title:'需求数量5'},
{prop:'quantityDemand6',title:'需求数量6'},
{prop:'quantityDemand7',title:'需求数量7'},
{prop:'quantityDemand8',title:'需求数量8'},
{prop:'quantityDemand9',title:'需求数量9'},
{prop:'quantityDemand10',title:'需求数量10',width:130},
{prop:'quantityDemand11',title:'需求数量11',width:130},
{prop:'quantityDemand12',title:'需求数量12',width:130},
{prop:'quantityDemand13',title:'需求数量13',width:130},
{prop:'quantityDemand14',title:'需求数量14',width:130},
{prop:'quantityDemand15',title:'需求数量15',width:130},
{prop:'quantityDemand16',title:'需求数量16',width:130},
{prop:'quantityDemand17',title:'需求数量17',width:130},
{prop:'quantityDemand18',title:'需求数量18',width:130},
{prop:'quantityDemand19',title:'需求数量19',width:130},
{prop:'quantityDemand20',title:'需求数量20',width:130},
{prop:'quantityDemand21',title:'需求数量21',width:130},
{prop:'quantityDemand22',title:'需求数量22',width:130},
{prop:'quantityDemand23',title:'需求数量23',width:130},
{prop:'quantityDemand24',title:'需求数量24',width:130},
{prop:'quantityDemand25',title:'需求数量25',width:130},
{prop:'quantityDemand26',title:'需求数量26',width:130},
{prop:'quantityDemand27',title:'需求数量27',width:130},
{prop:'quantityDemand28',title:'需求数量28',width:130},
{prop:'quantityDemand29',title:'需求数量29',width:130},
{prop:'quantityDemand30',title:'需求数量30',width:130},
{prop:'quantityDemand31',title:'需求数量31',width:130},
{prop:'is_update',title:'是否更新',type:'tagFilter',options:EnumList.whether},
{prop:'createByUser',title:'创建人'},
{prop:'createTime',title:'创建时间',width:180},
{prop:'updateByUser',title:'修改人'},
{prop:'updateTime',title:'修改时间',width:180},
{prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
{prop:'version',title:'版本号'},
],
// 计划协议
cherysuppliersaweek:[
{prop:'scheduleAgreement',title:'计划协议号',width:120},
@ -163,6 +209,23 @@ const apiTableColumns = {
{prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
{prop:'version',title:'版本号'},
],
// 过焊装未过总装
cherysupplierporhschedul:[
{prop:'models',title:'车型'},
{prop:'vin',title:'VIN'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'materialCode',title:'物料编码'},
{prop:'materialDescription',title:'物料描述'},
{prop:'productionType',title:'报工类型'},
{prop:'onLineTime',title:'上线日期时间',width:180},
{prop:'createByUser',title:'创建人'},
{prop:'createTime',title:'创建时间',width:180},
{prop:'updateByUser',title:'修改人'},
{prop:'updateTime',title:'修改时间',width:180},
{prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
{prop:'version',title:'版本号'},
],
// 过涂装未过总装
cherysupplierprotschedul:[
{prop:'models',title:'车型'},
@ -194,7 +257,7 @@ const apiTableColumns = {
{prop:'materialCode',title:'零件号'},
{prop:'materialDescription',title:'零件名称'},
{prop:'quantityDelivery',title:'数量'},
{prop:'returnType',title:'退货类型',type:'tagFilter',options:EnumList.returnType},
{prop:'returnType',title:'退货类型',type:'filter',options:EnumList.returnType},
{prop:'lotNumber',title:'批次号'},
{prop:'judge',title:'判定人'},
{prop:'returnReason',title:'退货原因'},
@ -228,10 +291,10 @@ const apiTableColumns = {
{prop:'serialNumber',title:'行项目号'},
{prop:'materialCode',title:'零件号'},
{prop:'materialDescription',title:'零件名称'},
{prop:'materialType',title:'物料类型',type:'tagFilter',options:EnumList.materialType},
{prop:'materialType',title:'物料类型',type:'filter',options:EnumList.materialType},
{prop:'quantityCurrent',title:'当前库存数量',type:'number'},
{prop:'quantityPlan',title:'原材料在途数量',type:'number'},
{prop:'inventoryStatus',title:'库存状态',type:'tagFilter',options:EnumList.inventoryStatus},
{prop:'inventoryStatus',title:'库存状态',type:'filter',options:EnumList.inventoryStatus},
{prop:'safetyStock',title:'安全库存',type:'number'},
{prop:'productionCycle',title:'生产/采购周期'},
{prop:'dataUpdateTime',title:'库存更新时间',type:'datetime',width:180},
@ -239,6 +302,34 @@ const apiTableColumns = {
{prop:'supplieryxqDate',title:'效期截止日期',type:'datetime',width:180},
{prop:'creationTime',title:'创建时间',type:'datetime',width:180,noEdit:true},
],
// 日MRP状态监控
cherysuppliermrp:[
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'demandSrate',title:'需求状态'},
{prop:'demandType',title:'需求类型'},
{prop:'materialCode',title:'零件号'},
{prop:'materialDescription',title:'零件名称'},
{prop:'summarySign',title:'集货标识'},
{prop:'dateRequired',title:'需求日期',width:180},
{prop:'quantityDemand',title:'需求数量'},
{prop:'confirmTime',title:'需求确认时间',width:180},
{prop:'creatQuantity',title:'已建单数量'},
{prop:'quantityDelivery',title:'已发货数量'},
{prop:'quantityReceive',title:'已收货数量'},
{prop:'quantityInTransit',title:'在途数量'},
{prop:'onTimePercentage',title:'按时到货比'},
{prop:'summaryCreatQuantity',title:'集货件已建单数量'},
{prop:'summaryQuantityDelivery',title:'集货件已发货数量'},
{prop:'summaryQuantityReceive',title:'集货件已收货数量'},
{prop:'summaryQuantityInTransit',title:'集货件已在途数量'},
{prop:'createByUser',title:'创建人'},
{prop:'createTime',title:'创建时间',width:180},
{prop:'updateByUser',title:'修改人'},
{prop:'updateTime',title:'修改时间',width:180},
{prop:'isDelete',title:'是否删除',type:'tagFilter',options:EnumList.whether},
{prop:'version',title:'版本号'},
],
// 日MRP预警推移
cherysuppliermrpwarning:[
{prop:'plantId',title:'工厂代码'},
@ -286,14 +377,446 @@ const apiTableColumns = {
{prop:'featureLower',title:'参数/特性下限值',width:180},
{prop:'featureValue',title:'参数/特性实测值',width:180},
{prop:'checkNo',title:'来料检验单号'},
{prop:'checkResult',title:'批次的最终判定结果',type:'tagFilter',options:EnumList.checkResult,width:180},
{prop:'checkResult',title:'批次的最终判定结果',type:'filter',options:EnumList.checkResult,width:180},
{prop:'checkTime',title:'检验时间',type:'datetime',width:180},
{prop:'samplingRate',title:'控制项要求频率',type:'number'},
{prop:'limitUpdateTime',title:'上下限更新时间',type:'datetime',width:180},
{prop:'vendorFieldDesc',title:'控制项描述'},
{prop:'vendorFieldCode',title:'控制项代码'},
{prop:'deadLine',title:'库存有效日期',type:'datetime',width:180},
]
],
// 排产数据
cherysupplierproscheduling:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'planNo',title:'计划单号'},
{prop:'manufactureNo',title:'生产工单号'},
{prop:'productBatchNo',title:'生产批次号'},
{prop:'manufactureNum',title:'批次计划数量',width:160},
{prop:'manufactureInputNum',title:'批次投入数量',width:160},
{prop:'manufactureOutputNum',title:'批次产出数量',width:160},
{prop:'planStatus',title:'排产状态',type:'filter',options:EnumList.planStatus},
{prop:'planBeginTime',title:'计划开始时间',width:180},
{prop:'planEndTime',title:'计划结束时间',width:180},
{prop:'actualBeginTime',title:'实际开始时间',width:180},
{prop:'actualEndTime',title:'实际结束时间',width:180},
],
// 供应商基础信息
cherysupplierinfo:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'keyStation',title:'是否关键工位',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'dataUpdateTime',title:'供应商修改时间',width:180,type:'datetime'},
{prop:'productionLineOrder',title:'产线顺序',type:'number'},
{prop:'stationOrder',title:'工位顺序',type:'number'},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
],
// 人员资质信息
cherysupplieremployee:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'operatorId',title:'工位人员账号',width:160},
{prop:'operatorName',title:'工位人员姓名',width:160},
{prop:'haveQuantity',title:'是否有资质',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'dataUpdateTime',title:'供应商修改时间',width:180,type:'datetime'},
{prop:'positionId',title:'岗位代码'},
{prop:'positionName',title:'岗位名称'},
{prop:'qualificationLevel',title:'资质等级'},
{prop:'checkInTime',title:'资质获取时间',width:180,type:'datetime'},
{prop:'checkOutTime',title:'资质失去时间',width:180,type:'datetime'},
],
// BOM主数据
cherysupplierbom:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'bomCode',title:'BOM编码'},
{prop:'bomName',title:'BOM名称'},
{prop:'bomVersion',title:'BOM版本'},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'vendorProductNo',title:'供应商父件编码',width:180},
{prop:'vendorProductName',title:'供应商父件名称',width:180},
{prop:'vendorProductType',title:'父件类型',type:'filter',options:EnumList.vendorProductType},
{prop:'materialUnit',title:'父件单位'},
{prop:'subMaterialCode',title:'子件编码'},
{prop:'subMaterialName',title:'子件名称'},
{prop:'subMaterialType',title:'子件类型',type:'filter',options:EnumList.subMaterialType},
{prop:'subMaterialUnit',title:'子件单位'},
{prop:'subMaterialQuota',title:'子件用量',type:'number'},
{prop:'dataUpdateTime',title:'BOM变更时间',width:180,type:'datetime'},
],
// 过程控制项质量数据
cherysupplierprocps:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'vendorProductSn',title:'供应商总成SN码',width:180},
{prop:'vendorProductBatch',title:'供应商总成批次号',width:180},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'cheryProductSn',title:'奇瑞SN码'},
{prop:'productBatchNo',title:'生产批次号'},
{prop:'manufactureNo',title:'生产工单号'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'empCode',title:'工位人员编号'},
{prop:'empName',title:'工位人员姓名'},
{prop:'vendorFieldName',title:'控制项名称'},
{prop:'vendorFieldCode',title:'控制项代码'},
{prop:'gatherSpot',title:'控制项点位'},
{prop:'samplingRate',title:'控制项要求频率',type:'number'},
{prop:'limitUpdateTime',title:'上下限更新时间',type:'datetime',width:180},
{prop:'vendorFieldDesc',title:'控制项描述'},
{prop:'carrierCode',title:'载体编码'},
{prop:'intputQty',title:'投入数量',type:'number'},
{prop:'fttQty',title:'一次合格数量',type:'number'},
{prop:'parameter',title:'参数',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'characteristic',title:'特性',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'cc',title:'cc项',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'sc',title:'sc项',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'spc',title:'SPC',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'standardValue',title:'控制项标准值',width:150},
{prop:'upperLimit',title:'控制项上限',type:'number'},
{prop:'lowerLimit',title:'控制项下限',type:'number'},
{prop:'decimalValue',title:'控制项实测值',type:'number'},
{prop:'unitCn',title:'控制项值的单位名称',width:180},
{prop:'unitEn',title:'控制项单位英文',width:180},
{prop:'checkResult',title:'检测结果'},
{prop:'detectionMode',title:'在线检测',type:'filter',options:EnumList.detectionMode},
{prop:'workShift',title:'班次',type:'filter',options:EnumList.workShift},
{prop:'collectTime',title:'采集时间',type:'datetime',width:180},
{prop:'checkMode',title:'检测方式',type:'filter',options:EnumList.checkMode},
{prop:'deviceCode',title:'检测设备编号'},
{prop:'deviceName',title:'检测设备名称'},
],
// 生产过程数据
cherysupplierprodata:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'empCode',title:'工位人员编号',width:160},
{prop:'empName',title:'工位人员姓名',width:160},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductBatch',title:'供应商总成批次号'},
{prop:'vendorProductSn',title:'供应商总成SN码'},
{prop:'subProdNo',title:'子件编码'},
{prop:'subProdName',title:'子件名称'},
{prop:'subBatchNo',title:'子件批次号'},
{prop:'childPackageInfo',title:'子件分包号'},
{prop:'subProdNum',title:'子件扣料数量',type:'number',width:160},
{prop:'childSource',title:'子件物料来源',width:160},
{prop:'subSupplierCode',title:'分供方代码'},
{prop:'subSupplierName',title:'分供方名称'},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'cheryProductSn',title:'奇瑞SN码'},
{prop:'manufactureNo',title:'生产工单号'},
{prop:'productBatchNo',title:'生产批次号'},
{prop:'workShift',title:'班次',type:'filter',options:EnumList.workShift},
{prop:'materialInputTime',title:'进工位的时间',type:'datetime',width:180},
{prop:'materialOutputTime',title:'出工位的时间',type:'datetime',width:180},
{prop:'vendorFieldNum',title:'装配设备编号',width:160},
{prop:'vendorFieldName',title:'装配设备名称',width:160},
{prop:'instrumentQualityStatus',title:'设备判定的质量状态',type:'filter',options:EnumList.checkResult,width:180},
{prop:'manualQualityStatus',title:'人工判定的质量状态',type:'filter',options:EnumList.checkResult,width:180},
{prop:'finalQualityStatus',title:'最终质量状态',type:'filter',options:EnumList.checkResult,width:180},
{prop:'collectTime',title:'采集时间',type:'datetime',width:180},
{prop:'dateTime',title:'子件绑定扫码时间',type:'datetime',width:180},
{prop:'parentHardwareRevision',title:'父件硬件版本号',width:180},
{prop:'parentSoftwareRevision',title:'父件软件版本号',width:180},
{prop:'childHardwareRevision',title:'子件硬件版本号',width:180},
{prop:'childSoftwareRevision',title:'子件软件版本号',width:180},
],
// 产品一次合格率
cherysupplierprofirstpassyield:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'manufactureNo',title:'生产工单号'},
{prop:'productBatchNo',title:'生产批次号'},
{prop:'workOrderNumber',title:'批次计划数量',type:'number',width:160},
{prop:'defectiveNumber',title:'不合格数',type:'number',width:160},
{prop:'acceptableNumber',title:'合格数',type:'number',width:160},
{prop:'oncePassRateRealValue',title:'一次合格率实际值',type:'number',width:180},
{prop:'oncePassRateTagValue',title:'一次合格率目标值',type:'number',width:180},
{prop:'workShift',title:'班次',type:'filter',options:EnumList.workShift},
{prop:'statisticalTime',title:'生产日期',width:180,type:'datetime'},
{prop:'dateTime',title:'值统计时间',width:180,type:'datetime'},
],
// 工位一次合格率
cherysupplierprostationfirstpassyield:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'productBatchNo',title:'生产批次号'},
{prop:'manufactureNo',title:'生产工单号'},
{prop:'workOrderNumber',title:'批次计划数量',type:'number',width:160},
{prop:'defectiveNumber',title:'不合格数',type:'number',width:160},
{prop:'acceptableNumber',title:'合格数',type:'number',width:160},
{prop:'oncePassRateRealValue',title:'一次合格率实际值',type:'number',width:180},
{prop:'oncePassRateTagValue',title:'一次合格率目标值',type:'number',width:180},
{prop:'workShift',title:'班次',type:'filter',options:EnumList.workShift},
{prop:'statisticalTime',title:'生产日期',width:180,type:'datetime'},
{prop:'dateTime',title:'值统计时间',width:180,type:'datetime'},
],
// 缺陷业务数据
cherysupplierproflaw:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'defectsCode',title:'缺陷代码'},
{prop:'defectsName',title:'缺陷名称'},
{prop:'classOfName',title:'缺陷分类',type:'filter',options:EnumList.defectsClass},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'vendorProductBatch',title:'供应商总成批次号',width:180},
{prop:'vendorProductSn',title:'供应商总成SN码',width:180},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'cheryProductSn',title:'奇瑞SN码'},
{prop:'productBatchNo',title:'生产批次号'},
{prop:'manufactureNo',title:'生产工单号'},
{prop:'workShift',title:'班次',type:'filter',options:EnumList.workShift},
{prop:'numberofdefect',title:'缺陷件数',type:'number'},
{prop:'defectsDesc',title:'缺陷描述'},
{prop:'defectsLevel',title:'缺陷等级',type:'filter',options:EnumList.defectsLevel},
{prop:'statisticalTime',title:'缺陷录入时间',width:180,type:'datetime'},
],
// 物料主数据
cherysupplierpromaterialdata:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'vendorProductNo',title:'供应商物料号'},
{prop:'vendorProductName',title:'供应商物料名称',width:180},
{prop:'type',title:'类型',type:'filter',options:EnumList.materialType},
{prop:'vendorHardwareRevision',title:'供应商零件版本号',width:180},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'oemHardwareRevision',title:'奇瑞硬件版本号',width:180},
{prop:'oemSoftwareRevision',title:'奇瑞软件版本号',width:180},
{prop:'oemModel',title:'车型'},
{prop:'oemProjectName',title:'项目名称'},
{prop:'launched',title:'是否SOP',width:160,type:'tagFilter',options:EnumList.whetherByYN},
{prop:'dateTime',title:'数据同步执行时间',width:180,type:'datetime'},
{prop:'plantId',title:'供应商工厂代码',width:180},
{prop:'plantName',title:'供应商工厂名称',width:180},
{prop:'procurementType',title:'芯片采购类型',width:160},
{prop:'mpnCode',title:'芯片MPN标识码',width:180},
{prop:'mpnName',title:'芯片MPN标识名称',width:180},
{prop:'validDays',title:'物料有效期(天)',width:180},
],
// 附件类数据
cherysupplierproattachmentdata:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'type',title:'数据类型',type:'filter',options:EnumList.attachmentType},
{prop:'fileName',title:'文件名'},
{prop:'fileUrl',title:'图文地址',width:null},
{prop:'dateTime',title:'生成时间',type:'datetime',width:180},
{prop:'productionLineName',title:'产线名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'stationName',title:'工位名称'},
{prop:'stationId',title:'工位代码'},
{prop:'deviceName',title:'设备名称'},
{prop:'deviceId',title:'设备代码'},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'vendorProductSn',title:'供应商总成SN码',width:180},
],
// 工艺装备
cherysupplierproprocessequipment:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'deviceType',title:'工艺装备类型分类',type:'filter',options:EnumList.deviceType},
{prop:'deviceCode',title:'工艺装备编码'},
{prop:'deviceName',title:'工艺装备名称'},
{prop:'manufacturer',title:'生产厂家'},
{prop:'modelNumber',title:'工艺装备型号'},
{prop:'serialNumber',title:'工艺装备序列号',width:180},
{prop:'productionDate',title:'工艺装备制造日期',width:180,type:'datetime'},
{prop:'material',title:'主要材质'},
{prop:'currentLocation',title:'当前存放地点'},
{prop:'deviceStatus',title:'工艺装备状态'},
{prop:'cavityCount',title:'穴腔数量',type:'number'},
{prop:'moldSize',title:'模具尺寸规格'},
{prop:'designLifeUnits',title:'设计寿命单位'},
{prop:'designLifeValue',title:'设计寿命'},
{prop:'currentUsageCount',title:'当前剩余寿命',width:180},
{prop:'overhaulCount',title:'模具大修次数',type:'number',width:160},
{prop:'coolingChannelLayout',title:'图纸编号描述'},
{prop:'detectionAccuracy',title:'检测精度'},
{prop:'calibrationDate',title:'最近校准日期',width:180,type:'datetime'},
{prop:'calibrationDueDays',title:'校准到期天数'},
{prop:'toleranceRange',title:'允许误差范围'},
{prop:'wearThreshold',title:'磨损阈值'},
{prop:'detectionRange',title:'检测范围'},
{prop:'unitType',title:'检测单位'},
],
// 工艺
cherysupplierproprocess:[
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'techCode',title:'工艺编码'},
{prop:'techName',title:'工艺名称'},
{prop:'validPeriod',title:'有效期',width:180,type:'datetime'},
{prop:'techVersion',title:'工艺版本'},
{prop:'moldCode',title:'模具编码'},
{prop:'moldName',title:'模具名称'},
{prop:'maxProcessingCapacity',title:'最大加工能力'},
{prop:'processCode',title:'工序编码'},
{prop:'processName',title:'工序名称'},
{prop:'processOrder',title:'工序顺序号',type:'number'},
{prop:'deviceCode',title:'设备编码'},
{prop:'rhythm',title:'工序节拍',type:'number'},
{prop:'rhythmUnit',title:'节拍单位'},
],
/*无页面,供任务明细页面使用 */
// 环境业务数据
cherysupplierproenvironment:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'envIndicatorName',title:'环境指标名称',width:160},
{prop:'numValue',title:'指标实测值',width:160},
{prop:'upperLimit',title:'上限值'},
{prop:'lowerLimit',title:'下限值'},
{prop:'chineseUnit',title:'单位'},
{prop:'equipmentCode',title:'采集仪器代码',width:160},
{prop:'equipmentName',title:'采集仪器名称',width:160},
{prop:'dataCollectionPoint',title:'数据采集的点位',width:160},
{prop:'collectTime',title:'数据采集的时间',width:180},
],
// 设备OEE达成率
cherysupplierprooeeachievementrate:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'deviceId',title:'设备代码'},
{prop:'deviceName',title:'设备名称'},
{prop:'cheryProductNo',title:'奇瑞零件号'},
{prop:'cheryProductName',title:'奇瑞零件名称',width:180},
{prop:'vendorProductNo',title:'供应商总成零件号',width:180},
{prop:'vendorProductName',title:'供应商总成零件名称',width:180},
{prop:'productBatchNo',title:'生产批次号'},
{prop:'manufactureNo',title:'生产工单号'},
{prop:'rate',title:'OEE实际值'},
{prop:'rateTagValue',title:'OEE目标值'},
{prop:'workShift',title:'班次'},
{prop:'statisticalTime',title:'生产日期',width:180},
{prop:'dateTime',title:'值统计时间',width:180},
],
// OEE时间明细
cherysupplierprooeetimedetails:[
{prop:'supplierCode',title:'供应商代码'},
{prop:'supplierName',title:'供应商名称'},
{prop:'plantId',title:'工厂代码'},
{prop:'plantName',title:'工厂名称'},
{prop:'workshopId',title:'车间代码'},
{prop:'workshopName',title:'车间名称'},
{prop:'productionLineId',title:'产线代码'},
{prop:'productionLineName',title:'产线名称'},
{prop:'stationId',title:'工位代码'},
{prop:'stationName',title:'工位名称'},
{prop:'deviceId',title:'设备代码'},
{prop:'deviceName',title:'设备名称'},
{prop:'recId',title:'记录ID'},
{prop:'type',title:'大类',type:'filter',options:EnumList.OEETimeType},
{prop:'subType',title:'小类编码'},
{prop:'subTypeName',title:'小类描述'},
{prop:'startTime',title:'开始时间',width:180},
{prop:'endTime',title:'结束时间',width:180},
],
}
export default apiTableColumns

82
Web/src/utils/common/enumList.js

@ -4,6 +4,16 @@ const EnumList = {
{label:'是',value:1,type:'success'},
{label:'否',value:0,type:'danger'}
],
// 是否Y/N
whetherByYN:[
{label:'是',value:'Y',type:'success'},
{label:'否',value:'N',type:'danger'},
],
// 是否boolean
whetherBoolean:[
{label:'是',value:true,type:'success'},
{label:'否',value:false,type:'danger'}
],
// 退货类型
returnType:[
{label:'合格品',value:1},
@ -15,6 +25,16 @@ const EnumList = {
{label:'半成品',value:'半成品'},
{label:'原材料',value:'原材料'},
],
// 父件(供应商总成)类型
vendorProductType:[
{label:'成品',value:'成品'},
{label:'半成品',value:'半成品'},
],
// 子件类型
subMaterialType:[
{label:'半成品',value:'半成品'},
{label:'原材料',value:'原材料'},
],
// 库存状态
inventoryStatus:[
{label:'生产件',value:'生产件'},
@ -39,7 +59,67 @@ const EnumList = {
checkResult:[
{label:'合格',value:'OK'},
{label:'不合格',value:'NG'},
]
],
// 排产状态
planStatus:[
{label:'未生产',value:'0'},
{label:'生产中',value:'1'},
{label:'已完工',value:'2'},
{label:'已取消',value:'3'},
{label:'已终止',value:'4'},
],
// 在线检测
detectionMode:[
{label:'在生产线上进行检测',value:'inline'},
{label:'从生产线上拿下来进行检测',value:'offline'},
{label:'同时存在',value:'both'},
],
// 班次
workShift:[
{label:'白班',value:'白班'},
{label:'晚班',value:'晚班'},
{label:'中班',value:'中班'},
],
// 检测方式
checkMode:[
{label:'人工',value:'人工'},
{label:'设备',value:'设备'},
],
// 缺陷分类
defectsClass:[
{label:'外观',value:'外观'},
{label:'尺寸',value:'尺寸'},
{label:'材料',value:'材料'},
{label:'功能',value:'功能'},
{label:'性能',value:'性能'},
{label:'其他',value:'其他'},
],
// 缺陷等级
defectsLevel:[
{label:'严重',value:'1'},
{label:'一般',value:'2'},
{label:'轻微',value:'3'},
],
// 附件数据类型
attachmentType:[
{label:'产前管理',value:'1'},
{label:'人员资质',value:'2'},
{label:'监控视频',value:'3'},
],
// 工艺装备类型分类
deviceType:[
{label:'模具',value:'1'},
{label:'检具',value:'2'},
{label:'夹具',value:'3'},
],
// OEE时间明细-大类(供任务明细页面使用)
OEETimeType:[
{label:'计划工作',value:'1'},
{label:'计划停机',value:'2'},
{label:'非计划停机',value:'3'},
],
}
export default EnumList

23
Web/src/views/logisticsPlan/supplierMrpDate/index.vue

@ -0,0 +1,23 @@
<template>
<tablePage
:apiName="state.apiName"
:searchOptions="state.searchOptions"
:searchFilter="state.searchFilter"
></tablePage>
</template>
<script setup>
defineOptions({ name: 'supplierMrpDate' })
import { reactive, ref, onMounted } from 'vue'
import tablePage from '@/components/tablePage/index.vue'
const state = reactive({
apiName:'cherysuppliermrpdata',
searchFilter: {
materialCode: null
},
searchOptions:[
{type:'input',prop:'materialCode',label:'零件号'}
],
})
</script>

23
Web/src/views/logisticsPlan/supplierMrpState/index.vue

@ -0,0 +1,23 @@
<template>
<tablePage
:apiName="state.apiName"
:searchOptions="state.searchOptions"
:searchFilter="state.searchFilter"
></tablePage>
</template>
<script setup>
defineOptions({ name: 'supplierMrpState' })
import { reactive, ref, onMounted } from 'vue'
import tablePage from '@/components/tablePage/index.vue'
const state = reactive({
apiName:'cherysuppliermrp',
searchFilter: {
plantId: null
},
searchOptions:[
{type:'input',prop:'plantId',label:'工厂代码'}
],
})
</script>

23
Web/src/views/logisticsPlan/supplierProHschedul/index.vue

@ -0,0 +1,23 @@
<template>
<tablePage
:apiName="state.apiName"
:searchOptions="state.searchOptions"
:searchFilter="state.searchFilter"
></tablePage>
</template>
<script setup>
defineOptions({ name: 'supplierProHschedul' })
import { reactive, ref, onMounted } from 'vue'
import tablePage from '@/components/tablePage/index.vue'
const state = reactive({
apiName:'cherysupplierporhschedul',
searchFilter: {
productionLineId: null
},
searchOptions:[
{type:'input',prop:'productionLineId',label:'产线代码'}
],
})
</script>

2
Web/src/views/productionQuality/supplierProMaterialStock/index.vue

@ -6,7 +6,7 @@
:searchFilter="state.searchFilter"
:rightOperation="state.rightOperation"
:apiEditFormRules="state.apiEditFormRules"
:searchButtons="['search','import','export']"
:searchButtons="['search','import','export','custominvoke']"
></tablePage>
</template>

23
Web/src/views/productionQuality/supplierProScheduling/index.vue

@ -0,0 +1,23 @@
<template>
<tablePage
:apiName="state.apiName"
:searchOptions="state.searchOptions"
:searchFilter="state.searchFilter"
></tablePage>
</template>
<script setup>
defineOptions({ name: 'supplierProScheduling' })
import { reactive, ref, onMounted } from 'vue'
import tablePage from '@/components/tablePage/index.vue'
const state = reactive({
apiName:'cherysupplierproscheduling',
searchFilter: {
plantId: null
},
searchOptions:[
{type:'input',prop:'plantId',label:'工厂代码'}
],
})
</script>

34
Web/src/views/system/taskConifgure/index.vue

@ -0,0 +1,34 @@
<template>
<tablePage
:columnWidth="150"
:apiName="state.apiName"
:searchOptions="state.searchOptions"
:searchFilter="state.searchFilter"
:rightOperation="state.rightOperation"
:apiEditFormRules="state.apiEditFormRules"
></tablePage>
</template>
<script setup>
defineOptions({ name: 'taskConifgure' })
import { reactive, ref, onMounted } from 'vue'
import tablePage from '@/components/tablePage/index.vue'
const state = reactive({
apiName:'taskconifgure',
searchFilter: {
tableName: null
},
searchOptions:[
{type:'input',prop:'tableName',label:'表名'}
],
rightOperation:'apiUpdate',
apiEditFormRules:{
tableName: [{ required: true, message: '必填项', trigger: 'blur' }],
taskName: [{ required: true, message: '必填项', trigger: 'blur' }],
api: [{ required: true, message: '必填项', trigger: 'blur' }],
url: [{ required: true, message: '必填项', trigger: 'blur' }],
corn: [{ required: true, message: '必填项', trigger: 'blur' }],
}
})
</script>

57
Web/src/views/task/taskSub/index.vue

@ -1,12 +1,13 @@
<template>
<div class="taskConifgurePage">
<!-- -->
<div class="taskSubPage">
<!-- 主表 -->
<tablePage
:apiName="state.apiName"
:searchOptions="state.searchOptions"
:searchFilter="state.searchFilter"
@leftOperationHadel="leftOperationHadel"
:leftOperation="state.leftOperation"
:rightOperation="state.rightOperation"
></tablePage>
<!-- 明细抽屉 -->
@ -19,8 +20,11 @@
>
<div style="height: 100%;display: flex">
<tablePage
:apiName="state.drawerApiName"
:apiName="state.apiName"
:tableColumns="state.infoTableColumns"
:searchFilter="state.infoSearchFilter"
:hideSearch="true"
:apiType="'detailApi'"
></tablePage>
</div>
</el-drawer>
@ -29,8 +33,11 @@
<script setup>
defineOptions({ name: 'taskSub' })
import apiTableColumns from '@/utils/common/apiTableColumns'
import { ElMessageBox, ElMessage,ElTable, ElTableColumn } from 'element-plus'
import { reactive, ref, onMounted,nextTick } from 'vue'
import tablePage from '@/components/tablePage/index.vue'
import apiServeNames from '@/utils/common/apiServeNames'
const state = reactive({
apiName:'tasksub',
@ -44,26 +51,56 @@
{label:'查看详情',name:'showInfo',link:true,type:'primary'}
],
drawerShow:false,
drawerApiName:null,
// table
infoTableColumns:null,
// table
infoSearchFilter: [],
rightOperation:'apiUpdate',
})
function getApiByTableName(tableName){
let _api = null
for(let i in apiServeNames){
if(apiServeNames[i].tableName == tableName){
console.log(apiServeNames[i].tableName,tableName)
_api = i
}
}
return _api
}
function leftOperationHadel(btn,scope) {
//
if(btn.name == 'showInfo'){
// todo:
if(scope.row.uId == '1'){
state.drawerApiName = 'cherysuppliersaweek'
}else{
state.drawerApiName = 'supplierproplaning'
state.infoTableColumns = apiTableColumns[getApiByTableName(scope.row.tableName)]
if(!state.infoTableColumns){
ElMessage.error(`不支持的表名: ${scope.row.tableName}`)
return
}
state.infoSearchFilter = [
{
logic: "And",
column: 'TableName',
action: '==',
value: scope.row.tableName
},
{
logic: "And",
column: 'TaskId',
action: '==',
value: scope.row.taskId
},
]
nextTick(() => {
state.drawerShow = true
})
}
}
</script>
<style scope lang="scss">
.taskConifgurePage{
.taskSubPage{
height: 100%;
display: flex;
width:100%;

Loading…
Cancel
Save