排序与按钮权限添加

dev-scheduling
jinna 1 month ago
parent 546f33823a
commit 982c43dfa3
  1. 14
      src/views/productionSchedulingPlan/statisticalAnalysis/index.vue
  2. 48
      src/views/productionSchedulingPlan/statisticalAnalysis/production/executionProcess.vue
  3. 40
      src/views/productionSchedulingPlan/statisticalAnalysis/production/executionWorkorder.vue
  4. 66
      src/views/productionSchedulingPlan/statisticalAnalysis/production/processDeatils.vue
  5. 57
      src/views/productionSchedulingPlan/statisticalAnalysis/production/workorderDetails.vue
  6. 52
      src/views/productionSchedulingPlan/statisticalAnalysis/qualificationAnalysis.vue
  7. 93
      src/views/qualityManagement/tankSolutionSystem/info.vue
  8. 42
      src/views/qualityManagement/tankSolutionSystem/tankSolutionTaskAssignment.vue
  9. 36
      src/views/qualityManagement/tankSolutionSystem/tankSolutionTaskDispose.vue

@ -15,6 +15,7 @@
@refresh-change="refreshChange"
:summary-method="summaryMethod"
@sort-change="sortChange"
>
<template #menu-left> </template>
<template #menu-right> </template>
@ -117,7 +118,7 @@ export default {
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchMenuSpan: 18,
searchIcon: true,
searchIndex: 3,
tree: false,
@ -224,6 +225,17 @@ export default {
};
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
getRealColumnWidths() {
return new Promise(resolve => {
this.$nextTick(() => {

@ -15,6 +15,7 @@
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@sort-change="sortChange"
>
<template #menu-left> </template>
<template #menu-right> </template>
@ -129,7 +130,7 @@ export default {
label: '作业中心',
prop: 'workCenterName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
@ -137,7 +138,7 @@ export default {
prop: 'workCenterId',
search: true,
hide: true,
sortable: true,
sortable: "custom",
span: 12,
width: 120,
searchOrder: 19,
@ -163,7 +164,7 @@ export default {
label: '工艺能力',
prop: 'craftName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchOrder: 17,
},
@ -172,7 +173,7 @@ export default {
prop: 'caId',
hide: true,
search: true,
sortable: true,
sortable: "custom",
span: 12,
width: 120,
searchOrder: 17,
@ -198,7 +199,7 @@ export default {
label: '工序',
prop: 'processName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchOrder: 16,
},
@ -206,7 +207,7 @@ export default {
label: '工序',
prop: 'ppsId',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
searchOrder: 16,
@ -232,7 +233,7 @@ export default {
label: '工序执行次数',
prop: 'totalCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
width: 150,
},
@ -240,7 +241,7 @@ export default {
label: '准时偏差(±分钟)',
prop: 'interval',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
hide: true,
@ -251,49 +252,49 @@ export default {
label: '提前开工',
prop: 'earlyStartCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '准时开工',
prop: 'onTimeStartCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '延迟开工',
prop: 'delayStartCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '提前完工',
prop: 'earlyFinishCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '准时完工',
prop: 'onTimeFinishCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '延迟完工',
prop: 'delayFinishCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '工序完成时间',
prop: 'cycledate',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
type: 'date',
@ -322,6 +323,17 @@ export default {
this.onLoad(this.page, this.query);
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
onChangeData() {},
toDetail(row, type) {
row.interval = this.query.interval;
@ -443,6 +455,12 @@ export default {
if (!!params.ppsId) {
query_.ppsId = params.ppsId;
}
if(this.query.ascs){
query_.ascs = this.query.ascs;
}
if(this.query.descs){
query_.descs = this.query.descs;
}
getProcessExecutePage(page.currentPage, page.pageSize, query_).then(res => {
this.data = res.data.data.records;
this.loading = false;

@ -16,6 +16,7 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left> </template>
<template #menu-right> </template>
@ -129,7 +130,7 @@ export default {
label: '作业中心',
prop: 'workCenterName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
@ -137,7 +138,7 @@ export default {
prop: 'workCenterId',
search: true,
hide: true,
sortable: true,
sortable: "custom",
span: 12,
width: 120,
searchOrder: 19,
@ -163,7 +164,7 @@ export default {
label: '准时偏差(±分钟)',
prop: 'interval',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
hide: true,
@ -174,7 +175,7 @@ export default {
label: '车间订单数量',
prop: 'totalCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
},
@ -182,49 +183,49 @@ export default {
label: '提前开工',
prop: 'earlyStartCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '准时开工',
prop: 'onTimeStartCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '延迟开工',
prop: 'delayStartCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '提前完工',
prop: 'earlyFinishCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '准时完工',
prop: 'onTimeFinishCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '延迟完工',
prop: 'delayFinishCount',
search: false,
sortable: true,
sortable: "custom",
span: 12,
},
{
label: '订单完成时间',
prop: 'cycledate',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
type: 'date',
@ -254,6 +255,17 @@ export default {
// this.$refs.crud.refreshTable();
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
onChangeData() {},
toDetail(row, type) {
// console.log(909090,row, type);
@ -370,6 +382,12 @@ export default {
if (!!this.query.workCenterId) {
query_.workCenterId = this.query.workCenterId;
}
if(this.query.ascs){
query_.ascs = this.query.ascs;
}
if(this.query.descs){
query_.descs = this.query.descs;
}
getCenterExecuteList(query_).then(res => {
this.data = res.data.data;

@ -15,6 +15,7 @@
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@sort-change="sortChange"
>
<template #menu-left> </template>
<template #menu-right> </template>
@ -91,7 +92,7 @@ export default {
label: '作业中心',
prop: 'workCenterName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
width: 150,
},
@ -100,7 +101,7 @@ export default {
prop: 'workCenterId',
search: true,
hide: true,
sortable: true,
sortable: "custom",
span: 12,
width: 120,
searchOrder: 15,
@ -127,7 +128,7 @@ export default {
label: '车间订单号',
prop: 'woCode',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -137,7 +138,7 @@ export default {
label: '零件号',
prop: 'partCode',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -147,7 +148,7 @@ export default {
label: '零件名称',
prop: 'partName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -156,7 +157,7 @@ export default {
label: '批次号',
prop: 'batchNo',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -166,7 +167,7 @@ export default {
label: '流程卡号',
prop: 'cardNo',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -176,7 +177,7 @@ export default {
label: '工艺能力',
prop: 'craftName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -185,7 +186,7 @@ export default {
prop: 'caId',
hide: true,
search: true,
sortable: true,
sortable: "custom",
span: 12,
width: 120,
searchOrder: 13,
@ -211,7 +212,7 @@ export default {
label: '工序',
prop: 'processName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -219,7 +220,7 @@ export default {
label: '工序',
prop: 'ppsId',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
searchOrder: 12,
@ -246,7 +247,7 @@ export default {
label: '加工班组',
prop: 'teamName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -256,7 +257,7 @@ export default {
label: '班组',
prop: 'makeTeam',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
searchLabelWidth: 'auto',
@ -274,7 +275,7 @@ export default {
label: '计划开始时间',
prop: 'planStartTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -283,7 +284,7 @@ export default {
label: '实际开始时间',
prop: 'factStartTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -292,7 +293,7 @@ export default {
label: '开工类型',
prop: 'startType',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -317,7 +318,7 @@ export default {
label: '计划完成时间',
prop: 'planEndTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -326,7 +327,7 @@ export default {
label: '实际完成时间',
prop: 'factEndTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -335,7 +336,7 @@ export default {
label: '完工类型',
prop: 'endType',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -360,7 +361,7 @@ export default {
label: '计划时长(分钟)',
prop: 'planDurationMinute',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 180,
@ -369,7 +370,7 @@ export default {
label: '实际时长(分钟)',
prop: 'factDurationMinute',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 180,
@ -378,7 +379,7 @@ export default {
label: '偏差时长(分钟)',
prop: 'biasDurationMinute',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 180,
@ -388,7 +389,7 @@ export default {
label: '工序完成时间',
prop: 'cycledate',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
type: 'date',
@ -404,7 +405,7 @@ export default {
label: '准时偏差(±分钟)',
prop: 'interval',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
hide: true,
@ -464,6 +465,17 @@ export default {
this.onLoad(this.page,this.query);
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
onChangeData() {},
formatDate(date) {
const year = date.getFullYear();
@ -601,6 +613,12 @@ export default {
if (!!this.query.makeTeam) {
query_.makeTeam = this.query.makeTeam;
}
if(this.query.ascs){
query_.ascs = this.query.ascs
}
if(this.query.descs){
query_.descs = this.query.descs
}
getProcessExecuteDetailPage(page.currentPage, page.pageSize, query_).then(res => {
this.data = res.data.data.records;
this.loading = false;

@ -15,6 +15,7 @@
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@sort-change="sortChange"
>
<template #menu-left> </template>
<template #menu-right> </template>
@ -91,7 +92,7 @@ export default {
label: '作业中心',
prop: 'workCenterName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
width: 150,
},
@ -100,7 +101,7 @@ export default {
prop: 'workCenterId',
search: true,
hide: true,
sortable: true,
sortable: "custom",
span: 12,
width: 120,
searchOrder: 17,
@ -128,7 +129,7 @@ export default {
label: '车间订单号',
prop: 'woCode',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -138,7 +139,7 @@ export default {
label: '零件号',
prop: 'partCode',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -149,7 +150,7 @@ export default {
label: '零件名称',
prop: 'partName',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -158,7 +159,7 @@ export default {
label: '批次号',
prop: 'batchNo',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -168,7 +169,7 @@ export default {
label: '流程卡号',
prop: 'cardNo',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -178,7 +179,7 @@ export default {
label: '接收时间',
prop: 'receiveTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -187,7 +188,7 @@ export default {
label: '计划开始时间',
prop: 'planStartTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -196,7 +197,7 @@ export default {
label: '实际开始时间',
prop: 'factStartTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -205,7 +206,7 @@ export default {
label: '开工类型',
prop: 'startType',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -230,7 +231,7 @@ export default {
label: '计划完成时间',
prop: 'planEndTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -239,7 +240,7 @@ export default {
label: '实际完成时间',
prop: 'factEndTime',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -248,7 +249,7 @@ export default {
label: '完工类型',
prop: 'endType',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 150,
@ -273,7 +274,7 @@ export default {
label: '计划时长(分钟)',
prop: 'planDurationMinute',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 180,
@ -282,7 +283,7 @@ export default {
label: '实际时长(分钟)',
prop: 'factDurationMinute',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 180,
@ -291,7 +292,7 @@ export default {
label: '偏差时长(分钟)',
prop: 'biasDurationMinute',
search: false,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
width: 180,
@ -301,7 +302,7 @@ export default {
label: '订单完成时间',
prop: 'cycledate',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
type: 'date',
@ -317,7 +318,7 @@ export default {
label: '准时偏差(±分钟)',
prop: 'interval',
search: true,
sortable: true,
sortable: "custom",
span: 12,
searchLabelWidth: 'auto',
hide: true,
@ -369,6 +370,17 @@ export default {
this.onLoad(this.page, this.query);
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
onChangeData() {},
formatDate(date) {
const year = date.getFullYear();
@ -494,6 +506,13 @@ export default {
if (!!params.interval) {
query_.interval = params.interval;
}
if(this.query.ascs){
query_.ascs = this.query.ascs;
}
if(this.query.descs){
query_.descs = this.query.descs;
}
getOrderExecuteDetailPage(page.currentPage, page.pageSize, query_).then(res => {
this.data = res.data.data.records;

@ -16,6 +16,7 @@
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@sort-change="sortChange"
>
<template #menu-left> </template>
<template #menu-right> </template>
@ -90,7 +91,7 @@ export default {
label: '车间订单号',
prop: 'woCode',
search: true,
sortable: true,
sortable: "custom",
width: 180,
span: 12,
searchOrder: 18,
@ -100,7 +101,7 @@ export default {
label: '零件号',
prop: 'partCode',
search: true,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 19,
@ -109,7 +110,7 @@ export default {
label: '零件名称',
prop: 'partName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -117,7 +118,7 @@ export default {
label: '批次号',
prop: 'batchNo',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -125,7 +126,7 @@ export default {
label: '流程卡号',
prop: 'cardNo',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -133,7 +134,7 @@ export default {
label: '质量等级',
prop: 'productIdent',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 13,
@ -142,7 +143,7 @@ export default {
label: '质量等级',
prop: 'productIdentId',
search: true,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 13,
@ -161,7 +162,7 @@ export default {
label: '工序',
prop: 'processName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 16,
@ -170,7 +171,7 @@ export default {
label: '工序',
prop: 'processId',
search: true,
sortable: true,
sortable: "custom",
hide: true,
span: 12,
searchOrder: 16,
@ -196,7 +197,7 @@ export default {
label: '工艺能力',
prop: 'craftName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 17,
@ -206,7 +207,7 @@ export default {
prop: 'craftId',
hide: true,
search: true,
sortable: true,
sortable: "custom",
span: 12,
width: 120,
searchOrder: 17,
@ -232,7 +233,7 @@ export default {
label: '资质要求',
prop: 'certificateName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 15,
@ -241,7 +242,7 @@ export default {
label: '资质要求',
prop: 'certificateId',
search: true,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 15,
@ -260,7 +261,7 @@ export default {
label: '作业中心',
prop: 'workCenterName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -268,7 +269,7 @@ export default {
label: '加工班组',
prop: 'teamName',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -276,7 +277,7 @@ export default {
label: '计划加工人',
prop: 'teamMembers',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -284,7 +285,7 @@ export default {
label: '实际加工人',
prop: 'factTeamMembers',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -292,7 +293,7 @@ export default {
label: '是否按资质加工',
prop: 'isQua',
search: true,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
searchOrder: 14,
@ -313,7 +314,7 @@ export default {
label: '工序完成时间',
prop: 'factEndTime',
search: false,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
},
@ -322,7 +323,7 @@ export default {
prop: 'cycledate',
hide: true,
search: true,
sortable: true,
sortable: "custom",
width: 150,
span: 12,
type: 'date',
@ -350,6 +351,17 @@ export default {
this.onLoad(this.page, this.query);
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
onChangeData(val, type) {
if (val && type == 'craftId') {
this.query.craftName = val.caName;

@ -3,14 +3,16 @@
<avue-crud :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
@refresh-change="refreshChange" @on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left>
<el-button type="primary" @click="addInfo()">新增
<el-button type="primary" @click="addInfo()" v-if="permission.tankInfo_add">新增
</el-button>
<el-button type="danger" @click="handleDelete">
<el-button type="danger" @click="handleDelete" v-if="permission.tankInfo_delete">
</el-button>
<el-button type="primary" @click="handleSetting">批量设置
<el-button type="primary" @click="handleSetting" v-if="permission.tankInfo_batchSet">批量设置
</el-button>
</template>
<template #jobType="scope">
@ -27,15 +29,15 @@
<span v-if="scope.row.phType == 2">{{scope.row.phRangeLeft}} ~ {{scope.row.phRangeRight}}</span>
</template>
<template #menu-right>
<el-button type="primary" @click="handleImport">导入
<el-button type="primary" @click="handleImport" v-if="permission.tankInfo_import">导入
</el-button>
</template>
<template #menu="{ row }">
<el-button type="text" @click="handleDetail(row)">详情</el-button>
<el-button type="text" @click="handleEdit(row)">修改</el-button>
<el-button type="text" @click="rowDel(row)">删除</el-button>
<el-button type="text" @click="handleDetail(row)" v-if="permission.tankInfo_detail">详情</el-button>
<el-button type="text" @click="handleEdit(row)" v-if="permission.tankInfo_edit">修改</el-button>
<el-button type="text" @click="rowDel(row)" v-if="permission.tankInfo_delete">删除</el-button>
<el-button type="primary" text plain style="border: 0; background-color: transparent !important"
@click.stop="handleIssue(row)">下发</el-button>
@click.stop="handleIssue(row)" v-if="permission.tankInfo_issue">下发</el-button>
</template>
</avue-crud>
@ -96,6 +98,7 @@ import addEditInfoDialog from './components/addEditInfoDialog.vue'
import basicImport from '@/components/basic-import/main.vue'
// import calculateNeedValuesByFormula fro/m '@/utils/calculateNeedValuesByFormula'
import {getList,getDetail,deleteInfo,getManager,getPerson,getTeam,setBatch,getWorkCenter} from '@/api/tankSolutionSystem/info'
import { mapGetters } from 'vuex';
export default {
components: { dispatcherDialog, addEditInfoDialog,basicImport },
data() {
@ -108,6 +111,7 @@ export default {
'1', '2', '3', '4', '5', '6',
'7', '8', '9', '10', '11', '12', , '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'
],
query:{},
isShowImport:false,
excelBox: false,
loading: false,
@ -155,7 +159,7 @@ export default {
index: false,
showOverflowTooltip: true,
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchLabelWidth: 'auto',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'center',
@ -167,7 +171,7 @@ export default {
label: '作业中心',
prop: 'wcName',
type: 'select',
sortable: true,
sortable: "custom",
width: 150,
filterable: true,
span: 8,
@ -190,7 +194,7 @@ export default {
prop: 'workTankId',
search: true,
type: 'select',
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -212,7 +216,7 @@ export default {
prop: 'drugName',
search: false,
type: 'select',
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -232,7 +236,7 @@ export default {
prop: 'drugMaterialCode',
search: false,
type: 'select',
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -260,7 +264,7 @@ export default {
prop: 'drugMaterialName',
disabled: true,
search: false,
sortable: true,
sortable: "custom",
width: 150,
filter: true,
span: 8,
@ -276,7 +280,7 @@ export default {
label: '分析项目',
prop: 'testElement',
search: true,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -292,7 +296,7 @@ export default {
label: '规范上下限',
prop: 'proContent',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
hide: true,
@ -309,7 +313,7 @@ export default {
label: '规范上限',
prop: 'normValueMax',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
display: false,
@ -327,7 +331,7 @@ export default {
label: '规范下限',
prop: 'normValueMin',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
display: false,
@ -345,7 +349,7 @@ export default {
label: '目标上下限',
prop: 'targetLimit',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
hide: true,
@ -362,7 +366,7 @@ export default {
label: '目标上限',
prop: 'targetValueMax',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
addDisplay: false,
@ -381,7 +385,7 @@ export default {
label: '目标下限',
prop: 'targetValueMin',
search: false,
sortable: true,
sortable: "custom",
addDisplay: false,
viewDisplay: false,
editDisplay: false,
@ -400,7 +404,7 @@ export default {
label: '目标值',
prop: 'targetValue',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -416,7 +420,7 @@ export default {
label: '体积',
prop: 'volume',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -426,7 +430,7 @@ export default {
label: '测量值单位',
prop: 'testUnit',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -436,7 +440,7 @@ export default {
label: '加药量单位',
prop: 'addUnit',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -446,7 +450,7 @@ export default {
label: '添加点',
prop: 'fillingLocation',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -457,7 +461,7 @@ export default {
prop: 'addDrugFormulaName',
search: false,
type: 'select',
sortable: true,
sortable: "custom",
width: 160,
filter: true,
span: 8,
@ -492,7 +496,7 @@ export default {
label: '化验频率',
prop: 'jobType',
search: false,
sortable: true,
sortable: "custom",
addDisplay: false,
viewDisplay: false,
editDisplay: false,
@ -511,7 +515,7 @@ export default {
label: '测试周期(天)',
prop: 'analysisCycle',
search: false,
sortable: true,
sortable: "custom",
type: 'date',
width: 140,
filter: true,
@ -528,7 +532,7 @@ export default {
label: '有效期',
prop: 'validDate',
search: false,
sortable: true,
sortable: "custom",
type: 'date',
width: 120,
filter: true,
@ -546,7 +550,7 @@ export default {
label: '上次化验日期',
prop: 'lastTest',
search: false,
sortable: true,
sortable: "custom",
addDisplay: false,
viewDisplay: false,
editDisplay: false,
@ -566,7 +570,7 @@ export default {
prop: 'testUserRealName',
type: 'select',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -583,7 +587,7 @@ export default {
prop: 'processUserRealName',
type: 'select',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -600,7 +604,7 @@ export default {
prop: 'tsName',
type: 'select',
search: false,
sortable: true,
sortable: "custom",
width: 120,
filter: true,
span: 8,
@ -616,7 +620,7 @@ export default {
label: '更新时间',
prop: 'updateTime',
search: false,
sortable: true,
sortable: "custom",
width: 160,
addDisplay: false,
viewDisplay: false,
@ -635,7 +639,7 @@ export default {
label: '分析周期',
prop: 'assayCycle1',
search: false,
sortable: true,
sortable: "custom",
hide: true,
width: 120,
filter: true,
@ -706,7 +710,21 @@ export default {
this.getPersonList()
this.getWorkCenterList()
},
computed: {
...mapGetters(['permission']),
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
//
getManagerList(){
getManager().then(res =>{
@ -853,6 +871,7 @@ export default {
getList({
current:this.page.currentPage,
size:this.page.pageSize,
...this.query,
workCenterId:this.search.wcName ? this.search.wcName : '',
workTankId:this.search.workTankId ? this.search.workTankId : '',
testElement:this.search.testElement ? this.search.testElement : ''

@ -3,19 +3,21 @@
<avue-crud :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud"
@row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" @search-change="searchChange"
@search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
@size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
@size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left>
<el-button @click="handleIssue" type="primary">
<el-button @click="handleIssue" type="primary" v-if="permission.tankSolutionTaskAssignment_batchIssue">
批量下发
</el-button>
<el-button type="primary" @click="handleClose">批量关闭
<el-button type="primary" @click="handleClose" v-if="permission.tankSolutionTaskAssignment_batchClose">批量关闭
</el-button>
</template>
<template #menu="scope">
<el-button type="text" @click="issueRow(scope.row)">
<el-button type="text" @click="issueRow(scope.row)" v-if="permission.tankSolutionTaskAssignment_batchIssue">
下发
</el-button>
<el-button type="text" @click="closeRow(scope.row)">关闭</el-button>
<el-button type="text" @click="closeRow(scope.row)" v-if="permission.tankSolutionTaskAssignment_batchClose">关闭</el-button>
</template>
<template #userId="{ row }">
{{ row.testMan.userName }}
@ -45,6 +47,7 @@
<script>
import {getList,issueTask,closeTask} from '@/api/tankSolutionSystem/tankSolutionTaskAssignment'
import { getPerson } from '@/api/tankSolutionSystem/info'
import { mapGetters } from 'vuex';
export default {
data() {
return {
@ -94,6 +97,7 @@ export default {
height: 'auto',
calcHeight: 32,
searchLabelPosition: 'left',
searchLabelWidth: 'auto',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
@ -108,7 +112,7 @@ export default {
label: '任务编号',
prop: 'code',
search: false,
sortable: true,
sortable: "custom",
filter: true,
addDisplay: false,
editDisplay: false,
@ -125,7 +129,7 @@ export default {
{
label: '作业中心',
prop: 'wcName',
sortable: true,
sortable: "custom",
filter: true,
span: 24,
search: true,
@ -148,7 +152,7 @@ export default {
label: '槽号',
prop: 'workTankName',
search: true,
sortable: true,
sortable: "custom",
filter: true,
hide: true,
span: 24,
@ -172,7 +176,7 @@ export default {
prop: 'testElement',
type: 'textarea',
search: true,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
rules: [
@ -188,7 +192,7 @@ export default {
prop: 'testUserId',
type: 'switch',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
},
@ -196,7 +200,7 @@ export default {
label: '任务生成方式',
prop: 'fromType',
search: false,
sortable: true,
sortable: "custom",
filter: true,
editDisplay: false,
addDisplay: false,
@ -213,7 +217,7 @@ export default {
label: '任务生成时间',
prop: 'createTime',
search: false,
sortable: true,
sortable: "custom",
editDisplay: false,
filter: true,
addDisplay: false,
@ -233,10 +237,24 @@ export default {
rowId:''
}
},
computed: {
...mapGetters(['permission']),
},
mounted() {
this.getPersonList()
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
getPersonList(){
getPerson().then(res =>{
this.userData = res.data.data

@ -3,16 +3,18 @@
<avue-crud :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud"
@row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" @search-change="searchChange"
@search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
@size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
@size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left>
<el-button type="primary" @click="batchSet()">批量填报</el-button>
<el-button type="primary" @click="checkFn()">审核</el-button>
<el-button type="primary" @click="getMedicineFn()">领药</el-button>
<el-button type="primary" @click="batchSet()" v-if="permission.tankSolutionTaskDispose_batchFill">批量填报</el-button>
<el-button type="primary" @click="checkFn()" v-if="permission.tankSolutionTaskDispose_check">审核</el-button>
<el-button type="primary" @click="getMedicineFn()" v-if="permission.tankSolutionTaskDispose_medicine">领药</el-button>
</template>
<template #menu="scope">
<el-button type="text" @click="handleView(scope.row, 'view')">详情</el-button>
<el-button type="text" @click="handleView(scope.row, 'view')" v-if="permission.tankSolutionTaskDispose_detail">详情</el-button>
<el-button type="text" @click="catchInfoFn(scope.row, 'add')"
v-show="scope.row.status == 2 || scope.row.status == 4">
v-show="(scope.row.status == 2 || scope.row.status == 4) && permission.tankSolutionTaskDispose_error">
异常
</el-button>
<!-- <el-button type="text" @click="handleView(scope.row, 'add')"
@ -23,12 +25,12 @@
@click="handleView(scope.row, 'drug')">领药</el-button> -->
<!-- <el-button type="text" v-show="scope.row.status == 2"
@click="checkFn(scope.row, 'check')">审核</el-button> -->
<el-button type="text" v-show="scope.row.status == 1"
<el-button type="text" v-show="scope.row.status == 1 && permission.tankSolutionTaskDispose_receive"
@click="receiveFn(scope.row, 'receive')">接收</el-button>
<!-- 组长可以转派 -->
<el-button type="text" v-show="scope.row.status == 1"
<el-button type="text" v-show="scope.row.status == 1 && permission.tankSolutionTaskDispose_redeploy"
@click="batchTestFn(scope.row, 'receive')">转派</el-button>
<el-button type="text" v-show="scope.row.status == 6"
<el-button type="text" v-show="scope.row.status == 6 && permission.tankSolutionTaskDispose_withdraw"
@click="revocationReview(scope.row, 'receive')">撤回</el-button>
</template>
@ -92,6 +94,7 @@ import checkDialog from './components/checkDialog.vue'
import getMedicineDialog from './components/getMedicineDialog.vue'
import catchInfoDialog from './components/catchInfoDialog.vue'
import {getDealList,receiveTask,revokeDrug} from '@/api/tankSolutionSystem/tankSolutionTaskAssignment'
import { mapGetters } from 'vuex';
export default {
components: {
disposeDialog,
@ -513,6 +516,9 @@ export default {
catchInfoOpen:false,//
}
},
computed: {
...mapGetters(['permission']),
},
created() {
// state id
const id = history.state?.id;
@ -530,6 +536,17 @@ export default {
},
methods: {
//
sortChange({ prop, order }){
this.query.descs = undefined;
this.query.ascs = undefined;
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase()
const orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: orderByField;
this.onLoad(this.page, this.query);
},
//
catchInfoFn(row){
this.rowId = row.id
@ -744,6 +761,7 @@ export default {
getDealList({
current: page?.currentPage || this.page.currentPage,
size: page?.pageSize || this.page.pageSize,
...this.query,
status: params?.statusValue || this.search.statusValue,
workCenterId: params?.workCenterId || this.search.workCenterId,
id: params?.id || this.taskId, // id

Loading…
Cancel
Save