From 34a7e21b3508ac0f5f011d958210fdb7176d726b Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期六, 09 九月 2023 11:54:05 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/lims-before --- src/views/experiment/inspectionApplication/index.vue | 641 +++++++++++++++++++++++++++++++--------------------------- 1 files changed, 344 insertions(+), 297 deletions(-) diff --git a/src/views/experiment/inspectionApplication/index.vue b/src/views/experiment/inspectionApplication/index.vue index 5616b4e..5b93901 100644 --- a/src/views/experiment/inspectionApplication/index.vue +++ b/src/views/experiment/inspectionApplication/index.vue @@ -5,84 +5,81 @@ <div class="top-bar"> <el-form ref="form" :inline="true" :model="searchData"> <el-form-item label="鐢宠鍗曞彿:"> - <el-input v-model="searchData.applicationnumber" class="input-form" placeholder="璇疯緭鍏ョ敵璇峰崟鍙�" + <el-input size="small" v-model="searchData.applicationnumber" class="input-form" placeholder="璇疯緭鍏ョ敵璇峰崟鍙�" style="width: 200px; margin-right: 20px;"> <i slot="prefix" class="el-input__icon el-icon-search" /> </el-input> </el-form-item> - <el-form-item label="妫�楠岀被鍨�:"> - <el-select v-model="searchData.type" placeholder="鍏ㄩ儴" style="width: 100px;margin-right: 20px;"> + <el-form-item label="妫�楠岀被鍨�:" width="200"> + <el-select size="small" v-model="searchData.type" placeholder="鍏ㄩ儴" style="width: 100px;margin-right: 20px;"> <el-option v-for="item in typeoptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> - <el-form-item label="妫�楠岀粨鏋�:" style="margin-right: 20px;"> - <el-select v-model="searchData.state" placeholder="鍏ㄩ儴" style="width: 100px;margin-right: 20px;"> + <el-form-item label="妫�楠岀粨鏋�:" width="200"> + <el-select size="small" v-model="searchData.state" placeholder="鍏ㄩ儴" style="width: 100px;margin-right: 20px;"> <el-option v-for="item in stateoptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item> - <el-button type="primary" @click="searchInspections">鏌ヨ</el-button> - <el-button type="primary" plain @click="reset">閲嶇疆</el-button> + <el-button size="small" type="primary" @click="searchInspections">鏌ヨ</el-button> + <el-button size="small" type="primary" plain @click="reset">閲嶇疆</el-button> </el-form-item> </el-form> <el-form class="rightBtn"> <el-form-item class="createBtn"> - <el-button type="primary" icon="el-icon-document-add" @click="checkTypeVisible = true" + <el-button size="small" type="primary" icon="el-icon-plus" @click="showAddDialog" style="background-color: rgb(1, 102, 226);">鏂板妫�楠屽崟</el-button> </el-form-item> <el-form-item class="getDataBtn"> - <el-button type="primary" icon="el-icon-download" + <el-button size="small" type="primary" icon="el-icon-download" style="background-color: rgb(1, 102, 226);">瀵煎嚭妫�楠屽崟</el-button> </el-form-item> </el-form> </div> <div class="library-table"> - <div class="table-header"> - <div class="search-bar"> - <el-radio-group v-model="radioValue"> - <el-radio-button label="鍏ㄩ儴" /> - <el-radio-button label="寰呮彁浜�" /> - <el-radio-button label="宸叉彁浜�" /> - <el-radio-button label="宸蹭綔搴�" /> - </el-radio-group> - </div> - </div> <div class="table-box"> - <el-table ref="inspectionTable" :max-height="800" :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%"> + <el-table ref="inspectionTable" style="width: 100%;overflow-y: auto;max-height: 600px;" :height="600" + :cell-style="{textAlign: 'left'}" + :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}" + :data="inspectionTable"> <el-table-column type="selection" min-width="30px" /> - <el-table-column prop="icode" label="鐢宠鍗曞彿" min-width="100px" /> - <el-table-column prop="type" label="妫�楠岀被鍨�" min-width="80px"> + <el-table-column prop="icode" label="鐢宠鍗曞彿" min-width="160px" /> + <el-table-column prop="type" label="妫�楠岀被鍨�" min-width="100px"> <template slot-scope="scope"> - <div v-if="scope.row.type === 0"><span>鍘熸潗鏂欐楠�</span></div> - <div v-if="scope.row.type === 1"><span>濮旀墭妫�楠�</span></div> - <div v-if="scope.row.type === 2"><span>鎴愬搧妫�楠�</span></div> + <div v-if="scope.row.type === 0"><el-tag type="success">鍘熸潗鏂欐楠�</el-tag></div> + <div v-if="scope.row.type === 2"><el-tag>濮旀墭妫�楠�</el-tag></div> + <div v-if="scope.row.type === 1"><el-tag type="warning">鎴愬搧妫�楠�</el-tag></div> </template> </el-table-column> - <el-table-column prop="formTime" label="鏉ユ枡鏃ユ湡" min-width="100px" /> - <el-table-column prop="supplier" label="渚涘簲鍟嗗悕绉�" min-width="150px" /> - <el-table-column prop="mcode" label="鍘熸潗鏂欑紪鐮�" min-width="150px" /> - <el-table-column prop="name" label="鍘熸潗鏂欏悕绉�" min-width="80px" /> + <el-table-column prop="formTime" label="鏉ユ枡鏃ユ湡" min-width="90px"> + <template slot-scope="scope"> + <p v-if="scope.row.type!=1">{{scope.row.formTime}}</p> + <p v-else>/</p> + </template> + </el-table-column> + <el-table-column prop="supplier" label="渚涘簲鍟嗗悕绉�" min-width="150px" show-overflow-tooltip /> + <el-table-column prop="mcode" label="鍘熸潗鏂欑紪鐮�" min-width="170px" /> + <el-table-column prop="name" label="鍘熸潗鏂欏悕绉�" min-width="90px" /> <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="160px" /> <el-table-column prop="unit" label="鍗曚綅" min-width="50px" /> <el-table-column prop="num" label="鏁伴噺" min-width="50px" /> - <el-table-column prop="createTime" label="鐧昏鏃ユ湡" min-width="80px" /> - <el-table-column prop="userName" label="鐧昏浜�" min-width="80px" /> - <el-table-column prop="inspection_status" label="妫�楠岀粨鏋�" min-width="80px"> + <el-table-column prop="createTime" label="鐧昏鏃ユ湡" min-width="90px" /> + <el-table-column prop="inspection_status" label="妫�楠岀粨鏋�" min-width="95px"> <template slot-scope="scope"> - <el-tag class="tag" :type="scope.row.inspection_status === 0 ? 'danger' : 'success'" - disable-transitions>{{ scope.row.inspection_status === 0 ? '涓嶅悎鏍�' : '鍚堟牸' }}</el-tag> + <el-tag style="text-align: center;" class="tag" effect="dark" type="danger" disable-transitions + v-if="scope.row.inspection_status == 0">涓嶅悎鏍�</el-tag> + <el-tag style="text-align: center;" class="tag" effect="dark" type="success" disable-transitions + v-else-if="scope.row.inspection_status == 1">鍚堟牸</el-tag> </template> </el-table-column> - <el-table-column prop="checkdate" label="妫�楠屾棩鏈�" min-width="150px" /> - <el-table-column label="鎿嶄綔" min-width="150" fixed="right"> + <el-table-column prop="userName" label="鐧昏浜�" min-width="80px" /> + <el-table-column prop="checkdate" label="妫�楠屾棩鏈�" min-width="170px" /> + <el-table-column label="鎿嶄綔" min-width="120" fixed="right"> <template slot-scope="scope"> <el-button type="text" size="small" @click="handleClick(scope.row)">鏌ョ湅</el-button> - <!-- <el-button type="text" size="small" >鎻愪氦</el-button> --> - <el-button type="text" size="small">浣滃簾</el-button> + <el-button type="text" size="small" @click="delInspect(scope.row)">浣滃簾</el-button> </template> </el-table-column> </el-table> @@ -101,10 +98,10 @@ <el-radio-group v-model="type" @click.native="handleRadioChange"> <el-radio :style="`background-color: ${type==0?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="0" border>鍘熸潗鏂欐楠�</el-radio> - <el-radio :style="`background-color: ${type==1?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" - :label="1" border>濮旀墭妫�楠�</el-radio> <el-radio :style="`background-color: ${type==2?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" - :label="2" border>鎴愬搧妫�楠�</el-radio> + :label="2" border>濮旀墭妫�楠�</el-radio> + <el-radio :style="`background-color: ${type==1?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" + :label="1" border>鎴愬搧妫�楠�</el-radio> </el-radio-group> </div> <div v-if="type === 0"> @@ -113,14 +110,13 @@ <el-row :gutter="100"> <el-col :span="10"> <el-form-item label="鏉ユ枡鏃ユ湡锛�"> - <!-- <el-input style="width: 300px" type="text" :value="infoForm.startTime" placeholder="璇疯緭鍏ユ潵鏂欐棩鏈�" autocomplete="off" /> --> - <el-date-picker style="width: 300px" v-model="infoForm.formTime" type="date" placeholder="閫夋嫨鏃ユ湡"> + <el-date-picker style="width: 300px" disabled v-model="infoForm.formTime" type="date" placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="渚涘簲鍟嗗悕绉帮細"> - <el-input style="width: 300px" type="text" :value="infoForm.supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" + <el-input style="width: 300px" type="text" disabled :value="infoForm.supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" autocomplete="off" /> </el-form-item> </el-col> @@ -128,13 +124,13 @@ <el-row :gutter="100"> <el-col :span="10"> <el-form-item label="鍘熸潗鏂欑紪鐮侊細"> - <el-input style="width: 300px" type="text" :value="infoForm.mcode" placeholder="璇疯緭鍏ュ師鏉愭枡缂栫爜" + <el-input style="width: 300px" type="text" disabled :value="infoForm.mcode" placeholder="璇疯緭鍏ュ師鏉愭枡缂栫爜" autocomplete="off" /> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="鍘熸潗鏂欏悕绉帮細"> - <el-input style="width: 300px" type="text" :value="infoForm.name" placeholder="璇疯緭鍏ュ師鏉愭枡鍚嶇О" + <el-input style="width: 300px" type="text" disabled :value="infoForm.name" placeholder="璇疯緭鍏ュ師鏉愭枡鍚嶇О" autocomplete="off" /> </el-form-item> </el-col> @@ -142,13 +138,13 @@ <el-row :gutter="100"> <el-col :span="10"> <el-form-item label="瑙勬牸鍨嬪彿锛�"> - <el-input style="width: 300px" type="text" :value="infoForm.specifications" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" + <el-input style="width: 300px" type="text" disabled :value="infoForm.specifications" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" autocomplete="off" /> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="鍗曚綅锛�"> - <el-input style="width: 300px" type="text" :value="infoForm.unit" placeholder="璇疯緭鍏ュ崟浣�" + <el-input style="width: 300px" type="text" disabled :value="infoForm.unit" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" /> </el-form-item> </el-col> @@ -156,76 +152,14 @@ <el-row :gutter="100"> <el-col :span="10"> <el-form-item label="鏁伴噺锛�"> - <el-input style="width: 300px" type="text" :value="infoForm.num" placeholder="璇疯緭鍏ユ暟閲�" + <el-input style="width: 300px" type="text" disabled :value="infoForm.num" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" /> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="妫�楠屾椂闂达細"> - <el-date-picker v-model="infoForm.endTime" type="daterange" range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" style="width: 300px;"> - </el-date-picker> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - <div v-if="type === 1"> - <el-form :model="commisionSelection" ref="commisionSelection" class="checkTypeForm" label-position="top" - label-width="200px" size="mini"> - <el-row :gutter="100"> - <el-col :span="10"> - <el-form-item label="濮旀墭缂栧彿"> - <el-input style="width: 300px" type="text" :value="commisionSelection.entrust_coding" - placeholder="璇疯緭鍏ユ潵鏂欐棩鏈�" autocomplete="off" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="濮旀墭鍗曚綅"> - <el-input style="width: 300px" type="text" :value="commisionSelection.supplier" - placeholder="璇疯緭鍏ュ鎵樺崟浣�" autocomplete="off" /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="100"> - <el-col :span="10"> - <el-form-item label="鏍峰搧缂栧彿"> - <el-input style="width: 300px" type="text" :value="commisionSelection.mcode" placeholder="璇疯緭鍏ユ牱鍝佺紪鍙�" - autocomplete="off" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="鏍峰搧鍚嶇О"> - <el-input style="width: 300px" type="text" :value="commisionSelection.name" placeholder="璇疯緭鍏ユ牱鍝佸悕绉�" - autocomplete="off" /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="100"> - <el-col :span="10"> - <el-form-item label="瑙勬牸鍨嬪彿锛�"> - <el-input style="width: 300px" type="text" :value="commisionSelection.specifications" - placeholder="璇疯緭鍏ュ瀷鍙疯鏍�" autocomplete="off" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="閫佽揪鏃堕棿"> - <el-input style="width: 300px" type="text" :value="commisionSelection.supplier" - placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="100"> - <el-col :span="10"> - <el-form-item label="瀹屾垚鏈熼檺"> - <el-input style="width: 300px" type="text" :value="commisionSelection.completionDeadline" - placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="妫�楠屾棩鏈燂細"> - <el-date-picker v-model="commisionSelection.checkdate" type="daterange" range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" style="width: 300px;"> + <el-date-picker v-model="infoForm.checkdate" type="daterange" range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" value-format="yyyy-MM-dd" end-placeholder="缁撴潫鏃ユ湡" style="width: 300px;"> </el-date-picker> </el-form-item> </el-col> @@ -233,32 +167,32 @@ </el-form> </div> <div v-if="type === 2"> - <el-form :model="finishedTable" ref="finishedTable" class="checkTypeForm" label-position="top" + <el-form :model="commisionSelection" ref="commisionSelection" class="checkTypeForm" label-position="top" label-width="200px" size="mini"> <el-row :gutter="100"> <el-col :span="10"> - <el-form-item label="鏉ユ枡鏃ユ湡锛�"> - <el-input style="width: 300px" type="text" v-model="finishedTable.deliverydate" + <el-form-item label="濮旀墭缂栧彿"> + <el-input style="width: 300px" type="text" disabled :value="commisionSelection.entrustCoding" placeholder="璇疯緭鍏ユ潵鏂欐棩鏈�" autocomplete="off" /> </el-form-item> </el-col> <el-col :span="10"> - <el-form-item label="渚涘簲鍟嗗悕绉帮細"> - <el-input style="width: 300px" type="text" v-model="finishedTable.supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" - autocomplete="off" /> + <el-form-item label="濮旀墭鍗曚綅"> + <el-input style="width: 300px" type="text" disabled :value="commisionSelection.supplier" + placeholder="璇疯緭鍏ュ鎵樺崟浣�" autocomplete="off" /> </el-form-item> </el-col> </el-row> <el-row :gutter="100"> <el-col :span="10"> - <el-form-item label="鍘熸潗鏂欑紪鐮侊細"> - <el-input style="width: 300px" type="text" v-model="finishedTable.code" placeholder="璇疯緭鍏ュ師鏉愭枡缂栫爜" + <el-form-item label="鏍峰搧缂栧彿"> + <el-input style="width: 300px" type="text" disabled :value="commisionSelection.mcode" placeholder="璇疯緭鍏ユ牱鍝佺紪鍙�" autocomplete="off" /> </el-form-item> </el-col> <el-col :span="10"> - <el-form-item label="鍘熸潗鏂欏悕绉帮細"> - <el-input style="width: 300px" type="text" v-model="finishedTable.name" placeholder="璇疯緭鍏ュ師鏉愭枡鍚嶇О" + <el-form-item label="鏍峰搧鍚嶇О"> + <el-input style="width: 300px" type="text" disabled :value="commisionSelection.name" placeholder="璇疯緭鍏ユ牱鍝佸悕绉�" autocomplete="off" /> </el-form-item> </el-col> @@ -266,8 +200,58 @@ <el-row :gutter="100"> <el-col :span="10"> <el-form-item label="瑙勬牸鍨嬪彿锛�"> - <el-input style="width: 300px" type="text" v-model="finishedTable.modelandspecification" + <el-input style="width: 300px" type="text" disabled :value="commisionSelection.specifications" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="閫佽揪鏃堕棿"> + <el-input style="width: 300px" type="text" disabled :value="commisionSelection.formTime" + placeholder="璇疯緭鍏ラ�佽揪鏃堕棿" autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="100"> + <el-col :span="10"> + <el-form-item label="瀹屾垚鏈熼檺"> + <el-input style="width: 300px" type="text" disabled :value="commisionSelection.endTime" + placeholder="璇疯緭鍏ュ畬鎴愭湡闄�" autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="妫�楠屾棩鏈燂細"> + <el-date-picker v-model="commisionSelection.checkdate" type="daterange" range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" value-format="yyyy-MM-dd" end-placeholder="缁撴潫鏃ユ湡" style="width: 300px;"> + </el-date-picker> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <div v-if="type === 1"> + <el-form :model="finishedTable" ref="finishedTable" class="checkTypeForm" label-position="top" + label-width="200px" size="mini"> + <el-row :gutter="100"> + <el-col :span="10"> + <el-form-item label="鎴愬搧缂栫爜锛�"> + <el-input style="width: 300px" type="text" disabled v-model="finishedTable.code" placeholder="璇疯緭鍏ユ垚鍝佺紪鐮�" + autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="鎴愬搧鍚嶇О锛�"> + <el-select style="width: 300px" v-model="finishedTable.name" @change="getSpecifications"> + <el-option v-for="(item,index) in mList" :key="index" :label="item.name" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="100"> + <el-col :span="10"> + <el-form-item label="瑙勬牸鍨嬪彿锛�"> + <el-cascader style="width: 300px" v-model="finishedTable.modelandspecification" + :options="specificationList" @change="changeSpe" + :props="{label:'name',value:'id',children:'children'}"></el-cascader> </el-form-item> </el-col> <el-col :span="10"> @@ -280,14 +264,14 @@ <el-row :gutter="100"> <el-col :span="10"> <el-form-item label="鏁伴噺锛�"> - <el-input style="width: 300px" type="text" v-model="finishedTable.amount" placeholder="璇疯緭鍏ユ暟閲�" + <el-input style="width: 300px" min="0" type="number" v-model="finishedTable.amount" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" /> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="妫�楠屾椂闂达細"> <el-date-picker v-model="finishedTable.checkdate" type="daterange" range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" style="width: 300px;"> + start-placeholder="寮�濮嬫棩鏈�" value-format="yyyy-MM-dd" end-placeholder="缁撴潫鏃ユ湡" style="width: 300px;"> </el-date-picker> </el-form-item> </el-col> @@ -296,53 +280,30 @@ </div> <span slot="footer" class="dialog-footer"> <el-button @click="checkTypeVisible = false">鍙� 娑�</el-button> - <!-- <el-button type="primary" @click="addInspection">纭� 瀹�</el-button> --> <el-button type="primary" @click="QUEding">纭� 瀹�</el-button> </span> </el-dialog> </div> </div> - <!-- 纭畾璺宠浆鍩烘湰搴撳脊绐� --> <el-dialog title="鏍囧噯搴�" :visible.sync="Standardframe" width="49%"> <el-card> <template slot-scope="scope"> <span>鐗堟湰閫夋嫨锛�</span> - <el-select @change="ccc" v-model="selectedValue" size="small" slot="append" style="width: 220px;"> - <el-option v-for="item in BANben" :key="item" :label="item" :value="item"></el-option> - + <el-select @change="getProductVerison" v-model="version" size="small" slot="append" style="width: 220px;"> + <el-option v-for="(item,index) in BANben" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> </template> </el-card> - <el-table :data="tableData" style="width: 100%; margin-bottom: 20px" row-key="id" border - height="calc(80vh - 250px)" default-expand-all ref="multipleTable" - :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> - <el-table-column type="selection" label="搴忓彿"> </el-table-column> + <el-table :data="tableData" style="width: 100%; margin-bottom: 20px;overflow-y: auto;" row-key="id" border height="40vh" + 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="椤圭洰鍚嶇О" sortable> - <template scope="scope"> - <el-tag> - <div class="firstDiv" :style="`color: ${ - scope.row.code == '[1]' ? '#16a7ff' : '#58c173' - }`"> - {{ scope.row.code == "[1]" ? "01" : "02" }} - </div> - <span style="color: black">{{ scope.row.name }}</span> - </el-tag> - </template> + <el-table-column prop="name" label="椤圭洰鍚嶇О" sortable> </el-table-column> <el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column> - <el-table-column label="鏍囧噯鍊�" sortable> - <template scope="scope"> - <el-input v-if="scope.row.edit === true || scope.row.code === '[2]'" @blur="requiredOnfocus(scope)" - v-model="scope.row.required" placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input> - </template> + <el-table-column prop="required" label="鏍囧噯鍊�" sortable> </el-table-column> <el-table-column prop="internal" label="鍐呮帶鍊�" sortable> - <template scope="scope"> - <el-input v-if="scope.row.edit === true || scope.row.code === '[2]'" @blur="requiredOnfocus(scope)" - v-model="scope.row.internal" placeholder="璇疯緭鍏ュ唴鎺у��"></el-input> - </template> </el-table-column> </el-table> <span slot="footer" class="dialog-footer"> @@ -351,9 +312,9 @@ </span> </el-dialog> <!-- 鍘熸潗鏂欐楠屾ā鎬佹 --> - <el-dialog title="鍘熸潗鏂欐楠�" :visible.sync="rawmaterialVisible" width="60%"> + <el-dialog title="鍘熸潗鏂欐楠�" :visible.sync="rawmaterialVisible" width="60%" top="100px"> <div class="table-box"> - <el-table ref="multipleTable" :max-height="800" :cell-style="{textAlign: 'center'}" + <el-table ref="multipleTable" :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="rawMaterialTable" style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column type="selection" min-width="10%" /> @@ -369,10 +330,8 @@ <el-table-column prop="surveyor" label="妫�楠屼汉" min-width="8%" /> <el-table-column prop="startTime" label="妫�楠屾棩鏈�" min-width="8%" /> <el-table-column prop="type" label="鐘舵��" min-width="8%"> - <template slot-scope="scope"> - <span :style="{ color: scope.row.state === type ? 'green' : 'red' }"> - {{ scope.row.state===1 ? '宸叉娴�':'寰呮娴�' }} - </span> + <template> + <span style="color: red">寰呮楠�</span> </template> </el-table-column> </el-table> @@ -390,13 +349,13 @@ :data="commisionTable" @selection-change="handleSelectionChange" style="width: 100%"> <el-table-column type="selection" min-width="10%" /> <el-table-column type="index" label="搴忓彿" min-width="10%" /> - <el-table-column prop="entrust_coding" label="濮旀墭缂栧彿" min-width="10%" /> + <el-table-column prop="entrustCoding" label="濮旀墭缂栧彿" min-width="10%" /> <el-table-column prop="supplier" label="濮旀墭鍗曚綅" min-width="12%" /> <el-table-column prop="mcode" label="鏍峰搧缂栧彿" min-width="8%" /> <el-table-column prop="name" label="鏍峰搧鍚嶇О" min-width="8%" /> <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="12%" /> - <el-table-column prop="endTime" label="閫佽揪鏃堕棿" min-width="8%" /> - <el-table-column prop="formTime" label="瀹屾垚鏈熼檺" min-width="8%" /> + <el-table-column prop="formTime" label="閫佽揪鏃堕棿" min-width="8%" /> + <el-table-column prop="endTime" label="瀹屾垚鏈熼檺" min-width="8%" /> <el-table-column prop="contacts" label="濮旀墭缂栧埗浜�" min-width="8%" /> <el-table-column prop="endTime" label="妫�楠屾棩鏈�" min-width="8%" /> <el-table-column prop="inspection_status" label="鐘舵��" min-width="8%"> @@ -407,11 +366,6 @@ <div v-else> <span style="color: red;">寰呮娴�</span> </div> - </template> - </el-table-column> - <el-table-column label="鎿嶄綔" min-width="8%"> - <template slot-scope="scope"> - <el-button type="text" size="small">鍒犻櫎</el-button> </template> </el-table-column> </el-table> @@ -434,12 +388,17 @@ selectAll, addInspect, chooseVer, - lookProByVer + lookProByVer, + delInspect, + getSpecificationByMaterielId, + getMaterielList } from '@/api/experiment/planAssignments' export default { data() { - return { + speName:"", + specificationList: [], + mList:[], showDetail: false, searchData: { applicationnumber: '', @@ -453,8 +412,6 @@ rawMaterialTable: [], commisionTable: [], finishedTable: { - deliverydate: '', - supplier: '', code: '', name: '', modelandspecification: '', @@ -462,10 +419,10 @@ amount: '', checkdate: [] }, - selectedValue: 1, + selectedValue: null, infoForm: {}, commisionSelection: { - entrust_coding: '', + entrustCoding: '', entrusted: '', samples_number: '', sample_name: '', @@ -501,10 +458,10 @@ }], currentPage: 1, total: 20, // 鎬绘潯鏁� - pageSize: 8, // 姣忛〉鐨勬暟鎹潯鏁� + pageSize: 10, // 姣忛〉鐨勬暟鎹潯鏁� radioValue: '鍏ㄩ儴', checkTypeVisible: false, - type: 0, // 榛樿涓嶉�変腑鐨勭姸鎬� + type: 1, // 榛樿涓嶉�変腑鐨勭姸鎬� rawmaterialVisible: false, commisionVisible: false, tmp: {}, @@ -512,18 +469,40 @@ tableData: [], tableRow: {}, BANben: [], - select_1: [], - aa: {} + version: null, + listdata: [], + ddd: {} } }, watch: { $route: { - handler(val, oldval) { - console.log(val) // 鏂拌矾鐢变俊鎭� - console.log(oldval) // 鑰佽矾鐢变俊鎭� - }, + handler(val, oldval) {}, // 娣卞害瑙傚療鐩戝惉 deep: true + }, + checkTypeVisible(newVal){ + if(newVal == false){ + this.finishedTable = { + code: '', + name: '', + modelandspecification: '', + unit: '', + amount: '', + checkdate: [] + }; + this.infoForm = {}; + this.commisionSelection = { + entrustCoding: '', + entrusted: '', + samples_number: '', + sample_name: '', + specifications_models: '', + dateSurvey: '', + completionDeadline: '', + contacts: '', + inspectionTime: '' + }; + } } }, created() { @@ -533,7 +512,54 @@ if (this.$route.name === 'ForInspectionDetail') this.showDetail = true }, methods: { + changeSpe(val){ + console.log(val); + this.tmp.specificationsId = val[val.length-1]; + let arr1 = this.specificationList.filter(item=>{ + return item.id==val[0] + }); + let arr2 = arr1[0].children.filter(item=>{ + return item.id = val[1] + }) + let speName = arr1[0].name + "-" + arr2[0].name; + this.speName = speName; + console.log(arr1); + console.log(arr2); + + }, + getSpecifications(val){ + if(val != null){ + this.selectSpecificationByMaterielId(val); + let item = this.mList.filter(item => { + return item.id == val; + }); + this.finishedTable.code = item[0].code; + this.tmp.mcode = item[0].code; + this.tmp.name = item[0].name; + } + }, + async selectSpecificationByMaterielId(mId){ + await getSpecificationByMaterielId({id : mId}).then(res=>{ + this.specificationList = res.data.children; + }).catch(error => { + this.$message.error(error.message); + }); + }, + //鏄剧ず鏂板妫�楠屽崟妯℃�佹 + showAddDialog(){ + this.selectMaterielList(); + this.checkTypeVisible = true + }, + //鑾峰彇鎴愬搧淇℃伅 + async selectMaterielList(){ + await getMaterielList().then(res=>{ + this.mList = res.data + }).catch(error => { + this.$message.error(error.message); + }); + }, async selectAll() { + const res = selectAll({ type: 0 }) @@ -546,47 +572,44 @@ this.commisionTable = res.data }, async handleClick(row) { - this.inspectionTable = row; - this.id = row.id - this.$router.push({ - name: 'Viewdetails', - query: { - id: row.id - } - }); - this.selectInspectsList() + // this.$router.push({ + // name: 'Viewdetails', + // query: { + // id: row.id + // } + // }); + this.$router.push(`Viewdetails/${row.id}`); }, - // validateInput() { - // if (this.inputValue.trim() === '') { - // } - // }, // 杈撳叆鍊间负绌猴紝寮瑰嚭鎻愮ず淇℃伅鎴栬繘琛屽叾浠栧鐞� - // alert('杈撳叆鍊间笉鑳戒负绌�'); - // return; - //鐗堟湰搴� async chooseVer() { const res = await chooseVer({ mcode: this.tmp.mcode, name: this.tmp.name, - specifications: this.tmp.specifications + specifications: this.tmp.specificationsId }) - this.BANben = res.data - this.aa = this.BANben[0] - this.lookProByVer() + this.BANben = [] + res.data.forEach(a => { + this.BANben.push({ + label: "V" + a, + value: a + }) + }) + this.version = this.BANben[0].value; + this.lookProByVerFun() }, //鏍囧噯搴� - async lookProByVer() { + async lookProByVerFun() { const res = await lookProByVer({ mcode: this.tmp.mcode, name: this.tmp.name, - specifications: this.tmp.specifications, - version: this.aa + specifications: this.tmp.specificationsId, + version: this.version }) this.tableData = res.data }, - ccc(val) { - this.aa = val - this.lookProByVer() + getProductVerison(val) { + this.version = val + this.lookProByVerFun() }, async selectInspectsList() { // 鑾峰彇鍒嗛〉鍒楄〃 @@ -595,14 +618,13 @@ pageSize: this.currentPage, message: this.id }) - // this.inspectionTable = data const data = res.data.row data.forEach((item) => { - var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"] - var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"] - var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"] + var formTime = item["form_time"] + var startTime = item["start_time"] + var endTime = item["end_time"] var checkdate = startTime + '~' + endTime - var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%d')"] + var createTime = item["create_time"] item['formTime'] = formTime // 鏉ユ枡鏃ユ湡 item['checkdate'] = checkdate // 妫�楠屾棩鏈� item['createTime'] = createTime // 鐧昏鏃ユ湡 @@ -618,11 +640,11 @@ }) var data = res.data.row data.forEach((item) => { - var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"] - var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"] - var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"] + var formTime = item["form_time"] + var startTime = item["start_time"] + var endTime = item["end_time"] var checkdate = startTime + '~' + endTime - var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%m-%d')"] + var createTime = item["create_time"] item['formTime'] = formTime // 鏉ユ枡鏃ユ湡 item['checkdate'] = checkdate // 妫�楠屾棩鏈� item['createTime'] = createTime // 鐧昏鏃ユ湡 @@ -645,12 +667,16 @@ }) } } - this.total = this.inspectionTable.length + this.total = this.res.data.total; }, reset() { this.countSize = 1; - this.pageSize = 8; - this.searchData = {}; + this.pageSize = 10; + this.searchData = { + applicationnumber: '', + type: '', + state: '', + }; this.selectInspectsList(); }, //琚�変腑鐨勪俊鎭� 鍗曢�� @@ -663,6 +689,7 @@ }, handleCommisionSelection() { this.commisionSelection = this.tmp + this.commisionSelection.checkdate = [] this.commisionVisible = false }, handleRawMaterialSelection() { @@ -677,24 +704,31 @@ selectAll({ type: 0 }).then(res => { - // var data = res.data - // data.forEach((item)=>{ - // var checkdate = [] - // checkdate.push(item['createTime']) - // checkdate.push(item['updateTime']) - // item['checkdate'] = checkdate // 妫�楠屾棩鏈� - // }) - this.rawMaterialTable = res.data + var data = res.data + data.forEach((item) => { + var checkdate = [] + checkdate.push(item['createTime']) + checkdate.push(item['updateTime']) + item['checkdate'] = checkdate // 妫�楠屾棩鏈� + }) + let arr = res.data.filter((val)=>{ + return val.type === 0; + }) + this.rawMaterialTable = arr }) - - // this.infoForm = res.data - // this.$router.push({ name: 'ReportForInspection' }); - } else if (this.type === 1) { + } else if (this.type === 2) { this.commisionVisible = true selectAll({ type: 2 }).then(res => { - + var data = res.data + data.forEach((item) => { + var checkdate = [] + checkdate.push(item['createTime']) + checkdate.push(item['updateTime']) + item['checkdate'] = checkdate // 妫�楠屾棩鏈� + }) + this.commisionTable = res.data }) } @@ -702,54 +736,69 @@ }, // 鏂板妫�楠� async addInspection() { + let obj = {}; + //鍘熸潗鏂� if (this.type === 0) { - await addInspect({ + obj = { endTime: this.infoForm.checkdate[1], - formTime: this.infoForm.dateSurvey, - mcode: this.infoForm.materialCoding, - name: this.infoForm.materialName, - num: this.infoForm.quantity, - specifications: this.infoForm.specificationsModels, + formTime: this.infoForm.formTime, + mcode: this.infoForm.mcode, + name: this.infoForm.name, + num: this.infoForm.num, + specifications: this.infoForm.specifications, + specificationId: this.infoForm.specificationsId, startTime: this.infoForm.checkdate[0], - supplier: this.infoForm.supplierName, + supplier: this.infoForm.supplier, type: this.type, - unit: this.infoForm.unit - }) + unit: this.infoForm.unit, + version: this.version + } } - if (this.type === 1) { - const res = await addInspect({ + //濮旀墭 + if (this.type === 2) { + obj = { endTime: this.commisionSelection.checkdate[1], formTime: this.commisionSelection.formTime, mcode: this.commisionSelection.mcode, name: this.commisionSelection.name, num: this.commisionSelection.num, specifications: this.commisionSelection.specifications, + specificationId:this.commisionSelection.specificationsId, startTime: this.commisionSelection.checkdate[0], supplier: this.commisionSelection.supplier, type: this.type, - unit: this.commisionSelection.unit - }) + unit: this.commisionSelection.unit, + version: this.version + } } - if (this.type === 2) { - const res = await addInspect({ - endTime: '2023-08-15', - formTime: this.finishedTable.deliverydate, + //鎴愬搧 + if (this.type === 1) { + obj = { + supplier:"/", + formTime: "2023-09-09", + endTime: this.finishedTable.checkdate[1], mcode: this.finishedTable.code, - name: this.finishedTable.name, + name: this.tmp.name, num: parseInt(this.finishedTable.amount), - specifications: this.finishedTable.modelandspecification, - startTime: '2023-08-14', - supplier: this.finishedTable.supplier, + specifications: this.speName, + specificationId: this.finishedTable.modelandspecification[1], + startTime: this.finishedTable.checkdate[0], type: this.type, - unit: this.finishedTable.unit - }) + unit: this.finishedTable.unit, + version: this.version + } } - this.type = 0 - this.checkTypeVisible = false - this.$message({ - message: '娣诲姞鎴愬姛锛�', - type: 'success' - }); + addInspect(obj).then(res => { + this.$message({ + message: '娣诲姞鎴愬姛锛�', + type: 'success' + }); + this.type = 1 + this.checkTypeVisible = false + this.$router.push(`Viewdetails/${res.data}`) + }).catch(error=>{ + this.$message.error(error.message); + }) }, // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣 handleSizeChange(val) { @@ -764,31 +813,40 @@ }, //纭畾璺宠浆 QUEding() { - // this.tableRow = a - + if (this.type==0 &&(this.infoForm.checkdate[0] == undefined || this.infoForm.checkdate[1] == undefined)) { + this.$message({ + message: '璇烽�夋嫨妫�楠屾椂闂�', + type: 'warning' + }); + return; + } this.Standardframe = true - + this.skipshow() this.chooseVer() - + }, + //鏂板鐨勬暟鎹� + skipshow() { + const data = this.inspectionTable.at(-1) + this.listdata = data }, //纰哄畾瑭虫儏闋� - GOfrom() { - this.Standardframe = false - // const data = { - // // mcode : this.tmp.mcode, - // // name:this.tmp.name, - // // specifications:this.tmp.specifications, - // version:this.tmp.id - // } - - this.$router.push({ - name: 'Viewdetails', - query: { - id: this.tmp.id - } - }) - + async GOfrom() { + this.addInspection() }, + delInspect(row){ + this.$confirm('鎮ㄧ‘璁ゅ垹闄よ繖鏉℃暟鎹悧?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + delInspect({ + id: row.id + }).then(()=>{ + this.$message.success('宸蹭綔搴�') + this.selectInspectsList() + }) + }).catch(() => {}); + } } } </script> @@ -843,7 +901,7 @@ background: #fff; display: flex; justify-content: space-between; - padding: 5px 24px 0px 24px; + padding: 20px 24px 0px 24px; } .input-form { @@ -876,16 +934,6 @@ margin-top: 50px; display: flex; flex-direction: column; - - .table-header { - padding: 20px; - display: flex; - justify-content: space-between; - - .el-form-item { - margin-bottom: 30px !important; - } - } .table-box { padding: 0px 20px; @@ -924,7 +972,6 @@ .pagination { display: flex; - margin-top: 20px; justify-content: end; } -- Gitblit v1.9.3