按钮权限及缺陷修改

dev-scheduling
jinna 1 month ago
parent d38ea6ed67
commit 8fd0a46692
  1. 17
      src/views/costManagement/components/maintenanceCost.vue
  2. 13
      src/views/costManagement/components/materialMaintenance.vue
  3. 16
      src/views/costManagement/components/processMaintenance.vue
  4. 22
      src/views/costStatistics/index.vue
  5. 103
      src/views/exemption/components/addDialog.vue
  6. 37
      src/views/exemption/components/checkDialog.vue
  7. 2
      src/views/exemption/index.vue
  8. 68
      src/views/productionSchedulingPlan/basic/equipmentCapacity.vue
  9. 54
      src/views/productionSchedulingPlan/basic/inspectionHours.vue
  10. 118
      src/views/productionSchedulingPlan/basic/nonSameFurnace.vue
  11. 63
      src/views/productionSchedulingPlan/basic/personnelCapacity.vue
  12. 53
      src/views/productionSchedulingPlan/basic/principalProducer.vue
  13. 2
      src/views/qualityManagement/tankSolutionSystem/info.vue
  14. 10
      src/views/safetyManagement/wastewater/components/meterParameter.vue

@ -147,9 +147,14 @@ export default {
type:res.data.data.type, type:res.data.data.type,
totalFee:res.data.data.totalFee, totalFee:res.data.data.totalFee,
} }
this.tableData = res.data.data.subjectFeeDetailList this.tableData = res.data.data.subjectFeeDetailList
if(res.data.data.subjectFeeDetailList[0].workCenterCode == ''){
this.getWorkCenterData()
}else{
this.loading = false this.loading = false
} }
}
}) })
}, },
changeMonth(){ changeMonth(){
@ -179,14 +184,26 @@ export default {
getWorkCenterData(){ getWorkCenterData(){
this.loading = true this.loading = true
getWorkCenter().then(res =>{ getWorkCenter().then(res =>{
if(this.tableData.length == 0){
res.data.data.map(item =>{ res.data.data.map(item =>{
this.tableData.push({ this.tableData.push({
workCenterId:item.id, workCenterId:item.id,
workCenterName:item.wcName, workCenterName:item.wcName,
workCenterCode:item.wcCode,
rate: this.title == '维护' ? 0 : null, rate: this.title == '维护' ? 0 : null,
fee:this.title == '维护' ? 0 : null, fee:this.title == '维护' ? 0 : null,
}) })
}) })
}else{
res.data.data.map(item =>{
this.tableData.map(item1 =>{
if(item.id == item1.workCenterId){
item1.workCenterCode = item.wcCode
}
})
})
}
this.loading = false this.loading = false
}) })
}, },

@ -58,7 +58,9 @@ export default {
isShowImport:false, isShowImport:false,
data:[], data:[],
form:{}, form:{},
query:{}, query:{
descs:"update_time"
},
page:{ page:{
pageSize:10, pageSize:10,
currentPage:1, currentPage:1,
@ -175,13 +177,18 @@ export default {
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
}, },
searchChange(params, done){ searchChange(params, done){
this.query = params; this.query = {
...params,
descs:"update_time"
};
this.page.currentPage = 1 this.page.currentPage = 1
this.onLoad() this.onLoad()
done() done()
}, },
searchReset(){ searchReset(){
this.query = {} this.query = {
descs:"update_time"
}
this.onLoad() this.onLoad()
}, },
selectionChange(list){ selectionChange(list){

@ -83,7 +83,9 @@ export default {
moldAddMore:false, moldAddMore:false,
loading:false, loading:false,
data:[], data:[],
query:{}, query:{
descs:"update_time"
},
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
@ -250,7 +252,8 @@ export default {
// //
this.query.orderByField = undefined; this.query.orderByField = undefined;
// this.query.isAsc = undefined; // this.query.isAsc = undefined;
this.query.asc = undefined; this.query.ascs = undefined;
this.query.descs = orderByField;
} else { } else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase(); const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){ if(order === 'ascending'){
@ -271,13 +274,18 @@ export default {
this.isShowImport = true this.isShowImport = true
}, },
searchChange(params, done){ searchChange(params, done){
this.query = params; this.query = {
...params,
descs:"update_time"
};
this.page.currentPage = 1 this.page.currentPage = 1
this.onLoad() this.onLoad()
done() done()
}, },
searchReset(){ searchReset(){
this.query = {} this.query = {
descs:"update_time"
}
this.onLoad() this.onLoad()
}, },
selectionChange(list){ selectionChange(list){

@ -10,6 +10,7 @@
:data="data" :data="data"
v-model="form" v-model="form"
v-model:page="page" v-model:page="page"
v-model:search="searchForm"
ref="crud" ref="crud"
@search-change="searchChange" @search-change="searchChange"
@search-reset="searchReset" @search-reset="searchReset"
@ -87,6 +88,9 @@ export default {
query:{ query:{
ascs:'work_center_code' ascs:'work_center_code'
}, },
searchForm:{
// month:
},
page:{ page:{
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
@ -236,12 +240,12 @@ export default {
width:120, width:120,
overHidden: true, overHidden: true,
}, },
{ // {
label:"更新人", // label:"",
sortable: 'custom', // sortable: 'custom',
prop:"updateUserName", // prop:"updateUserName",
width: 80, // width: 80,
}, // },
{ {
sortable: 'custom', sortable: 'custom',
label:"更新时间", label:"更新时间",
@ -661,17 +665,17 @@ export default {
height: 100% !important; height: 100% !important;
} }
::v-deep .el-table__row.current-row { ::v-deep .el-table__row.current-row {
background-color: yellow !important; /* 这里替换为你想要的颜色,例如浅蓝色 */ background-color: #fbfb9d !important; /* 这里替换为你想要的颜色,例如浅蓝色 */
} }
// 2. () // 2. ()
// //
::v-deep .el-table__row.current-row:hover > td { ::v-deep .el-table__row.current-row:hover > td {
background-color: yellow !important; /* 比选中色稍深一点的颜色 */ background-color: #fbfb9d !important; /* 比选中色稍深一点的颜色 */
} }
// 3. () // 3. ()
::v-deep .el-table__row.current-row td { ::v-deep .el-table__row.current-row td {
background-color: yellow !important; background-color: #fbfb9d !important;
} }
// //
::v-deep .high_row { ::v-deep .high_row {

@ -1,11 +1,13 @@
<template> <template>
<div class="exemption_dialog">
<el-dialog <el-dialog
:title="infoTitle" :title="infoTitle"
append-to-body
:modelValue="openShow" :modelValue="openShow"
width="30%" width="70%"
@close="closeDialog" @close="closeDialog"
custom-class="my-custom-dialog"
> >
<!-- custom-class="exemption_dialog" -->
<avue-form <avue-form
ref="form" ref="form"
:option="option" :option="option"
@ -13,8 +15,27 @@
:upload-after="uploadAfter" :upload-after="uploadAfter"
:upload-exceed="uploadExceed" :upload-exceed="uploadExceed"
:upload-delete="uploadDelete" :upload-delete="uploadDelete"
></avue-form> >
<template #reportUserId="{type,disabled}">
<jhSelect
:value="formData.reportUserId"
@input="val => (formData.reportUserId = val)"
placeholder="请搜索选择"
api-url="/blade-system/user/page"
echo-api="/blade-system/user/page"
echoParamsKey="ids"
echo-method="get"
api-method="get"
list-key="records"
total-key="total"
label-key="realName"
value-key="id"
search-key="id"
:debounce-time="500"
@change="handleUserChange"
/>
</template>
</avue-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="closeDialog"> </el-button> <el-button @click="closeDialog"> </el-button>
@ -22,6 +43,7 @@
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
</div>
</template> </template>
<script> <script>
import { saveItem, updateItem, getPostItem } from '@/api/exemption/exemption'; import { saveItem, updateItem, getPostItem } from '@/api/exemption/exemption';
@ -52,6 +74,7 @@ export default {
submitBtn: false, submitBtn: false,
emptyBtn: false, emptyBtn: false,
labelWidth: 100, labelWidth: 100,
column: [ column: [
{ {
label: '工艺员', label: '工艺员',
@ -59,17 +82,18 @@ export default {
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,
span:24, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
type: 'select', type: 'select',
dicUrl: '/blade-system/user/page?size=999999&current=1', // dicUrl: '/blade-system/user/page?size=999999&current=1',
dicUrl:'/blade-system/user/list-all-by-role-alias?roleAlias=sj_craft,rb_craft',
filterable: true, filterable: true,
searchLabelWidth: 50, searchLabelWidth: 50,
props: { props: {
label: 'realName', label: 'realName',
value: 'id', value: 'id',
res: 'data.records', // res: 'data.records',
}, },
change: (value) => { change: (value) => {
this.handleProcessUserChange(value); this.handleProcessUserChange(value);
@ -89,18 +113,18 @@ export default {
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
type: 'select', type: 'select',
dicUrl: '/blade-system/user/page?size=999999&current=1', // dicUrl: '/blade-system/user/page?size=999999&current=1',
filterable: true, // filterable: true,
searchLabelWidth: 50, // searchLabelWidth: 50,
props: { // props: {
label: 'realName', // label: 'realName',
value: 'id', // value: 'id',
res: 'data.records', // res: 'data.records',
}, // },
rules: [ rules: [
{ {
required: true, required: true,
@ -108,15 +132,15 @@ export default {
trigger: 'change', trigger: 'change',
}, },
], ],
change: (value) => { // change: (value) => {
console.log('value--------------------',value) // console.log('value--------------------',value)
this.handleReportUserChange(value); // this.handleReportUserChange(value);
}, // },
}, },
{ {
label: '岗位', label: '岗位',
prop: 'postName', prop: 'postName',
span: 24, span: 12,
// disabled: true, // disabled: true,
rules: [{ required: false, message: '请输入岗位', trigger: 'blur' }], rules: [{ required: false, message: '请输入岗位', trigger: 'blur' }],
}, },
@ -124,46 +148,46 @@ export default {
label: '发生时间', label: '发生时间',
prop: 'happenDate', prop: 'happenDate',
type: 'date', type: 'date',
span: 24, span: 12,
rules: [{ required: true, message: '请选择发生时间', trigger: 'change' }], rules: [{ required: true, message: '请选择发生时间', trigger: 'change' }],
}, },
{ {
label: '免责问题描述', label: '免责问题描述',
prop: 'notes', prop: 'notes',
type: 'textarea', type: 'textarea',
rows: 3, rows: 2,
span: 24, span: 12,
rules: [{ required: true, message: '请输入免责问题描述', trigger: 'blur' }], rules: [{ required: true, message: '请输入免责问题描述', trigger: 'blur' }],
}, },
{ {
label: '原因', label: '原因',
prop: 'reason', prop: 'reason',
type: 'textarea', type: 'textarea',
rows: 3, rows: 2,
span: 24, span: 12,
rules: [{ required: true, message: '请输入原因', trigger: 'blur' }], rules: [{ required: true, message: '请输入原因', trigger: 'blur' }],
}, },
{ {
label: '措施', label: '措施',
prop: 'measure', prop: 'measure',
type: 'textarea', type: 'textarea',
rows: 3, rows: 2,
span: 24, span: 12,
rules: [{ required: true, message: '请输入措施', trigger: 'blur' }], rules: [{ required: true, message: '请输入措施', trigger: 'blur' }],
}, },
{ {
label: '免责理由', label: '免责理由',
prop: 'raiseHandReason', prop: 'raiseHandReason',
type: 'textarea', type: 'textarea',
rows: 3, rows: 2,
span: 24, span: 12,
rules: [{ required: true, message: '请输入免责理由', trigger: 'blur' }], rules: [{ required: true, message: '请输入免责理由', trigger: 'blur' }],
}, },
{ {
label: '免责金额', label: '免责金额',
prop: 'amount', prop: 'amount',
type: 'number', type: 'number',
span: 24, span: 12,
rules: [{ required: true, message: '请输入免责金额', trigger: 'blur' }], rules: [{ required: true, message: '请输入免责金额', trigger: 'blur' }],
}, },
@ -172,7 +196,7 @@ export default {
prop: 'fileUrl', prop: 'fileUrl',
type: 'upload', type: 'upload',
multiple: true, multiple: true,
span: 24, span: 12,
limit: 1, limit: 1,
propsHttp: { propsHttp: {
res: 'data', res: 'data',
@ -216,6 +240,9 @@ export default {
}, },
}, },
methods: { methods: {
handleUserChange(value,item) {
this.formData.postName = item.postName == '暂未分配' ? '' : item.postName
},
uploadDelete(file, column) { uploadDelete(file, column) {
console.log('uploadDelete', file, column); console.log('uploadDelete', file, column);
this.attachLink = ''; this.attachLink = '';
@ -346,4 +373,14 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped></style>
<style lang="scss">
.exemption_dialog{
.el-dialog__body{
overflow: hidden !important;
}
}
// ::v-deep(.my-custom-dialog .el-dialog__body){
// overflow: hidden !important;
// }
</style>

@ -1,6 +1,11 @@
<template> <template>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog"> <el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form ref="form" :option="option" v-model="form"></avue-form> <avue-form ref="form" :option="option" v-model="form">
<!-- <template #nextApprovalUser="{type,disabled}">
<el-select style="width:100%;"></el-select>
</template> -->
</avue-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
@ -31,7 +36,7 @@ export default {
option: { option: {
submitBtn: false, submitBtn: false,
emptyBtn: false, emptyBtn: false,
labelWidth: 100, labelWidth: 110,
column: [ column: [
{ {
label: '审批结果', label: '审批结果',
@ -50,6 +55,11 @@ export default {
// type: 'select', // type: 'select',
type: 'textarea', type: 'textarea',
span: 24, span: 24,
props: {
label: 'realName',
value: 'id',
// res: 'data.records',
},
// dicData: [ // dicData: [
// { // {
// label: '', // label: '',
@ -61,12 +71,35 @@ export default {
// } // }
// ] // ]
}, },
{
label:"下一节点审批人",
prop: 'nextApprovalUser',
span: 24,
type: 'select',
dicUrl:"",
display:true,
props: {
label: 'realName',
value: 'id',
// res: 'data.records',
},
rules: [{ required: true, message: '请选择下一节点审批人', trigger: 'blur' }],
}
], ],
}, },
}; };
}, },
mounted() { mounted() {
this.openShow = this.showDialog; this.openShow = this.showDialog;
if(this.rowItem.status == 1){
this.option.column.find(item => item.prop == 'nextApprovalUser').display = true
this.option.column.find(item => item.prop == 'nextApprovalUser').dicUrl = "/blade-system/user/list-all-by-role-alias?roleAlias=supplier_quality_engineer,quality_engineer"
}else if(this.rowItem.status == 2){
this.option.column.find(item => item.prop == 'nextApprovalUser').display = true
this.option.column.find(item => item.prop == 'nextApprovalUser').dicUrl = "/blade-system/user/list-all-by-role-alias?roleAlias=plant_manager,deputy_plant_manager"
}else if(this.rowItem.status == 3){
this.option.column.find(item => item.prop == 'nextApprovalUser').display = false
}
}, },
methods: { methods: {
closeDialog() { closeDialog() {

@ -179,6 +179,7 @@ export default {
sortable: true, sortable: true,
span: 12, span: 12,
searchLabelWidth:100, searchLabelWidth:100,
width:120,
}, },
{ {
label: '原因', label: '原因',
@ -409,4 +410,3 @@ export default {
}, },
}; };
</script> </script>
d

@ -19,13 +19,14 @@
@on-load="onLoad" @on-load="onLoad"
:before-open="beforeOpen" :before-open="beforeOpen"
:span-method="spanMethod" :span-method="spanMethod"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd" v-if="permission.equipmentCapacity_add">新增</el-button>
</template> </template>
<template #menu-right> </template> <template #menu-right> </template>
<template #menu="{ row }"> <template #menu="{ row }">
<el-button type="text" @click="handleEdit(row)">修改</el-button> <el-button type="text" @click="handleEdit(row)" v-if="permission.equipmentCapacity_edit">修改</el-button>
</template> </template>
<template #standardProcessAbility="scope"> <template #standardProcessAbility="scope">
@ -64,6 +65,7 @@ import {
updateEquipAbility, updateEquipAbility,
} from '@/api/productionSchedulingPlan/basic'; } from '@/api/productionSchedulingPlan/basic';
import addEquipment from './components/addEquipment.vue'; import addEquipment from './components/addEquipment.vue';
import { mapGetters } from 'vuex';
import { ElButton } from 'element-plus'; import { ElButton } from 'element-plus';
export default { export default {
components: { components: {
@ -97,7 +99,7 @@ export default {
addBtn: false, addBtn: false,
editBtn: false, editBtn: false,
viewBtn: false, viewBtn: false,
delBtn: true, delBtn: false,
editBtnText: '修改', editBtnText: '修改',
labelWidth: 120, labelWidth: 120,
menuWidth: 120, menuWidth: 120,
@ -126,7 +128,7 @@ export default {
label: '作业中心', label: '作业中心',
prop: 'workCenterName', prop: 'workCenterName',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
display: false, display: false,
width: 120, width: 120,
@ -135,7 +137,7 @@ export default {
label: '设备名称', label: '设备名称',
prop: 'equipName', prop: 'equipName',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 120, width: 120,
disabled: true, disabled: true,
@ -144,7 +146,7 @@ export default {
label: '设备编码', label: '设备编码',
prop: 'equipCode', prop: 'equipCode',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 120, width: 120,
disabled: true, disabled: true,
@ -154,7 +156,7 @@ export default {
// label: '', // label: '',
// prop: 'equipNameType', // prop: 'equipNameType',
// search: false, // search: false,
// sortable: true, // sortable: 'custom',
// span: 12, // span: 12,
// width: 120, // width: 120,
// disabled: true, // disabled: true,
@ -164,7 +166,7 @@ export default {
label: '设备分类', label: '设备分类',
prop: 'equipType', prop: 'equipType',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 120, width: 120,
type: 'select', type: 'select',
@ -190,7 +192,7 @@ export default {
label: '设备排序', label: '设备排序',
prop: 'equipOrder', prop: 'equipOrder',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 120, width: 120,
disabled: true, disabled: true,
@ -199,7 +201,7 @@ export default {
label: '工序', label: '工序',
prop: 'processName', prop: 'processName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
display: false, display: false,
width: 120, width: 120,
@ -208,7 +210,7 @@ export default {
label: '工艺能力', label: '工艺能力',
prop: 'craftName', prop: 'craftName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
display: false, display: false,
width: 120, width: 120,
@ -217,7 +219,7 @@ export default {
label: '额定加工能力(烧结-件/热表-dm²)', label: '额定加工能力(烧结-件/热表-dm²)',
prop: 'standardProcessAbility', prop: 'standardProcessAbility',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 14, span: 14,
width: 270, width: 270,
labelWidth: 270, labelWidth: 270,
@ -234,7 +236,7 @@ export default {
label: '额定工时(分钟)', label: '额定工时(分钟)',
prop: 'standardTime', prop: 'standardTime',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 180, width: 180,
labelWidth: 180, labelWidth: 180,
@ -251,7 +253,7 @@ export default {
label: '准备工时(分钟)', label: '准备工时(分钟)',
prop: 'prepareTime', prop: 'prepareTime',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 180, width: 180,
labelWidth: 180, labelWidth: 180,
@ -268,7 +270,7 @@ export default {
label: '轮次间隔(分钟)', label: '轮次间隔(分钟)',
prop: 'interval', prop: 'interval',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 180, width: 180,
labelWidth: 180, labelWidth: 180,
@ -286,7 +288,7 @@ export default {
label: '指定使用', label: '指定使用',
prop: 'assignUse', prop: 'assignUse',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 120, width: 120,
}, },
@ -294,7 +296,7 @@ export default {
label: '备注', label: '备注',
prop: 'remarks', prop: 'remarks',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 180, width: 180,
}, },
@ -314,7 +316,39 @@ export default {
], // {workCenterName: [], equipName: [], equipCode: []} ], // {workCenterName: [], equipName: [], equipCode: []}
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created(){
this.option.delBtn = this.permission.equipmentCapacity_delete ? true : false;
},
methods: { methods: {
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.ascs = undefined;
this.query.descs = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
// //
calculateSpan(arr) { calculateSpan(arr) {
if (!arr || arr.length === 0) { if (!arr || arr.length === 0) {

@ -17,6 +17,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> </template> <template #menu-left> </template>
<template #menu-right> </template> <template #menu-right> </template>
@ -34,6 +35,7 @@ import {
addInspectionItem, addInspectionItem,
updateInspectionItem, updateInspectionItem,
} from '@/api/productionSchedulingPlan/basic'; } from '@/api/productionSchedulingPlan/basic';
import { mapGetters } from 'vuex';
export default { export default {
components: {}, components: {},
data() { data() {
@ -61,10 +63,10 @@ export default {
border: true, border: true,
index: true, index: true,
selection: false, selection: false,
addBtn: true, addBtn: false,
editBtn: true, editBtn: false,
viewBtn: false, viewBtn: false,
delBtn: true, delBtn: false,
editBtnText: '修改', editBtnText: '修改',
labelWidth: 120, labelWidth: 120,
menuWidth: 120, menuWidth: 120,
@ -93,7 +95,7 @@ export default {
label: '检验项目', label: '检验项目',
prop: 'inspectionItem', prop: 'inspectionItem',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
rules: [ rules: [
{ {
@ -107,7 +109,7 @@ export default {
label: '抽样数量(常规)', label: '抽样数量(常规)',
prop: 'samplingQuantity', prop: 'samplingQuantity',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
labelWidth:160, labelWidth:160,
rules: [ rules: [
@ -122,7 +124,7 @@ export default {
label: '额定工时(分钟/每人每个)', label: '额定工时(分钟/每人每个)',
prop: 'standardTime', prop: 'standardTime',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:240, width:240,
labelWidth:240, labelWidth:240,
@ -139,7 +141,7 @@ export default {
label: '准备工时(分钟)', label: '准备工时(分钟)',
prop: 'prepareTime', prop: 'prepareTime',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
labelWidth:180, labelWidth:180,
type: 'number', type: 'number',
@ -155,14 +157,14 @@ export default {
label: '单位', label: '单位',
prop: 'unit', prop: 'unit',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
}, },
{ {
label: '备注', label: '备注',
prop: 'remarks', prop: 'remarks',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
}, },
], ],
@ -171,7 +173,41 @@ export default {
data: [], data: [],
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created(){
this.option.addBtn = this.permission.inspectionHours_add ? true : false;
this.option.editBtn = this.permission.inspectionHours_edit ? true : false;
this.option.delBtn = this.permission.inspectionHours_delete ? true : false;
},
methods: { methods: {
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.ascs = undefined;
this.query.descs = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
rowSave(row, done, loading) { rowSave(row, done, loading) {
addInspectionItem(row).then( addInspectionItem(row).then(
() => { () => {

@ -17,6 +17,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> </template> <template #menu-left> </template>
<template #menu-right> </template> <template #menu-right> </template>
@ -34,6 +35,7 @@ import {
addDifferentFurnaceTank, addDifferentFurnaceTank,
updateDifferentFurnaceTank, updateDifferentFurnaceTank,
} from '@/api/productionSchedulingPlan/basic'; } from '@/api/productionSchedulingPlan/basic';
import { mapGetters } from 'vuex';
export default { export default {
components: {}, components: {},
data() { data() {
@ -61,10 +63,10 @@ export default {
border: true, border: true,
index: true, index: true,
selection: false, selection: false,
addBtn: true, addBtn: false,
editBtn: true, editBtn: false,
viewBtn: false, viewBtn: false,
delBtn: true, delBtn: false,
editBtnText: '修改', editBtnText: '修改',
labelWidth: 120, labelWidth: 120,
menuWidth: 120, menuWidth: 120,
@ -93,7 +95,7 @@ export default {
label: '作业中心', label: '作业中心',
prop: 'workCenterId', prop: 'workCenterId',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:120, width:120,
type: 'select', type: 'select',
@ -118,7 +120,7 @@ export default {
label: '作业中心', label: '作业中心',
prop: 'workCenterName', prop: 'workCenterName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
hide:true, hide:true,
display:false display:false
@ -127,7 +129,7 @@ export default {
label: '工序', label: '工序',
prop: 'processId', prop: 'processId',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type: 'select', type: 'select',
filterable: true, filterable: true,
@ -151,7 +153,7 @@ export default {
label: '工序', label: '工序',
prop: 'processName', prop: 'processName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
hide:true, hide:true,
display:false, display:false,
@ -160,7 +162,7 @@ export default {
label: '工艺能力', label: '工艺能力',
prop: 'craftId', prop: 'craftId',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:120, width:120,
type: 'select', type: 'select',
@ -185,7 +187,7 @@ export default {
label: '工艺能力', label: '工艺能力',
prop: 'craftName', prop: 'craftName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
hide:true, hide:true,
display:false display:false
@ -199,70 +201,114 @@ export default {
label: '键位', label: '键位',
prop: 'keyBinding', prop: 'keyBinding',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '生产厂家', label: '生产厂家',
prop: 'factory', prop: 'factory',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:140, width:140,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '检验编号', label: '检验编号',
prop: 'inspectionCode', prop: 'inspectionCode',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:140, width:140,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '材料', label: '材料',
prop: 'material', prop: 'material',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '厚度(镀层)', label: '厚度(镀层)',
prop: 'thickness', prop: 'thickness',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:140, width:140,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '钝化', label: '钝化',
prop: 'passivation', prop: 'passivation',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '硬度', label: '硬度',
prop: 'hardness', prop: 'hardness',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '生产标识', label: '生产标识',
prop: 'productionIdent', prop: 'productionIdent',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:140, width:140,
type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
{ {
label: '结构/单件面积', label: '结构/单件面积',
prop: 'singleArea', prop: 'singleArea',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width:150, width:150,
type: 'number' type:"select",
dicData:[
{label:"是",value:'1'},
{label:"否",value:'0'}
]
}, },
], ],
}, },
@ -272,7 +318,41 @@ export default {
data: [], data: [],
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created(){
this.option.addBtn = this.permission.nonSameFurnace_add ? true : false;
this.option.editBtn = this.permission.nonSameFurnace_edit ? true : false;
this.option.delBtn = this.permission.nonSameFurnace_delete ? true : false;
},
methods: { methods: {
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.ascs = undefined;
this.query.descs = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
onChangeData(val,type){ onChangeData(val,type){
if(val&&type=='workCenterId'){ if(val&&type=='workCenterId'){
this.form.workCenterName=val.wcCode this.form.workCenterName=val.wcCode

@ -18,13 +18,16 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
:before-open="beforeOpen" :before-open="beforeOpen"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button> <!-- personnelCapacity_add -->
<el-button type="primary" @click="handleAdd" v-if="permission.personnelCapacity_add">新增</el-button>
</template> </template>
<template #menu-right> </template> <template #menu-right> </template>
<template #menu="{ row }"> <template #menu="{ row }">
<el-button type="text" @click="handleEdit(row)">修改</el-button> <!-- personnelCapacity_edit -->
<el-button type="text" @click="handleEdit(row)" v-if="permission.personnelCapacity_edit">修改</el-button>
</template> </template>
<template #standardTime="scope"> <template #standardTime="scope">
@ -59,6 +62,7 @@ import {
getSelectCertificateList, getSelectCertificateList,
} from '@/api/productionSchedulingPlan/basic'; } from '@/api/productionSchedulingPlan/basic';
import addPersonnel from './components/addPersonnel.vue'; import addPersonnel from './components/addPersonnel.vue';
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
addPersonnel, addPersonnel,
@ -91,7 +95,7 @@ export default {
addBtn: false, addBtn: false,
editBtn: false, editBtn: false,
viewBtn: false, viewBtn: false,
delBtn: true, delBtn: false, //personnelCapacity_delete
editBtnText: '修改', editBtnText: '修改',
labelWidth: 120, labelWidth: 120,
menuWidth: 120, menuWidth: 120,
@ -120,7 +124,7 @@ export default {
label: '作业中心', label: '作业中心',
prop: 'workCenterId', prop: 'workCenterId',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type: 'select', type: 'select',
filterable: true, filterable: true,
@ -144,7 +148,7 @@ export default {
label: '作业中心', label: '作业中心',
prop: 'workCenterName', prop: 'workCenterName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
hide: true, hide: true,
display: false, display: false,
@ -153,7 +157,7 @@ export default {
label: '工序', label: '工序',
prop: 'processId', prop: 'processId',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type: 'select', type: 'select',
filterable: true, filterable: true,
@ -177,7 +181,7 @@ export default {
label: '工序', label: '工序',
prop: 'processName', prop: 'processName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
hide: true, hide: true,
display: false, display: false,
@ -186,7 +190,7 @@ export default {
label: '工艺能力', label: '工艺能力',
prop: 'craftId', prop: 'craftId',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type: 'select', type: 'select',
filterable: true, filterable: true,
@ -210,7 +214,7 @@ export default {
label: '工艺能力', label: '工艺能力',
prop: 'craftName', prop: 'craftName',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
hide: true, hide: true,
display: false, display: false,
@ -219,7 +223,7 @@ export default {
label: '统计类型', label: '统计类型',
prop: 'type', prop: 'type',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type: 'select', type: 'select',
rules: [ rules: [
@ -244,7 +248,7 @@ export default {
label: '额定工时(分钟/每人每个)', label: '额定工时(分钟/每人每个)',
prop: 'standardTime', prop: 'standardTime',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
width: 250, width: 250,
labelWidth: 220, labelWidth: 220,
@ -261,7 +265,7 @@ export default {
label: '准备工时(分钟)', label: '准备工时(分钟)',
prop: 'prepareTime', prop: 'prepareTime',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
labelWidth: 180, labelWidth: 180,
width: 180, width: 180,
@ -270,7 +274,7 @@ export default {
label: '生产标识', label: '生产标识',
prop: 'productIdent', prop: 'productIdent',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
// labelWidth: 180, // labelWidth: 180,
}, },
@ -278,7 +282,7 @@ export default {
label: '证书类型', label: '证书类型',
prop: 'certificateId', prop: 'certificateId',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
type: 'select', type: 'select',
hide: true, hide: true,
@ -296,7 +300,7 @@ export default {
label: '证书类型', label: '证书类型',
prop: 'certificateName', prop: 'certificateName',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
display: false, display: false,
}, },
@ -309,7 +313,36 @@ export default {
rowData: {}, rowData: {},
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created() {
this.option.delBtn = this.permission.personnelCapacity_delete ? true : false;
},
methods: { methods: {
//
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.asc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
handleAdd() { handleAdd() {
this.showDialog = true; this.showDialog = true;
this.title = '新增'; this.title = '新增';

@ -18,6 +18,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
:before-open="beforeOpen" :before-open="beforeOpen"
@sort-change="sortChange"
> >
<template #menu-left> </template> <template #menu-left> </template>
<template #menu-right> </template> <template #menu-right> </template>
@ -35,6 +36,7 @@ import {
addMainProducer, addMainProducer,
updateMainProducer, updateMainProducer,
} from '@/api/productionSchedulingPlan/basic'; } from '@/api/productionSchedulingPlan/basic';
import { mapGetters } from 'vuex';
export default { export default {
components: {}, components: {},
data() { data() {
@ -55,17 +57,17 @@ export default {
calcHeight: 32, calcHeight: 32,
simplePage: false, simplePage: false,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 12,
searchIcon: true, searchIcon: true,
searchIndex: 3, searchIndex: 3,
tree: false, tree: false,
border: true, border: true,
index: true, index: true,
selection: false, selection: false,
addBtn: true, addBtn: false,
editBtn: true, editBtn: false,
viewBtn: false, viewBtn: false,
delBtn: true, delBtn: false,
editBtnText: '修改', editBtnText: '修改',
labelWidth: 120, labelWidth: 120,
menuWidth: 120, menuWidth: 120,
@ -83,6 +85,7 @@ export default {
editBtnIcon: ' ', editBtnIcon: ' ',
gridBtn: false, gridBtn: false,
searchLabelPosition: 'left', searchLabelPosition: 'left',
searchLabelWidth: 'auto',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: 'left', menuAlign: 'left',
@ -94,7 +97,7 @@ export default {
// label: '', // label: '',
// prop: 'processId', // prop: 'processId',
// search: true, // search: true,
// sortable: true, // sortable: 'custom',
// span: 12, // span: 12,
// type: 'select', // type: 'select',
// filterable: true, // filterable: true,
@ -118,7 +121,7 @@ export default {
label: '工序', label: '工序',
prop: 'processName', prop: 'processName',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
display: false, display: false,
}, },
@ -126,7 +129,7 @@ export default {
label: '主生产者(人/设备)', label: '主生产者(人/设备)',
prop: 'mainProducer', prop: 'mainProducer',
search: true, search: true,
sortable: true, sortable: 'custom',
span: 12, span: 12,
searchLabelWidth: 150, searchLabelWidth: 150,
labelWidth: 160, labelWidth: 160,
@ -153,7 +156,7 @@ export default {
label: '备注', label: '备注',
prop: 'remarks', prop: 'remarks',
search: false, search: false,
sortable: true, sortable: 'custom',
span: 12, span: 12,
}, },
], ],
@ -162,7 +165,41 @@ export default {
data: [], data: [],
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created(){
this.option.addBtn = this.permission.principalProducer_add ? true : false;
this.option.editBtn = this.permission.principalProducer_edit ? true : false;
this.option.delBtn = this.permission.principalProducer_delete ? true : false;
},
methods: { methods: {
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.ascs = undefined;
this.query.descs = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
beforeOpen(done, type) { beforeOpen(done, type) {
if (['edit', 'view'].includes(type)) { if (['edit', 'view'].includes(type)) {

@ -35,7 +35,7 @@
<el-button type="text" @click="handleEdit(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="rowDel(row)">删除</el-button>
<el-button type="primary" text plain style="border: 0; background-color: transparent !important" <el-button type="primary" text plain style="border: 0; background-color: transparent !important"
size="medium" @click.stop="handleIssue(row)">下发</el-button> @click.stop="handleIssue(row)">下发</el-button>
</template> </template>
</avue-crud> </avue-crud>

@ -96,7 +96,7 @@ export default {
column: [ column: [
{ {
label: '池体名称', label: '池体名称',
prop: 'poolName', prop: 'name',
sortable: 'custom', sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
@ -105,7 +105,7 @@ export default {
}, },
{ {
label: '测量值', label: '测量值',
prop: 'poolName', prop: 'gageValue',
search: false, search: false,
sortable: 'custom', sortable: 'custom',
filter: true, filter: true,
@ -117,18 +117,18 @@ export default {
children: [ children: [
{ {
label: '上限', label: '上限',
prop: 'upLimit', prop: 'superiorLimit',
}, },
{ {
label: '下限', label: '下限',
prop: 'downLimit', prop: 'lowerLimit',
}, },
], ],
}, },
{ {
label: '参考值', label: '参考值',
prop: 'consult', prop: 'consultValue',
search: false, search: false,
sortable: 'custom', sortable: 'custom',
filter: true, filter: true,

Loading…
Cancel
Save