Merge branch 'dev-scheduling' of http://42.192.7.176:3000/suojin/jonhon-mes-web into dev-scheduling

dev-scheduling
jinna 3 months ago
commit bd8eeeb1d6
  1. 2
      src/api/productionManagement/assayedContent.js
  2. 1
      src/api/productionManagement/coatingMaterial.js
  3. 17
      src/api/qualityManagement/periodicTesting/projectCycle.js
  4. 10
      src/api/qualityManagement/periodicTesting/testProject.js
  5. 2
      src/api/storeManagement/binTransfer.js
  6. 20
      src/api/storeManagement/otherReceiving.js
  7. 13
      src/api/storeManagement/warehouseMaintenance.js
  8. 67
      src/views/basicData/js/warehouseMain.js
  9. 3
      src/views/basicData/warehouseMaintenance.vue
  10. 14
      src/views/inboundOutboundManagement/binTransfer/index.vue
  11. 39
      src/views/inboundOutboundManagement/components/addEditDialog.vue
  12. 1681
      src/views/inboundOutboundManagement/otherReceiving.vue
  13. 6
      src/views/periodicTesting/components/addProjectCycleDialog.vue
  14. 100
      src/views/periodicTesting/projectCycle.vue
  15. 20
      src/views/periodicTesting/testProject.vue
  16. 5
      src/views/periodicTesting/testTask.vue
  17. 1
      src/views/productionDisposition/index.vue
  18. 7
      src/views/productionManagement/components/coatingAddDialog.vue
  19. 10
      src/views/productionManagement/components/coatingMater/assayedContent.vue
  20. 32
      src/views/productionManagement/components/coatingMater/assayedContentDialog.vue
  21. 50
      src/views/productionManagement/components/coatingMater/materialRequirements.vue
  22. 30
      src/views/productionManagement/js/coatingColumnData.js
  23. 3
      src/views/productionTesting/InspectionTemplate.vue
  24. 2
      src/views/productionTesting/components/sametankView.vue
  25. 2
      src/views/productionTesting/components/trialItem.vue
  26. 2
      src/views/productionTesting/components/trialStandard.vue
  27. 4
      src/views/qualityManagement/reviewFormMess/index.vue
  28. 21
      src/views/warehouseManagement/materialPreserve.vue

@ -29,7 +29,7 @@ export const getassayContentDeatils = (params) => {
// 作业中心下拉接口
export const getWorkCenter = () =>{
return request({
url:'/api/blade-desk/BA/WorkCenter/listForSelect',
url:'/api/blade-desk/bsWorkCenter/getList',
method:'get'
})
}

@ -78,6 +78,7 @@ export const getAddRequireList = params => {
});
};
// 作业中心下拉
export const getWorkCenter = () =>{
return request({
url:'/api/blade-desk/bsWorkCenter/getList',

@ -10,15 +10,11 @@ export const getProjectList = (params) => {
};
// 获取列表数据 bsCraftAbility/queryAllCa
export const getList = (current, size, params) => {
export const getList = params => {
return request({
url: '/blade-desk/QA/CycleTest/list',
method: 'get',
params: {
...params,
current,
size,
},
params
});
};
@ -113,4 +109,13 @@ export const setCycleBat = (data) =>{
})
}
// 导出
export const exportExcel = (params) =>{
return request({
url:'/api/blade-desk/QA/CycleTest/export-excel',
method:'get',
params,
responseType: "blob",
})
}

@ -61,4 +61,12 @@ export const getStandardList = () =>{
})
}
// 导出接口
export const exportExcel = (params) =>{
return request({
url:'/api/blade-desk/QA/CycleTestItem/export-excel',
method:'get',
params,
responseType: "blob",
})
}

