From 8afbe0b83915dc417cea62221782e7ce15c00c78 Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期一, 04 十二月 2023 17:19:42 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before
---
src/views/admin/productType/index.vue | 9
src/views/quality/packageinspect/packageInspect-form.vue | 602 +++++++++++++++++++++++++
src/views/quality/processconfiguration/index.vue | 2
vue.config.js | 5
src/router/views/index.js | 17
src/views/plan/manufacturingorder/productorder-form.vue | 113 ++--
src/views/plan/customerorder/customerorder-form.vue | 41 +
src/views/technology/operation/operation-form.vue | 4
src/views/quality/Packaging_ledger/index.vue | 12
src/api/quality/packageInspect.js | 39 +
src/views/plan/manufacturingorder/teststandardtable.vue | 16
src/views/product/workbench/productInDialog.vue | 8
src/views/plan/productionschedul/index.vue | 134 +++++
src/views/quality/packageinspect/index.vue | 231 +++++++++
src/views/quality/Packaging_ledger/pack-from.vue | 2
src/views/product/workbench/feed-pane.vue | 78 ++
src/views/basic/workstation/workstation-form.vue | 8
src/api/plan/productionschedul.js | 10
src/views/quality/teststandard/index.vue | 4
src/views/product/workbench/feed-form.vue | 49 +
20 files changed, 1,245 insertions(+), 139 deletions(-)
diff --git a/src/api/plan/productionschedul.js b/src/api/plan/productionschedul.js
index c0df5f0..5c56f9a 100644
--- a/src/api/plan/productionschedul.js
+++ b/src/api/plan/productionschedul.js
@@ -10,7 +10,15 @@
export function fetchScheduleById(id) {
return request({
- url: '/mes//productionSchedul/'+id,
+ url: '/mes/productionSchedul/'+id,
method: 'get',
})
+}
+
+export function fillTime(data) {
+ return request({
+ url: '/mes/productionSchedul/fillTime',
+ method: 'put',
+ data: data
+ })
}
\ No newline at end of file
diff --git a/src/api/quality/packageInspect.js b/src/api/quality/packageInspect.js
new file mode 100644
index 0000000..f9881e6
--- /dev/null
+++ b/src/api/quality/packageInspect.js
@@ -0,0 +1,39 @@
+import request from '@/router/axios'
+
+export function fetchList(query) {
+ return request({
+ url: '/mes/packageInspect/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function fetchListById(id) {
+ return request({
+ url: '/mes/packageInspect/'+id,
+ method: 'get',
+ })
+}
+
+export function deleteById(id) {
+ return request({
+ url: '/mes/packageInspect/'+id,
+ method: 'delete',
+ })
+}
+
+export function updatePackageInsProduct(data) {
+ return request({
+ url: '/mes/packageInsProduct/updatePackageInsProduct',
+ method: 'post',
+ data: data
+ })
+}
+export function updatePackageInspectById(data) {
+ return request({
+ url: '/mes/packageInspect/updatePackageInspectById',
+ method: 'post',
+ params: data
+ })
+}
+
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 7269a62..20e8be7 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -145,6 +145,23 @@
]
},
{
+ path: '/quality/packageinspect',
+ component: Layout,
+ children: [
+ {
+ path: 'packageInspect-form',
+ name: 'packageInspectForm',
+ component: () =>
+ import(/* webpackChunkName: "views" */ '@/views/quality/packageinspect/packageInspect-form'),
+ meta: {
+ keepAlive: false,
+ isTab: false,
+ isAuth: false
+ }
+ }
+ ]
+ },
+ {
path: '/quality/rawMaterial',
component: Layout,
children: [
diff --git a/src/views/admin/productType/index.vue b/src/views/admin/productType/index.vue
index b23cc54..12120e7 100644
--- a/src/views/admin/productType/index.vue
+++ b/src/views/admin/productType/index.vue
@@ -54,7 +54,7 @@
<el-dialog :visible.sync="dialogAddVisible" :close-on-click-modal="false" title="鏂板閰嶇疆">
<el-form :model="prodForm" :rules="rules" ref="addDialog">
<el-form-item prop="staffName" label="鐢ㄦ埛鍚嶇О:" label-width="90px">
- <el-select style="width:100%" v-model="prodForm.staffName">
+ <el-select style="width:100%" v-model="prodForm.staffName" filterable placeholder="璇烽�夋嫨">
<el-option v-for="(item,index) in staffNamesOptions" :key="index" :value="item.id" :label="item.staffName"/>
</el-select>
</el-form-item>
@@ -70,12 +70,12 @@
</el-dialog>
</div>
</template>
-
+
<script>
import { tableOption } from '@/const/crud/admin/productType'
import { getList,addObj,delObj,chooseStaff } from '@/api/admin/productType'
import { mapGetters } from 'vuex'
-
+
export default {
name: 'TableProduct',
data() {
@@ -184,7 +184,7 @@
}
}
</script>
-
+
<style lang="scss" scoped>
.el-dialog__wrapper {
.el-dialog {
@@ -203,4 +203,3 @@
}
}
</style>
-
\ No newline at end of file
diff --git a/src/views/basic/workstation/workstation-form.vue b/src/views/basic/workstation/workstation-form.vue
index 9947e12..2449eea 100644
--- a/src/views/basic/workstation/workstation-form.vue
+++ b/src/views/basic/workstation/workstation-form.vue
@@ -127,7 +127,7 @@
>
</el-transfer>
</el-tab-pane>
- <el-tab-pane label="浜у嚭寰呮搴撲綅" name="inspection">
+ <!-- <el-tab-pane label="浜у嚭寰呮搴撲綅" name="inspection">
<el-transfer
filterable
v-model="inspectionLocationIds"
@@ -137,7 +137,7 @@
@change="handleChangeInspectionLocation"
>
</el-transfer>
- </el-tab-pane>
+ </el-tab-pane> -->
<!-- <el-tab-pane label="浜у嚭涓嶅悎鏍煎簱浣�" name="disqualified">
<el-transfer
filterable
@@ -160,7 +160,7 @@
>
</el-transfer>
</el-tab-pane> -->
- <el-tab-pane label="妫�楠屽緟澶勭悊搴撲綅" name="pending">
+ <!-- <el-tab-pane label="妫�楠屽緟澶勭悊搴撲綅" name="pending">
<el-transfer
filterable
v-model="pendingLocationIds"
@@ -170,7 +170,7 @@
@change="handleChangePendingLocation"
>
</el-transfer>
- </el-tab-pane>
+ </el-tab-pane> -->
<el-tab-pane label="鎴愬搧寰呮搴撲綅" name="product">
<el-transfer
filterable
diff --git a/src/views/plan/customerorder/customerorder-form.vue b/src/views/plan/customerorder/customerorder-form.vue
index ec8dfc5..f131c55 100644
--- a/src/views/plan/customerorder/customerorder-form.vue
+++ b/src/views/plan/customerorder/customerorder-form.vue
@@ -209,13 +209,12 @@
<el-input
v-model="dataForm.partNo"
placeholder=""
- disabled
>
<el-button
slot="append"
icon="el-icon-search"
- @click="openSalesPartDialog()"
- v-show="dataForm.id==null"
+ @click="openPartDialog()"
+
></el-button>
</el-input>
</el-form-item>
@@ -1052,7 +1051,7 @@
// } else {
// console.log('2')
this.dataForm = response.data.data
-
+
// }
// this.fileList = response.data.data.customerOrderAttachmentList
const sourceId = response.data.data.sourceId
@@ -1194,25 +1193,35 @@
}
})
},
- // 闆朵欢閫夋嫨
+ // 闆朵欢閫夋嫨
openPartDialog() {
- if (
- this.dataForm.coState === '01partUnCheck' ||
- this.dataForm.coState === '02technologyUnCheck'
- ) {
- this.showPart = true
- } else {
- this.$message.warning(
- '璁㈠崟鍙湁鍦ㄣ�愰浂浠跺緟閫夈�戙�併�愬伐鑹烘枃浠跺緟閫夈�戠姸鎬佷笅锛屾墠鑳借繘琛岄浂浠朵慨鏀�'
- )
- }
+ this.showPart = true
},
selectPart(part) {
+ console.log(part);
if (part) {
this.dataForm.partNo = part.partNo
- this.$refs.dataForm.validateField('partNo', (valid) => {})
}
},
+ // 闆朵欢閫夋嫨
+ // openPartDialog() {
+ // if (
+ // this.dataForm.coState === '01partUnCheck' ||
+ // this.dataForm.coState === '02technologyUnCheck'
+ // ) {
+ // this.showPart = true
+ // } else {
+ // this.$message.warning(
+ // '璁㈠崟鍙湁鍦ㄣ�愰浂浠跺緟閫夈�戙�併�愬伐鑹烘枃浠跺緟閫夈�戠姸鎬佷笅锛屾墠鑳借繘琛岄浂浠朵慨鏀�'
+ // )
+ // }
+ // },
+ // selectPart(part) {
+ // if (part) {
+ // this.dataForm.partNo = part.partNo
+ // this.$refs.dataForm.validateField('partNo', (valid) => {})
+ // }
+ // },
// 鍏ㄥ睆
fullscreen() {
this.isFullScreen = !this.isFullScreen
diff --git a/src/views/plan/manufacturingorder/productorder-form.vue b/src/views/plan/manufacturingorder/productorder-form.vue
index ba11120..d4fcf52 100644
--- a/src/views/plan/manufacturingorder/productorder-form.vue
+++ b/src/views/plan/manufacturingorder/productorder-form.vue
@@ -8,7 +8,7 @@
</div>
<div class="btn-group header-right" v-if="editable">
<el-button :disabled="isSubmit" v-thinclick="`dataFormSubmit`"
- >淇濆瓨</el-button
+ type="primary">淇濆瓨</el-button
>
</div>
</div>
@@ -126,7 +126,6 @@
</el-form-item>
</el-col>
</el-row>
-
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="澶囨敞" prop="remark">
@@ -151,39 +150,37 @@
</el-select>
</el-form-item>
</el-col>
- <el-col :span="8">
- <el-col
- :span="8"
- v-if="permissions.plan_manufacturingorder_bom_sure"
- >
- <el-form-item label="BOM纭">
- <el-switch v-model="dataForm.bomConfirmStatus"> </el-switch>
- </el-form-item>
- </el-col>
- <el-col
- :span="8"
- v-if="permissions.plan_manufacturingorder_process_sure"
- >
- <el-form-item label="宸ヨ壓纭">
- <el-switch v-model="dataForm.processConfirmStatus">
- </el-switch>
- </el-form-item>
- </el-col>
- <el-col
- :span="8"
- v-if="permissions.plan_manufacturingorder_test_sure"
- >
- <el-form-item label="妫�娴嬫爣鍑嗙‘璁�">
- <el-switch v-model="dataForm.standardConfirmStatus">
- </el-switch>
- </el-form-item>
- </el-col>
+ <el-col
+ :span="2"
+ v-if="permissions.plan_manufacturingorder_bom_sure"
+ >
+ <el-form-item label="BOM纭" label-width="110px">
+ <el-switch v-model="dataForm.bomConfirmStatus"> </el-switch>
+ </el-form-item>
</el-col>
- <el-col :span="4">
+ <el-col
+ :span="2"
+ v-if="permissions.plan_manufacturingorder_process_sure"
+ >
+ <el-form-item label="宸ヨ壓纭" label-width="110px">
+ <el-switch v-model="dataForm.processConfirmStatus">
+ </el-switch>
+ </el-form-item>
+ </el-col>
+ <el-col
+ :span="2"
+ v-if="permissions.plan_manufacturingorder_test_sure"
+ >
+ <el-form-item label="妫�娴嬫爣鍑嗙‘璁�" label-width="140px">
+ <el-switch v-model="dataForm.standardConfirmStatus">
+ </el-switch>
+ </el-form-item>
+ </el-col>
+ <el-col :span="2">
<el-form-item
label="IFS杞﹂棿璁㈠崟鎺ユ敹鏃舵姤鍛婂伐搴�"
prop="isReportOperation"
- label-width="200px"
+ label-width="250px"
>
<el-switch v-model="dataForm.isReportOperation" disabled>
</el-switch>
@@ -595,8 +592,19 @@
<el-tab-pane label="浜у搧缁撴瀯" id="ta1" key="ta1" name="ta1">
<el-row>
- <el-col :span="11">
- <el-form-item label="瀹屾暣BOM">
+ <el-col :span="2" style="text-align: center">
+ <el-button
+ type="text"
+ size="small"
+ icon="el-icon-circle-plus-outline"
+ style="color:#f56c6c;"
+ :disabled="!dataForm.id"
+ @click="addStruct()"
+ >娣诲姞鍏冪礌
+ </el-button>
+ </el-col>
+ <el-col :offset="11" :span="11">
+ <!-- <el-form-item label="瀹屾暣BOM">
<el-select
@change="bomSelectChanged"
disabled
@@ -622,18 +630,7 @@
>
</el-option>
</el-select>
- </el-form-item>
- </el-col>
- <el-col :offset="11" :span="2" style="text-align: center">
- <el-button
- type="text"
- size="small"
- icon="el-icon-circle-plus-outline"
- style="color:#f56c6c;"
- :disabled="!dataForm.id"
- @click="addStruct()"
- >娣诲姞鍏冪礌
- </el-button>
+ </el-form-item> -->
</el-col>
</el-row>
<el-row>
@@ -644,7 +641,7 @@
style="width: 100%"
height="400px"
>
- <el-table-column type="selection" width="40" fixed="left" />
+ <!-- <el-table-column type="selection" width="40" fixed="left" /> -->
<el-table-column
type="index"
width="50"
@@ -662,7 +659,7 @@
/>
<el-table-column
prop="partName"
- width=""
+ width="200"
header-align="center"
align="left"
label="闆朵欢"
@@ -2107,17 +2104,17 @@
},
// 鎵撳紑bom鑺傜偣
addStruct() {
- if (this.structSelection.length <= 0) {
- this.$message.error('璇烽�夋嫨闇�瑕佹坊鍔犲厓绱犵殑鑺傜偣')
- } else {
- if (this.structSelection.length === 1) {
- this.selectedStruct = this.structSelection[0]
- this.moId = this.dataForm.id
- this.showStructForm = true
- } else {
- this.$message.error('鍙兘涓哄崟涓妭鐐规坊鍔犲厓绱�')
- }
- }
+ this.selectedStruct = this.structSelection[0]
+ this.moId = this.dataForm.id
+ this.showStructForm = true
+ // if (this.structSelection.length <= 0) {
+ // this.$message.error('璇烽�夋嫨闇�瑕佹坊鍔犲厓绱犵殑鑺傜偣')
+ // } else {
+ // if (this.structSelection.length === 1) {
+ // } else {
+ // this.$message.error('鍙兘涓哄崟涓妭鐐规坊鍔犲厓绱�')
+ // }
+ // }
},
refreshBom(node) {
if (this.selectedStruct.children != null) {
diff --git a/src/views/plan/manufacturingorder/teststandardtable.vue b/src/views/plan/manufacturingorder/teststandardtable.vue
index 0c30093..6e4ad6b 100644
--- a/src/views/plan/manufacturingorder/teststandardtable.vue
+++ b/src/views/plan/manufacturingorder/teststandardtable.vue
@@ -111,14 +111,14 @@
height="100%"
style="width: 100%"
>
- <el-table-column prop="index" label="搴忓彿" align="center" width="50" />
+ <!-- <el-table-column prop="index" label="搴忓彿" align="center" width="50" />
<el-table-column label="绾胯姱" prop="wireCore" align="center" />
<el-table-column
prop="isCheck"
label="鎶芥"
align="center"
:formatter="isCheckFormatter"
- />
+ /> -->
<el-table-column label="鍙傛暟缂栧彿" prop="code" align="center" />
<el-table-column label="鍙傛暟椤�" prop="parameterItem" align="center" />
<el-table-column label="妫�娴嬭寖鍥�" prop="referenceValue" align="center">
@@ -162,10 +162,10 @@
></el-input>
</template>
</el-table-column>
- <el-table-column label="閫氶亾" prop="aisle" align="center" />
- <el-table-column label="閮ㄤ綅" prop="position" align="center" />
+ <!-- <el-table-column label="閫氶亾" prop="aisle" align="center" />
+ <el-table-column label="閮ㄤ綅" prop="position" align="center" /> -->
<el-table-column label="鍗曚綅" prop="unit" align="center" />
- <el-table-column
+ <!-- <el-table-column
prop="extendsRoutingNo"
label="缁ф壙宸ヨ壓璺嚎"
align="center"
@@ -184,7 +184,7 @@
prop="extendsTestStandardParamNo"
label="缁ф壙鏍囧噯鍙傛暟"
align="center"
- />
+ /> -->
<el-table-column label="鎿嶄綔" align="center" width="118">
<template slot-scope="scope">
<el-button
@@ -193,12 +193,12 @@
@click.stop="insertOperationParam(scope.row)"
>鎻掑叆
</el-button>
- <el-button
+ <!-- <el-button
type="text"
size="mini"
@click.stop="editTestStandardParam(scope.row)"
>鍏紡
- </el-button>
+ </el-button> -->
<el-button
type="text"
size="mini"
diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue
index fa6061d..3a03c19 100644
--- a/src/views/plan/productionschedul/index.vue
+++ b/src/views/plan/productionschedul/index.vue
@@ -3,7 +3,7 @@
<basic-container>
<el-row>
<el-col :span="12">
- <div style="height:80vh">
+ <div style="height:80vh;padding: 0px 10px;">
<avue-crud :data="tableData" ref="crud" :option="option" :span-method="spanMethod"
@refresh-change="getData"
:page="page"
@@ -20,18 +20,23 @@
<el-card>
<div slot="header" class="clearfix">
<span>璋冨害鏃堕棿绾�</span>
- <el-button style="float: right; padding: 3px 0" type="text">鎿嶄綔鎸夐挳</el-button>
+ <el-button v-if="scheduleList.length>0" @click="openEditDialog" style="float: right; padding: 3px 0" type="text">缂栬緫</el-button>
</div>
<div style="height:70vh;overflow-y: scroll;">
- <el-timeline reverse>
+ <el-timeline>
<el-timeline-item
placement="top"
v-for="(item, index) in scheduleList"
:key="index"
- :timestamp="item.planTime">
- <el-card style="width:95%;margin: 0;padding: 0px 10px;">
- <p style="font-weight: bold;">{{item.title}}</p>
- <p>瀹為檯鏃堕棿: {{ item.actualTime }}</p>
+ :timestamp="item.title">
+ <el-card shadow="hover" :body-style="{margin: '0',padding:'0px 20px 0px 20px'}" style="width:90%;">
+ <p>
+ <span style="font-weight: bold;">璁″垝鏃堕棿: </span>
+ {{item.planTime}}
+ </p>
+ <p>
+ <span style="font-weight: bold;">瀹為檯鏃堕棿: </span>
+ {{ item.actualTime }}</p>
</el-card>
</el-timeline-item>
</el-timeline>
@@ -41,6 +46,57 @@
</el-col>
</el-row>
</basic-container>
+ <el-dialog
+ title="缂栬緫鏃堕棿绾�"
+ :visible.sync="dialogVisible"
+ top="5vh"
+ width="50%"
+ :before-close="handleClose">
+ <div style="height:60vh;overflow-y: scroll;">
+ <el-timeline>
+ <el-timeline-item
+ placement="top"
+ v-for="(item, index) in scheduleEditList"
+ :key="index"
+ :timestamp="item.title">
+ <el-card shadow="hover" style="width:90%" :body-style="{padding:'20px 20px 5px 20px'}">
+ <el-row>
+ <el-col :span="3">
+ <p style="font-weight: bold;line-height: 50%;">璁″垝鏃堕棿: </p>
+ </el-col>
+ <el-col :span="21">
+ <el-date-picker
+ style="width:100%"
+ v-model="item.planTime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetime"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿">
+ </el-date-picker>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="3">
+ <p style="font-weight: bold;line-height: 50%;">瀹為檯鏃堕棿: </p>
+ </el-col>
+ <el-col :span="21">
+ <el-date-picker
+ style="width:100%"
+ v-model="item.actualTime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetime"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿">
+ </el-date-picker>
+ </el-col>
+ </el-row>
+ </el-card>
+ </el-timeline-item>
+ </el-timeline>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmEditSchedul">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
@@ -48,6 +104,7 @@
import {
fetchScheduleList,
fetchScheduleById,
+ fillTime
} from '@/api//plan/productionschedul'
import TableForm from './template-form'
import ttable from '@/views/common/ztt-table.vue'
@@ -55,7 +112,9 @@
export default {
data() {
return {
+ dialogVisible: false,
scheduleList: [],
+ scheduleEditList: [],
typeOptions: [],
multipleSelection: [],
loading: true,
@@ -221,6 +280,53 @@
beforeDestroy() {
},
methods: {
+ openEditDialog(){
+ this.scheduleEditList = JSON.parse(JSON.stringify(this.scheduleList))
+ this.dialogVisible = true
+ },
+ confirmEditSchedul(){
+ let data = this.scheduleEditList
+ let orderObj = this.multipleSelection[0]
+ console.log("data---",data)
+ console.log("orderObj-----",orderObj)
+ let obj = {
+ "documentActualTime": data[0].actualTime,
+ "documentPlanTime": data[0].planTime,
+ "bomActualTime": data[1].actualTime,
+ "bomPlanTime": data[1].planTime,
+ "contractActualTime": data[2].actualTime,
+ "contractPlanTime": data[2].planTime,
+ "arrivalActualTime": data[3].actualTime,
+ "arrivalPlanTime": data[3].planTime,
+ "checkActualTime": data[4].actualTime,
+ "checkPlanTime": data[4].planTime,
+ "productActualTime": data[5].actualTime,
+ "productPlanTime": data[5].planTime,
+ "id": orderObj.id,
+ "contractNo": orderObj.contractNo,
+ "customerName": orderObj.customerName,
+ "deliveryDate": orderObj.deliveryDate,
+ "orderTime": orderObj.orderTime,
+ "productType": orderObj.productType,
+ "projectName": orderObj.projectName
+ }
+ console.log("obj----->>>",obj);
+ fillTime(obj).then(res=>{
+ if(res.status===200){
+ this.$message.success("鏇存柊鎴愬姛")
+ }else{
+ this.$message.error("鏇存柊澶辫触")
+ }
+ this.getScheduleById(orderObj.id)
+ this.dialogVisible = false
+ }).catch(error=>{
+ console.log(error);
+ })
+
+ },
+ handleClose(done){
+ done()
+ },
initTimeLine(data){
this.scheduleList = []
if(data){
@@ -270,10 +376,14 @@
},
selectionRow(val){
if (val.length > 1) {
- const preVal = val.shift();
- this.$refs.crud.toggleRowSelection(preVal, false);
- }
- this.getScheduleById(val[0].id)
+ const preVal = val.shift();
+ this.$refs.crud.toggleRowSelection(preVal, false);
+ }
+ else{
+ this.scheduleList=[]
+ }
+ this.multipleSelection = val
+ this.getScheduleById(val[0].id)
},
formatDate(row, cellValue){
if (cellValue) {
@@ -295,9 +405,9 @@
this.tableData = res.data.data.records
this.page.total = res.data.data.total
this.page.currentPage = res.data.data.records.pages
+ this.scheduleList = []
})
this.loading = false
-
},
handleCurrentChange(val) {
this.multipleSelection = val
diff --git a/src/views/product/workbench/feed-form.vue b/src/views/product/workbench/feed-form.vue
index ccfa65d..e2c0374 100644
--- a/src/views/product/workbench/feed-form.vue
+++ b/src/views/product/workbench/feed-form.vue
@@ -1,6 +1,7 @@
<template>
<el-dialog
- width="40%"
+ width="60%"
+ top="5vh"
title="鎶曟枡"
:visible.sync="innerVisible"
append-to-body
@@ -15,17 +16,20 @@
:key="tableKey"
:data="dataList"
border
- style="width: 100%;"
+ height="400"
+ style="width: 100%;overflow-y: scroll;"
@cell-dblclick="dblhandleCurrentChange"
show-summary
:span-method="objectSpanMethod"
:summary-method="getSummaries"
>
+ <el-table-column header-align="center" align="center" type="index" label="搴忓彿"></el-table-column>
<el-table-column
prop="partNo"
header-align="center"
align="center"
label="闆朵欢缂栧彿"
+ show-overflow-tooltip
>
</el-table-column>
<el-table-column
@@ -33,6 +37,7 @@
header-align="center"
align="center"
label="闆朵欢"
+ show-overflow-tooltip
>
</el-table-column>
<el-table-column
@@ -40,6 +45,7 @@
header-align="center"
align="center"
label="鎵瑰彿"
+ show-overflow-tooltip
>
</el-table-column>
<!-- <el-table-column
@@ -72,7 +78,13 @@
header-align="center"
align="center"
label="鍗曚綅"
+ show-overflow-tooltip
>
+ </el-table-column>
+ <el-table-column prop="menu" label="鎿嶄綔" header-align="center" align="center">
+ <template scope="scope">
+ <el-button type="text" icon="el-icon-circle-close" @click="cancelFeed(scope.$index,scope.row)">鍙栨秷</el-button>
+ </template>
</el-table-column>
</el-table>
</div>
@@ -142,6 +154,12 @@
password: null
}
},
+ beforeUpdate(){
+ this.$nextTick(()=>{
+ this.objectSpanMethod()
+ this.$refs.table.doLayout()
+ })
+ },
directives: {
focus: {
inserted: function(el, option) {
@@ -162,6 +180,10 @@
}
},
methods: {
+ //鎶曞叆鍙栨秷鎸夐挳
+ cancelFeed(index,row){
+ this.dataList.splice(index,1)
+ },
confirmData() {
if (this.password != null) {
checkSubmitPassword({ password: this.password }).then((response) => {
@@ -286,16 +308,16 @@
return reg.test(value)
},
objectSpanMethod() {
- setTimeout(() => {
+ this.$nextTick(()=>{
if (this.$refs.table.$el) {
const current = this.$refs.table.$el
.querySelector('.el-table__footer-wrapper')
.querySelector('.el-table__footer')
const cell = current.rows[0].cells
// cell[1].style.display = 'none'
- cell[0].colSpan = '4'
+ cell[0].colSpan = '6'
}
- }, 50)
+ })
},
getSummaries(param) {
const { columns, data } = param
@@ -325,12 +347,19 @@
},
watch: {
currshowlist() {
- this.innerVisible = this.currshowlist
- this.password = null
- if (this.currshowlist) {
- this.$nextTick(() => {})
+ const _than = this
+ _than.innerVisible = _than.currshowlist
+ _than.password = null
+ if (!_than.currshowlist) {
+ _than.$nextTick(() => {
+ })
}
- }
+ },
+ },
+ created(){
+ this.$nextTick(()=>{
+ this.objectSpanMethod()
+ })
},
mounted() {}
}
diff --git a/src/views/product/workbench/feed-pane.vue b/src/views/product/workbench/feed-pane.vue
index 743e9a2..0b41376 100644
--- a/src/views/product/workbench/feed-pane.vue
+++ b/src/views/product/workbench/feed-pane.vue
@@ -137,7 +137,7 @@
</el-table-column>
</el-table>
<el-tabs v-model="activeName">
- <el-tab-pane name="first" label="绾胯竟浠撳悎鏍肩墿鏂�">
+ <!-- <el-tab-pane name="first" label="绾胯竟浠撳悎鏍肩墿鏂�"> -->
<div class="line-side-warehouse-header">
<div>
<el-divider class="pane-divider" direction="vertical"></el-divider
@@ -375,7 +375,7 @@
>
<template slot="header">
<div style="line-height: 14px;">鍙敤鏁伴噺</div>
- <!-- <div class="th" @click.stop>
+ <div class="th" @click.stop>
<el-input
type="text"
v-model="queryParamTwo.availableStockQuantity"
@@ -384,7 +384,7 @@
@clear="handleStockList"
size="mini"
></el-input>
- </div> -->
+ </div>
</template>
<template slot-scope="scope">
<span>{{ scope.row.availableStockQuantity }}</span>
@@ -393,7 +393,7 @@
<el-table-column label="搴撳瓨鏁伴噺" prop="stockQuantity" align="center">
<template slot="header">
<div style="line-height: 14px;">搴撳瓨鏁伴噺</div>
- <!-- <div class="th" @click.stop>
+ <div class="th" @click.stop>
<el-input
type="text"
v-model="queryParamTwo.stockQuantity"
@@ -402,19 +402,19 @@
@clear="handleStockList"
size="mini"
></el-input>
- </div> -->
+ </div>
</template>
<template slot-scope="scope">
<span>{{ scope.row.stockQuantity }}</span>
</template>
</el-table-column>
- <el-table-column
+ <!-- <el-table-column
label="棰勭暀鏁伴噺"
prop="reserveQuantity"
align="center"
>
<template slot="header">
- <div style="line-height: 14px;">棰勭暀鏁伴噺</div>
+ <div style="line-height: 14px;">棰勭暀鏁伴噺</div> -->
<!-- <div class="th" @click.stop>
<el-input
type="text"
@@ -425,9 +425,33 @@
size="mini"
></el-input>
</div> -->
- </template>
+ <!-- </template>
<template slot-scope="scope">
<span>{{ scope.row.reserveQuantity }}</span>
+ </template>
+ </el-table-column> -->
+ <el-table-column label="鏄惁宸ュ簭搴撳瓨" prop="operationStockStatus" align="center">
+ <template slot-scope="scope">
+ <span v-if="scope.row.operationStockStatus">鏄�</span>
+ <span v-else>鍚�</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎵�灞炲伐搴�" prop="name" align="center">
+ <template slot="header">
+ <div style="line-height: 14px;">鎵�灞炲伐搴�</div>
+ <div class="th" @click.stop>
+ <el-input
+ type="text"
+ v-model="queryParamTwo.name"
+ @keyup.enter.native="handleStockList"
+ clearable
+ @clear="handleStockList"
+ size="mini"
+ ></el-input>
+ </div>
+ </template>
+ <template slot-scope="scope">
+ <span>{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label="搴撲綅鍙�" prop="locationNo" align="center">
@@ -461,7 +485,7 @@
>
</el-pagination>
</div> -->
- </el-tab-pane>
+ <!-- </el-tab-pane> -->
<!-- <el-tab-pane name="second" label="绾胯竟浠撳緟澶勭悊鐗╂枡">
<div class="line-side-warehouse-header">
<div>
@@ -480,7 +504,7 @@
>鎵爜鎶曟枡</el-button
>
<el-button
- class="feeding-btn"
+ class="feeding-btn"locationNo
type="primary"
icon="feed-btn-feeding"
@click="addFeed()"
@@ -1358,6 +1382,30 @@
<span>{{ scope.row.stockQuantity }}</span>
</template>
</el-table-column>
+ <el-table-column label="鏄惁宸ュ簭搴撳瓨" prop="operationStockStatus" align="center">
+ <template slot-scope="scope">
+ <span v-if="scope.row.operationStockStatus">鏄�</span>
+ <span v-else>鍚�</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎵�灞炲伐搴�" prop="name" align="center">
+ <template slot="header">
+ <div style="line-height: 14px;">鎵�灞炲伐搴�</div>
+ <div class="th" @click.stop>
+ <el-input
+ type="text"
+ v-model="queryParamTwo.name"
+ @keyup.enter.native="handleStockList"
+ clearable
+ @clear="handleStockList"
+ size="mini"
+ ></el-input>
+ </div>
+ </template>
+ <template slot-scope="scope">
+ <span>{{ scope.row.name }}</span>
+ </template>
+ </el-table-column>
<el-table-column label="搴撲綅鍙�" prop="ifsLocation" align="center">
<template slot="header" slot-scope="scope">
<div style="line-height: 14px;">搴撲綅鍙�</div>
@@ -1373,7 +1421,7 @@
</div>
</template>
<template slot-scope="scope">
- <span>{{ scope.row.ifsLocation }}</span>
+ <span>{{ scope.row.locNo }}</span>
</template>
</el-table-column>
<el-table-column label="鍗曚綅" prop="unit" align="center">
@@ -2176,6 +2224,14 @@
}
},
watch: {
+ showFeedForm:{
+ handler(newVal,oldVal){
+ if(!newVal){
+ this.$refs.stockTable.toggleAllSelection(false)
+ }
+ },
+ deep: true
+ },
workstationId() {
this.$nextTick(() => {
if (this.currItem != null && this.currItem === 'feed') {
diff --git a/src/views/product/workbench/productInDialog.vue b/src/views/product/workbench/productInDialog.vue
index 6c6bf7c..ab22650 100644
--- a/src/views/product/workbench/productInDialog.vue
+++ b/src/views/product/workbench/productInDialog.vue
@@ -31,8 +31,8 @@
:show-overflow-tooltip="true"
>
</el-table-column>
- <el-table-column label="闆朵欢鎵瑰彿" prop="partBatchNo" align="center">
- </el-table-column>
+ <!-- <el-table-column label="闆朵欢鎵瑰彿" prop="partBatchNo" align="center">
+ </el-table-column> -->
<el-table-column label="瑙勬牸鍨嬪彿" prop="specs" align="center">
</el-table-column>
<el-table-column
@@ -45,6 +45,10 @@
</el-table-column>
<el-table-column label="鍗曚綅" prop="unit" align="center">
</el-table-column>
+ <el-table-column label="鏄惁宸ュ簭搴撳瓨" prop="operationStockStatus" align="center">
+ </el-table-column>
+ <el-table-column label="鎵�灞炲伐搴�" prop="name" align="center">
+ </el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue
index 0e98986..45b5115 100644
--- a/src/views/quality/Packaging_ledger/index.vue
+++ b/src/views/quality/Packaging_ledger/index.vue
@@ -41,6 +41,7 @@
</el-col>
<el-col :span="2">
<el-button
+ v-if="!isCheck"
style="float: right; padding: 3px 0"
type="text"
@click="relateOperationParam()"
@@ -118,8 +119,7 @@
<!-- 鏂板 -->
<packfrom
:currshowlist.sync="addOrUpdateVisible"
- @way = "wayRenovate"
- >
+ @refreshDataList="getData">
</packfrom>
<packfromadd
:currshowlist.sync="increase"
@@ -139,6 +139,7 @@
export default {
data(){
return {
+ isCheck: false,
dataway:{},
goid:'',
testStandardParams: [],
@@ -240,7 +241,7 @@
operator: [
{
text: '妫�楠�',
- icon: 'el-icon-delete',
+ icon: 'el-icon-position',
type: 'text',
size: 'small',
fun: this.check
@@ -289,6 +290,9 @@
})
},
handleCurrentChange(row){
+ if(row.state=='宸叉姤妫�'){
+ this.isCheck = true
+ }
this.dataway = row
this.packageBoxId = {
packageBoxId:row.id
@@ -306,7 +310,7 @@
if (this.dataway.state == "鏈姤妫�") {
this.increase = true
}else{
- this.$message.error('鏀归」鐩凡瀹屾垚妫�楠�')
+ this.$message.error('璇峰厛閫夋嫨鍖呰椤圭洰')
}
},
preserve(datalist){
diff --git a/src/views/quality/Packaging_ledger/pack-from.vue b/src/views/quality/Packaging_ledger/pack-from.vue
index 7d25944..7398799 100644
--- a/src/views/quality/Packaging_ledger/pack-from.vue
+++ b/src/views/quality/Packaging_ledger/pack-from.vue
@@ -158,9 +158,9 @@
contractNo:this.datalistid.contractNo
}
pagedataadd (packageBox).then((res =>{
- this.$emit('way',res )
if (res.status === 200) {
this.$message.success('鏂板鎴愬姛')
+ this.$emit('refreshDataList')
}else{
this.$message.error('鍒涘缓澶辫触')
}
diff --git a/src/views/quality/packageinspect/index.vue b/src/views/quality/packageinspect/index.vue
new file mode 100644
index 0000000..a575e60
--- /dev/null
+++ b/src/views/quality/packageinspect/index.vue
@@ -0,0 +1,231 @@
+<!--
+ - Copyright (c) 2018-2025, ztt All rights reserved.
+ -
+ - Redistribution and use in source and binary forms, with or without
+ - modification, are permitted provided that the following conditions are met:
+ -
+ - Redistributions of source code must retain the above copyright notice,
+ - this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ - notice, this list of conditions and the following disclaimer in the
+ - documentation and/or other materials provided with the distribution.
+ - Neither the name of the pig4cloud.com developer nor the names of its
+ - contributors may be used to endorse or promote products derived from
+ - this software without specific prior written permission.
+ - Author: ztt
+ -->
+ <template>
+ <div class="mod-config">
+ <basic-container>
+ <ttable
+ :table="table"
+ :resultData="resultData"
+ @handleSelectionChange="handleSelectionChange"
+ :prelang="prelang"
+ :options="options"
+ :ajaxFun="ajaxFun"
+ ref="packageInspectTable">
+ <template #toolbar>
+ </template>
+ </ttable>
+ </basic-container>
+ <!-- 寮圭獥, 鏂板 / 淇敼 -->
+ <!-- <RawMaterialForm
+ v-if="addOrUpdateVisible"
+ ref="addOrUpdate"
+ @refreshDataList="getData"
+ ></RawMaterialForm> -->
+ </div>
+</template>
+<script>
+import ttable from '@/views/common/ztt-table.vue'
+import { fetchList,deleteById } from '@/api/quality/packageInspect'
+// import RawMaterialForm from './rawMaterial-form'
+import * as fecha from 'element-ui/lib/utils/date'
+import { mapGetters } from 'vuex'
+ export default {
+ data() {
+ return {
+ resultData:[],
+ addOrUpdateVisible: false,
+ type: [1],
+ multipleSelection: [],
+ prelang: 'packageInspect',
+ ajaxFun: fetchList,
+ options: {
+ height: 300, // 榛樿楂樺害-涓轰簡琛ㄥご鍥哄畾
+ stripe: true, // 鏄惁涓烘枒椹汗 table
+ highlightCurrentRow: false, // 鏄惁瑕侀珮浜綋鍓嶈
+ border: true, // 鏄惁鏈夌旱鍚戣竟妗�
+ lazy: false, // 鏄惁闇�瑕佹噿鍔犺浇
+ fit: true, // 鍒楃殑瀹藉害鏄惁鑷拺寮�
+ multiSelect: true, //
+ seqNo: true,
+ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
+ isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H
+ isSearch: true, // 楂樼骇鏌ヨ鎸夐挳
+ defaultOrderBy: { column: 'createTime', direction: 'desc' },
+ },
+ table: {
+ total: 0,
+ currentPage: 1,
+ pageSize: 20,
+ data: [],
+ // 鏍囬
+ column: [
+ {
+ minWidth: '180',
+ prop: 'packInsNo',
+ label: '鍖呰妫�楠岀紪鍙�',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text',
+ render: { fun: this.addOrUpdateHandle }
+ },
+ {
+ minWidth: '180',
+ prop: 'packageNo',
+ label: '鍖呰缂栫爜',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '180',
+ prop: 'contractNo',
+ label: '鍚堝悓鍙�',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '180',
+ prop: 'projectName',
+ label: '椤圭洰鍚嶇О',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '180',
+ prop: 'customerName',
+ label: '瀹㈡埛鍚嶇О',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '180',
+ prop: 'createTime',
+ label: '鎶ユ鏃ユ湡',
+ isTrue: true,
+ sort: true,
+ isSearch: true,
+ searchInfoType: 'text',
+ formatter: this.formatDateTime,
+ },
+ {
+ minWidth: '180',
+ prop: 'createUser',
+ label: '鎶ユ浜�',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '200',
+ prop: 'result',
+ label: '缁撹',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ ],
+ toolbar: [
+ // {
+ // text: '鏂板',
+ // type: 'primary',
+ // fun: this.addOrUpdateHandle
+ // },
+ ],
+ operator: [
+ {
+ text: '浣滃簾',
+ type: 'text',
+ size: 'small',
+ fun: this.deleteHandle
+ }],
+ operatorConfig: {
+ fixed: 'right',
+ label: '鎿嶄綔',
+ width: 100,
+ minWidth: 100
+ },
+ },
+ }
+ },
+ components: {
+ ttable,
+ },
+ created() { },
+ computed: {
+ ...mapGetters(['permissions'])
+ },
+ watch:{
+
+ },
+ methods:{
+ // 鍒犻櫎
+ deleteHandle(row) {
+ const _than = this
+ this.$confirm('鏄惁纭鍒犻櫎鍖呰缂栧彿銆�' + row.packInsNo+'銆戠殑鏁版嵁锛�' , '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ closeOnClickModal: false,
+ type: 'warning'
+ }).then(function() {
+ deleteById(row.id).then((response)=>{
+ var data = response.data
+ if (data.code == 0) {
+ _than.$message.success('鍒犻櫎鎴愬姛')
+ } else {
+ _than.$message.error('鍒犻櫎澶辫触')
+ }
+ _than.getData()
+ })
+ }).catch((error) => {
+ console.log(error);
+ })
+ },
+ // 鏂板 / 淇敼
+ addOrUpdateHandle(row) {
+ this.$router.push({
+ name: 'packageInspectForm',
+ query: {
+ id: row == null ? null : row.id
+ },
+ params:{resultVal : row.result=='' ? null : row.result}
+ })
+ },
+ formatResult(row, column, cellValue){
+ if(cellValue != undefined || cellValue != null){
+ if(cellValue == '涓嶅悎鏍�'){
+ return "<span style='color:#E84738;'>涓嶅悎鏍�</span>"
+ }
+ return "<span style='color:#34BD66;'>鍚堟牸</span>"
+ }
+ },
+ formatDateTime(row, column, cellValue) {
+ return cellValue ? fecha.format(new Date(cellValue), 'yyyy-MM-dd') : ''
+ },
+ getData() {
+ this.$refs.packageInspectTable.getDataList()
+ },
+ // table鑷甫浜嬩欢
+ handleSelectionChange(val) {
+ this.multipleSelection = val
+ },
+ }
+ }
+ </script>
+
\ No newline at end of file
diff --git a/src/views/quality/packageinspect/packageInspect-form.vue b/src/views/quality/packageinspect/packageInspect-form.vue
new file mode 100644
index 0000000..891b0dd
--- /dev/null
+++ b/src/views/quality/packageinspect/packageInspect-form.vue
@@ -0,0 +1,602 @@
+<template>
+ <div style="height: 100%">
+ <div class="page-header">
+ <div class="header-left">
+ <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a>
+ <h2 v-if="resultVal=='' || resultVal==null">缂栬緫-鍖呰妫�楠�</h2>
+ <h2 v-else>鏌ョ湅-鍖呰妫�楠�</h2>
+ </div>
+ <div class="btn-group header-right">
+ </div>
+ </div>
+ <div class="page-main">
+ <div class="packageInspect-basic">
+ <el-form
+ :model="dataForm"
+ :rules="dataRule"
+ ref="dataForm"
+ style="width: 100%"
+ class="l-mes"
+ label-width="110px">
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鍖呰妫�楠岀紪鍙�" prop="packInsNo">
+ <el-input v-model="dataForm.packInsNo" disabled>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鍖呰缂栧彿" prop="packageNo">
+ <el-input v-model="dataForm.packageNo" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item prop="projectName" label="椤圭洰鍚嶇О" >
+ <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName">
+ <el-input v-model="dataForm.projectName" disabled ></el-input>
+ </el-tooltip>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="瀹㈡埛鍚嶇О" prop="customerName">
+ <el-input v-model="dataForm.customerName" disabled />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鍚堝悓鍙�" prop="contractNo">
+ <el-input v-model="dataForm.contractNo" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鎶ユ鏃ユ湡" prop="createTime">
+ <el-input v-model="dataForm.createTime" disabled />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鎶ユ浜�" prop="createUser">
+ <el-input v-model="dataForm.createUser" disabled />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ <div class="packageInspect-detail">
+ <el-row :gutter="10" style="width:100%;z-index: 10;height:50px;">
+ <el-col :span="20">妫�楠岄」鐩�</el-col>
+ <el-col :span="2">
+ <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button>
+ </el-col>
+ <el-col :span="2">
+ <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" type="primary" size="small"
+ @click="savePackIns()">淇濆瓨</el-button>
+ </el-col>
+ </el-row>
+ <el-row style="width:100%;">
+ <el-col :span="24">
+ <el-table
+ :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
+ :cell-style="{textAlign:'center'}"
+ ref="table"
+ :data="list"
+ border
+ style="width: 100%;"
+ height="400"
+ row-key="randomId" class="l-mes"
+ default-expand-all
+ :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+ <el-table-column type="index" label="搴忓彿" width="60">
+ </el-table-column>
+ <el-table-column prop="name" label="椤圭洰" width="260">
+ <template slot-scope="scope">
+ <el-input :readonly="resultVal!=null" v-if="scope.row.children" class="inline-input" style="width:90%;" v-model="scope.row.name"
+ placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="required" label="瑕佹眰" width="260">
+ <template slot-scope="scope">
+ <div v-if="!scope.row.children">
+ <el-input :readonly="resultVal!=null" v-model="scope.row.required"
+ placeholder="璇疯緭鍏ヨ姹�"></el-input>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="note" label="妫�楠屾弿杩�" width="260" >
+ <template slot-scope="scope">
+ <div v-if="!scope.row.children">
+ <el-input :readonly="resultVal!=null" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="testState" label="缁撹" min-width="150">
+ <template slot-scope="scope">
+ <el-select style="width:100%" :disabled="resultVal!=null" @change="changeResult" v-model="scope.row.result" v-if="!scope.row.children">
+ <el-option label="鍚堟牸" value="鍚堟牸"></el-option>
+ <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�"></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column v-if="resultVal=='' || resultVal==null" fixed="right" style="background-color: white;" label="鎿嶄綔" width="200">
+ <template slot-scope="scope">
+ <el-button v-if="scope.row.children" icon="el-icon-circle-plus-outline" type="text" @click="clickAddChildren(scope.row,scope.$index)">娣诲姞琛�</el-button>
+ <el-button v-if="!scope.row.children" icon="el-icon-circle-close" type="text"
+ @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">鍙栨秷</el-button>
+ <el-button v-if="scope.row.children" icon="el-icon-circle-close" type="text"
+ @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">鍒犻櫎椤圭洰</el-button>
+
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="packageInspect-result">
+ <el-row>
+ <el-col :span="24">妫�楠岀粨璁�</el-col>
+ </el-row>
+ <el-row style="width:100%">
+ <el-col :span="24">
+ <el-table class="l-mes" border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion"
+ :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
+ :cell-style="{textAlign:'center'}">
+ <el-table-column prop="packageNo" label="鍖呰缂栧彿"></el-table-column>
+ <el-table-column prop="userName" label="妫�楠屽憳"></el-table-column>
+ <el-table-column prop="result" label="妫�楠岀粨璁�">
+ <template slot-scope="scope">
+ <el-select :disabled="resultVal!=null" style="width:100%" v-model="scope.row.result">
+ <el-option label="鍚堟牸" value="鍚堟牸"></el-option>
+ <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�"></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔">
+ <template>
+ <el-button type="text" :disabled="resultVal!=null" @click="submitSave()" size="small">涓婃姤</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-col>
+ </el-row>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import {
+ fetchListById,
+ updatePackageInsProduct,
+ updatePackageInspectById,
+} from '@/api/quality/packageInspect'
+export default {
+ computed:{},
+ components:{
+ },
+ data(){
+ return{
+ loading: false,
+ resultVal: null,
+ dataForm:{
+ id: null,
+ packInsNo: null,
+ packageNo: '',
+ contractNo: '',
+ projectName: '',
+ customerName: '',
+ packageInsProductS: [{
+ deviceId: 0,
+ father:'',
+ name: '',
+ required: '',
+ testValue: '',
+ unit: '',
+ testValueList: []
+ }]
+ },
+ form: null,
+ list:[],
+ conclusion: null,
+ conclusionTable: [{
+ packageNo: '',
+ userName: '',
+ result: ''
+ }],
+ dataRule: {},
+ }
+ },
+ beforeUpdate(){
+ this.$nextTick(()=>{
+ this.$refs.table.doLayout();
+ })
+ },
+ created(){
+ this.dataForm.id = this.$route.query.id
+ this.resultVal = this.$route.params.resultVal
+ if(!this.resultVal){
+ let val = sessionStorage.getItem("packIns-resultVal-"+this.dataForm.id)
+ if(val){
+ this.resultVal=val
+ }
+ }
+ this.init()
+ },
+ watch:{
+ },
+ methods:{
+ changeResult(){
+ let result = ''
+ let data = this.list
+ if(data){
+ result='鍚堟牸'
+ data.forEach(item=>{
+ if(item.children){
+ item.children.forEach(ele=>{
+ if(ele.result=='涓嶅悎鏍�'){
+ result='涓嶅悎鏍�'
+ }
+ })
+ }
+ })
+ }
+ this.conclusionTable[0].result = result
+ },
+ //涓婃姤
+ submitSave(){
+ const _than = this
+ this.$confirm('涓婃姤鍓嶏紝璇风‘璁ゆ楠岄」鐩槸鍚﹀凡淇濆瓨!', '鎻愮ず', {
+ confirmButtonText: '纭涓婃姤',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ let data = {
+ id: _than.dataForm.id,
+ result: _than.conclusionTable[0].result,
+ }
+ updatePackageInspectById(data).then(res => {
+ if(res.data.code === 0){
+ _than.resultVal = res.data.data
+ sessionStorage.setItem("packIns-resultVal-"+_than.dataForm.id,res.data.data)
+ _than.$message.success("涓婃姤鎴愬姛");
+ }else{
+ _than.$message.error("涓婃姤澶辫触",res.data.data);
+ }
+ })
+ }).catch(() => {})
+ },
+ // 娣诲姞琛�
+ clickAddLine() {
+ this.list.push({
+ name: '',
+ randomId: Math.random(),
+ children: [{
+ name: '',
+ note: '',
+ required: '',
+ result: '',
+ randomId: Math.random(),
+ }]
+ })
+ },
+ //娣诲姞瀛愮骇
+ clickAddChildren(row,index){
+ row.children.push({
+ name: row.name,
+ note: '',
+ required: '',
+ result: '',
+ randomId: Math.random(),
+ })
+ },
+ // 鍒犻櫎琛�
+ clickDelLine(row,index,isParent) {
+ if(isParent){
+ let parentIndex = this.list.findIndex(el =>{
+ return el.randomId == row.randomId
+ })
+ this.list.splice(parentIndex,1)
+ }else{
+ let i = this.list.findIndex(el =>{
+ return el.children.find(ele => ele.randomId == row.randomId)
+ })
+ let childrenIndex = this.list[i].children.findIndex(el =>{
+ return el.randomId == row.randomId
+ })
+ this.list[i].children.splice(childrenIndex,1)
+ }
+ },
+ //淇濆瓨妫�鏌ラ」
+ savePackIns(){
+ if(this.list.length==0){
+ this.$message.error("妫�楠岄」鐩负绌�!")
+ return
+ }else{
+ let dataList = []
+ this.list.forEach(item=>{
+ if(item.children){
+ item.children.forEach(ele=>{
+ let obj = {
+ id: ele.pid || null,
+ name: item.name,
+ note: ele.note,
+ packageInspectId: this.dataForm.id,
+ required: ele.required,
+ result: ele.result,
+ }
+ dataList.push(obj)
+ })
+ }
+ })
+ updatePackageInsProduct(dataList).then(res=>{
+ if(res.status===200){
+ this.$message.success("淇濆瓨鎴愬姛")
+ }
+ }).catch(error=>{
+ console.log(error);
+ this.$message.error("淇濆瓨澶辫触")
+ })
+ }
+ },
+ init(){
+ if(this.dataForm.id){
+ fetchListById(this.dataForm.id).then(res=>{
+ let data = res.data.data
+ this.dataForm.packInsNo = data.packInsNo
+ this.dataForm.packageNo = data.packageNo
+ this.dataForm.contractNo = data.contractNo
+ this.dataForm.customerName = data.customerName
+ this.dataForm.projectName = data.projectName
+ this.dataForm.createTime = data.createTime
+ this.dataForm.createUser = data.createUser
+ this.list = []
+ let userNameList = []
+ data.packageInsProductS.forEach(item => {
+ if (item.children) {
+ let ele = {
+ randomId: Math.random(),
+ name: null,
+ children: []
+ }
+ ele.name = item.name
+ item.children.forEach(obj => {
+ if(obj.userName){
+ userNameList.push(obj.userName)
+ }
+ let o = {
+ name: item.name,
+ randomId: Math.random(),
+ required: obj.required,
+ pid: obj.pid,
+ note: obj.note?obj.note:'',
+ result: obj.presult
+ }
+ ele.children.push(o)
+ })
+ this.list.push(ele)
+ }
+ })
+ this.conclusionTable = [{
+ packageNo: data.packageNo,
+ userName: Array.from(new Set(userNameList)).join(','),
+ result: null
+ }]
+ this.$nextTick(()=>{
+ if(this.list.length>0){
+ this.changeResult()
+ }
+ })
+ }).catch(error=>{
+ this.$message.error("鑾峰彇澶辫触",error)
+ })
+ }else{
+ this.conclusionTable = []
+ }
+ },
+ },
+}
+</script>
+
+<style>
+.packageInspect-detail {
+ width: 100%;
+ height: 490px;
+ padding: 10px 20px;
+ display: flex;
+ border: 1px solid #ddd;
+ background-color: #fff;
+ margin-top: 10px;
+ box-sizing: border-box;
+ flex-wrap: wrap;
+}
+
+.packageInspect-result {
+ width: 100%;
+ height: 150px;
+ padding: 10px 20px;
+ display: flex;
+ border: 1px solid #ddd;
+ background-color: #fff;
+ margin-top: 10px;
+ box-sizing: border-box;
+ flex-wrap: wrap;
+}
+
+.packageInspect-basic {
+ background-color: #fff;
+ height: 120px;
+ display: flex;
+ flex-wrap: wrap;
+ padding: 10px 20px;
+ border: 1px solid #ddd;
+ box-sizing: border-box;
+}
+
+.packageInspect-related-stock-part {
+ background-color: #fff;
+ width: 100%;
+ height: 220px;
+ border: 1px solid #ddd;
+ padding: 10px 20px 0px 20px;
+ box-sizing: border-box;
+}
+
+.packageInspect-bom {
+ background-color: #fff;
+ width: 100%;
+ height: 499px;
+ border: 1px solid #ddd;
+ padding: 10px 20px;
+ box-sizing: border-box;
+}
+
+.packageInspect-bom .el-card__header {
+ padding: 1px 20px;
+ border-bottom: 0px solid #ebeef5;
+}
+
+.packageInspect-bom .el-card__body {
+ height: calc(100% - 22px);
+}
+
+.packageInspect-bom .el-card__body .el-collapse {
+ height: 100%;
+ overflow: auto;
+}
+
+.packageInspect-technology-params {
+ background-color: #fff;
+ width: calc(52% - 20px);
+ float: left;
+ height: 719px;
+ border: 1px solid #ddd;
+ padding: 10px 20px;
+ margin-left: 20px;
+}
+
+.packageInspect-structure {
+ background-color: #fff;
+ width: 35%;
+ float: left;
+ height: 719px;
+ border: 1px solid #ddd;
+ padding: 10px 20px;
+ box-sizing: border-box;
+}
+
+.packageInspect-flow {
+ background-color: #fff;
+ width: calc(65% - 20px);
+ float: left;
+ height: 719px;
+ border: 1px solid #ddd;
+ padding: 10px 20px;
+ margin-left: 20px;
+ box-sizing: border-box;
+}
+
+/*鑷畾涔塪isabled鐘舵�佷笅checkbox鐨勬牱寮�*/
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled.is-checked
+ .el-checkbox__inner {
+ background-color: #006eff;
+ border-color: #006eff;
+}
+
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled.is-checked
+ + span.el-checkbox__label {
+ color: #006eff;
+ border-color: #006eff;
+}
+
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled
+ .el-checkbox__inner {
+ background-color: #ffffff;
+ cursor: pointer;
+}
+
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled
+ + span.el-checkbox__label {
+ color: #606266;
+ cursor: pointer;
+}
+
+.completeproductstructure-checkout .el-checkbox__inner::after {
+ border: 1px solid #fff !important;
+ border-left: 0 !important;
+ border-top: 0 !important;
+ cursor: pointer !important;
+}
+
+.packageInspect-bom-div {
+ width: 100%;
+ margin-bottom: 5px;
+}
+
+.packageInspect-technology-div {
+ width: 100%;
+ margin-bottom: 5px;
+ margin-right: 10px;
+}
+
+.packageInspect-technology-div .el-collapse {
+ border-top: 0px;
+ border-bottom: 0px;
+}
+
+.structure-detail-table th.gutter {
+ display: table-cell !important;
+ width: 10px !important;
+}
+
+.structure-detail-table colgroup.gutter {
+ display: table-cell !important;
+ width: 10px !important;
+}
+
+.final-product-checkout .el-card__header {
+ padding: 0px 20px;
+ border-bottom: 0px;
+}
+
+.final-product-checkout .el-card__body {
+ padding: 0px 20px 20px;
+}
+
+.orimaterial-quantity .el-card__header {
+ padding: 0px 20px;
+ border-bottom: 0px;
+}
+
+.orimaterial-quantity .el-card__body {
+ padding: 0px 20px 20px;
+}
+
+.packageInspect-materialcost-table th.gutter {
+ display: table-cell !important;
+ width: 10px !important;
+}
+
+.packageInspect-materialcost-table colgroup.gutter {
+ display: table-cell !important;
+ width: 10px !important;
+}
+
+.GooFlow .ico .ico_start:before {
+ color: red;
+}
+.highlight-tab-class {
+ color: #006eff;
+ background: #e4e7ed;
+ border-top: 1px solid #006eff;
+}
+.unhighlight-tab-class {
+ border: 1px solid #e4e7ed;
+ border-bottom: none;
+}
+.avue-crud__menu{
+ min-height: 0px;
+}
+</style>
diff --git a/src/views/quality/processconfiguration/index.vue b/src/views/quality/processconfiguration/index.vue
index e608a41..41372ea 100644
--- a/src/views/quality/processconfiguration/index.vue
+++ b/src/views/quality/processconfiguration/index.vue
@@ -299,7 +299,7 @@
minWidth: 100
}
},
- materialType: [{label:'鍘熸潗鏂欐楠�',value:'鍘熸潗鏂欐楠�'},{label:'杩囩▼妫�楠�',value:'杩囩▼妫�楠�'},{label:'浜у搧妫�楠�',value:'浜у搧妫�楠�'}],
+ materialType: [{label:'鍘熸潗鏂欐楠�',value:'鍘熸潗鏂欐楠�'},{label:'杩囩▼妫�楠�',value:'杩囩▼妫�楠�'},{label:'浜у搧妫�楠�',value:'浜у搧妫�楠�'},{label:'鍖呰妫�楠�',value:'鍖呰妫�楠�'}],
StateList: [{label:'鍏ㄩ儴',value:''},{label:'宸叉彁浜ゅ鏍�',value:'1'},{label:'寰呭鐞�',value:'0'},{label:'宸插鐞�',value:'2'}],
insStateList: [{label:'鍏朵粬',value:''},{label:'鐟曠柕',value:'1'}],
}
diff --git a/src/views/quality/teststandard/index.vue b/src/views/quality/teststandard/index.vue
index 56a20be..a8481fb 100644
--- a/src/views/quality/teststandard/index.vue
+++ b/src/views/quality/teststandard/index.vue
@@ -240,13 +240,13 @@
v-if="editable"
>鎻掑叆
</el-button>
- <el-button
+ <!-- <el-button
type="text"
size="mini"
@click.stop="editTestStandardParam(scope.row)"
v-if="editable && scope.row.id != null"
>鍏紡
- </el-button>
+ </el-button> -->
<el-button
type="text"
size="mini"
diff --git a/src/views/technology/operation/operation-form.vue b/src/views/technology/operation/operation-form.vue
index 282dcc6..169365b 100644
--- a/src/views/technology/operation/operation-form.vue
+++ b/src/views/technology/operation/operation-form.vue
@@ -120,12 +120,12 @@
/>
</el-select>
</el-form-item> -->
- <!-- <el-form-item label="鐝粍浜哄憳" prop="crewSize">
+ <el-form-item label="鐝粍浜哄憳" prop="crewSize">
<el-input
v-model="dataForm.crewSize"
placeholder="鐝粍浜哄憳"
></el-input>
- </el-form-item> -->
+ </el-form-item>
<!-- <el-form-item label="澶栭儴宸ュ簭椤圭洰" prop="outsideOpItem">
<el-select
v-model="dataForm.outsideOpItem"
diff --git a/vue.config.js b/vue.config.js
index 605ac39..f313e55 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -3,10 +3,11 @@
* https://cli.vuejs.org/zh/config/
*/
// const url = 'http://192.168.2.7:9999'
-const url = 'http://192.168.32.45:9999'
+const url = 'http://192.168.2.7:9999'
+//const url = 'http://192.168.32.45:9999'
// const url = 'http://192.168.0.23:9999'
-// const url = 'http://localhost:9999'
+ const url = 'http://localhost:9999'
// const url = 'http://ztt-gateway:9999'
const localUrl = 'http://localhost:8089'
--
Gitblit v1.9.3