From ae8b90c76912a7796b7c23c78f1a59bac434457d Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期一, 14 十月 2024 13:37:15 +0800 Subject: [PATCH] 完成普通项目的项目检验 --- src/components/do/b1-ins-order/add.vue | 389 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 315 insertions(+), 74 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 8c9f4b5..0744bff 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -185,18 +185,13 @@ <div class="search_label"><span class="required-span">* </span>鍒跺崟浜猴細</div> <div class="search_input"> <el-input size="small" clearable disabled v-model="addObj.custom"></el-input> - <!-- <el-input readonly size="small" v-model="addObj.custom"> - <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true" - :disabled="active>1"></el-button></template> - </el-input> --> </div> </el-col> <el-col class="search_thing" :span="6"> <div class="search_label"><span class="required-span">* </span>濮旀墭鍗曚綅锛�</div> <div class="search_input"> - <!-- <el-input size="small" placeholder="鈫愰�夋嫨濮旀墭瀹㈡埛" clearable disabled v-model="addObj.company"></el-input> --> <el-input readonly size="small" v-model="addObj.company" placeholder="閫夋嫨濮旀墭鍗曚綅"> - <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true" + <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true,createState=1" :disabled="active>1"></el-button></template> </el-input> </div> @@ -254,14 +249,29 @@ </div> </el-col> --> <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鏉ユ牱鏂瑰紡锛�</div> + <div class="search_label"><span class="required-span">* </span>璁㈠崟绫诲瀷锛�</div> <div class="search_input"> <el-select v-model="addObj.formType" size="small" :disabled="active>1" style="width: 100%;"> <el-option v-for="(a,ai) in formType" :key="ai" :label="a.label" :value="a.value"></el-option> </el-select> </div> </el-col> - <el-col class="search_thing" :span="6"> + <el-col class="search_thing" :span="6" v-if="addObj.formType==='鍏朵粬鎴愬搧'"> + <div class="search_label">闆朵欢鍙凤細</div> + <div class="search_input"> + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.partNo" + :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6" v-if="addObj.formType!='鍏朵粬鎴愬搧'&&addObj.formType"> + <div class="search_label"><span class="required-span">* </span>閫氱煡鑷虫牱鏈哄憳锛�</div> + <div class="search_input"> + <el-select v-model="addObj.issueUser" size="small" :disabled="active>1" style="width: 100%;"> + <el-option v-for="(a,ai) in personList" :key="ai" :label="a.label" :value="a.value"></el-option> + </el-select> + </div> + </el-col> + <!-- <el-col class="search_thing" :span="6"> <div class="search_label">鎶ュ憡鍙戦�佹柟寮忥細</div> <div class="search_input"> <el-radio-group v-model="addObj.send"> @@ -269,8 +279,8 @@ <el-radio :label="0">鍏朵粬</el-radio> </el-radio-group> </div> - </el-col> - <el-col class="search_thing" :span="6"> + </el-col> --> + <!-- <el-col class="search_thing" :span="6"> <div class="search_label">鏍峰搧澶勭悊鏂瑰紡锛�</div> <div class="search_input"> <el-radio-group v-model="addObj.processing"> @@ -278,7 +288,7 @@ <el-radio :label="1">瀹為獙瀹ゅ鐞�</el-radio> </el-radio-group> </div> - </el-col> + </el-col> --> <el-col class="search_thing" :span="6"> <div class="search_label">宸ョ▼鍚嶇О锛�</div> <div class="search_input"> @@ -296,8 +306,12 @@ <el-col class="search_thing" :span="6"> <div class="search_label"><span class="required-span">* </span>鐢熶骇鍗曚綅锛�</div> <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.production" - :readonly="active>1"></el-input> + <!-- <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.production" + :readonly="active>1"></el-input> --> + <el-input size="small" v-model="addObj.production" placeholder="閫夋嫨鐢熶骇鍗曚綅" :readonly="active>1"> + <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true,createState=2" + :disabled="active>1"></el-button></template> + </el-input> </div> </el-col> <el-col class="search_thing" :span="6"> @@ -307,7 +321,7 @@ :readonly="active>1"></el-input> </div> </el-col> - <el-col class="search_thing" :span="6"> + <!-- <el-col class="search_thing" :span="6"> <div class="search_label">鏄惁鐣欐牱锛�</div> <div class="search_input"> <el-radio-group v-model="addObj.isLeave"> @@ -315,26 +329,69 @@ <el-radio :label="1">鐣欐牱</el-radio> </el-radio-group> </div> - </el-col> + </el-col> --> <el-col class="search_thing" :span="6"> <div class="search_label" style="width: 175px;">鏄惁娑夊強閰嶅鏍峰搧锛�</div> <div class="search_input" style="width: calc(100% - 175px);"> - <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()"> + <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()" :disabled="active>1"> <el-radio :label="1">鏄�</el-radio> <el-radio :label="0">鍚�</el-radio> </el-radio-group> </div> </el-col> - <el-col class="search_thing" :span="6"> + <!-- <el-col class="search_thing" :span="6"> <div class="search_label">OTC璁㈠崟鍙凤細</div> <div class="search_input"> <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input> </div> - </el-col> + </el-col> --> <el-col class="search_thing" :span="6"> <div class="search_label">濮旀墭浜猴細</div> <div class="search_input"> <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>绾﹀畾鏃堕棿锛�</div> + <div class="search_input"> + <el-date-picker + v-model="addObj.appointed" + :disabled="active>1" + type="date" + placeholder="閫夋嫨鏃ユ湡" + size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> + </el-date-picker> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鏍锋満瀹屾垚鏃堕棿锛�</div> + <div class="search_input"> + <el-date-picker + v-model="addObj.issueTime" + :disabled="active>1" + type="date" + placeholder="閫夋嫨鏃ユ湡" + size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> + </el-date-picker> + </div> + </el-col> + <el-col class="search_thing upload" :span="4" style="align-items: flex-start;height: auto" v-if="active==1"> + <el-upload + style="margin: 8px 0 0px 50px;" + action="#" + :auto-upload="false" + accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :on-change="handleChangeUpload"> + <el-button size="small" type="primary">涓婁紶闄勪欢</el-button> + </el-upload> + </el-col> + <el-col class="search_thing" :span="8"> + <div class="search_input" style="width: 100%;margin-left: 40px;"> + <el-radio-group v-model="ruleInfo.rule" @change="$refs.sampleTable.doLayout()" :disabled="active>1"> + <el-radio :label="1">涓嶈�冭檻涓嶇‘瀹氬害</el-radio> + <el-radio :label="2">鑰冭檻涓嶇‘瀹氬害<el-input placeholder="" v-model="ruleInfo.num" style="width: 100px;margin-left: 10px;" size="mini" :disabled="active>1"> + <template slot="append">%</template> + </el-input></el-radio> + </el-radio-group> </div> </el-col> <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;"> @@ -367,16 +424,20 @@ <div class="search_thing"> <div class="search_label">妫�楠屾爣鍑嗭細</div> <div class="search_input"> - <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭鍏�'" size="small" @focus="methodFocus" - :loading="methodLoad" @change="changeStandardMethodListId"> + <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭閫夋嫨'" size="small" @focus="methodFocus" + :loading="methodLoad" multiple @change="changeStandardMethodListId"> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> </div> </div> </div> + <el-radio-group v-model="currentPage" v-if="active>1" size="small" style="margin-top: 20px;"> + <el-radio-button :label="0">鏍峰搧</el-radio-button> + <el-radio-button :label="1">闄勪欢</el-radio-button> + </el-radio-group> <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" max-height="400px" tooltip-effect="dark" - border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;"> + border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;" v-show="currentPage==0"> <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column> <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column> <el-table-column prop="sample" label="鏍峰搧鍚嶇О" align="center" min-width="100"> @@ -384,7 +445,7 @@ <el-input size="small" v-model="scope.row.sample" clearable :readonly="active>1"></el-input> </template> </el-table-column> - <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center"> + <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="100" align="center"> <template slot-scope="scope"> <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" :readonly="active>1"></el-input> @@ -399,18 +460,27 @@ </el-select> </template> </el-table-column> - <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active>1)"> + <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" min-width="100" align="center" v-if="!(active>1)"> <template slot-scope="scope"> <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�" @keyup.enter.native="methodChange(scope.row.standardMethodListId, scope.row)" @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> </template> </el-table-column> + <el-table-column prop="testRequirements" label="璇曢獙鏍囧噯" align="center" min-width="100"> + <template slot-scope="scope"> + <el-select v-model="scope.row.testRequirements" :disabled="scope.row.model==null||active>1" + placeholder="璇曢獙鏍囧噯" size="small" :readonly="active>1" style="width: 100%;" clearable> + <el-option v-for="item in standard" :key="item.id" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </template> + </el-table-column> <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1" placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)" - @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []"> + @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []" multiple> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> @@ -438,7 +508,7 @@ </el-table> <el-table class="el-table" ref="productTable" :data="productList" max-height="400px" tooltip-effect="dark" border @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" - :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> + :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll" v-show="currentPage==0"> <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column> <el-table-column prop="inspectionItemClass" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被(EN)" min-width="140" show-overflow-tooltip></el-table-column> @@ -520,8 +590,16 @@ <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters" :filter-method="filterHandler"></el-table-column> </el-table> + <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList" + :componentData="componentData0" + :delUrl="$api.insOrderPlan.delfile" style="height: 100%;margin-top: 16px;" v-show="currentPage==1"/> </div> </div> + <p style="font-size: 12px;color: red;margin-top: 20px;margin-bottom: 20px;">鍙屾柟鎵胯:<br/> + 1銆佸鎵樻柟鎵胯鎻愪緵鐨勪俊鎭笌鏍峰搧鐨勭湡瀹炴��;<br/> + 2銆佸鎵橀�佹牱妫�楠岀粨鏋滀粎閫傜敤浜庢敹鍒扮殑鏍峰搧;<br/> + 3銆佽瘯楠岃繃绋嬪鑷寸殑鏍峰搧鎹熷潖銆侀厤浠舵崯鍧忋�佹崯鑰楋紝鏈祴璇曞満涓嶆壙鎷呰禂鍋胯矗浠�;<br/> + 4銆佸疄楠屽鎵胯鍏寮�灞曟娴嬫椿鍔紝骞舵壙璇轰繚瀹堝湪妫�娴嬫椿鍔ㄨ繃绋嬩腑鎵�鑾风煡鐨勪繚瀵嗕俊鎭��</p> <el-dialog title="閫夋嫨鍗曚綅" :visible.sync="selectUserDia" width="70%"> <div class="body" style="height: 60vh;" v-if="selectUserDia"> <ValueTable ref="ValueTable2" :url="$api.user.selectCustomPageList" :componentData="componentData2" /> @@ -918,6 +996,13 @@ <el-button type="primary" @click="spliceTemperatureTest">淇濆瓨</el-button> </span> </el-dialog> + <el-dialog + title="鏂囦欢棰勮" + :visible.sync="lookFileVisible" + width="60%" fullscreen> + <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url" + :currentFile="currentFile" style="max-height: 87vh;overflow-y: auto;"/> + </el-dialog> </div> </template> @@ -928,6 +1013,7 @@ import equipConfig from './equip-config.vue' import cableConfig from './cable-config.vue' import Vue from 'vue' +import filePreview from '../../tool/file-preview.vue' export default { components: { @@ -935,7 +1021,8 @@ fiberOpticConfig, fiberOpticConfigTwo, equipConfig, - cableConfig + cableConfig, + filePreview }, props: { examine: { @@ -953,6 +1040,8 @@ }, data() { return { + currentFile:{}, + lookFileVisible:false, inspectionItemST: null, sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁 editTable:[], @@ -966,6 +1055,7 @@ type: '0', code: null, appointed: null, + issueTime:null, remark: null, otcCode: null, mating: 0, @@ -990,7 +1080,8 @@ companyId: null, prepareUser:null, departmentLimsId:null, - departmentLims:null + departmentLims:null, + partNo: null, // 闆朵欢鍙� }, sample: { sampleCode: null, @@ -1093,7 +1184,7 @@ RTS: '', totalArr: [], model: null, - standardMethodListId: null, + standardMethodListId: [], symbolList:[ 'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'], inspectionItem:null, @@ -1127,7 +1218,59 @@ temId: '', sonLaboratoryList:[], selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃 - deaprtEnum:[] + deaprtEnum:[], + standard:[], + createState:1,//1:閫夋嫨濮旀墭鍗曚綅锛�2锛氶�夋嫨鐢熶骇鍗曚綅 + fileList:[], + currentPage:0,//0:鏍峰搧淇℃伅锛�1锛氶檮浠� + componentData0: { + entity: { + insOrderId:'' + }, + isIndex: true, + showSelect: false, + select: false, + sort: false, + init:false, + do: [ + { + id: 'handleDown', + font: '涓嬭浇', + type: 'text', + method: 'handleDown' + }, + { + id: '1', + font: '棰勮', + type: 'text', + method: 'lookFile', + } + ], + isPage: false, + linkEvent: {}, + tagField: { + type:{ + select:[ + { + value: 1, + label: '鍥剧墖' + }, + { + value: 2, + label: '鏂囦欢' + } + ] + } + }, + currentId: '', + selectField: {}, + requiredAdd: [], + requiredUp: [] + }, + ruleInfo:{ + rule:null, + num:null, + } } }, watch: { @@ -1179,11 +1322,11 @@ }, 'addObj.sample'(val) { this.model = null - this.standardMethodListId = null + this.standardMethodListId = [] }, 'addObj.sampleNum'(val) { this.model = null - this.standardMethodListId = null + this.standardMethodListId = [] } }, mounted() { @@ -1193,6 +1336,7 @@ // this.selectInsOrderTemplate() this.getAuthorizedPerson(); this.selectEnumByCategoryForUnit() + this.selectEnumByCategoryForStandard() this.selectStandardMethods() this.selectEnumByCategoryForOrderType() this.selectDepartmentEnum() @@ -1207,8 +1351,19 @@ this.addObj = { ...res.data.insOrder }; + if(this.addObj.rule){ + if(this.addObj.rule=='涓嶈�冭檻涓嶇‘瀹氬害'){ + this.ruleInfo.rule = 1 + }else{ + this.ruleInfo.rule = 2 + this.ruleInfo.num = this.addObj.rule.split('-')[1] + } + } this.addObj.type = String(this.addObj.type) - this.sampleList = this.HaveJson(res.data.sampleProduct); + this.sampleList = this.HaveJson(res.data.sampleProduct) + this.sampleList.forEach(m=>{ + m.standardMethodListId = JSON.parse(m.standardMethodListId) + }); this.getProNum() this.addObj.sampleNum = this.sampleList.length this.$nextTick(() => { @@ -1219,9 +1374,45 @@ } }) }) + // 鏂囦欢淇℃伅 + this.componentData0.entity.insOrderId = this.currentId + this.$refs.fileList.selectList() } }, methods: { + lookFile(row){ + this.currentFile = row; + if(row.type==1){ + this.currentFile.url = this.javaApi+'/img/'+row.fileUrl + }else{ + this.currentFile.url = this.javaApi+'/word/'+row.fileUrl + } + this.lookFileVisible = true + }, + handleDown(row){ + this.$axios.post(this.$api.insOrderPlan.downFile, { + id: row.id, + }).then(res => { + if (res.code === 200) { + let url = ''; + if(res.data.type==1){ + url = this.javaApi+'/img/'+res.data.fileUrl + file.downloadIamge(url,row.fileName) + }else{ + url = this.javaApi+'/word/'+res.data.fileUrl + const link = document.createElement('a'); + link.href = url; + link.download = row.fileName; + link.click(); + } + } + }).catch(error => { + + }) + }, + handleChangeUpload(file, fileLists){ + this.fileList = fileLists + }, //鐗规畩鍊煎~鍐欏鐞� inputValueHandler(row,index){ if(row){ @@ -1527,14 +1718,23 @@ this.$message.error('鏈�夋嫨鏁版嵁') return } - this.addObj.company = selects.company - this.addObj.code = selects.code - this.addObj.companyId = selects.id - this.selectUserDia = false - if(this.active==1){ - // TODO - this.selectInsOrderTemplate() + if(this.createState==1){ + this.addObj.company = selects.company + this.addObj.code = selects.code + this.addObj.companyId = selects.id + if(this.active==1){ + this.selectInsOrderTemplate() + } + }else if(this.createState==2){ + this.addObj.production = selects.company + // 濡傛灉閫夋嫨鐨勫崟浣嶆槸娌℃湁瀵瑰簲鐨勮嫳鏂囧悕绉板氨鐢�'/'浠f浛 + if (!selects.companyEn) { + this.addObj.productionEn = '/' + } else { + this.addObj.productionEn = selects.companyEn + } } + this.selectUserDia = false }, containsValue(str) { if(str){ @@ -1594,18 +1794,28 @@ }else if(this.addObj.orderType&&this.addObj.orderType!='C'&&!this.addObj.departmentLimsId){ this.addObj.departmentLims = '妫�娴嬩腑蹇�' this.addObj.departmentLimsId = this.deaprtEnum.find(m=>m.name=='妫�娴嬩腑蹇�').id - }else{ - this.$message.error('璇烽�夋嫨妫�楠岀被鍒�') - return } + // else{ + // this.$message.error('璇烽�夋嫨妫�楠岀被鍒�') + // return + // } if (!this.addObj.companyId) { this.$message.error('鏈�夋嫨瀹㈡埛鍗曚綅') + return + } + let noLaboratory = this.totalArr.filter(a => a.state == 1&&!a.sonLaboratory) + if(noLaboratory.length>0){ + let str = '' + noLaboratory.forEach((m,j)=>{ + str += j==noLaboratory.length-1?m.inspectionItem+'-'+m.inspectionItemSubclass:m.inspectionItem+'-'+m.inspectionItemSubclass+',' + }) + this.$message.error(str+'娌℃湁鍏宠仈瀹為獙瀹ゅ锛岃鑱旂郴绠$悊鍛�') return } if (!this.addObj.type) { this.$message.error('鏈�夋嫨绱ф�ョ▼搴�') } else if (!this.addObj.formType) { - this.$message.error('璇疯緭鍏ユ潵鏍锋柟寮�') + this.$message.error('璇疯緭鍏ヨ鍗曠被鍨�') } else if (!this.addObj.orderType) { this.$message.error('璇烽�夋嫨妫�楠岀被鍒�') } else if (!this.addObj.production) { @@ -1620,9 +1830,15 @@ this.$message.error('璇疯緭鍏ユ牱鍝佸悕绉�') } else if (!this.sampleList.every(m => m.model)) { this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�') - } else if (!this.sampleList.every(m => m.standardMethodListId)) { + }else if (!this.addObj.appointed) { + this.$message.error('璇烽�夋嫨绾﹀畾鏃堕棿') + }else if (!this.addObj.issueTime) { + this.$message.error('璇烽�夋嫨鏍锋満瀹屾垚鏃堕棿') + } else if (!this.sampleList.every(m => m.standardMethodListId&&m.standardMethodListId.length>0)) { this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') - } else { + } else if(this.addObj.formType&&this.addObj.formType!='鍏朵粬鎴愬搧'&&!this.addObj.issueUser){ + this.$message.error('璇烽�夋嫨閫氱煡鑷虫牱鏈哄憳') + }else{ //鏍¢獙妫�楠岄」鐨勮姹傚�煎拰瑕佹眰鎻忚堪,浠呭鎵樿姹� // if(this.active==1&&this.isAskOnlyRead){ // const isTrue = this.checkRequiredValueAndRemark(filterProductList) @@ -1991,9 +2207,25 @@ }) return false; } + if(this.ruleInfo.rule==1){ + this.addObj.rule = '涓嶈�冭檻涓嶇‘瀹氬害' + }else if(this.ruleInfo.rule==2){ + if(this.ruleInfo.rule==2&&(!this.ruleInfo.num||this.ruleInfo.num<0||this.ruleInfo.num==0)){ + this.$message({ + type: 'error', + message: '璇疯緭鍏ヤ笉纭畾搴�' + }) + return; + } + this.addObj.rule = '鑰冭檻涓嶇‘瀹氬害'+'-'+this.ruleInfo.num + } this.saveLoad = true - this.$axios.post(this.$api.insOrder.addInsOrder, { - str: JSON.stringify({ + let fd = new FormData(); + this.fileList.forEach((item,index)=>{ + //鏂囦欢淇℃伅涓璻aw鎵嶆槸鐪熺殑鏂囦欢 + fd.append("files",item.raw); + }) + fd.append("str",JSON.stringify({ insOrder: this.addObj, list: JSON.stringify(sampleList.map(a => { if (this.PROJECT === '瑁呭鐢电紗') { @@ -2016,7 +2248,12 @@ return a })), pairing: JSON.stringify(this.bsm2Val2) - }) + })); + this.$axios.post(this.$api.insOrder.addInsOrder, fd,{ + headers: { + 'Content-Type': 'multipart/form-data' + }, + noQs:true }).then(res => { this.saveLoad = false if (res.code == 201) return @@ -2065,7 +2302,10 @@ this.distributeData.appointed = ress.data }) setTimeout(() => { - this.issuedDialogVisible = true; + // this.issuedDialogVisible = true; + // this.$message.success('鎻愪氦鎴愬姛') + this.upLoad = false + this.$parent.playOrder(0) }, 1000) }) } else { @@ -2125,9 +2365,15 @@ }) }, getProNum() { - this.sampleSelectionList.forEach((m, i) => { - Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) - }) + if (this.active != 1) { + this.sampleList.forEach((m, i) => { + Vue.set(this.sampleList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) + }) + }else{ + this.sampleSelectionList.forEach((m, i) => { + Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) + }) + } this.$refs.sampleTable.doLayout() }, searchFilter() { @@ -2213,7 +2459,7 @@ this.sample.sample = this.addObj.sample this.sample.model = this.addObj.model this.sample.unit = this.addObj.unit - this.sample.standardMethodListId = null + this.sample.standardMethodListId = [] this.sample.insProduct = [] this.sample.id = this.count this.sample.childSampleList = [] @@ -2258,7 +2504,7 @@ this.sample.sample = this.addObj.sample this.sample.model = this.addObj.model this.sample.unit = this.addObj.unit - this.sample.standardMethodListId = null + this.sample.standardMethodListId = [] this.sample.insProduct = [] this.sample.id = parseInt(i+1) this.sample.childSampleList = [] @@ -2298,12 +2544,6 @@ }, rowClick(row, column, event) { this.currentMethod = row - let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) - if (obj && obj.code == '濮旀墭瑕佹眰') { - this.isAskOnlyRead = true - } else { - this.isAskOnlyRead = false - } this.sampleId = row.id if (this.active !== 1) { this.sampleIds = [] @@ -2547,6 +2787,13 @@ this.units = res.data }) }, + selectEnumByCategoryForStandard() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "璇曢獙鏍囧噯" + }).then(res => { + this.standard = res.data + }) + }, selectEnumByCategoryForOrderType() { this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "妫�楠岀被鍒�" @@ -2559,7 +2806,7 @@ }, selectEnumByCategoryForSampleForm() { this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鏉ユ牱鏂瑰紡" + category: "璁㈠崟绫诲瀷" }).then(res => { this.formType = res.data if (this.formType.length > 0) { @@ -2568,33 +2815,25 @@ }) }, methodChange(val, row) { - if (val === null || val === '') return + if (val === null || val === ''||val.length ==0) return this.currentMethod = row - let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) - if (obj && obj.code == '濮旀墭瑕佹眰') { - this.isAskOnlyRead = true - } else { - this.isAskOnlyRead = false - } this.getProductLoad = true let selectTreeList = this.selectTree.split(" - ") this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) - - console.log( this.selectTree); this.$axios.post(this.$api.standardTree.selectStandardProductList, { - model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum, - standardMethodListId: val, + model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum+';'+row.testRequirements, + standardMethodListId: val.join(','), factory: selectTreeList.join(" - "), }, { headers: { 'Content-Type': 'application/json' } }).then(res => { + this.getProductLoad = false res.data.forEach(a => { a.state = 0 }) row.insProduct = this.HaveJson(res.data) - this.getProductLoad = false this.productList = row.insProduct this.productList0 = JSON.parse(JSON.stringify(this.productList)) this.$refs.sampleTable.setCurrentRow(row) @@ -2603,6 +2842,8 @@ if (a.state == 1) this.toggleSelection(a) }) }, 200) + }).catch(e => { + this.getProductLoad = false }) this.searchProject() this.searchTemList() @@ -3193,7 +3434,7 @@ }, selectDepartmentEnum(){ this.$axios.get(this.$api.department.selectDepartmentLimsEnum).then(res=>{ - this.deaprtEnum = res.data + this.deaprtEnum = res.data.filter(item=>item.name === '璐ㄩ噺閮�' || item.name === '妫�娴嬩腑蹇�') }) } } -- Gitblit v1.9.3