@ -4,7 +4,7 @@ import request from '@/axios';
// 库位调整列表
export const getTransferList = params =>{
return request({
url:'/api/blade-wms/stAllotRecord/page',
url:'/api/blade-wms/stAllotRecord/list',
method:'get',
params
})

@ -0,0 +1,20 @@
// 其他入库
import request from '@/axios';
// 其它入库列表
export const getOtherInList = params =>{
return request({
url:'/api/blade-wms/stOtherReceiptRecord/page',
method:'get',
params
})
}
// 物料下拉
export const getGoodsOutList = params =>{
return request({
url:'/api/blade-wms/combox/config/goodsOut',
method:'get',
params
})
}

@ -13,7 +13,7 @@ export const getWareList = params =>{
// 库房新增
export const addWare = (data) =>{
return request({
url:'/api/blade-wms/stStorehouse/save',
url:'/api/blade-wms/stStorehouse/submit',
method:'post',
data
})
@ -71,4 +71,13 @@ export const editLocation = (data) =>{
method:'post',
data
})
}
}
// 根据角色别名查询用户
export const getUserByRoleAlias = (params) => {
return request({
url: '/api/blade-system/user/list-all-by-role-alias',
method: 'get',
params,
});
};

@ -116,20 +116,26 @@ export default {
overflow: true,
search: true,
type: 'select',
dicData: [
{
label: '保管员一',
value: 1
},
{
label: '保管员二',
value: 2
},
{
label: '保管员三',
value: 3
},
],
dicUrl:'/api/blade-system/user/list-all-by-role-alias?roleAlias=保管员',
// props:{
// label: 'realName',
// value: 'userName',
// },
// }
// dicData: [
// {
// label: '保管员一',
// value: 1
// },
// {
// label: '保管员二',
// value: 2
// },
// {
// label: '保管员三',
// value: 3
// },
// ],
// rules: [
// {
// required: true,
@ -283,7 +289,7 @@ export const warehouseOption = {
delBtnIcon: " ",
labelWidth: 120,
menu: true,
menuWidth: 200,
menuWidth: 120,
dialogWidth: 920,
dialogClickModal: false,
searchEnter: true,
@ -419,20 +425,21 @@ export const warehouseOption = {
overflow: true,
search: true,
type:'select',
dicData:[
{
label:'保管员一',
value:1
},
{
label:'保管员二',
value:2
},
{
label:'保管员三',
value:3
},
],
dicUrl:'/api/blade-system/user/list-all-by-role-alias?roleAlias=保管员',
// dicData:[
// {
// label:'保管员一',
// value:1
// },
// {
// label:'保管员二',
// value:2
// },
// {
// label:'保管员三',
// value:3
// },
// ],
// rules: [
// {
// required: true,
@ -467,7 +474,7 @@ export const storageOption = {
delBtnIcon: " ",
labelWidth: 120,
menu: true,
menuWidth: 200,
menuWidth: 120,
dialogWidth: 920,
dialogClickModal: false,
searchEnter: true,

@ -284,6 +284,9 @@ export default {
done()
this.getWare()
}
}).catch(() =>{
// loading()
done()
})
}
},

