From 746fc975621dc0538d0dcc6d4c8b3f17fc13fe3c Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期一, 30 十月 2023 13:24:43 +0800 Subject: [PATCH] modified: src/api/equipment/equipment.js new file: src/api/quality/rawMaterial.js modified: src/api/technology/document.js new file: src/const/crud/quality/rawMaterial.js modified: src/router/views/index.js modified: src/views/common/teststandardradio.vue modified: src/views/equipment/equipment/index.vue modified: src/views/plan/customerorder/customerorder-form.vue modified: src/views/plan/customerorder/index.vue new file: src/views/quality/rawMaterial/index.vue new file: src/views/quality/rawMaterial/rawMaterial-form.vue modified: src/views/technology/document/document-form.vue modified: src/views/technology/operation/index.vue modified: src/views/technology/operation/operation-form.vue modified: src/views/technology/routing/index.vue modified: src/views/technology/routing/routing-form.vue modified: src/views/technology/structure/index.vue modified: src/views/technology/structure/single-structure-form.vue modified: vue.config.js --- src/views/equipment/equipment/index.vue | 21 vue.config.js | 1 src/views/plan/customerorder/index.vue | 16 src/views/technology/routing/routing-form.vue | 10 src/router/views/index.js | 17 src/api/technology/document.js | 8 src/api/quality/rawMaterial.js | 47 ++ src/views/plan/customerorder/customerorder-form.vue | 14 src/views/technology/operation/operation-form.vue | 32 src/const/crud/quality/rawMaterial.js | 116 +++++ src/views/quality/rawMaterial/rawMaterial-form.vue | 561 ++++++++++++++++++++++++ src/views/technology/structure/single-structure-form.vue | 16 src/views/technology/operation/index.vue | 18 src/views/technology/document/document-form.vue | 130 ++++- src/views/common/teststandardradio.vue | 9 src/api/equipment/equipment.js | 7 src/views/technology/routing/index.vue | 26 src/views/technology/structure/index.vue | 26 src/views/quality/rawMaterial/index.vue | 294 ++++++++++++ 19 files changed, 1,272 insertions(+), 97 deletions(-) diff --git a/src/api/equipment/equipment.js b/src/api/equipment/equipment.js index 23e7624..1050e3b 100644 --- a/src/api/equipment/equipment.js +++ b/src/api/equipment/equipment.js @@ -33,6 +33,13 @@ }) } +export function pullEquip() { + return request({ + url: '/mes/equipment/pullEquip', + method: 'post', + }) +} + export function addObj(obj) { return request({ url: '/mes/equipment', diff --git a/src/api/quality/rawMaterial.js b/src/api/quality/rawMaterial.js new file mode 100644 index 0000000..340f0fd --- /dev/null +++ b/src/api/quality/rawMaterial.js @@ -0,0 +1,47 @@ +import request from '@/router/axios' + +export function getRawInspectList(query) { + return request({ + url: '/mes/rawInspect/page', + method: 'get', + params: query + }) +} + +export function selectDevice() { + return request({ + url: '/mes/rawInsProduct/selectDevice', + method: 'get', + }) +} + +export function addRawInspects(data) { + return request({ + url: '/mes/rawInspect/addRawInspects', + method: 'post', + data: data + }) +} + +export function getObj(data) { + return request({ + url: '/mes/rawInspect/'+data, + method: 'get', + }) +} + +export function delObj(data) { + return request({ + url: '/mes/rawInspect/'+data, + method: 'delete' + }) +} + +export function updateRawInsProduct(data) { + return request({ + url: '/mes/rawInsProduct/updaterawInsProduct', + method: 'post', + params: data + }) +} + diff --git a/src/api/technology/document.js b/src/api/technology/document.js index 13fffb1..0f5e30a 100644 --- a/src/api/technology/document.js +++ b/src/api/technology/document.js @@ -23,6 +23,14 @@ }) } +export function getRouting(query) { + return request({ + url: '/mes/document/getRouting', + method: 'get', + params: query + }) +} + export function delObj(id) { return request({ url: '/mes/document/' + id, diff --git a/src/const/crud/quality/rawMaterial.js b/src/const/crud/quality/rawMaterial.js new file mode 100644 index 0000000..2299d9c --- /dev/null +++ b/src/const/crud/quality/rawMaterial.js @@ -0,0 +1,116 @@ +/* + * 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 + */ +export const object = { + border: true, + index: true, + height: '300px', + expandFixed: true, + indexLabel: '搴忓彿', + stripe: true, + menuAlign: 'center', + searchMenuSpan: 6, + editBtn: false, + delBtn: true, + align: 'center', + addBtn: false, + viewBtn: false, + refreshBtn: false, + columnBtn: false, + column: [{ + label: '椤圭洰', + width: 260, + prop: 'name', + span: 24, + type: 'text', + cell: true, + }, { + width: 260, + label: '鍗曚綅', + prop: 'unit', + span: 24, + type: 'text', + cell: true, + }, { + width: 260, + label: '鏍囧噯鍊�', + prop: 'required', + type: 'text', + span: 24, + cell: true, + }, { + label: '妫�娴嬪��', + prop: 'testValue', + type: 'text', + width: 260, + slot: true, + formSlot: true, + cell: true, + }, { + label: '璇曢獙璁惧', + prop: 'deviceName', + type: 'select', + cell: true, + slot: true, + formSlot: true, + width: 260 + },{ + label: '缁撹', + prop: 'testState', + type: 'text', + slot: true, + formSlot: true, + hide: false, + fixed: 'right' + }] +} + +export const conclusion = { + border: true, + index: true, + height: '300px', + indexLabel: '搴忓彿', + stripe: true, + menuAlign: 'center', + searchMenuSpan: 6, + editBtn: false, + delBtn: false, + align: 'center', + addBtn: false, + viewBtn: false, + refreshBtn: false, + columnBtn: false, + column: [{ + label: '鐗╂枡缂栧彿', + prop: 'code', + span: 24, + type: 'text', + }, { + label: '鐗╂枡鍚嶇О', + prop: 'name', + span: 24, + type: 'text', + }, { + label: '妫�楠屽憳', + prop: 'userName', + type: 'text', + span: 24, + }, { + label: '妫�楠岀粨璁�', + prop: 'testState', + type: 'text', + }] +} \ No newline at end of file diff --git a/src/router/views/index.js b/src/router/views/index.js index b12f8fc..b3402ed 100644 --- a/src/router/views/index.js +++ b/src/router/views/index.js @@ -145,6 +145,23 @@ ] }, { + path: '/quality/rawMaterial', + component: Layout, + children: [ + { + path: 'rawMaterial-form', + name: 'rawMaterialForm', + component: () => + import(/* webpackChunkName: "views" */ '@/views/quality/rawMaterial/rawMaterial-form'), + meta: { + keepAlive: false, + isTab: false, + isAuth: false + } + } + ] + }, + { path: '/quality/newReport', component: Layout, children: [ diff --git a/src/views/common/teststandardradio.vue b/src/views/common/teststandardradio.vue index 075fd96..5729466 100644 --- a/src/views/common/teststandardradio.vue +++ b/src/views/common/teststandardradio.vue @@ -187,6 +187,15 @@ }, { minWidth: '120', + prop: 'operationName', + label: '宸ュ簭鍚嶇О', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'text', + }, + { + minWidth: '120', prop: 'remark', label: '澶囨敞', sort: true, diff --git a/src/views/equipment/equipment/index.vue b/src/views/equipment/equipment/index.vue index 7dcc880..59fead3 100644 --- a/src/views/equipment/equipment/index.vue +++ b/src/views/equipment/equipment/index.vue @@ -23,7 +23,7 @@ </template> <script> -import { delObj, fetchList } from '@/api/equipment/equipment' +import { delObj, fetchList,pullEquip } from '@/api/equipment/equipment' import TableForm from './equipment-form' import ttable from '@/views/common/ztt-table.vue' import { mapGetters } from 'vuex' @@ -188,7 +188,7 @@ label: '鐘舵��', sort: true, isTrue: true, - isSearch: false, + isSearch: true, searchInfoType: 'text' } ], @@ -197,6 +197,12 @@ text: '鏂板', type: 'primary', fun: this.addOrUpdateHandle + }, + { + text: '鍚屾', + type: 'primary', + loading: false, + fun: this.pullEquipFun } ], operator: [ @@ -243,6 +249,17 @@ }) }, methods: { + pullEquipFun(){ + this.table.toolbar.find((e) => e.text === '鍚屾').loading = true + pullEquip().then(res=>{ + this.$message.success(res.data.data.msg) + this.table.toolbar.find((e) => e.text === '鍚屾').loading = false + }).catch(error=>{ + this.$message.error("鍚屾澶辫触",error) + this.getData() + this.table.toolbar.find((e) => e.text === '鍚屾').loading = false + }) + }, workShopFormatter(row, column, cellValue) { this.workshopList.forEach((obj) => { if (obj.value == cellValue) { diff --git a/src/views/plan/customerorder/customerorder-form.vue b/src/views/plan/customerorder/customerorder-form.vue index dae2ea8..9427657 100644 --- a/src/views/plan/customerorder/customerorder-form.vue +++ b/src/views/plan/customerorder/customerorder-form.vue @@ -248,10 +248,11 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="鏀惰揣鍦板潃" prop="shippingAddress"> + <el-form-item label="宸ヨ壓鏂囦欢鍚嶇О" prop="docName"> <el-input - v-model="dataForm.shippingAddress" + v-model="dataForm.docName" placeholder="" + disabled ></el-input> </el-form-item> </el-col> @@ -323,6 +324,14 @@ </el-col> --> </el-row> <el-row> + <el-col :span="6"> + <el-form-item label="鏀惰揣鍦板潃" prop="shippingAddress"> + <el-input + v-model="dataForm.shippingAddress" + placeholder="" + ></el-input> + </el-form-item> + </el-col> <!-- <el-col :span="6"> <el-form-item label="OTC鎺ㄩ�佺姸鎬�" prop="remark"> <span>{{ @@ -820,6 +829,7 @@ productType: '', partNo: '', docNumber: '', + docName: '', shippingAddress: '', remark: '', otcUnit: '', diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue index cf9d74d..239db79 100644 --- a/src/views/plan/customerorder/index.vue +++ b/src/views/plan/customerorder/index.vue @@ -919,14 +919,14 @@ // }) // } if (this.permissions.customerorder_submit_oa) { - // this.table.toolbar.push({ - // text: '鎻愪氦瀹℃牳', - // type: 'primary', - // fun: this.auditCustomerOrder, - // disabled: false, - // permitArr: [], - // loading: false - // }) + this.table.toolbar.push({ + text: '鎻愪氦瀹℃牳', + type: 'primary', + fun: this.auditCustomerOrder, + disabled: false, + permitArr: [], + loading: false + }) } if (this.permissions.customerorder_set_salesparts) { this.table.toolbar.push({ diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue new file mode 100644 index 0000000..ae5e1c2 --- /dev/null +++ b/src/views/quality/rawMaterial/index.vue @@ -0,0 +1,294 @@ +<!-- + - 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" + @handleSelectionChange="handleSelectionChange" + :prelang="prelang" + :options="options" + :ajaxFun="ajaxFun" + ref="rawMaterialTable"> + <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 { getRawInspectList,delObj } from '@/api/quality/rawMaterial' +import RawMaterialForm from './rawMaterial-form' +import * as fecha from 'element-ui/lib/utils/date' +import { mapGetters } from 'vuex' + export default { + data() { + return { + addOrUpdateVisible: false, + type: [1], + prelang: 'rawMaterial', + ajaxFun: getRawInspectList, + 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: 'formTime', direction: 'desc' }, + }, + table: { + total: 0, + currentPage: 1, + pageSize: 20, + data: [], + // 鏍囬 + column: [ + { + minWidth: '120', + prop: 'code', + label: '鍘熸潗鏂欑紪鐮�', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + render: { fun: this.addOrUpdateHandle } + }, + { + minWidth: '120', + prop: 'name', + label: '鍘熸潗鏂欏悕绉�', + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '130', + width: '150', + prop: 'formTime', + label: '鏉ユ枡鏃ユ湡', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'datetimerange', + formatter: this.formatDateTime, + }, + { + minWidth: '120', + prop: 'specs', + label: '瑙勬牸鍨嬪彿', + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '120', + prop: 'unit', + label: '鍗曚綅', + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '120', + prop: 'number', + label: '鏁伴噺', + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '120', + prop: 'createTime', + label: '鎶ユ鏃ユ湡', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + formatter: this.formatDateTime, + }, + { + minWidth: '120', + prop: 'createUser', + label: '鎶ユ浜�', + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '120', + prop: 'insTime', + label: '妫�楠屾棩鏈�', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + formatter: this.formatDateTime, + }, + { + minWidth: '120', + prop: 'insState', + label: '妫�娴嬬姸鎬�', + isTrue: true, + isSearch: true, + searchInfoType: 'select', + formatter: this.formatInsState, + optList: () => { + return this.insStateList + } + }, + { + minWidth: '120', + prop: 'judgeState', + label: '鍚堟牸鐘舵��', + isTrue: true, + isSearch: true, + searchInfoType: 'text', + formatter: this.formatJudgeState, + }, + ], + toolbar: [ + { + text: '鏂板', + type: 'primary', + fun: this.addOrUpdateHandle + }, + { + text: '瀵煎嚭', + } + ], + operator: [{ + text: '鎵撳嵃', + type: 'text', + size: 'small', + },{ + text: '浣滃簾', + type: 'text', + size: 'small', + fun: this.deleteHandle + }], + operatorConfig: { + fixed: 'right', + label: '鎿嶄綔', + width: 100, + minWidth: 100 + }, + }, + insStateList: [{label:'鍏ㄩ儴',value:''},{label:'宸叉娴�',value:'1'},{label:'鏈娴�',value:'0'}] + } + }, + components: { + ttable, + RawMaterialForm, + }, + created() { + }, + computed: { + ...mapGetters(['permissions']) + }, + methods:{ + // 鍒犻櫎 + deleteHandle(row) { + this.$confirm('鏄惁纭鍒犻櫎璇ユ暟鎹細' + row.code , '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + closeOnClickModal: false, + type: 'warning' + }).then(function() { + return delObj(row.id) + }).then((response) => { + var data = response.data + if (data.code == 0) { + this.$message.success('鍒犻櫎鎴愬姛') + } else { + this.$message.error('鍒犻櫎澶辫触') + } + this.getData() + }) + }, + // 鏂板 / 淇敼 + addOrUpdateHandle(row) { + this.$router.push({ + name: 'rawMaterialForm', + query: { id: row == null ? null : row.id } + }) + }, + formatInsState(row, column, cellValue){ + if(cellValue != undefined || cellValue != null){ + if(cellValue == 0){ + return "<span style='color:#E84738;'>鏈娴�</span>" + } + return "<span style='color:#34BD66;'>宸叉娴�</span>" + } + }, + formatJudgeState(row, column, cellValue){ + if(cellValue != undefined || cellValue != null){ + if(cellValue == 0){ + 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.rawMaterialTable.getDataList() + }, + // table鑷甫浜嬩欢 + handleSelectionChange(val) { + // 鏍规嵁鐘舵�侊紝绂佺敤琛ㄥご鎸夐挳 + // 绛涢�夊嚭閫変腑璁板綍鐨勭姸鎬� + var stateArr = val.map(function(value, index) { + return value.coState + }) + // 閫変腑鐘舵�佹暟缁勫厓绱犲幓閲� + var uniqueStateArr = [] + for (var i = 0; i < stateArr.length; i++) { + if (uniqueStateArr.indexOf(stateArr[i]) == -1) { + uniqueStateArr.push(stateArr[i]) + } + } + // 寰幆鑷畾涔夋寜閽紝鍒ゆ柇姣忎釜鎸夐挳鐨刾ermitArr鏄惁瀹屽叏鍖呭惈閫変腑鐘舵�侊紝鑻ュ畬鍏ㄥ寘鍚紝鍒欐寜閽寒锛屽惁鍒欐寜閽伆 + for (var i = 0; i < this.stateTagArr.length; i++) { + if ( + uniqueStateArr.every((val) => + this.stateTagArr[i].permitArr.length <= 0 + ? true + : this.stateTagArr[i].permitArr.includes(val) + ) + ) { + this.stateTagArr[i].disabled = false + } else { + this.stateTagArr[i].disabled = true + } + } + this.multipleSelection = val + }, + } + } + </script> + \ No newline at end of file diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue new file mode 100644 index 0000000..46ad3e2 --- /dev/null +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -0,0 +1,561 @@ +<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>缂栬緫-鍘熸潗鏂欐楠�</h2> + </div> + <div class="btn-group header-right"> + <el-button @click="save()">淇濆瓨</el-button> + </div> + </div> + <div class="page-main"> + <div class="rawMaterial-basic"> + <el-row style="width:100%;height:20px;margin-bottom:20px;" v-show="dataForm.id==null"> + <el-col :span="20"> + <span style="color:red;font-size:18px;padding: 0;margin: 0;">璇锋壂鎻忎簩缁寸爜鑾峰彇鏁版嵁</span> + </el-col> + <el-col :span="4" style="text-align: right;"> + <el-button>鎵弿浜岀淮鐮�</el-button> + </el-col> + </el-row> + <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 prop="formTime" label="鏉ユ枡鏃ユ湡"> + <el-date-picker + v-model="dataForm.formTime" + type="datetime" + value-format="yyyy-MM-dd HH:mm:ss" + disabled> + + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item prop="name" label="鍘熸潗鏂欏悕绉�"> + <el-input v-model="dataForm.name" disabled > + </el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鍘熸潗鏂欑紪鐮�" prop="code"> + <el-input v-model="dataForm.code" disabled></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="瑙勬牸鍨嬪彿" prop="specs"> + <el-input v-model="dataForm.specs" disabled></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item prop="unit" label="鍗曚綅"> + <el-input + v-model="dataForm.unit" + disabled + ></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplier"> + <el-input v-model="dataForm.supplier" disabled /> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鏁伴噺" prop="number"> + <el-input v-model="dataForm.number" /> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鎶ユ鏃ユ湡" prop="createTime" v-if="dataForm.id!=null"> + <el-input v-model="dataForm.createTime" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item label="鎶ユ浜�" prop="createUser" v-if="dataForm.id!=null"> + <el-input v-model="dataForm.createUser" /> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <div class="rawMaterial-detail"> + <el-row style="width:100%;z-index: 10;height:50px;"> + <el-col :span="19">妫�楠岄」鐩�</el-col> + <el-col :span="5"> + <div style="width:100%;text-align: right;"> + <el-button v-show="dataForm.id==null" size="small" @click="clickAddLine">娣诲姞妫�楠岃</el-button> + <el-button size="small" @click="addTeatValueColumn()">娣诲姞妫�楠屽�煎垪</el-button> + <el-button size="small" @click="delTeatValueColumn()">鍒犻櫎妫�楠屽�煎垪</el-button> + </div> + </el-col> + </el-row> + <el-row style="width:100%;margin-top:-30px"> + <el-col :span="24"> + <avue-crud + ref="crud" + :option="tableOption" + @current-row-change="changeEquipment" + :data="list" + v-model="form"> + <template slot="testValue" slot-scope="scope"> + <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" + placement="top-start"> + <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValue" + @blur="updateTestValue(scope.row)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> + </el-tooltip> + </template> + <template slot="deviceName" slot-scope="scope"> + <el-select v-model="scope.row.equipmentId" filterable> + <el-option v-for="(item,index) in deviceList" + :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> + </el-select> + </template> + <template slot="testState" slot-scope="scope"> + <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span> + <span v-else-if="scope.row.testState == 1" style="color:#67C23A">鍚堟牸</span> + <span v-else>鏆傛棤缁撹</span> + </template> + </avue-crud> + </el-col> + </el-row> + </div> + <div class="rawMaterial-detail"> + <el-row> + <el-col :span="24">妫�楠岀粨璁�</el-col> + </el-row> + <el-row style="width:100%"> + <el-col :span="24"> + <avue-crud + ref="conclusion" + :option="option" + :data="conclusionTable" + v-model="conclusion"> + <template #menu> + <el-button type="text" size="small">涓婃姤</el-button> + </template> + </avue-crud> + </el-col> + </el-row> + </div> + + </div> + </div> +</template> + +<script> +import { object,conclusion } from '@/const/crud/quality/rawMaterial' +import { selectDevice,addRawInspects,getObj,updateRawInsProduct } from '@/api/quality/rawMaterial' +export default { + data(){ + return{ + columnIndex: 2, + columnList: [], + dataForm:{ + id: null, + formTime: '2023-10-28 00:00:00', + name: 'name', + code: 'code4', + specs: 'specs', + unit: 'mm', + number: '111', + supplier: 'supplier', + rawInsProducts: null, + }, + form: null, + list:[], + conclusion: null, + conclusionTable: [{ + code: '', + name: '', + userName: '', + testState: '' + }], + tableOption: object, + option: conclusion, + dataRule: {}, + deviceList: [], + } + }, + mounted(){ + this.dataForm.id = this.$route.query.id + this.init() + let isShow = this.dataForm.id == null ? true : false + this.tableOption.menu = isShow + let len = this.tableOption.column.length + this.tableOption.column[len-1].hide = isShow + this.getDeviceList() + }, + watch:{ + 'columnList.length':function(newVal){ + const column = [{ + label: '椤圭洰', + width: 260, + prop: 'name', + span: 24, + type: 'text', + cell: true, + }, { + width: 260, + label: '鍗曚綅', + prop: 'unit', + span: 24, + type: 'text', + cell: true, + }, { + width: 260, + label: '鏍囧噯鍊�', + prop: 'required', + type: 'text', + span: 24, + cell: true, + }, { + label: '妫�娴嬪��', + prop: 'testValue', + type: 'text', + width: 260, + slot: true, + formSlot: true, + cell: true, + }, { + label: '璇曢獙璁惧', + prop: 'deviceName', + type: 'select', + cell: true, + slot: true, + formSlot: true, + width: 260 + },{ + label: '缁撹', + prop: 'testState', + type: 'text', + slot: true, + formSlot: true, + hide: true, + fixed: 'right' + }] + if(newVal > 0){ + if(this.columnList.length > 0){ + this.tableOption.column = column + this.columnList.forEach(item=>{ + this.tableOption.column.splice(4,0,item) + }) + } + }else{ + this.tableOption.column = column + } + }, + }, + methods:{ + changeEquipment(current,old){ + console.log(current,old) + }, + addTeatValueColumn(){ + let propName = 'testValue' + this.columnIndex + this.columnList.push({ + label: '妫�娴嬪��', + prop: propName, + type: 'text', + width: 260, + $cellEdit: true, + disabled: this.list[0].equiomentId == null + }) + this.columnIndex+=1 + }, + delTeatValueColumn(){ + this.columnList.pop() + }, + updateTestValue(row){ + if(row.rpId == null){ + return + } + let obj = { + equiomentId: row.equipmentId, + rpId: row.rpId, + testValue: row.testValue + } + updateRawInsProduct(obj).then(res=>{ + if(res.data.code === 0){ + this.$message.success("鏇存柊鎴愬姛") + this.init() + }else{ + this.$message.success("鏇存柊澶辫触") + } + }).catch(error=>{ + this.$message.error(error) + }) + }, + init(){ + if(this.dataForm.id){ + getObj(this.dataForm.id).then(res=>{ + let data = res.data.data + this.dataForm.name = data.name + this.dataForm.formTime = data.formTime + this.dataForm.code = data.code + this.dataForm.specs = data.specs + this.dataForm.unit = data.runit + this.dataForm.supplier = data.supplier + this.dataForm.number = data.number + this.dataForm.createTime = data.creatTime + this.dataForm.createUser = data.createUser + let userNameList = [] + this.list = [] + data.children.forEach(item=>{ + userNameList.push(item.userName) + this.list.push({ + equipmentId: item.equiomentId, + name: item.rpName, + required: item.required, + testValue: item.testValue, + unit: item.rpUnit, + testState: item.testState, + rpId: item.rpId + }) + }) + this.conclusionTable = [{ + code: data.code, + name: data.name, + userName: Array.from(new Set(userNameList)).join(','), + testState: '' + }] + }).catch(error=>{ + this.$message.error("鑾峰彇澶辫触",error) + }) + }else{ + this.conclusionTable = [] + this.tableOption.column = object.column + } + }, + save(){ + let data = this.dataForm + data.rawInsProducts = this.list + console.log(this.list) + return + addRawInspects(data).then(res=>{ + this.$message.success("淇濆瓨鎴愬姛") + }).catch(error=>{ + this.$message.error(error) + }) + }, + // 娣诲姞琛� + clickAddLine() { + let obj = { + $cellEdit: true, + equipmentId: null, + name: "", + required: "", + testValue: "", + unit: "" + }; + this.list.push(obj); + }, + getDeviceList(){ + selectDevice(null).then(res=>{ + this.deviceList = res.data.data + }) + }, + }, + computed:{}, + components:{} +} +</script> + +<style> +.rawMaterial-detail { + width: 100%; + height: 400px; + padding: 10px 20px; + display: flex; + border: 1px solid #ddd; + background-color: #fff; + margin-top: 10px; + box-sizing: border-box; + flex-wrap: wrap; +} + +.rawMaterial-basic { + background-color: #fff; + height: 150px; + display: flex; + flex-wrap: wrap; + padding: 10px 20px; + border: 1px solid #ddd; + box-sizing: border-box; +} + +.rawMaterial-related-stock-part { + background-color: #fff; + width: 100%; + height: 220px; + border: 1px solid #ddd; + padding: 10px 20px 0px 20px; + box-sizing: border-box; +} + +.rawMaterial-bom { + background-color: #fff; + width: 100%; + height: 499px; + border: 1px solid #ddd; + padding: 10px 20px; + box-sizing: border-box; +} + +.rawMaterial-bom .el-card__header { + padding: 1px 20px; + border-bottom: 0px solid #ebeef5; +} + +.rawMaterial-bom .el-card__body { + height: calc(100% - 22px); +} + +.rawMaterial-bom .el-card__body .el-collapse { + height: 100%; + overflow: auto; +} + +.rawMaterial-technology-params { + background-color: #fff; + width: calc(52% - 20px); + float: left; + height: 719px; + border: 1px solid #ddd; + padding: 10px 20px; + margin-left: 20px; +} + +.rawMaterial-structure { + background-color: #fff; + width: 35%; + float: left; + height: 719px; + border: 1px solid #ddd; + padding: 10px 20px; + box-sizing: border-box; +} + +.rawMaterial-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; +} + +.rawMaterial-bom-div { + width: 100%; + margin-bottom: 5px; +} + +.rawMaterial-technology-div { + width: 100%; + margin-bottom: 5px; + margin-right: 10px; +} + +.rawMaterial-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; +} + +.rawMaterial-materialcost-table th.gutter { + display: table-cell !important; + width: 10px !important; +} + +.rawMaterial-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; +} +</style> diff --git a/src/views/technology/document/document-form.vue b/src/views/technology/document/document-form.vue index a6c7556..95d7185 100644 --- a/src/views/technology/document/document-form.vue +++ b/src/views/technology/document/document-form.vue @@ -22,7 +22,7 @@ label-width="110px" > <el-row> - <el-col :span="5"> + <el-col :span="6"> <el-form-item prop="name" label="鏂囦欢鍚嶇О"> <el-input v-model="dataForm.name" @@ -30,7 +30,7 @@ ></el-input> </el-form-item> </el-col> - <el-col :span="4"> + <el-col :span="6"> <el-form-item prop="number" label="鏂囦欢缂栧彿"> <el-input v-model="dataForm.number" placeholder="鏂囦欢缂栧彿"> </el-input> @@ -53,14 +53,6 @@ </el-select> </el-form-item> </el-col> --> - <el-col :span="3"> - <el-form-item prop="version" label="鐗堟湰鍙�"> - <el-input - v-model="dataForm.version" - placeholder="鐗堟湰鍙�" - ></el-input> - </el-form-item> - </el-col> <!-- <el-col :span="3"> <el-form-item prop="sheathColor" label="鎶ゅ棰滆壊"> <el-input @@ -126,16 +118,58 @@ </el-col> </el-row> <el-row> - <el-col :span="5"> - <el-form-item label="澶囨敞" prop="remark"> - <el-input - type="textarea" - v-model="dataForm.remark" - placeholder="澶囨敞" - style="width:360px" - ></el-input> - </el-form-item> - </el-col> + <el-col :span="6"> + <el-form-item prop="version" label="鐗堟湰鍙�"> + <el-input + v-model="dataForm.version" + placeholder="鐗堟湰鍙�" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="BOM" prop="bomId"> + <el-select + :disabled="dataForm.id != null" + v-model="dataForm.bomId" + placeholder="" + style="width: 100%;" + filterable> + <el-option + v-for="item in bomList" + :key="item.id" + :label="item.number" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="宸ヨ壓璺嚎缂栧彿" prop="routingList"> + <el-select + :disabled="dataForm.id != null" + v-model="dataForm.routingId" + placeholder="" + style="width: 100%;" + filterable> + <el-option + v-for="item in routingList" + :key="item.id" + :label="item.routing_no" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="澶囨敞" prop="remark"> + <el-input + type="textarea" + v-model="dataForm.remark" + placeholder="澶囨敞" + style="width:100%" + ></el-input> + </el-form-item> + </el-col> </el-row> </el-form> </div> @@ -143,7 +177,7 @@ <div class="document-detail"> <el-tabs type="card" style="width: 100%;height: 100%"> <el-tab-pane - label="鍘熸潗鐢ㄩ噺" + label="鍘熸潗鏂欑敤閲�" style="height: 100%" class="orimaterial-quantity" > @@ -198,6 +232,8 @@ align="center" > </el-table-column> + <el-table-column label="鐗╂枡缂栧彿" prop="partNo" align="center"> + </el-table-column> <el-table-column label="鐗╂枡" prop="partName" align="center"> </el-table-column> <el-table-column label="鏁伴噺" prop="quantity" align="center"> @@ -219,7 +255,7 @@ </TeststandardDialog> </el-tab-pane> <el-tab-pane label="浜у搧缁撴瀯宸ュ簭鍙傛暟" style="height: 100%"> - <!-- <div class="document-related-stock-part"> + <div class="document-related-stock-part"> <div style="padding-left:18px;font-size:14px;font-weight:700;color:#000;height:20px;line-height:20px;" > @@ -306,7 +342,7 @@ > </el-table-column> </el-table> - </div> --> + </div> <el-card class="document-bom" header=""> <!-- <div slot="header"> <span>BOM-宸ュ簭鍙傛暟</span> @@ -742,6 +778,8 @@ import { delDocumentSamplingRule } from '@/api/quality/documentsamplingrule' import { getObj as getTechnologyDetail } from '@/api/technology/routing' import { getObj as getStructureDetail } from '@/api/technology/completeproductstructure' +import { fetchList as getBomList } from '@/api/technology/completeproductstructure' +import { getRouting } from '@/api/technology/document' import { getTestStandardParams } from '@/api/quality/teststandard' import { remote } from '@/api/admin/dict' import { fetchList as getStandard } from '@/api/quality/standardbind' @@ -760,6 +798,8 @@ export default { data() { return { + bomList: [], + routingList: [], operationPart: {}, showCompleteproductstructure: false, showTechnology: false, @@ -786,6 +826,8 @@ ], dataForm: { id: null, + bomId: null, + routingId: null, number: null, name: null, version: null, @@ -902,6 +944,43 @@ window.winDbClick = this.getDbClick // 鍒濆鍖栨祦绋嬪浘瀹炰緥 this.initFlowDesign() + }, + watch: { + 'dataForm.partId'(newValue, oldValue) { + if (oldValue) { + this.dataForm.bomId = null + } + if (newValue) { + getBomList( + Object.assign({ + current: 1, + size: 999, + partId: this.dataForm.partId, + }) + ).then((response) => { + this.bomList = response.data.data.records + }) + } else { + this.bomList = [] + } + }, + 'dataForm.bomId'(newValue, oldValue) { + if (oldValue) { + this.dataForm.routingId = null + } + if (newValue) { + getRouting( + Object.assign({ + bomId: this.dataForm.bomId, + }) + ).then((response) => { + console.log(response) + this.routingList = response.data.data + }) + } else { + this.routingList = [] + } + }, }, methods: { // 鏌ヨ绫诲瀷瀛楀吀 @@ -1771,6 +1850,7 @@ allKeyValues = allKeyValues.concat(keyValues) i = i + keyValues.length } + console.log("aaa--",allKeyValues) this.materialCostList = allKeyValues }, objectSpanMethod({ row, column, rowIndex, columnIndex }) { @@ -1910,8 +1990,8 @@ }, getSummaries(param) { const { columns, data } = param - console.log(columns, 'A') - console.log(data, 'B') + // console.log(columns, 'A') + // console.log(data, 'B') const sums = [] columns.forEach((column, index) => { if (index === 0) { diff --git a/src/views/technology/operation/index.vue b/src/views/technology/operation/index.vue index 8d06f7e..2aa2d7c 100644 --- a/src/views/technology/operation/index.vue +++ b/src/views/technology/operation/index.vue @@ -177,15 +177,15 @@ // } // }, // 鐝粍浜哄憳 - { - minWidth: '120', - prop: 'crewSize', - label: '鐝粍浜哄憳', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, + // { + // minWidth: '120', + // prop: 'crewSize', + // label: '鐝粍浜哄憳', + // sort: true, + // isTrue: true, + // isSearch: true, + // searchInfoType: 'text' + // }, { minWidth: '120', prop: 'outsideOpItem', diff --git a/src/views/technology/operation/operation-form.vue b/src/views/technology/operation/operation-form.vue index b510c9a..765b7e7 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" @@ -448,7 +448,7 @@ laborRunFactor: 0, laborSetupTime: 0, runTimeCodeDb: '2', - crewSize: 1, + crewSize: null, outsideOpItem:null }, operationTemplateList: [], @@ -724,7 +724,7 @@ this.dataForm.laborRunFactor = 0 this.dataForm.laborSetupTime = 0 this.dataForm.runTimeCodeDb = '2' - this.dataForm.crewSize = 1 + this.dataForm.crewSize = null this.fileList = [] this.operationTemplateList = [] this.stepList = [] @@ -751,17 +751,17 @@ this.$refs.dataForm.validate((valid) => { if (valid) { // 鏍¢獙銆愭満鍣ㄨ繍杞洜绱犮�戙�併�愭満鍣ㄨ缃椂闂淬�戙�併�愬姵鍔涜繍杞洜绱犮�戙�併�愬姵鍔涜缃椂闂淬�戜腑鑷冲皯鏈変竴涓瓧娈电殑鍊奸』澶т簬0 - if ( - this.dataForm.machRunFactor == 0 && - this.dataForm.machSetupTime == 0 && - this.dataForm.laborRunFactor == 0 && - this.dataForm.laborSetupTime == 0 - ) { - this.$message.error( - '銆愭満鍣ㄨ繍杞洜绱犮�戙�併�愭満鍣ㄨ缃椂闂淬�戙�併�愬姵鍔涜繍杞洜绱犮�戙�併�愬姵鍔涜缃椂闂淬�戜腑鑷冲皯鏈変竴涓瓧娈电殑鍊奸』澶т簬0' - ) - this.isSubmit = false - } else { + // if ( + // this.dataForm.machRunFactor == 0 && + // this.dataForm.machSetupTime == 0 && + // this.dataForm.laborRunFactor == 0 && + // this.dataForm.laborSetupTime == 0 + // ) { + // this.$message.error( + // '銆愭満鍣ㄨ繍杞洜绱犮�戙�併�愭満鍣ㄨ缃椂闂淬�戙�併�愬姵鍔涜繍杞洜绱犮�戙�併�愬姵鍔涜缃椂闂淬�戜腑鑷冲皯鏈変竴涓瓧娈电殑鍊奸』澶т簬0' + // ) + // this.isSubmit = false + // } else { // 銆愪汉宸ョ被鍒�戜负绌烘椂銆愮彮缁勪汉鍛樸�戝繀椤讳负绌猴紝鍚﹀垯蹇呴』澶т簬0 let remindInfo = '' let remindFlag = false @@ -828,7 +828,7 @@ }) } } - } + // } } else { this.isSubmit = false } diff --git a/src/views/technology/routing/index.vue b/src/views/technology/routing/index.vue index 1dca9cb..7b31528 100644 --- a/src/views/technology/routing/index.vue +++ b/src/views/technology/routing/index.vue @@ -266,19 +266,19 @@ searchInfoType: 'text' }, // 宸ヨ壓绫诲瀷 - { - minWidth: '120', - prop: 'bomTypeDb', - label: '宸ヨ壓绫诲瀷', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'select', - formatter: this.formatBomTypeDbType, - optList: () => { - return this.bomTypeDbOptions - } - }, + // { + // minWidth: '120', + // prop: 'bomTypeDb', + // label: '宸ヨ壓绫诲瀷', + // sort: true, + // isTrue: true, + // isSearch: true, + // searchInfoType: 'select', + // formatter: this.formatBomTypeDbType, + // optList: () => { + // return this.bomTypeDbOptions + // } + // }, // 閫愭閲囩敤鏃ユ湡 { minWidth: '200', diff --git a/src/views/technology/routing/routing-form.vue b/src/views/technology/routing/routing-form.vue index 2465b01..a75de54 100644 --- a/src/views/technology/routing/routing-form.vue +++ b/src/views/technology/routing/routing-form.vue @@ -66,7 +66,7 @@ ></el-input> </el-form-item> <el-form-item label="BOM" prop="bomId"> - <el-select v-model="dataForm.bomId" placeholder="" filterable> + <el-select :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" filterable> <el-option v-for="item in bomList" :key="item.id" @@ -75,13 +75,13 @@ /> </el-select> </el-form-item> - <el-form-item prop="version" label="宸ヨ壓鐗堟湰"> + <!-- <el-form-item prop="version" label="宸ヨ壓鐗堟湰"> <el-input v-model="dataForm.version" placeholder="宸ヨ壓鐗堟湰" ></el-input> - </el-form-item> - <el-form-item label="宸ヨ壓绫诲瀷" prop="bomTypeDb"> + </el-form-item> --> + <!-- <el-form-item label="宸ヨ壓绫诲瀷" prop="bomTypeDb"> <el-select v-model="dataForm.bomTypeDb" placeholder="璇烽�夋嫨宸ヨ壓绫诲瀷" @@ -96,7 +96,7 @@ > </el-option> </el-select> - </el-form-item> + </el-form-item> --> <el-form-item label="閫愭閲囩敤鏃ユ湡" prop="phaseInDate"> <el-date-picker v-model="dataForm.phaseInDate" diff --git a/src/views/technology/structure/index.vue b/src/views/technology/structure/index.vue index d3a6693..996ffb6 100644 --- a/src/views/technology/structure/index.vue +++ b/src/views/technology/structure/index.vue @@ -185,19 +185,19 @@ searchInfoType: 'text' }, // 缁撴瀯绫诲瀷 - { - minWidth: '120', - prop: 'bomTypeDb', - label: '缁撴瀯绫诲瀷', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'select', - formatter: this.formatBomTypeDbType, - optList: () => { - return this.bomTypeDbOptions - } - }, + // { + // minWidth: '120', + // prop: 'bomTypeDb', + // label: '缁撴瀯绫诲瀷', + // sort: true, + // isTrue: true, + // isSearch: true, + // searchInfoType: 'select', + // formatter: this.formatBomTypeDbType, + // optList: () => { + // return this.bomTypeDbOptions + // } + // }, // 鏇夸唬 // { // minWidth: '120', diff --git a/src/views/technology/structure/single-structure-form.vue b/src/views/technology/structure/single-structure-form.vue index fd0319d..98f13c6 100644 --- a/src/views/technology/structure/single-structure-form.vue +++ b/src/views/technology/structure/single-structure-form.vue @@ -28,8 +28,10 @@ v-model="dataForm.partNo" placeholder="璇烽�夋嫨闆朵欢" @blur="checkPartNo()" + readonly > <el-button + :disabled="isUpdated" slot="append" icon="el-icon-search" @click="openPartDialog()" @@ -40,11 +42,12 @@ <el-input v-model="dataForm.partName" placeholder="闆朵欢鍚嶇О" + style="width: 150px" :readonly="true" > </el-input> </el-form-item> - <el-form-item label="缁撴瀯绫诲瀷" prop="bomTypeDb"> + <!-- <el-form-item label="缁撴瀯绫诲瀷" prop="bomTypeDb"> <el-select v-model="dataForm.bomTypeDb" placeholder="璇烽�夋嫨缁撴瀯绫诲瀷" @@ -58,7 +61,7 @@ > </el-option> </el-select> - </el-form-item> + </el-form-item> --> <!-- <el-form-item label="鏇夸唬" prop="alternativeNo"> <el-input v-model="dataForm.alternativeNo"></el-input> </el-form-item> @@ -69,9 +72,9 @@ v-model="dataForm.alternativeDesc" ></el-input> </el-form-item> --> - <el-form-item label="鐗堟湰鍙�" prop="version"> + <!-- <el-form-item label="鐗堟湰鍙�" prop="version"> <el-input v-model="dataForm.version" disabled></el-input> - </el-form-item> + </el-form-item> --> <el-form-item label="澶囨敞" prop="remark"> <el-input type="textarea" @@ -158,6 +161,7 @@ v-if="scope.row.isUpdate" @blur="verifyPartNo(scope.row, scope.$index)" @focus="clearClass(scope.$index)" + readonly > <el-button slot="append" @@ -272,6 +276,7 @@ }, data() { return { + isUpdated: false, customClass: [], showPart: false, editNodePart: null, @@ -334,6 +339,9 @@ }, created() { const formId = this.$route.params.id + if(formId != null){ + this.isUpdated = true + } this.init(formId) this.getBomTypeDbOptions() }, diff --git a/vue.config.js b/vue.config.js index 64b6d3b..115733f 100644 --- a/vue.config.js +++ b/vue.config.js @@ -3,6 +3,7 @@ * https://cli.vuejs.org/zh/config/ */ const url = 'http://192.168.0.23:9999' +// const url = 'http://ztt-gateway:9999' const localUrl = 'http://localhost:8089' //const localUrl = 'http://10.88.15.95:8089' const CompressionWebpackPlugin = require('compression-webpack-plugin') -- Gitblit v1.9.3