From 000b6f8c42b1eb52a75d3fdf58a950a26bfe18f6 Mon Sep 17 00:00:00 2001 From: 86134 <aa> Date: 星期二, 07 十一月 2023 17:35:54 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before --- src/api/quality/processInspect.js | 18 src/api/quality/unqualifiedprocess.js | 18 src/views/equipment/equipment/index.vue | 12 src/views/quality/processconfiguration/index.vue | 105 ++--- src/views/common/rawMaterial-part.vue | 2 src/views/quality/finishedProductInspection/index.vue | 14 src/api/quality/rawMaterial.js | 9 src/views/quality/finishedProductInspection/finishedProduct-form.vue | 43 + src/views/common/ztt-table.vue | 3 src/views/quality/processInspect/processInspect-form.vue | 613 +++++++++++++++++++++---------- src/views/quality/rawMaterial/rawMaterial-form.vue | 103 ++-- /dev/null | 93 ---- src/api/quality/finishedProduct.js | 9 package.json | 3 src/views/quality/processInspect/index.vue | 12 src/views/quality/rawMaterial/index.vue | 83 ++-- 16 files changed, 664 insertions(+), 476 deletions(-) diff --git a/package.json b/package.json index 6fea7ba..fd460e9 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,8 @@ "vue-quill-editor": "3.0.6", "vue-router": "^3.0.2", "vuedraggable": "^2.24.3", - "vuex": "^3.0.1" + "vuex": "^3.0.1", + "xlsx-style": "^0.8.13" }, "devDependencies": { "@vue/cli-plugin-babel": "~3.8.0", diff --git a/src/api/quality/finishedProduct.js b/src/api/quality/finishedProduct.js index 0badd57..cb8ce52 100644 --- a/src/api/quality/finishedProduct.js +++ b/src/api/quality/finishedProduct.js @@ -60,4 +60,13 @@ method: 'post', params: obj }) +} + +export function exportExaminationProducts(query) { + return request({ + url: '/mes/qualityFinishedInspect/exportExcel', + method: 'get', + responseType : 'blob', + params: query + }) } \ No newline at end of file diff --git a/src/api/quality/processInspect.js b/src/api/quality/processInspect.js index 8968102..acccc59 100644 --- a/src/api/quality/processInspect.js +++ b/src/api/quality/processInspect.js @@ -77,4 +77,20 @@ method: 'post', params: obj }) -} \ No newline at end of file +} + +export function selectDevice() { + return request({ + url: '/mes/qualityProcessInsProduct/selectDevice', + method: 'get', + }) +} + +export function exportProcessInsProduct(query) { + return request({ + url: '/mes/qualityProcessInspect/exportExcel', + method: 'get', + responseType : 'blob', + params: query + }) +} diff --git a/src/api/quality/rawMaterial.js b/src/api/quality/rawMaterial.js index 6985610..74c5001 100644 --- a/src/api/quality/rawMaterial.js +++ b/src/api/quality/rawMaterial.js @@ -77,5 +77,12 @@ }) } - +export function exportRawMaterial(data) { + return request({ + url: '/mes/rawInspect/export', + method: 'get', + responseType: 'blob', + params: data + }) +} diff --git a/src/api/quality/unqualifiedprocess.js b/src/api/quality/unqualifiedprocess.js index 729751c..e3702a0 100644 --- a/src/api/quality/unqualifiedprocess.js +++ b/src/api/quality/unqualifiedprocess.js @@ -8,6 +8,15 @@ }) } +export function exportData(query) { + return request({ + url: '/mes/qualityInspectUnaccepted/export', + method: 'get', + responseType: 'blob', + params: query + }) +} + export function pullInsUnapi(query) { return request({ url: '/mes/qualityInspectUnaccepted/pullInsUn', @@ -199,3 +208,12 @@ method: 'get' }) } + +export function UnqualifiedDisposal(query) { + return request({ + url: '/mes/qualityInspectUnaccepted/export', + method: 'get', + responseType : 'blob', + params: query + }) +} \ No newline at end of file diff --git a/src/views/common/rawMaterial-part.vue b/src/views/common/rawMaterial-part.vue index 9a29d28..16ba844 100644 --- a/src/views/common/rawMaterial-part.vue +++ b/src/views/common/rawMaterial-part.vue @@ -210,9 +210,7 @@ this.$parent.costPlannedAmountChange(this.currentRow) }, handleCurrentChange(row) { - console.log(row); this.currentRow = row - console.log(this.currentRow); }, handleSelectionChange(val) { // 澶氳閫変腑 diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue index 5750421..8f65553 100644 --- a/src/views/common/ztt-table.vue +++ b/src/views/common/ztt-table.vue @@ -819,6 +819,7 @@ this.isCleanInfo = true } } + this.$emit("queryParam",this.queryParam) }, deep: true }, @@ -936,7 +937,7 @@ } }, getDataList(selectedId) { - this.dataListLoading = true + // this.dataListLoading = true var criteria = {} criteria.dateTimeFilters = this.dateTimeFilters criteria.multiSearchFilter = this.multiSearchFilter diff --git a/src/views/equipment/equipment/index.vue b/src/views/equipment/equipment/index.vue index 59fead3..f65ac9d 100644 --- a/src/views/equipment/equipment/index.vue +++ b/src/views/equipment/equipment/index.vue @@ -198,12 +198,12 @@ type: 'primary', fun: this.addOrUpdateHandle }, - { - text: '鍚屾', - type: 'primary', - loading: false, - fun: this.pullEquipFun - } + // { + // text: '鍚屾', + // type: 'primary', + // loading: false, + // fun: this.pullEquipFun + // } ], operator: [ { diff --git a/src/views/quality/finishedProductInspection/finishedProduct-form.vue b/src/views/quality/finishedProductInspection/finishedProduct-form.vue index 34cd401..0eb8bdd 100644 --- a/src/views/quality/finishedProductInspection/finishedProduct-form.vue +++ b/src/views/quality/finishedProductInspection/finishedProduct-form.vue @@ -96,25 +96,41 @@ <el-table-column prop="required" label="鏍囧噯鍊�" width="240" ></el-table-column> <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��" width="240" style="text-align: center;"> + <template slot-scope="scope"> - <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null" - class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" - placement="top-start"> - <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" - @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> - <span v-if="resultVal != null" v-text="scope.row.empiricalValueAddss[index]"></span> + <el-col v-if="scope.row.itype === '1'"> + <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null" + class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" + placement="top-start"> + <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" + @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> + <span v-if="resultVal != null" v-text="scope.row.empiricalValueAddss[index]"></span> </el-tooltip> + </el-col> + <el-col v-else> + <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" + class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="璇烽�夋嫨"> + <el-option v-for="item in dataVal" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + <span v-if="resultVal != null && processInspectVo.id != null" + v-text="scope.row.empiricalValueAddss[index]"></span> + </el-tooltip> + </el-col> </template> </el-table-column> <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="250"> <template slot-scope="scope"> <span v-if="resultVal!=null && processInspectVo.id!=null" v-text="scope.row.ename"></span> <div v-else> - <el-select style="width:100%" v-model="scope.row.eId" + <el-input v-model="scope.row.eId" v-if="scope.row.iname != null" placeholder="璇疯緭鍏ヨ澶囧彿"></el-input> + <!-- <el-select style="width:100%" v-model="scope.row.eId" v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row,scope.$index)"> <el-option v-for="(item,index) in deviceList" :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> - </el-select> + </el-select> --> </div> </template> </el-table-column> @@ -175,6 +191,13 @@ export default { data() { return { + dataVal: [{ + label: '鏄�', + value: '鏄�' + }, { + label: '鍚�', + value: '鍚�' + }], resultVal: null, deviceList: [], hasChildren: true, @@ -220,6 +243,7 @@ this.init() }, methods: { + submitSave(){ let pro = 0 this.inspectionItems.forEach(item => { @@ -323,7 +347,8 @@ }, getDeviceList(){ selectDevice(null).then(res=>{ - this.deviceList = res.data.data + // this.deviceList = res.data.data + console.log(res); }) }, updateDevice(row,index){ diff --git a/src/views/quality/finishedProductInspection/index.vue b/src/views/quality/finishedProductInspection/index.vue index 674a317..3647ffc 100644 --- a/src/views/quality/finishedProductInspection/index.vue +++ b/src/views/quality/finishedProductInspection/index.vue @@ -20,7 +20,8 @@ import ttable from '@/views/common/ztt-table.vue' import * as fecha from 'element-ui/lib/utils/date' import finishedProductInspectionAdd from './finishedProduct-form' - import { page,deletePro } from '@/api/quality/finishedProduct' + import { page,deletePro,exportExaminationProducts } from '@/api/quality/finishedProduct' + import { transform } from '@/util/fileTransform' export default { components: { finishedProductInspectionAdd, @@ -151,6 +152,8 @@ }, { text: '瀵煎嚭', + type: 'primary', + fun: this.exportExcel } ], operator: [{ @@ -174,6 +177,15 @@ }, created() { }, methods: { + exportExcel(){ + console.log("============"); + let queryParam=this.$refs.finishedProduct.getQueryParam(); + delete queryParam.criteria + console.log(queryParam); + exportExaminationProducts(queryParam).then((res)=>{ + transform(res) + }) + }, deleteHandle(row){ console.log(row.id) this.$confirm('纭鍒犻櫎璇ユ暟鎹悧锛�', '鎻愮ず', { diff --git a/src/views/quality/processInspect/index.vue b/src/views/quality/processInspect/index.vue index fdc05d8..b1b35e5 100644 --- a/src/views/quality/processInspect/index.vue +++ b/src/views/quality/processInspect/index.vue @@ -20,7 +20,8 @@ import ttable from '@/views/common/ztt-table.vue' import * as fecha from 'element-ui/lib/utils/date' import processInspectForm from './processInspect-form' - import { page,deleteById } from '@/api/quality/processInspect' + import { transform } from '@/util/fileTransform' + import { page,deleteById,exportProcessInsProduct } from '@/api/quality/processInspect' export default { components: { processInspectForm, @@ -153,6 +154,7 @@ }, { text: '瀵煎嚭', + fun: this.exportExcel } ], operator: [{ @@ -172,6 +174,14 @@ }, created() { }, methods: { + exportExcel(){ + let queryParam=this.$refs.processInspect.getQueryParam(); + delete queryParam.criteria + console.log(queryParam); + exportProcessInsProduct(queryParam).then((res)=>{ + transform(res) + }) + }, deleteHandle(row){ this.$confirm('纭鍒犻櫎璇ユ暟鎹悧锛�', '鎻愮ず', { confirmButtonText: '纭畾', diff --git a/src/views/quality/processInspect/processInspect-form.vue b/src/views/quality/processInspect/processInspect-form.vue index c3adbb9..19a9326 100644 --- a/src/views/quality/processInspect/processInspect-form.vue +++ b/src/views/quality/processInspect/processInspect-form.vue @@ -4,45 +4,46 @@ <div class="page-header"> <div class="header-left"> <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> - <h2 v-if="resultVal != null && processInspectVo.id!=null">鏌ョ湅-杩囩▼妫�楠屽崟</h2> + <h2 v-if="resultVal != null && processInspectVo.id != null">鏌ョ湅-杩囩▼妫�楠屽崟</h2> <h2 v-else>缂栬緫-杩囩▼妫�楠屽崟</h2> </div> <div class="btn-group header-right"> - <el-button @click="addTestProject" v-if="processInspectVo.id==null">鐢熸垚妫�楠岄」鐩�</el-button> + <el-button @click="addTestProject" v-if="processInspectVo.id == null">鐢熸垚妫�楠岄」鐩�</el-button> </div> </div> <div class="page-main"> <div class="finishedProduct-basic"> - <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" - label-position="right" label-width="120px" style="width: 100%" size="small"> + <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" label-position="right" + label-width="120px" style="width: 100%" size="small"> <div class="formwrapper"> <el-row> <el-col :span="6"> <el-form-item label="璁㈠崟鍙凤細"> <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" - v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" /> + v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="浜у搧鍚嶇О锛�"> - <el-select style="width: 100%" @change="changeOptionsSamplename" :disabled="processInspectVo.id != null" - v-model="processInspectVo.material" size="small" placeholder="璇烽�夋嫨浜у搧鍚嶇О"> - <el-option v-for="(item,index) in optionsSamplename" :key="index" :label="item.material" - :value="item.materialCode"> + <el-select style="width: 100%" @change="changeOptionsSamplename" + :disabled="processInspectVo.id != null" v-model="processInspectVo.material" + size="small" placeholder="璇烽�夋嫨浜у搧鍚嶇О"> + <el-option v-for="(item, index) in optionsSamplename" :key="index" + :label="item.material" :value="item.materialCode"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="浜у搧缂栫爜锛�"> - <el-input disabled v-model="processInspectVo.materialCode" - placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" /> + <el-input disabled v-model="processInspectVo.materialCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" + autocomplete="off" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="瑙勬牸鍨嬪彿锛�"> - <el-input disabled v-model="processInspectVo.specs" - placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" autocomplete="off" /> + <el-input disabled v-model="processInspectVo.specs" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" + autocomplete="off" /> </el-form-item> </el-col> </el-row> @@ -51,7 +52,7 @@ <el-form-item label="宸ュ簭鍚嶇О"> <el-select style="width: 100%" :disabled="processInspectVo.id != null" v-model="processInspectVo.technologyOperationId" size="small" placeholder="璇烽�夋嫨宸ュ簭"> - <el-option v-for="(item,index) in technologyList" :key="index" :label="item.name" + <el-option v-for="(item, index) in technologyList" :key="index" :label="item.name" :value="item.technologyOperationId"> </el-option> </el-select> @@ -59,16 +60,16 @@ </el-col> <el-col :span="6"> <el-form-item label="鍗曚綅锛�"> - <el-input disabled v-model="processInspectVo.unit" - placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" /> + <el-input disabled v-model="processInspectVo.unit" placeholder="璇疯緭鍏ュ崟浣�" + autocomplete="off" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="6"> <el-form-item label="鏁伴噺锛�"> - <el-input v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�" - autocomplete="off" :disabled="processInspectVo.id != null" /> + <el-input v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" + :disabled="processInspectVo.id != null" /> </el-form-item> </el-col> </el-row> @@ -86,34 +87,60 @@ <el-row style="width:100%;"> <el-col :span="24"> <el-table border :data="inspectionItems" height="400" - :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" - :cell-style="{textAlign:'center'}" row-key="iid" default-expand-all - style="width: 100%" ref="table" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> + :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }" + :cell-style="{ textAlign: 'center' }" row-key="iid" default-expand-all style="width: 100%" + ref="table" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> <el-table-column type="index" label="搴忓彿" width="60"></el-table-column> - <el-table-column label="椤圭洰" prop="father" width="240" ></el-table-column> - <el-table-column prop="iname" label="鎸囨爣" width="240" ></el-table-column> - <el-table-column prop="iunit" label="鍗曚綅" width="240" ></el-table-column> - <el-table-column prop="required" label="鏍囧噯鍊�" width="240" ></el-table-column> - <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��" - width="240" style="text-align: center;"> + <el-table-column label="椤圭洰" prop="father" width="240"></el-table-column> + <el-table-column prop="iname" label="鎸囨爣" width="240"></el-table-column> + <el-table-column prop="iunit" label="鍗曚綅" width="240"></el-table-column> + <el-table-column prop="required" label="鏍囧噯鍊�" width="240"></el-table-column> + <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" + label="妫�娴嬪��" width="240" style="text-align: center;"> <template slot-scope="scope"> - <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null" - class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" - placement="top-start"> - <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" + <el-col v-if="scope.row.itype === '1'"> + <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" + class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + <el-input :disabled="scope.row.eId == null" + v-model="scope.row.empiricalValueAddss[index]" @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> - <span v-if="resultVal != null && processInspectVo.id!=null" v-text="scope.row.empiricalValueAddss[index]"></span> + <span v-if="resultVal != null && processInspectVo.id != null" + v-text="scope.row.empiricalValueAddss[index]"></span> </el-tooltip> + </el-col> + <el-col v-else> + <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" + class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + <!-- <el-input :disabled="scope.row.eId == null" + v-model="scope.row.empiricalValueAddss[index]" + @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> --> + <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="璇烽�夋嫨"> + <el-option v-for="item in dataVal" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + <span v-if="resultVal != null && processInspectVo.id != null" + v-text="scope.row.empiricalValueAddss[index]"></span> + </el-tooltip> + </el-col> </template> </el-table-column> <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="250"> <template slot-scope="scope"> - <span v-if="resultVal != null && scope.row.iname != null" v-text="scope.row.ename"></span> + <span v-if="resultVal != null && scope.row.iname != null" + v-text="scope.row.ename"></span> <div v-else> +<<<<<<< HEAD <el-select style="width:100%" v-model="scope.row.eId" v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row,scope.$index)"> <el-option v-for="(item,index) in deviceList" :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> +======= + <el-select style="width:100%" v-model="scope.row.eId" v-if="scope.row.iname != null" + filterable @change="updateDevice(scope.row, scope.$index)"> + <el-option v-for="(item, index) in deviceList" :key="index" :value="item.id" + :label="item.code + '-' + item.name"></el-option> +>>>>>>> c36b81234cff45a92a096a94e844041cc1a31f2a </el-select> </div> </template> @@ -135,7 +162,7 @@ <el-table-column label="缁撹" fixed="right" min-width="100"> <template slot-scope="scope"> - <div v-if="scope.row.iname!=null"> + <div v-if="scope.row.iname != null"> <span style="color: #34BD66;" v-if="scope.row.iresult == 1">鍚堟牸</span> <span style="color: #E84738;" v-else-if="scope.row.iresult == 0">涓嶅悎鏍�</span> <span v-else>鏆傛棤缁撹</span> @@ -153,8 +180,8 @@ <el-row style="width:100%;"> <el-col :span="24"> <el-table border height="90" :data="inspectionResultForm" - :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" - :cell-style="{textAlign:'center'}"> + :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }" + :cell-style="{ textAlign: 'center' }"> <el-table-column prop="materialCode" label="鐗╂枡缂栧彿"></el-table-column> <el-table-column prop="material" label="鐗╂枡鍚嶇О"></el-table-column> <el-table-column prop="userName" label="妫�楠屽憳"></el-table-column> @@ -164,9 +191,10 @@ <el-tag type="danger" v-if="scope.row.result == '0'">涓嶅悎鏍�</el-tag> </template> </el-table-column> - <el-table-column label="鎿嶄綔"> + <el-table-column label="鎿嶄綔"> <template> - <el-button type="text" :disabled="resultVal != null && processInspectVo.id!=null" @click="submitSave()" size="small">涓婃姤</el-button> + <el-button type="text" :disabled="resultVal != null && processInspectVo.id != null" + @click="submitSave()" size="small">涓婃姤</el-button> </template> </el-table-column> </el-table> @@ -175,49 +203,57 @@ </div> </div> </div> - </template> +</template> - <script> - import { - chooseMater, - addProcess, - queryById, - updateDeviceBypppId, - updateProcessInsProduct, - updateProcessInspectsById, - } from '@/api/quality/processInspect' - import { selectDevice } from '@/api/quality/rawMaterial' - export default { - data() { - return { - resultVal: null, - technologyList: [], - deviceList: [], - hasChildren: true, - optionsSamplename: [], - // 娣诲姞鍒� - empiricalValueAdd: 1, - // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� - empiricalValueAddMaxNumber: 0, - processInspectVo: { - id: null, - material: null, - materialCode: null, - orderNumber: "ZTTIC20230001", - quantity: null, - specs: null, - unit: null, - technologyOperationId: null - }, - inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍� - inspectionResultForm: [], - } - }, - watch: { - }, - beforeUpdate(){ - this.$nextTick(()=>{ +<script> +import { + chooseMater, + addProcess, + queryById, + updateDeviceBypppId, + updateProcessInsProduct, + updateProcessInspectsById, +} from '@/api/quality/processInspect' +import { selectDevice } from '@/api/quality/processInspect' +export default { + data() { + return { + dataVal: [{ + label: '鏄�', + value: '鏄�' + }, { + label: '鍚�', + value: '鍚�' + }], + resultVal: null, + technologyList: [], + deviceList: [], + hasChildren: true, + optionsSamplename: [], + // 娣诲姞鍒� + empiricalValueAdd: 1, + // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� + empiricalValueAddMaxNumber: 0, + processInspectVo: { + id: null, + material: null, + materialCode: null, + orderNumber: "ZTTIC20230001", + quantity: null, + specs: null, + unit: null, + technologyOperationId: null + }, + inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍� + inspectionResultForm: [], + } + }, + watch: { + }, + beforeUpdate() { + this.$nextTick(() => { this.$refs.table.doLayout(); +<<<<<<< HEAD }) }, created() { @@ -243,59 +279,148 @@ return obj.iresult == 0; }) pro+=arr.length +======= + }) + }, + created() { + }, + mounted() { + this.getDeviceList() + this.processInspectVo.id = this.$route.query.id + this.resultVal = this.$route.query.resultVal + if (this.resultVal == null) { + let val = sessionStorage.getItem("process-resultVal-" + this.processInspectVo.id); + val == undefined ? this.resultVal = null : this.resultVal = val + } + this.init() + }, + methods: { + submitSave() { + let pro = 0 + console.log(this.inspectionItems); + this.inspectionItems.forEach(item => { + if (item.children) { + let arr = item.children.filter(obj => { + return obj.iresult == 0; + }) + pro += arr.length + } + }) + if (pro > 0) { + this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + inputPattern: /^\d+$/, + inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�' + }).then(({ value }) => { + let data = { + id: this.processInspectVo.id, + number: value +>>>>>>> c36b81234cff45a92a096a94e844041cc1a31f2a } - }) - if (pro > 0) { - this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - inputPattern: /^\d+$/, - inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�' - }).then(({ value }) => { - let data = { - id: this.processInspectVo.id, - number: value - } - updateProcessInspectsById(data).then(res => { - let data = res.data.data - if(data){ - if(data.indexOf("鎴愬姛")>0){ - this.$message.success(data); - this.checkTestState() - }else{ - this.$message.warning(data); - } - return - } - }); - }).catch(() => {}); - }else{ - updateProcessInspectsById({id:this.processInspectVo.id,number:0}).then(res => { + updateProcessInspectsById(data).then(res => { let data = res.data.data - if(data){ - if(data.indexOf("鎴愬姛") > 0){ + if (data) { + if (data.indexOf("鎴愬姛") > 0) { this.$message.success(data); this.checkTestState() - }else{ + } else { this.$message.warning(data); } return } }); + }).catch(() => { }); + } else { + updateProcessInspectsById({ id: this.processInspectVo.id, number: 0 }).then(res => { + let data = res.data.data + if (data) { + if (data.indexOf("鎴愬姛") > 0) { + this.$message.success(data); + this.checkTestState() + } else { + this.$message.warning(data); + } + return + } + }); + } + this.init() + }, + checkTestState() { + let resultVal = '1' + this.inspectionItems.forEach(item => { + if (item.children) { + item.children.forEach(obj => { + if (obj.iresult == 0) { + resultVal = '0' + } + }) } - this.init() - }, - checkTestState(){ - let resultVal = '1' - this.inspectionItems.forEach(item=>{ - if(item.children){ - item.children.forEach(obj=>{ - if(obj.iresult == 0){ - resultVal = '0' - } - }) + }) + this.resultVal = resultVal + this.inspectionResultForm[0].result = resultVal + sessionStorage.setItem("process-resultVal-" + this.processInspectVo.id, resultVal) + }, + init() { + let id = this.processInspectVo.id + if (id != null) { + queryById(id).then(res => { + let result = res.data.data + this.processInspectVo.orderNumber = result.orderNumber + this.processInspectVo.materialCode = result.materialCode + this.processInspectVo.material = result.material + this.processInspectVo.technologyOperationId = result.technologyOperationName + this.processInspectVo.specs = result.specs + this.processInspectVo.unit = result.punit + this.processInspectVo.quantity = result.quantity + let userList = [] + result.children.forEach(item => { + item.iid = Math.random() + if (item.children != undefined) { + item.children.forEach(obj => { + let arr = [] + if (obj.userName) { + userList.push(obj.userName) + } + if (obj.inspectionValue) { + arr = obj.inspectionValue.split(",") + } + obj.empiricalValueAddss = arr + if (arr.length > this.empiricalValueAdd) { + this.empiricalValueAdd = arr.length + } + }) + } + }) + this.inspectionItems = result.children + this.inspectionResultForm = [{ + materialCode: result.materialCode, + material: result.material, + userName: Array.from(new Set(userList)).join(","), + result: this.resultVal == null ? '' : this.resultVal, + }] + }).catch(error => { + console.log(error) + }) + } + }, + getDeviceList() { + selectDevice(null).then(res => { + this.deviceList = res.data.data + }) + }, + updateDevice(row, index) { + updateDeviceBypppId({ deviceId: row.eId, ppid: row.iid }).then(res => { + this.inspectionItems.forEach(obj => { + console.log(obj); + if (obj.children) { + obj.children[index - 1].inspectionValue = null + obj.children[index - 1].iresult = null + obj.children[index - 1].empiricalValueAddss = [] } }) +<<<<<<< HEAD this.resultVal = resultVal this.inspectionResultForm[0].result = resultVal sessionStorage.setItem("process-resultVal-"+this.processInspectVo.id,resultVal) @@ -466,90 +591,172 @@ // 鍒犻櫎妫�楠屽�煎垪 clickDeleteInspectionColumn() { if (this.empiricalValueAdd - 1 === 0) { - } else { - if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { - this.empiricalValueAdd = this.empiricalValueAdd - 1; - this.inspectionItems.forEach(i => { - i.empiricalValueAddss.splice(this.empiricalValueAdd, 1); - }); - } +======= + }).catch(error => { + console.log(error) + }) + }, + //浜у搧鍚嶇О锛岄�夋嫨 + changeOptionsSamplename(val) { + let sample = this.optionsSamplename.filter(o => { + return o.materialCode == val + })[0] + this.processInspectVo.materialCode = sample.materialCode + this.processInspectVo.specs = sample.specs + this.processInspectVo.unit = sample.unit + this.processInspectVo.material = sample.material + this.technologyList = sample.children + }, + changeState(row, index) { + if (row.iid != null && row.iid != '') { + let str = "" + row.empiricalValueAddss.forEach(e => { + str += e + "," + }) + str = str.slice(0, -1); + if (str === undefined || str === '' || str === null) { + return } - }, - // 娣诲姞妫�楠屽�煎垪 - clickAddInspectionColumn() { - this.empiricalValueAdd = this.empiricalValueAdd + 1; + let obj = { + devideId: row.eId, + ppid: row.iid, + inspectionValue: str + } + updateProcessInsProduct(obj).then(res => { + if (res.data.code == 0) { + this.$message.success("鏇存柊鎴愬姛") + } else { + this.$message.error("鏇存柊澶辫触") + } + this.init() + }) } }, - } - </script> + addTestProject() { + let val = this.processInspectVo + addProcess(val).then(res => { + let id = res.data.data + if (id != null) { + queryById(id).then(response => { + console.log(response.data.data.children) + let proList = response.data.data.children + proList.forEach(item => { + item.iid = Math.random(); + if (item.children != undefined) { + item.children.forEach(obj => { + obj.empiricalValueAddss = [] + }) + } + }) + this.inspectionItems = proList + }).catch(error => { + console.log(error); + }) + } + }).catch(error => { + console.log(error) + }) + }, + selectInfoByOrderId() { + chooseMater({ + orderNumber: this.processInspectVo.orderNumber + }).then(res => { + if (res.data.data != null) { + this.optionsSamplename = res.data.data.children +>>>>>>> c36b81234cff45a92a096a94e844041cc1a31f2a + } else { + this.$message({ + message: '娌℃湁璇ヨ鍗曞彿锛�', + type: 'warning' + }); + this.optionsSamplename = [] + this.processInspectVo.materialCode = null + this.processInspectVo.material = null + this.processInspectVo.specs = null + this.processInspectVo.unit = null + } + }) + }, + // 鍒犻櫎妫�楠屽�煎垪 + clickDeleteInspectionColumn() { + if (this.empiricalValueAdd - 1 === 0) { + } else { + if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { + this.empiricalValueAdd = this.empiricalValueAdd - 1; + this.inspectionItems.forEach(i => { + i.empiricalValueAddss.splice(this.empiricalValueAdd, 1); + }); + } + } + }, + // 娣诲姞妫�楠屽�煎垪 + clickAddInspectionColumn() { + this.empiricalValueAdd = this.empiricalValueAdd + 1; + } + }, +} +</script> - <style scoped> - .finishedProduct-detail { - width: 100%; - height: 470px; - padding: 10px 20px; - display: flex; - border: 1px solid #ddd; - background-color: #fff; - margin-top: 10px; - box-sizing: border-box; - flex-wrap: wrap; - } - - .finishedProduct-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; - } - - .finishedProduct-basic { - background-color: #fff; - height: 155px; - display: flex; - flex-wrap: wrap; - padding: 10px 20px; - border: 1px solid #ddd; - 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; - } - </style> \ No newline at end of file +<style scoped> +.finishedProduct-detail { + width: 100%; + height: 470px; + padding: 10px 20px; + display: flex; + border: 1px solid #ddd; + background-color: #fff; + margin-top: 10px; + box-sizing: border-box; + flex-wrap: wrap; +} + +.finishedProduct-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; +} + +.finishedProduct-basic { + background-color: #fff; + height: 155px; + display: flex; + flex-wrap: wrap; + padding: 10px 20px; + border: 1px solid #ddd; + 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; +} +</style> \ No newline at end of file diff --git a/src/views/quality/processconfiguration/index.vue b/src/views/quality/processconfiguration/index.vue index ab26a76..e608a41 100644 --- a/src/views/quality/processconfiguration/index.vue +++ b/src/views/quality/processconfiguration/index.vue @@ -3,14 +3,13 @@ <basic-container> <ttable :table="table" - :resultData="resultData" - @change ="costPlannedAmountChange" @handleSelectionChange="handleSelectionChange" :uploadInfo="uploadInfo" :isShowHide="true" :prelang="prelang" :options="options" :ajaxFun="ajaxFun" + @queryParam="getQueryParam($event)" ref="processconfiguration" > <template #toolbar></template> @@ -65,7 +64,7 @@ </div> </el-form> <span slot="footer" > - <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button @click="WayCancel()">鍙� 娑�</el-button> <el-button type="primary" @click="WaySure()">纭� 瀹�</el-button> </span> </el-dialog> @@ -74,16 +73,21 @@ </template> <script> -import { UnqualifiedList,pullInsUnapi,AuditSuggestion +import { + UnqualifiedList, + pullInsUnapi, + AuditSuggestion, + exportData } from '@/api/quality/unqualifiedprocess' import TableForm from './table-form' import { mapGetters } from 'vuex' // import { remote } from '@/api/admin/dict' +import { transform } from '@/util/fileTransform' import ttable from '@/views/common/ztt-table.vue' export default { data() { return { - resultData:[], + queryParam: {}, checkList: "", // WayIdea:'', UserId:{}, @@ -259,43 +263,13 @@ // return this.processModeOptions // } // }, - //鍙戣捣浜� - // { - // minWidth: '200', - // prop: 'originator', - // label: '鍙戣捣浜�', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - // 瀹℃牳浜� - // { - // minWidth: '140', - // prop: 'examiner', - // label: '瀹℃牳浜�', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - // 澶勭悊浜� - // { - // minWidth: '120', - // prop: 'handler', - // label: '澶勭悊浜�', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, ], toolbar: [ { text: '瀵煎嚭', type: 'primary', - fun: this.handleExcel + fun: this.handleExport }, ], operator: [ @@ -342,34 +316,34 @@ // this.getType() }, methods: { - async costPlannedAmountChange(value){ - this.resultData= value - }, - - handleExcel() { - console.log(this.resultData); - console.log(this.table.column); - let arr = this.table.column.filter(item => item.isTrue == true).map(item => { - return{ - prop:item.prop, - label:item.label - } - }) - let opt = { - title: '鏂囨。鏍囬', - column: [{ - label:'涓嶅悎鏍煎缃�', - prop:'header', - children:arr - }], - data: this.resultData + getQueryParam(data){ + this.queryParam = data + }, + handleExport(){ + exportData(this.queryParam).then(res=>{ + console.log(res) + this.downloadFun(res) + }).catch(error=>{ + console.log(error); + }) + }, + downloadFun(result){ + if(result == null || result == undefined){ + return; } - this.$Export.excel({ - title: opt.title, - columns: opt.column, - data: opt.data - }); - }, + var nameList = result.headers['content-disposition']; + nameList = decodeURI(nameList); + var fileName = nameList.split('=')[1]; + const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) + const downloadElement = document.createElement('a') // 鏂板缓涓�涓狣OM鑺傜偣 + const href = window.URL.createObjectURL(blob) // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href + downloadElement.download = fileName // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement) // 灏嗘柊澧炵殑鑺傜偣鎸傝浇鍒伴〉闈笂 + downloadElement.click() // 鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement) // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href) + }, //瀹℃牳缁撴灉 AuditResult(row){ this.UserId = row.id @@ -377,6 +351,11 @@ this.dialogVisible = true; }, + WayCancel(){ + this.dialogVisible = false + this.checkList = null + this.WayIdea = null + }, WaySure(){ AuditSuggestion({id:this.UserId,way:this.checkList}).then( res =>{ diff --git a/src/views/quality/rawMaterial/ExportMaterial.vue b/src/views/quality/rawMaterial/ExportMaterial.vue deleted file mode 100644 index 131802e..0000000 --- a/src/views/quality/rawMaterial/ExportMaterial.vue +++ /dev/null @@ -1,93 +0,0 @@ -<template> - <div style="width:400px"> - <el-button type="primary" @click="handleExcel">涓嬭浇 excel</el-button> - <el-button type="success" @click="handleExcel1">涓嬭浇 澶氱骇琛ㄥごexcel</el-button> - </div> - - </template> - - <script> - export default { - name: 'HelloWorld', - data(){ - return {} - }, - methods: { - handleExcel() { - let opt = { - title: '鏂囨。鏍囬', - column: [{ - label: '鏍囬', - prop: 'title' - }], - data: [{ - title: "娴嬭瘯鏁版嵁1" - }, { - title: "娴嬭瘯鏁版嵁2" - }] - } - console.log(this.$Export); - this.$Export.excel({ - title: opt.title , - columns: opt.column, - data: opt.data - }); - }, - handleExcel1() { - let opt = { - title: '鏂囨。鏍囬', - column: [{ - label:'澶氱骇琛ㄥご', - prop:'header', - children:[ - { - label: '鏍囬1', - prop: 'title1' - },{ - label: '鏍囬2', - prop: 'title2' - } - ] - }], - data: [{ - title1: "娴嬭瘯鏁版嵁1", - title2: "娴嬭瘯鏁版嵁2" - }, { - title1: "娴嬭瘯鏁版嵁2", - title2: "娴嬭瘯鏁版嵁2" - }] - } - this.$Export.excel({ - title: opt.title, - columns: opt.column, - data: opt.data - }); - } - }, - - props: { - msg: String - - - } - } - </script> - - <!-- Add "scoped" attribute to limit CSS to this component only --> - <style scoped> - h3 { - margin: 40px 0 0; - } - ul { - list-style-type: none; - padding: 0; - } - li { - display: inline-block; - margin: 0 10px; - } - a { - color: #42b983; - } - </style> - \ No newline at end of file diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue index 44a4618..297bd4e 100644 --- a/src/views/quality/rawMaterial/index.vue +++ b/src/views/quality/rawMaterial/index.vue @@ -20,13 +20,15 @@ <ttable :table="table" :resultData="resultData" - @change ="costPlannedAmountChange" @handleSelectionChange="handleSelectionChange" :prelang="prelang" :options="options" :ajaxFun="ajaxFun" + @queryParam="getQueryParam($event)" ref="rawMaterialTable"> - <template #toolbar></template> + <template #toolbar> + <el-button @click="exportRawMaterial" type="primary" >瀵煎嚭</el-button> + </template> </ttable> </basic-container> <!-- 寮圭獥, 鏂板 / 淇敼 --> @@ -38,15 +40,15 @@ </div> </template> <script> -import ExportMaterial from './ExportMaterial.vue' import ttable from '@/views/common/ztt-table.vue' -import { getRawInspectList,delObj } from '@/api/quality/rawMaterial' +import { getRawInspectList,delObj,exportRawMaterial } 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 { + queryParam: {}, resultData:[], addOrUpdateVisible: false, type: [1], @@ -64,14 +66,13 @@ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 - defaultOrderBy: { column: 'formTime', direction: 'desc' }, + defaultOrderBy: { column: 'createTime', direction: 'desc' }, }, table: { total: 0, currentPage: 1, pageSize: 20, data: [], - isExport:true, // 鏍囬 column: [ { @@ -139,6 +140,7 @@ prop: 'createTime', label: '鎶ユ鏃ユ湡', isTrue: true, + sort: true, isSearch: true, searchInfoType: 'text', formatter: this.formatDateTime, @@ -190,13 +192,7 @@ text: '鏂板', type: 'primary', fun: this.addOrUpdateHandle - }, - { - text: '瀵煎嚭', - type: 'primary', - fun: this.handleExcel - } - ], + }], operator: [{ text: '浣滃簾', type: 'text', @@ -214,10 +210,17 @@ StateList: [{label:'鍏ㄩ儴',value:''},{label:'宸插悎鏍�',value:'1'},{label:'涓嶅悎鏍�',value:'0'}], } }, + // props:{ + // queryParam:{ + // type: Object, + // default: ()=>{ + // return {} + // } + // } + // }, components: { ttable, RawMaterialForm, - ExportMaterial, }, created() { @@ -226,34 +229,34 @@ ...mapGetters(['permissions']) }, methods:{ - async costPlannedAmountChange(value){ - this.resultData= value + getQueryParam(data){ + this.queryParam = data }, - - handleExcel() { - console.log(this.resultData); - console.log(this.table.column); - let arr = this.table.column.filter(item => item.isTrue == true).map(item => { - return{ - prop:item.prop, - label:item.label - } + exportRawMaterial(){ + exportRawMaterial(this.queryParam).then(res=>{ + console.log(res) + this.downloadFun(res) + }).catch(error=>{ + console.log(error); }) - let opt = { - title: '鏂囨。鏍囬', - column: [{ - label:'', - prop:'header', - children:arr - }], - data: this.resultData - } - this.$Export.excel({ - title: opt.title, - columns: opt.column, - data: opt.data - }); - }, + }, + downloadFun(result){ + if(result == null || result == undefined){ + return; + } + var nameList = result.headers['content-disposition']; + nameList = decodeURI(nameList); + var fileName = nameList.split('=')[1]; + const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) + const downloadElement = document.createElement('a') // 鏂板缓涓�涓狣OM鑺傜偣 + const href = window.URL.createObjectURL(blob) // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href + downloadElement.download = fileName // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement) // 灏嗘柊澧炵殑鑺傜偣鎸傝浇鍒伴〉闈笂 + downloadElement.click() // 鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement) // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href) + }, // 鍒犻櫎 deleteHandle(row) { this.$confirm('鏄惁纭鍒犻櫎璇ユ暟鎹細' + row.code , '鎻愮ず', { diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index b5923d0..400e09e 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -75,23 +75,24 @@ </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-row> + <el-row> + <el-col :span="6"> <el-form-item label="鎶ユ鏃ユ湡" prop="createTime" v-if="dataForm.id!=null"> <el-input v-model="dataForm.createTime" disabled /> </el-form-item> - </el-col> - </el-row> - <el-row> + </el-col> <el-col :span="6"> <el-form-item label="鎶ユ浜�" prop="createUser" v-if="dataForm.id!=null"> <el-input v-model="dataForm.createUser" disabled /> </el-form-item> </el-col> - <el-col :span="6"> - <el-form-item prop="projectName" label="椤圭洰鍚嶇О"> - <el-input v-model="dataForm.projectName" disabled > - </el-input> - </el-form-item> - </el-col> </el-row> </el-form> </div> @@ -113,14 +114,23 @@ :data="list" border style="width: 100%;" height="400"> <el-table-column type="index" label="搴忓彿" width="60"> </el-table-column> - + <el-table-column prop="father" label="妫�楠岄」鐩�" width="260"> + <template slot-scope="scope"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.father" placeholder="璇疯緭鍏ユ楠岄」鐩�"></el-input> + </template> + </el-table-column> + <el-table-column prop="note" label="妫�楠屾弿杩�" width="260"> + <template slot-scope="scope"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> + </template> + </el-table-column> <el-table-column prop="name" label="椤圭洰" width="260"> <template slot-scope="scope"> <el-select v-if="projectList.length > 0" :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" filterable allow-create placeholder="璇疯緭鍏ユ垨閫夋嫨椤圭洰鍚嶇О" style="width:100%" @change="changeName(scope.$index,scope.row)"> <el-option v-for="(item,index) in projectList" :key="index" :label="item.name" :value="item.name"/> </el-select> - <el-input v-else :disabled="dataForm.id != null" class="inline-input" v-model="list.name" + <el-input v-else :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> </template> </el-table-column> @@ -140,18 +150,19 @@ <el-table-column prop="testValue" label="妫�娴嬪��" min-width="260" v-for="(item, index) in empiricalValueAdd" :key="index"> <template slot-scope="scope"> - <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" + <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> <!-- <el-input :disabled="scope.row.equipmentId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.testValueList[index]" @blur="updateTestValue(scope.row,index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> --> <el-autocomplete - :disabled="scope.row.equipmentId == null || (dataForm.id!=null&&resultVal!=null)" + style="width:100%" + :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" class="inline-input" v-model="scope.row.testValueList[index]" :fetch-suggestions="querySearch" - placeholder="璇疯緭鍏ュ唴瀹�" + placeholder="璇疯緭鍏ユ娴嬪��" @select="handleSelect" ></el-autocomplete> @@ -162,9 +173,9 @@ <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> <template slot-scope="scope"> <el-select :disabled="resultVal!=null && dataForm.id!=null" style="width:100%" - v-model="scope.row.equipmentId" filterable @change="updateDevice(scope.row,scope.$index)"> + v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)"> <el-option v-for="(item,index) in deviceList" - :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> + :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> </el-select> </template> </el-table-column> @@ -223,17 +234,12 @@ <span>涓嶅悎鏍兼暟閲�:</span> <el-input type="number" v-model="unqualifiedNum" placeholder="璇疯緭鍏ヤ笉鍚堟牸鏁伴噺"/> </el-col> - <el-col> - <span>瀹炴鏁伴噺:</span> - <el-input type="number" placeholder="璇疯緭鍏ュ疄妫�鏁伴噺" v-model="fiedNum"/> - </el-col> </el-row> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">鍙� 娑�</el-button> <el-button type="primary" @click="submitSave()">纭� 瀹�</el-button> </span> </el-dialog> - <!-- <rawMaterialPartDialog :currentRow ="currentRow" @costPlannedAmountChange="costPlannedAmountChange"/> --> </div> </template> @@ -246,7 +252,6 @@ updateRawInspectsById, updateDeviceById, } from '@/api/quality/rawMaterial' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' -import { log } from 'util' export default { // props:['currentRow'], computed:{}, @@ -255,9 +260,8 @@ }, data(){ return{ - currentRow:[], - userlist:[], - fiedNum: null, + currentRow:[], + userlist:[], unqualifiedNum: null, dialogVisible:false, resultVal: null, @@ -282,7 +286,7 @@ number: '', supplier: '', rawInsProducts: [{ - equipmentId: 0, + deviceId: 0, name: '', required: '', testValue: '', @@ -320,30 +324,18 @@ this.init() this.getDeviceList() this.restaurants = this.loadAll(); - // this.costPlannedAmountChange() + + console.log(this.dataForm); }, watch:{ dialogVisible(newVal){ if(newVal){ this.unqualifiedNum = null - this.fiedNum = null } }, }, methods:{ - //椤圭洰 - // xxxx(){ - // console.log(currentRow); - // }, - // 浜嬩欢澶勭悊鍑芥暟 - // costPlannedAmountChange(value) { - // console.log("==>"); - // console.log(value.rawInsProducts); - // this.userlist = value.rawInsProducts - // this.list = this.userlist - // console.log(this.list); - // }, querySearch(queryString, cb) { var restaurants = this.restaurants; var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants; @@ -373,7 +365,6 @@ }, // 纭鍥炶皟 selectPart(param, nodePart, index) { - console.log("鎴愬姛--",param); if (typeof param !== 'undefined') { this.dataForm.code = param.code this.dataForm.name = param.name @@ -385,21 +376,20 @@ this.dataForm.message = param.message this.dataForm.projectName = param.projectName this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts - // param.rawInsProducts.forEach(item=>{ - // this.list.push(item) - // }) + param.rawInsProducts.forEach(o=>{ + this.clickAddLine(o) + }) } }, queryCode(){ this.paramObj = { code: this.dataForm.code } - console.log(this.paramObj); this.showPart = true }, updateDevice(row,index){ if(this.dataForm.id != null){ - updateDeviceById({equiomentId:row.equipmentId,rpId:row.rpId}).then(res=>{ + updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{ this.list[index].testValue = '' this.list[index].testState = null this.list[index].testValueList = [] @@ -436,24 +426,24 @@ let data = { id: this.dataForm.id, number: this.unqualifiedNum, - toLocationNo: this.fiedNum + // toLocationNo: this.fiedNum } updateRawInspectsById(data).then(res => { if(res.data.code == 0){ sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data) this.$message.success("涓婃姤鎴愬姛"); this.dialogVisible = false + this.checkTestState() } }); - this.checkTestState() }, addTeatValueColumn(){ this.empiricalValueAdd = this.empiricalValueAdd + 1; }, // 娣诲姞琛� - clickAddLine() { + clickAddLine(row) { let obj = { - equipmentId: null, + deviceId: null, name: "", required: "", testValue: "", @@ -461,6 +451,11 @@ testState: null, testValueList: [], }; + if(row!=undefined){ + obj.name = row.name + obj.unit = row.unit + obj.required = row.required + } this.list.push(obj); }, // 鍒犻櫎琛� @@ -482,7 +477,7 @@ return } let obj = { - equiomentId: row.equipmentId, + deviceId: row.deviceId, rpId: row.rpId, testValue: row.testValueList.join(",") } @@ -508,9 +503,9 @@ this.dataForm.unit = data.runit this.dataForm.supplier = data.supplier this.dataForm.number = data.number + this.dataForm.projectName = data.projectName this.dataForm.createTime = data.creatTime this.dataForm.createUser = data.createUser - // this.dataForm.judgeState = data.judgeState let userNameList = [] this.list = [] data.children.forEach(item=>{ @@ -523,7 +518,7 @@ } } this.list.push({ - equipmentId: item.equiomentId, + deviceId: item.deviceId, deviceName: item.deviceName, name: item.rpName, required: item.required, @@ -562,7 +557,7 @@ }) }, getDeviceList(){ - selectDevice(null).then(res=>{ + selectDevice().then(res=>{ this.deviceList = res.data.data }) }, -- Gitblit v1.9.3