@ -103,7 +103,7 @@ export default {
remote: true,
props:{
label: 'goodsCode',
value: 'id',
value: 'goodsCode',
res: 'data.records',
},
rules: [{ required: true, message: '请选择物料编号', trigger: 'blur' }],
@ -125,7 +125,7 @@ export default {
},
{
label: '旧库房号',
prop: 'shCode',
prop: 'oldWarehouseName',
// bind: 'oldStorageLocation.coStorehouse.shName',
sortable: true,
filter: true,
@ -154,7 +154,7 @@ export default {
},
{
label: '旧库位号',
prop: 'oldSlId',
prop: 'oldLocation',
// bind: 'oldStorageLocation.location',
sortable: true,
filter: true,
@ -214,7 +214,7 @@ export default {
{
label: '新库位号',
prop: 'newSIId',
prop: 'newSlId',
// bind: 'newStorageLocation.location',
sortable: true,
filter: true,
@ -383,8 +383,12 @@ export default {
onLoad() {
getTransferList({
current:this.page.currentPage,
size:this.page.pageSize
size:this.page.pageSize,
...this.query
}).then(res =>{
res.data.data.records.map(item =>{
item.newSlId = item.newSlId == -1 ? '' : item.newSlId
})
this.data = res.data.data.records
console.log('data-------------',this.data)
this.page.total = res.data.data.total;

@ -2,23 +2,23 @@
<el-dialog title="新增" append-to-body :modelValue="openShow" width="70%" @close="closeDialog" fullscreen>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-row :gutter="24">
<el-col :span="8">
<!-- 按照日期自动生成 202511101037 看之前的逻辑-->
<!-- 按照日期自动生成 202511101037 看之前的逻辑-->
<!-- <el-col :span="8">
<el-form-item label="入库单号:" prop="userId3">
20250988090
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="8">
<el-form-item label="入库时间:" prop="declareDate3">
<el-date-picker v-model="ruleForm.declareDate" type="date" placeholder="选择日期"
<el-form-item label="入库时间:" prop="inOutDate">
<el-date-picker v-model="ruleForm.inOutDate" type="date" placeholder="选择日期"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库仓库:" prop="userId">
<el-select v-model="ruleForm.userId" placeholder="请选择" disabled>
<el-form-item label="入库仓库:" prop="shId">
<el-select v-model="ruleForm.shId" placeholder="请选择" >
<el-option label="仓库一" value="1">
</el-option>
<el-option label="仓库二" value="2">
@ -58,15 +58,14 @@
<span><i style="color:red">*</i>物料编号</span>
</template>
<template #default="scope">
<el-select v-model="scope.row.goodsId" placeholder="请选择">
<el-option label="物料一" value="1">
</el-option>
<el-option label="玻璃饼" value="2">
</el-option>
<el-select v-model="scope.row.goodsCodeAndGoodsName" placeholder="请选择" @change="(val) => changeGoods(val,scope.$index)">
<el-option v-for="item in goodsList" :key="item.id" :label="item.goodsCodeAndGoodsName" :value="item.goodsCodeAndGoodsName"></el-option>
<!-- <el-option label="玻璃饼" value="2">
</el-option> -->
</el-select>
</template>
</el-table-column>
<el-table-column prop="boCode" label="物料名称" align="center"></el-table-column>
<el-table-column prop="goodsName" label="物料名称" align="center"></el-table-column>
<el-table-column prop="boCode" label="型号/牌号" align="center">
<template #default="scope">
<span>{{ scope.row.boCode }}</span>
@ -165,6 +164,7 @@
</el-dialog>
</template>
<script>
import {getGoodsOutList} from "@/api/storeManagement/otherReceiving"
export default {
props: {
showDialog: {
@ -190,6 +190,7 @@ export default {
buyDept: '',
needDept: null,
},
goodsList:[],
rules: {
userId: [
{ required: true, message: '请选择', trigger: 'blur' },
@ -213,8 +214,20 @@ export default {
},
mounted() {
this.openShow = this.showDialog
this.getGoodsList()
},
methods: {
//
getGoodsList(){
getGoodsOutList().then(res =>{
this.goodsList = res.data.data.records
})
},
//
changeGoods(val,index){
let tmp = this.goodsList.find(item => item.goodsCodeAndGoodsName == val)
this.tableData[index] = tmp.goodsName
},
submit() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {

File diff suppressed because it is too large Load Diff

@ -222,7 +222,7 @@
<div style="font-weight: 550; margin-bottom: 20px">检测信息</div>
<el-row :gutter="20" style="padding: 5px 0">
<el-col :span="6"
>镀种{{projectForm.plateName}}</el-col
>镀种{{projectForm.plateNames}}</el-col
>
<el-col :span="6">试验件{{ projectForm.testTypeName }}</el-col>
<el-col :span="6"><span>试验项目{{projectForm.cycleTestItemName}}</span></el-col>
@ -359,12 +359,14 @@ export default {
},
getRowDetail(id){
getDetail(id).then(res =>{
this.projectForm = {
...res.data.data,
isPutOff:res.data.data.isPutOff == 1 ? true : false,
testType:res.data.data.testType != '' ? res.data.data.testType + '' : '',
processUserIds:res.data.data.processUserId,
jobType:res.data.data.jobType == -1 ? '' : res.data.data.jobType
jobType:res.data.data.jobType == -1 ? '' : res.data.data.jobType,
plateIds:res.data.data.plateIds.split(','),
}
console.log('job---------',this.projectForm.jobType)
if(this.projectForm.jobType == 1){

@ -29,6 +29,7 @@
<el-button type="success" @click="handleUser">人员设置</el-button>
<el-button type="primary" @click="handleCycle">批量设置周期</el-button>
<el-button type="warning" @click="handleExport" plain>导出</el-button>
</template>
<template #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button>
@ -184,7 +185,10 @@
</template>
<script>
import { getList, remove,issueTask,getUserList,setUser,setCycleBat } from '@/api/qualityManagement/periodicTesting/projectCycle.js';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { downloadXls } from '@/utils/util';
import { getList, remove,issueTask,getUserList,setUser,setCycleBat,exportExcel } from '@/api/qualityManagement/periodicTesting/projectCycle.js';
import addProjectCycleDialog from './components/addProjectCycleDialog.vue'
import {dateFormat} from '@/utils/date'
import basicImport from '@/components/basic-import/main.vue'
@ -234,11 +238,13 @@ export default {
cycleYearTags:[],
option: {
tip: false,
align: 'center',
size: 'medium',
height: 'auto',
calcHeight: 32,
columnSort: true,
searchShow: true,
searchMenuSpan: 18,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
@ -260,14 +266,14 @@ export default {
dialogWidth: 600,
dialogClickModal: false,
searchEnter: true,
filterBtn: true,
// filterBtn: true,
searchShowBtn: false,
excelBtn: true,
// excelBtn: true,
showOverflowTooltip: true,
align: 'center',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
searchGutter:24,
searchSpan:6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
@ -280,6 +286,21 @@ export default {
filter: true,
width: 150,
},
{
label: '镀种',
prop: 'plateId',
type: 'select',
hide: true,
search: true,
sortable: true,
filter: true,
width: 150,
dicUrl:"/api/blade-desk/BA/Plating/listForSelectCycleTest",
props:{
label:'plating',
value:'id'
}
},
{
label: '试验项目',
prop: 'cycleTestItemName',
@ -287,12 +308,13 @@ export default {
type: 'select',
sortable: true,
filter: true,
width: 200,
},
{
label: '试验条件',
prop: 'cycleTestItemCondition',
search: false,
search: true,
sortable: true,
filter: true,
width: 200,
@ -300,17 +322,23 @@ export default {
{
label: '试验标准',
prop: 'cycleTestStandardName',
search: false,
search: true,
sortable: true,
width: 200,
},
{
label: '试验件',
prop: 'testTypeName',
search: false,
prop: 'testType',
search: true,
sortable: true,
filter: true,
width: 120,
type: 'select',
dicUrl:"/blade-system/dict/dictionary?code=testPiece",
props:{
label: 'dictValue',
value: 'dictKey'
}
},
{
label: '试验件材料',
@ -322,11 +350,17 @@ export default {
},
{
label: '工艺员',
prop: 'processUserName',
search: false,
prop: 'processUserId',
search: true,
sortable: true,
filter: true,
width: 160,
type: 'select',
dicUrl:'/blade-system/user/list-process-engineer',
props:{
label:"name",
value:"id"
}
},
{
label: '试验周期',
@ -336,6 +370,20 @@ export default {
filter: true,
width: 120,
},
{
label: '试验周期',
prop: 'jobTypes',
type: 'select',
search: true,
sortable: true,
filter: true,
width: 120,
dicData:[
{ label:"周",value:1 },
{ label:"月",value:2 },
{ label:"年",value:3 },
]
},
{
label: '最小试验数量',
prop: 'minDoTestCount',
@ -348,6 +396,7 @@ export default {
label: '试验项目',
prop: 'cycleTestItemId',
search: true,
searchOrder: 1,
hide:true,
type: 'select',
sortable: true,
@ -479,6 +528,20 @@ export default {
this.cycleDialog = true
}
},
//
handleExport(){
this.$confirm('是否导出周期性试验任务数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
NProgress.start();
exportExcel(this.query).then(res =>{
downloadXls(res.data, `试验周期表${this.$dayjs().format('YYYY-MM-DD')}.xlsx`);
NProgress.done();
})
})
},
//
handleDelete(row) {
this.$confirm('确定删除此条数据?', {
@ -661,8 +724,19 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
let param = {
...this.query,
jobType:this.query.jobTypes
}
const { jobTypes, ...validData } = param;
console.log('validData----------',validData)
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
getList({
current:this.page.currentPage,
size:this.page.pageSize,
...validData
}).then(res => {
this.data = res.data.data.records;
this.loading = false;

@ -19,6 +19,7 @@
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="danger" @click="handleDeletes">删除</el-button>
<el-button type="warning" @click="handleExport" plain>导出</el-button>
</template>
<template #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button>
@ -53,9 +54,12 @@
</template>
<script>
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { downloadXls } from '@/utils/util';
import addTestProjectDialog from './components/addTestProjectDialog.vue';
import { getList, remove} from '@/api/qualityManagement/periodicTesting/testProject.js';
import { getList, remove,exportExcel} from '@/api/qualityManagement/periodicTesting/testProject.js';
import basicImport from '@/components/basic-import/main.vue'
export default {
@ -244,6 +248,20 @@ export default {
});
}
},
//
handleExport(){
this.$confirm('是否导出周期性试验项目数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
NProgress.start();
exportExcel({...this.query}).then(res =>{
downloadXls(res.data, `试验项目表${this.$dayjs().format('YYYY-MM-DD')}.xlsx`);
NProgress.done();
})
})
},
//
handleImport() {
this.isShowImport = true

@ -199,6 +199,7 @@ export default {
align: 'center',
size: 'medium',
height:'auto',
calcHeight: 32,
searchLabelWidth:120,
simplePage: true,
searchShow: true,
@ -220,9 +221,9 @@ export default {
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
filterBtn: false,
searchShowBtn: false,
excelBtn: true,
excelBtn: false,
index: false,
showOverflowTooltip: true,
searchLabelPosition:'left',

@ -115,6 +115,7 @@ export default {
option: {
tip: false,
align: 'center',
calcHeight:32,
height: 'auto',
simplePage: true,
searchShow: true,

@ -23,7 +23,7 @@
</el-form-item> -->
</el-form>
<el-tag type="primary" style="width: 100%; display: block; line-height: 22px"
>选择XX个订单 合计物料需求量711.00</el-tag
>选择{{selectionList.length}}个订单 合计物料需求量{{this.totalNum}}</el-tag
>
<div style="border: 1px solid #ccc; padding: 20px 0px">
<div>
@ -184,8 +184,9 @@ export default {
strarr.push(Number(this.selectionList[i]['plateSingleQuotaTotal']));
}
var total = eval(strarr.join('+'));
this.totalNum = total;
this.submitForm.goodsQuantity = total;
this.totalNum = total ? total : 0;
console.log('total-----------',total)
this.submitForm.goodsQuantity = total ? total : 0;
},
closeDialog() {
this.$emit('closeDialog');

@ -30,6 +30,8 @@
<assayedContentDialog
v-if="isAddOpen"
:showDialog="isAddOpen"
:id="id"
:type="viewType"
@closeDialog="closeDialog"
></assayedContentDialog>
</div>
@ -55,6 +57,7 @@ export default {
loading: false,
data: [],
form: {},
viewType:"",
addDialog: false,
showDialog: false,
materialDialog: false,
@ -228,8 +231,9 @@ export default {
},
//
handleView(row) {
this.id=row.id
this.addDialog = true;
this.viewType = "view"
this.id = row.id
this.isAddOpen = true;
},
deleteRow(row) {
this.$confirm('确定删除此条数据?', {
@ -247,6 +251,8 @@ export default {
},
//
handleAdd() {
this.id = ''
this.viewType = "add"
this.isAddOpen = true;
},
//

@ -1,6 +1,6 @@
<template>
<el-dialog
title="含量检测"
:title="type == 'add' ? '含量检测' : '详情'"
append-to-body
:modelValue="openShow"
width="40%"
@ -8,7 +8,7 @@
>
<!-- 合并为单个表单避免ref冲突 -->
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="90">
<el-row>
<el-row v-if="type == 'add'">
<el-col :span="12">
<el-form-item label="作业中心" prop="wcId">
<el-select v-model="ruleForm.wcId" placeholder="请选择" @change="changeWork">
@ -36,9 +36,9 @@
</el-row>
<el-table :data="ruleForm.tableData" style="width: 100%">
<el-table-column type="index" label="序号" width="180" />
<el-table-column prop="slotName" label="作业槽" width="180" />
<el-table-column prop="testVal" label="测量值">
<el-table-column type="index" align="center" label="序号" width="80" />
<el-table-column prop="slotName" align="center" label="作业槽" />
<el-table-column prop="testVal" align="center" label="测量值">
<template #header>
<span><i style="color: red">*</i>测量值</span>
</template>
@ -52,6 +52,7 @@
v-model="scope.row.testVal"
controls-position="right"
@change="handleChange"
:disabled="type == 'view'"
style="margin-top:18px;"
/>
</el-form-item>
@ -63,20 +64,28 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
<el-button type="primary" v-if="type == 'add'" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import { add,getWorkCenter,getTank } from '@/api/productionManagement/assayedContent';
import { add,getWorkCenter,getTank,getassayContentDeatils } from '@/api/productionManagement/assayedContent';
export default {
props: {
showDialog: {
type: Boolean,
default: false,
},
type:{
type: String,
default: '',
},
id:{
type: String,
default: '',
}
},
data() {
return {
@ -97,8 +106,17 @@ export default {
this.openShow = this.showDialog;
this.ruleForm.tableData = []
this.getWorkCenterList()
if(this.id && this.id != ""){
this.getDetail()
}
},
methods: {
getDetail(){
getassayContentDeatils({id:this.id}).then(res =>{
console.log('res----------',res)
this.ruleForm.tableData = res.data.data.detailList
})
},
//
getWorkCenterList(){
getWorkCenter().then(res =>{

@ -2,6 +2,7 @@
<div>
<!-- 表格数据 -->
<avue-crud
:height="460"
:option="option"
:table-loading="loading"
:data="data"
@ -26,9 +27,9 @@
</template>
<template #menu="{ row }">
<el-button type="text" @click="handleView(row)">详情</el-button>
<el-button type="text" @click="closeRow(row)" v-show="row.status != '3'">关闭</el-button>
<el-button type="text" v-show="row.status == '3'" @click="deleteRow">删除</el-button>
<el-button type="text" v-show="row.status == '1'" @click="approveRow(row)">审核</el-button>
<el-button type="text" @click="closeRow(row)" v-show="row.status != 10006 && (row.status == 10000 || row.status == 10005)">关闭</el-button>
<el-button type="text" v-show="row.status == 10006 || row.status == 10000 || row.status == 10005" @click="deleteRow">删除</el-button>
<el-button type="text" v-show="row.status == 10000" @click="approveRow(row)">审核</el-button>
</template>
</avue-crud>
<coating-add-dialog :show-dialog="showDialog" @closeDialog="closeDialog"></coating-add-dialog>
@ -36,16 +37,16 @@
<!-- <add-quantity :add-quantity="addQuantity" @closeDialog="closeDialog"></add-quantity>
<add-dialog :add-dialog="addDialog" @closeDialog="closeDialog"></add-dialog> -->
<el-dialog append-to-body width="550px" title="审" v-model="approveDialog">
<el-dialog append-to-body width="550px" title="审" v-model="approveDialog">
<el-form ref="approveForm" :model="approveForm" :rules="approveRules">
<el-form-item label="审批结果" prop="approveREsult">
<el-radio-group v-model="approveForm.approveREsult" @input="changeType">
<el-form-item label="审核结果" prop="approvalStatus">
<el-radio-group v-model="approveForm.approvalStatus" @input="changeType">
<el-radio :label="1">审批通过</el-radio>
<el-radio :label="0">审批不通过</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="审意见" prop="approvalOpinion">
<el-input type="textarea" v-model="approveForm.approvalOpinion"></el-input>
<el-form-item label="审意见" prop="approvalMemo">
<el-input type="textarea" v-model="approveForm.approvalMemo"></el-input>
</el-form-item>
</el-form>
<template #footer>
@ -132,7 +133,8 @@ export default {
column: [],
},
approveRules: {
approveREsult: [{ required: true, message: '请选择审批结果', trigger: 'blur' }],
approvalStatus: [{ required: true, message: '请选择审核结果', trigger: 'blur' }],
approvalMemo: [{ required: true, message: '请输入审核意见', trigger: 'blur' }],
},
approveDialog: false,
page: {
@ -224,11 +226,17 @@ export default {
}
},
approveRow(val) {
this.selectionList = []
this.selectionList.push(val);
this.approveDialog = true;
},
handleApprove() {
if (this.selectionList.length != 0) {
let tmp = this.selectionList.find(item => item.status != 10000)
if(tmp){
this.$message.error("请选择状态为【待审核】的数据")
return
}
this.approveDialog = true;
} else {
this.$message.error('请至少选择一条数据!');
@ -236,17 +244,27 @@ export default {
},
submitApprove() {
this.$refs.approveForm.validate(valid => {
console.log('valid==============', valid);
if (valid) {
const ids = this.selectionList.map(item => item.id).join(',');
confirmBatch({ ...{ ids }, ...this.approveForm }).then(res => {
if (res.code === 200) {
confirmBatch({
ids:ids,
...this.approveForm
}).then(res =>{
if(res.data.code == 200){
this.$message.success('审核成功');
this.approveDialog = false;
this.selectionList = []
this.onLoad()
}
});
this.approveDialog = false;
this.$refs.crud.toggleSelection();
this.onLoad(this.page);
})
// confirmBatch({ ...{ ids }, ...this.approveForm }).then(res => {
// if (res.code === 200) {
// this.$message.success('');
// }
// });
// this.approveDialog = false;
// this.$refs.crud.toggleSelection();
// this.onLoad(this.page);
}
});
},

@ -197,11 +197,18 @@ export default {
},
],
dicData: [
{ label: '待审核', value: '1' },
{ label: '审核不通过', value: '2' },
{ label: '已关闭', value: '3' },
{ label: '审核通过', value: '4' },
{ label: '已过期', value: '5' },
// { label: '待审核', value: '1' },
// { label: '审核不通过', value: '2' },
// { label: '已关闭', value: '3' },
// { label: '审核通过', value: '4' },
// { label: '已过期', value: '5' },
{ label: '待审核', value: 10000 },
{ label: '审核通过', value: 10001 },
{ label: "使用中", value:10002},
{ label: '审核不通过', value: 10005 },
{ label: '已完成',value:10004},
{ label: '已超期', value: 10003 },
{ label: '已关闭', value: 10006 },
]
},
{
@ -415,9 +422,16 @@ export default {
},
],
dicData: [
{ label: '待领取', value: 1 },
{ label: '已领取', value: 2 },
{ label: '已过期', value: 3 },
// { label: '待领取', value: 1 },
// { label: '已领取', value: 2 },
// { label: '已过期', value: 3 },
{ label: '待审核', value: 10000 },
{ label: '审核通过', value: 10001 },
{ label: "使用中", value:10002},
{ label: '审核不通过', value: 10005 },
{ label: '已完成',value:10004},
{ label: '已超期', value: 10003 },
{ label: '已关闭', value: 10006 },
]
},
{

@ -165,9 +165,10 @@ export default {
setData:{},
option:{
tip: false,
height: 'auto',
calcHeight: 32,
align: 'center',
size: 'medium',
height:'auto',
searchLabelWidth:120,
simplePage: true,
searchShow: true,

@ -1,5 +1,5 @@
<template>
<el-dialog title="查看" append-to-body :modelValue="openShow" width="80%" @close="closeDialog">
<el-dialog title="查看" append-to-body :modelValue="openShow" width="80%" @close="closeDialog">
<div style="display: flex; align-items: center; justify-content: space-between">
<el-descriptions title="订单信息" :column="5" border style="width: 100%" :label-width="160">
<el-descriptions-item label="车间订单号" class="fixed-width-item">{{

@ -1,6 +1,6 @@
<template>
<div>
<avue-crud :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model:page="page" :before-open="beforeOpen"
<avue-crud :height="460" :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model:page="page" :before-open="beforeOpen"
v-model="form" ref="crud" @row-update="rowUpdate"
@search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">

@ -1,6 +1,6 @@
<template>
<div>
<avue-crud :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model:page="page"
<avue-crud :height="460" :option="option" v-model:search="search" :table-loading="loading" :data="data" v-model:page="page"
v-model="form" ref="crud" @row-update="rowUpdate"
@search-change="searchChange" @search-reset="searchReset"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">

@ -3,7 +3,7 @@
<basic-container>
<el-tabs v-model="tabPosition" class="demo-tabs" @tab-change="tabPositionChange">
<el-tab-pane label="erp审理" name="erpHear">
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
<avue-crud :height="460" :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
@ -22,7 +22,7 @@
</avue-crud>
</el-tab-pane>
<el-tab-pane label="内部审理" name="insideHear">
<avue-crud :option="insideOption" :table-loading="loading" :data="insideData" v-model="form" v-model:page="insidePage" ref="crud"
<avue-crud :height="460" :option="insideOption" :table-loading="loading" :data="insideData" v-model="form" v-model:page="insidePage" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">

@ -2,7 +2,7 @@
<basic-container>
<avue-crud ref="materalCrud" :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
@row-save="rowSave" @row-update="rowUpdate"
@row-save="rowSave" @row-update="rowUpdate" :before-open="beforeOpen"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
<!-- <template #goodsCode="{ row }">{{ row.coGoods.goodsCode }}</template>
@ -98,6 +98,7 @@ export default {
addDisplay: false,
editDisplay: false,
span: 8,
hide:true,
width: 200,
search: true,
//
@ -484,6 +485,13 @@ export default {
this.query.goodsStatus = val
this.onLoad()
},
beforeOpen(done, type) {
if (['edit', 'view'].includes(type)) {
console.log('form---------------------',this.form)
this.form.goodsId = this.form.goodsId + ''
}
done();
},
handlePaint(){
this.laInData = []
console.log('ref------------------',this.$refs.materalCrud)
@ -525,11 +533,10 @@ export default {
let params = {
goodsId:row.goodsId,
useAverage:row.useAverage,
delivery:row.delivery,
paint:row.paint,
delivery:row.delivery == 1 ? true : false,
paint:row.paint == 1 ? true : false,
special:row.special,
turnover:row.turnover,
delivery:row.delivery
}
addMaterialStatus(params).then(res =>{
if(res.data.code == 200){
@ -540,6 +547,8 @@ export default {
})
},
rowUpdate(row, index, done, loading){
row.delivery = row.delivery == 1 ? true : false
row.paint = row.paint == 1 ? true : false
editMaterialStatus(row).then(res =>{
if(res.data.code == 200){
this.$message.success('修改成功')
@ -555,8 +564,8 @@ export default {
...this.query
}).then(res =>{
res.data.data.records.map(item =>{
item.paint = item.paint != '' ? item.paint ? 1 : 0 : ''
item.delivery = item.delivery != '' ? item.delivery ? 1 : 0 : ''
item.paint = item.paint != '' && item.paint ? 1 : 0
item.delivery = item.delivery != '' && item.delivery ? 1 : 0
})
this.data = res.data.data.records
console.log('data-------------',this.data)

Loading…
Cancel
Save