From cd6e23073fcda76f9852e883aacf1315ee4b9a67 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期四, 31 八月 2023 11:46:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/inspectionManagement/reportForInspection/index.vue | 411 ++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 338 insertions(+), 73 deletions(-)
diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue
index b6a1fdb..6dbbd6f 100644
--- a/src/views/inspectionManagement/reportForInspection/index.vue
+++ b/src/views/inspectionManagement/reportForInspection/index.vue
@@ -29,18 +29,32 @@
</el-form>
</div>
<el-dialog title="鏂板鍘熸潗鏂欐姤妫�" :visible.sync="addReportVisible" width="40%">
- <el-form v-model="insertData" label-position="left" label-width="80px">
- <el-form-item label="鏍囧噯绫诲瀷">
- <el-input v-model="insertData.materialName" />
+ <el-form ref="addMaterialForm" :rules="insertRule" :model="insertData" :inline="true" label-position="right"
+ label-width="100px">
+ <el-form-item label="鏉ユ枡鏃ユ湡:" prop="fromDate">
+ <el-date-picker v-model="insertData.fromDate" type="date" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
- <el-form-item label="鐗╂枡鍚嶇О">
- <el-input v-model="insertData.materialName" />
+ <el-form-item label="渚涜揣鍟嗗悕绉�:" prop="supplierName">
+ <el-input v-model="insertData.supplierName" />
</el-form-item>
- <el-form-item label="鎵ц鏍囧噯">
- <el-input v-model="insertData.standardName" />
+ <el-form-item label="鏉愭枡鍚嶇О:" prop="mName">
+ <el-select v-model="insertData.mName" placeholder="璇烽�夋嫨鏉愭枡鍚嶇О" @change="(val)=>{getSpecification(val)}">
+ <el-option v-for="(item,index) in materialList" :key="index" :label="item.name"
+ :value="item.id"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="瑙勬牸鍨嬪彿">
- <el-input v-model="insertData.specificationsName" />
+ <el-form-item label="鏉愭枡缂栫爜:" prop="mCode">
+ <el-input disabled v-model="insertData.mCode" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿:" prop="specificationsNumber">
+ <el-cascader v-model="insertData.specificationsNumber" :options="childrenOptions"
+ :props="{label: 'Name', value: 'Name'}" separator="-"></el-cascader>
+ </el-form-item>
+ <el-form-item label="鍗曚綅:" prop="unit">
+ <el-input type="text" v-model="insertData.unit" />
+ </el-form-item>
+ <el-form-item label="鏁伴噺:" prop="num">
+ <el-input type="number" v-model="insertData.num"/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@@ -60,10 +74,9 @@
<el-button @click="addReportBtn" type="primary" size="mini" icon="el-icon-document"
style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
</div>
-
</div>
<div class="table-box">
- <el-table ref="inspectionTable" :max-height="800" :cell-style="{textAlign: 'center'}"
+ <el-table ref="inspectionTable" :max-height="600" :cell-style="{textAlign: 'center'}"
:header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
:data="inspectionTable" style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" :selectable="checkSelect" min-width="5%">
@@ -88,26 +101,55 @@
</el-table-column>
<el-table-column label="鎿嶄綔" min-width="8%">
<template slot-scope="scope">
- <el-button type="text" size="small" @click="removeFun(scope.row)">鍒犻櫎</el-button>
+ <el-button type="text" size="small" @click="removeFun(scope.row,scope.$index)">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
<!-- 鍒嗛〉鍣� -->
<div>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
- :current-page="currentPage" :page-sizes="[5, 10, 15, 20]" :page-size="pageSize"
+ :current-page="currentPage" :page-sizes="[10, 15, 20,30]" :page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total">
</el-pagination>
</div>
</div>
</div>
</div>
+ <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="60%">
+ <el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="addInspectionForm">
+ <el-form-item label="妫�楠屾棩鏈�" label-width="100px" prop="inspectionDate">
+ <el-date-picker v-model="addInspectionForm.inspectionDate" type="daterange" value-format="yyyy-MM-dd"
+ range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="褰撳墠鐗堟湰" label-width="100px" prop="version">
+ <el-select @change="changeVersionFun" v-model="addInspectionForm.version" placeholder="璇烽�夋嫨鐗堟湰">
+ <el-option v-for="item in chooseVersion" :key="item.value" :label="item.label" :value="item.value" ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <el-table
+ style="width:90%;margin-left:5%"
+ :data="standardLibraryData" row-key="id" border
+ default-expand-all ref="multipleTable"
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+ <el-table-column type="index" width="50px" label="搴忓彿"></el-table-column>
+ <el-table-column label="椤圭洰鍚嶇О" prop="name" sortable></el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column>
+ <el-table-column label="鏍囧噯鍊�" prop="required" sortable></el-table-column>
+ <el-table-column prop="internal" label="鍐呮帶鍊�" sortable></el-table-column>
+ </el-table>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="resetForm('addInspectionForm')">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmBtn('addInspectionForm')">纭� 瀹�</el-button>
+ </div>
+ </el-dialog>
<!-- 鐢熸垚鎶ユ鍗� -->
<div class="newPage" v-if="showNewPage">
<!-- 鏂板椤甸潰 -->
<div class="inspectionForm">
- <el-form :model="inspectionForm" ref="inspectionForm" label-position="right" label-width="100px" size="mini">
+ <el-form :model="inspectionForm" label-position="right" label-width="100px" size="mini">
<div class="formwrapper">
<el-row>
<el-col :span="8">
@@ -182,17 +224,19 @@
<el-table-column prop="testValue" label="妫�楠屽��" width="125"></el-table-column>
<el-table-column prop="userName" label="妫�楠屼汉">
<template slot-scope="scope">
- <el-select v-model="scope.row.checker" size="small" slot="append" style="width: 260px;">
- <el-option v-for="(item,index) in checkeroptions" :key="index" :value="item.value"
- :label="item.label">{{ item.label }}</el-option>
+ <el-select @blur="blurOptions(scope.row)" v-model="scope.row.check" size="small" slot="append"
+ style="width: 260px;">
+ <el-option v-for="(item,index) in checkeroptions" :key="index" :value="item.id"
+ :label="item.name"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="device" label="璇曢獙璁惧">
<template slot-scope="scope">
- <el-select v-model="scope.row.device" size="small" slot="append" style="width: 260px;">
- <el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.value"
- :label="item.label">{{ item.label }}</el-option>
+ <el-select @blur="blurOptions(scope.row)" v-model="scope.row.device" size="small" slot="append"
+ style="width: 260px;">
+ <el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.id"
+ :label="item.equipmentName"></el-option>
</el-select>
</template>
</el-table-column>
@@ -206,14 +250,36 @@
import {
getRawMaterialList,
addInspect,
- selectInspectsListById
+ selectInspectsListById,
+ selectUser,
+ selectEquipment,
+ deleteMaterial,
+ addMaterial,
+ getMaterielName,
+ getSpecification,
+ getChooseVersion,
+ lookProByVer
} from '@/api/inspection/rawmaterial'
export default {
data() {
return {
- insertData: {
-
+ standardLibraryData:[],
+ chooseVersion: [],
+ userName: "",
+ devices: "",
+ addInspectionForm: {
+ inspectionDate: [],
+ version: null
},
+ addInspectionFormRules: {
+ inspectionDate: [{
+ required: true,
+ message: '璇烽�夋嫨鏃ユ湡鍖洪棿',
+ trigger: 'change'
+ }],
+ },
+ addReportDialog: false,
+ insertData: {},
addReportVisible: false,
checked: false,
resultData: {},
@@ -225,15 +291,36 @@
state: '',
date: ''
},
+ childrenOptions: [{
+ value: 'zhinan',
+ label: '鎸囧崡',
+ children: [{
+ value: 'shejiyuanze',
+ label: '璁捐鍘熷垯',
+ children: [{
+ value: 'yizhi',
+ label: '涓�鑷�'
+ }, {
+ value: 'fankui',
+ label: '鍙嶉'
+ }, {
+ value: 'xiaolv',
+ label: '鏁堢巼'
+ }, {
+ value: 'kekong',
+ label: '鍙帶'
+ }]
+ }]
+ }],
options: [{
- value: 0,
+ value: null,
label: '鍏ㄩ儴'
}, {
value: 1,
- label: '宸叉楠�'
+ label: '宸叉姤妫�'
}, {
- value: 2,
- label: '寰呮楠�'
+ value: 0,
+ label: '鏈姤妫�'
}],
deviceoptions: [{
value: 0,
@@ -251,15 +338,15 @@
}],
radioOptions: [{
label: '鍏ㄩ儴',
- value: 0
+ value: null
}, {
value: 1,
- label: '宸叉楠�'
+ label: '宸叉姤妫�'
}, {
- value: 2,
- label: '寰呮楠�'
+ value: 0,
+ label: '鏈姤妫�'
}],
- radioValue: 0,
+ radioValue: null,
inspectionTable: [{
createTime: '2023-07-28',
supplier_name: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
@@ -274,28 +361,103 @@
condition: 1
}],
currentPage: 1,
- pageSize: 5,
+ pageSize: 10,
total: 20,
data: '',
showNewPage: false,
inspectionForm: {},
- inspectionItems: []
+ inspectionItems: [{
+ index: 1,
+ name: "aaa",
+ unit: "KB",
+ required: "1",
+ internal: "2",
+ testValue: "3",
+ userName: "",
+ device: ""
+ }],
+ insertRule: {
+ fromDate: [{
+ required: true,
+ message: '璇烽�夋嫨鏉ユ枡鏃ユ湡',
+ trigger: 'blur'
+ }],
+ supplierName: [{
+ required: true,
+ message: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О',
+ trigger: 'blur'
+ }],
+ mName: [{
+ required: true,
+ message: '璇烽�夋嫨鐗╂枡鍚嶇О',
+ trigger: 'blur'
+ }],
+ mCode: [{
+ required: true,
+ message: '璇烽�夋嫨鐗╂枡',
+ trigger: 'blur'
+ }],
+ specificationsNumber: [{
+ required: true,
+ message: '璇烽�夋嫨瑙勬牸鍨嬪彿',
+ trigger: 'blur'
+ }],
+ unit: [{
+ required: true,
+ message: '璇疯緭鍏ュ崟浣�',
+ trigger: 'blur'
+ }],
+ num: [{
+ required: true,
+ message: '璇疯緭鍏ユ姤妫�鏁伴噺',
+ trigger: 'blur'
+ }]
+ },
+ materialList: []
}
},
created() {
this.getRawMaterialList()
},
+ mounted() {
+ this.getMaterielName();
+ },
methods: {
- removeFun(row) {
+ handleChange() {
+
+ },
+ async deleteMaterialFun(row, index) {
+ let formData = new FormData();
+ formData.append("deleteId", row.id)
+ await deleteMaterial(formData).then(() => {
+ this.inspectionTable.splice(index, 1);
+ this.$message.success("鍒犻櫎鎴愬姛");
+ }).catch(error => {
+ this.$message.error(error.message);
+ });
+ },
+ blurOptions(row) {
+ console.log("鏇存柊", row);
+ },
+ async initNewSelection() {
+ const res = await selectUser();
+ const res2 = await selectEquipment();
+ this.checkeroptions = res.data;
+ this.deviceoptions = res2.data;
+ },
+ resetForm(formName) {
+ // this.addInspectionForm.inspectionDate = [],
+ // this.$refs[formName].resetFields();
+ this.addReportDialog = false
+ },
+ removeFun(row, index) {
this.$confirm('纭鍒犻櫎璇ユ暟鎹悧?', '鎻愮ず', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- this.$message({
- type: 'success',
- message: '鍒犻櫎鎴愬姛!'
- });
+ console.log(row.id);
+ this.deleteMaterialFun(row, index);
}).catch(() => {});
},
checkSelect(row, index) {
@@ -307,48 +469,99 @@
},
handleSelectionChange(val) {
this.checkData = val;
+ console.log(val);
},
//鐢熸垚鎶ユ鍗曟寜閽�
addReportBtn() {
- let arr = this.checkData;
- if (arr.length < 1) {
+ if (this.checkData.length < 1) {
this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�!");
} else {
- if (arr.length > 1) {
+ if (this.checkData.length > 1) {
this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!");
} else {
- //娣诲姞鎶ユ鍗�
- let val = arr[0];
- let obj = {
- "endTime": val.dateSurvey,
- "experiment": "",
- "formTime": val.createTime,
- "id": val.id,
- "mcode": val.materialCoding,
- "name": val.materialName,
- "num": val.quantity,
- "specifications": val.specificationsModels,
- "startTime": val.inspectionDate,
- "supplier": val.supplierName,
- "type": val.type,
- "unit": val.unit,
- "version": val.version
- }
- this.createReport(obj);
- this.showNewPage = true;
+ let mcode = this.checkData[0].materialCoding;
+ let name = this.checkData[0].materialName;
+ let specifications = this.checkData[0].specificationsModels;
+ this.getChooseVersionFun(mcode,name,specifications);
+ console.log(this.standardLibraryData);
+ this.addReportDialog = true;
}
}
},
- //鐢熸垚鎶ヤ环鍗�
+ changeVersionFun(){
+ let mCode = this.checkData[0].materialCoding;
+ let name = this.checkData[0].materialName;
+ let specifications = this.checkData[0].specificationsModels;
+ let version = this.addInspectionForm.version;
+ this.getProByVersion(mCode,name,specifications,version);
+ },
+ //鑾峰彇鐗堟湰涓嬬殑鏍囧噯搴撴暟鎹�
+ async getProByVersion(mCode,name,specifications,version){
+ var vm = this;
+ await lookProByVer({
+ mcode : mCode,
+ name : name,
+ specifications : specifications,
+ version: version
+ }).then((res)=>{
+ console.log(res);
+ vm.standardLibraryData = res.data;
+ })
+
+ },
+ //鑾峰彇鐗堟湰鍒楄〃
+ async getChooseVersionFun(mCode,name,specifications){
+ var vm = this;
+ this.chooseVersion = [];
+ await getChooseVersion({
+ mcode : mCode,
+ name : name,
+ specifications : specifications
+ }).then((res)=>{
+ vm.getProByVersion(mCode,name,specifications,res.data[0])
+ for(let i=0;i<res.data.length;i++){
+ vm.chooseVersion.push({
+ value: res.data[i],
+ label: "V"+res.data[i]
+ });
+ }
+ vm.addInspectionForm.version = res.data[0];
+ });
+ },
+ //鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽�
+ confirmBtn(formName) {
+ let dateArr = this.addInspectionForm.inspectionDate;
+ //娣诲姞鎶ユ鍗�
+ let val = this.checkData[0];
+ let obj = {
+ "endTime": dateArr[1],
+ "experiment": "",
+ "formTime": val.createTime,
+ "id": val.id,
+ "mcode": val.materialCoding,
+ "name": val.materialName,
+ "num": val.quantity,
+ "specifications": val.specificationsModels,
+ "startTime": dateArr[0],
+ "supplier": val.supplierName,
+ "type": val.type,
+ "unit": val.unit,
+ "version": this.addInspectionForm.version
+ }
+ // this.createReport(obj);
+ this.addReportDialog = false;
+ this.initNewSelection();
+ this.showNewPage = true;
+ },
+ //鐢熸垚鎶ユ鍗�
async createReport(param) {
- await addInspect(param);
+ let res = await addInspect(param);
const res2 = await selectInspectsListById({
- id: 59
+ id: res.data
});
this.resultData = res2.data;
this.inspectionForm = res2.data;
this.inspectionItems = res2.data.insProducts;
-
},
// 鑾峰彇鍒嗛〉鍒楄〃鏁版嵁
async getRawMaterialList() {
@@ -363,7 +576,7 @@
async search() {
this.radioValue = this.searchData.state
const res = await getRawMaterialList({
- condition: this.searchData.state,
+ type: this.searchData.state,
createTime: this.searchData.date,
materialCoding: this.searchData.code,
materialName: this.searchData.name,
@@ -384,14 +597,19 @@
this.getRawMaterialList()
},
radioclick() {
- this.searchData.state = this.radioValue
- this.inspectionTable = this.data.filter((item) => {
- return item.condition === this.radioValue
- })
+ console.log(this.inspectionTable);
if (this.radioValue === 0) {
- this.inspectionTable = this.data
+
}
- this.total = this.inspectionTable.length
+ },
+ getAllTableData() {
+ this.getRawMaterialList()
+ },
+ getCheckData() {
+
+ },
+ getUnCheckData() {
+
},
// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
handleSizeChange(val) {
@@ -407,6 +625,53 @@
this.getRawMaterialList({
pageNo: this.currentPage,
pageSize: this.pageSize
+ })
+ },
+ insert() {
+ this.$refs['addMaterialForm'].validate((valid) => {
+ if (valid) {
+ var str = {
+ "dateSurvey": this.insertData.fromDate,
+ "materialCoding": this.insertData.mCode,
+ "materialName": this.insertData.mName,
+ "quantity": this.insertData.num,
+ "specificationsModels": this.insertData.specificationsNumber[0] + '-' + this.insertData
+ .specificationsNumber[1],
+ "supplierName": this.insertData.supplierName,
+ "type": 0,
+ "unit": this.insertData.unit
+ }
+ this.materialList.forEach(a => {
+ if (a.id == str.materialName) {
+ str.materialName = a.name
+ }
+ })
+ addMaterial(str).then(res => {
+ this.$message.success('娣诲姞鎴愬姛')
+ this.addReportVisible = false
+ this.getRawMaterialList()
+ })
+ } else {
+ return false;
+ }
+ });
+ },
+ getMaterielName() {
+ getMaterielName().then(res => {
+ this.materialList = res.data
+ })
+ },
+ getSpecification(val) {
+ this.materialList.forEach(a => {
+ if (a.id == val) {
+ this.insertData.mCode = a.code
+ }
+ })
+ getSpecification({
+ materialId: val
+ }).then(res => {
+ this.childrenOptions = JSON.parse(JSON.stringify(res.data).replaceAll('specifications', '').replaceAll(
+ 'model', ''))
})
}
}
@@ -510,4 +775,4 @@
}
}
}
-</style>
+</style>
\ No newline at end of file
--
Gitblit v1.9.3