From 28f355c8d4708aa64262aa9be3be5dc72c22b16e Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期五, 26 四月 2024 11:43:29 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/tool/value-table.vue | 296 ++++++------ src/components/view/a5-capacity-scope.vue | 962 +++++++++++++++++++++++------------------ src/main.js | 4 src/components/view/a5-laboratory-qualifications.vue | 21 src/components/view/a5-laboratory-management.vue | 20 src/components/view/a6-device-management.vue | 13 src/App.vue | 1 src/assets/api/controller.js | 5 8 files changed, 701 insertions(+), 621 deletions(-) diff --git a/src/App.vue b/src/App.vue index 786039a..89018ea 100644 --- a/src/App.vue +++ b/src/App.vue @@ -307,4 +307,5 @@ overflow: hidden; text-overflow: ellipsis; } + </style> diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 97ed06b..add2ebd 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -103,6 +103,11 @@ upTestObject: "/capacityScope/upTestObject", //淇敼妫�娴嬪璞� selectTestObjectByName: "/capacityScope/selectTestObjectByName", //鑾峰彇妫�楠屽璞℃灇涓� getInsProduction: "/capacityScope/getInsProduction", //璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯) + selectProductListByObjectId: "/capacityScope/selectProductListByObjectId", //缁存姢妫�楠屽璞$殑浜у搧 + addProduct: "/capacityScope/addProduct", //鏂板浜у搧 + delProduct: "/capacityScope/delProduct", //鍒犻櫎浜у搧 + upProduct: "/capacityScope/upProduct", //淇敼浜у搧 + getItemTree: "/capacityScope/getItemTree", //鑾峰彇妫�楠屽璞℃爲 } const laboratoryScope = { diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue index 5c37a1e..8bedd05 100644 --- a/src/components/tool/value-table.vue +++ b/src/components/tool/value-table.vue @@ -42,14 +42,13 @@ background: transparent; } - .handleBtn:hover{ + .handleBtn:hover { background: transparent; } - .handleBtn.is-disabled{ + .handleBtn.is-disabled { color: #C0C4CC; } - </style> <style> /* .value-table .highlight-warning-row-border td { @@ -86,10 +85,11 @@ width: 100%; } - .handleBtn.is-disabled .el-upload:focus{ + .handleBtn.is-disabled .el-upload:focus { color: #C0C4CC !important; } - .avatar-uploader .el-upload{ + + .avatar-uploader .el-upload { height: 80px; display: flex; align-items: center; @@ -100,13 +100,11 @@ <template> <div class="value-table"> <div class="table" :style="data.isPage!=undefined&&data.isPage!=true?'height:100%':''"> - <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" - tooltip-effect="dark" border + <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" tooltip-effect="dark" border @selection-change="selectChange" @select="select" v-loading="loading" @sort-change="sortChange" @row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" - :summary-method="getSummaries" :row-class-name="tableRowClassName" - :row-key="record=>record.id" :current-row-key="data.currentId" - :highlight-current-row="data.highlight===undefined||data.highlight" + :summary-method="getSummaries" :row-class-name="tableRowClassName" :row-key="record=>record.id" + :current-row-key="data.currentId" :highlight-current-row="data.highlight===undefined||data.highlight" :span-method="spanMethod"> <el-table-column type="selection" width="65" v-if="data.showSelect" :key="Math.random()"> </el-table-column> @@ -130,29 +128,21 @@ <!-- 鍙搷浣滆杩涜鐐瑰嚮浜嬩欢 --> <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;" @click="handleLinkEvent(scope.row,data.linkEvent[a.label])">{{scope.row[a.label]}}</span> - <img style="width: 40px;height: 40px;margin-top: 10px;" :src="javaApi+'/img/'+scope.row[a.label]" v-else-if="showUpload(a.label)&&scope.row[a.label]" alt=""> - <span v-else-if="showCascader(a.label)&&scope.row[a.label]">{{handleTree(data.cascaderField[a.label].tree,scope.row[a.label].split(',')[scope.row[a.label].split(',').length-1])}}</span> - <span v-else>{{scope.row[a.label]}}</span> + <img style="width: 40px;height: 40px;margin-top: 10px;" :src="javaApi+'/img/'+scope.row[a.label]" + v-else-if="showUpload(a.label)&&scope.row[a.label]" alt=""> + <span v-else>{{scope.row[a.label]}}</span> </template> </el-table-column> <el-table-column fixed="right" align="center" label="鎿嶄綔" :width="getWidth()" v-if="data.do.length > 0"> <template slot-scope="scope"> <el-button v-for="(a, ai) in data.do" :key="ai" :type="a.type" - :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" - @click="main(scope.row, a)" class="handleBtn"> + :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" @click="main(scope.row, a)" + class="handleBtn"> <span v-if="a.type!='upload'">{{a.font}}</span> - <el-upload - :action="javaApi+a.uploadConfig.url+'?id='+scope.row.id" - v-else - :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" - :on-success="handleSuccessUp" - :show-file-list="false" - :headers="token" - name="file" - :accept='a.uploadConfig.accept' - :on-error="onError" - ref='upload' - style="background: transparent;"> + <el-upload :action="javaApi+a.uploadConfig.url+'?id='+scope.row.id" v-else + :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" :on-success="handleSuccessUp" + :show-file-list="false" :headers="token" name="file" :accept='a.uploadConfig.accept' :on-error="onError" + ref='upload' style="background: transparent;"> <span>{{a.font}}</span> </el-upload> </el-button> @@ -163,10 +153,10 @@ <div class="page" v-if="data.isPage==undefined||data.isPage"> <el-pagination @size-change="sizeChange" @current-change="currentChange" :current-page="page.current" :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper" - :total="total" > + :total="total"> </el-pagination> </div> - <el-dialog title="缂栬緫" :visible.sync="upDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'"> + <el-dialog title="缂栬緫" :visible.sync="upDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'" append-to-body> <div class="body" v-if="upDia" style="max-height: 550px;overflow-y: auto;padding: 5px 10px 5px 0;"> <div v-if="data.row > 1"> <div v-for="(a, ai) in upHead" :key="ai" style="line-height: 50px;"> @@ -175,7 +165,8 @@ </el-col> <el-col :span="16/data.row"> <el-input v-model="upData[a.label]" size="small" clearable :placeholder="`璇疯緭鍏�${a.value}`" - v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" :disabled="isDisabled(a.label)"></el-input> + v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" + :disabled="isDisabled(a.label)"></el-input> <el-select v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" size="small" v-if="showType(a.label, data.selectField) != null" style="width: 100%;" :disabled="isDisabled(a.label)" clearable filterable> @@ -183,32 +174,19 @@ :label="b.label"> </el-option> </el-select> - <el-upload - :action="javaApi+data.addUploadConfig.url" - v-if="showUpload(a.label)" - :on-success="m=>handleSuccessUp(m, a.label)" - :show-file-list="false" - :headers="token" - name="file" - :multiple="false" - :accept='data.addUploadConfig.accept' - :on-error="onError" - ref='upload' + <el-upload :action="javaApi+data.addUploadConfig.url" v-if="showUpload(a.label)" + :on-success="m=>handleSuccessUp(m, a.label)" :show-file-list="false" :headers="token" name="file" + :multiple="false" :accept='data.addUploadConfig.accept' :on-error="onError" ref='upload' class="avatar-uploader" style="background: transparent;width: 80px;height: 80px;border: 1px solid #DCDFE6;border-radius: 6px;margin: 10px 0;"> - <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" style="width: 80px;height: 80px;border-radius: 6px;"> + <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" + style="width: 80px;height: 80px;border-radius: 6px;"> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> - <el-cascader - :value="upData[a.label]" - :options="data.cascaderField[a.label].tree" - v-if="showCascader(a.label)" - :show-all-levels="false" - clearable - :props="data.cascaderField.props" - size="small" - style="width: 100%;" - @change="m=>handleCascader(m,a.label)"></el-cascader> + <el-cascader :value="upData[a.label]" :options="data.cascaderField[a.label].tree" + v-if="showCascader(a.label)" :placeholder="`璇烽�夋嫨${a.value}`" clearable + :props="data.cascaderField.props" size="small" style="width: 100%;" + @change="m=>handleCascader(m,a.label)" filterable></el-cascader> </el-col> </div> </div> @@ -219,30 +197,25 @@ </el-col> <el-col :span="16" :offset="1"> <el-input v-model="upData[a.label]" size="small" clearable :placeholder="`璇疯緭鍏�${a.value}`" - v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" :disabled="isDisabled(a.label)"></el-input> + v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" + :disabled="isDisabled(a.label)"></el-input> <el-select v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" size="small" v-if="showType(a.label, data.selectField) != null" style="width: 100%;" :disabled="isDisabled(a.label)" clearable filterable> <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi" :value="b.value" :label="b.label"></el-option> </el-select> - <el-upload - :action="javaApi+data.addUploadConfig.url" - v-if="showUpload(a.label)" - :multiple="false" - :on-success="m=>handleSuccessUp(m, a.label)" - :show-file-list="false" - :headers="token" - name="file" - :accept='data.addUploadConfig.accept' - :on-error="onError" - ref='upload' - class="avatar-uploader" + <el-upload :action="javaApi+data.addUploadConfig.url" v-if="showUpload(a.label)" :multiple="false" + :on-success="m=>handleSuccessUp(m, a.label)" :show-file-list="false" :headers="token" name="file" + :accept='data.addUploadConfig.accept' :on-error="onError" ref='upload' class="avatar-uploader" style="background: transparent;width: 80px;height: 80px;border: 1px solid #DCDFE6;border-radius: 6px;margin: 10px 0;"> - <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" style="width: 80px;height: 80px;border-radius: 6px;"> + <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" + style="width: 80px;height: 80px;border-radius: 6px;"> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> - <el-cascader :value="upData[a.label]" :options="data.cascaderField[a.label].tree" :show-all-levels="false" v-if="showCascader(a.label)" clearable :props="data.cascaderField.props" size="small" style="width: 100%;" @change="m=>handleCascader(m,a.label)"></el-cascader> + <el-cascader :value="upData[a.label]" :options="data.cascaderField[a.label].tree" :show-all-levels="false" + :placeholder="`璇烽�夋嫨${a.value}`" v-if="showCascader(a.label)" clearable :props="data.cascaderField.props" + size="small" style="width: 100%;" @change="m=>handleCascader(m,a.label)" filterable></el-cascader> </el-col> </el-row> </div> @@ -252,8 +225,8 @@ <el-button type="primary" @click="saveUpData" :loading="upLoad">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog title="鏂板" :visible.sync="addDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'"> - <div class="body" v-if="addDia" style="max-height: 550px;overflow-y: auto;padding: 5px 0;"> + <el-dialog title="鏂板" :visible.sync="addDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'" append-to-body> + <div class="body" v-if="addDia" style="max-height: 550px;overflow-y: auto;padding: 5px 10px 5px 0;"> <div v-if="data.row > 1"> <div v-for="(a, ai) in upHead" :key="ai" style="line-height: 50px;"> <el-col :span="6/data.row" style="text-align: right;"><span class="required-span" @@ -267,23 +240,18 @@ <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi" :value="b.value" :label="b.label"></el-option> </el-select> - <el-upload - :action="javaApi+data.addUploadConfig.url" - v-if="showUpload(a.label)" - :on-success="m=>handleSuccessUp(m, a.label)" - :show-file-list="false" - :headers="token" - :multiple="false" - name="file" - :accept='data.addUploadConfig.accept' - :on-error="onError" - ref='upload' + <el-upload :action="javaApi+data.addUploadConfig.url" v-if="showUpload(a.label)" + :on-success="m=>handleSuccessUp(m, a.label)" :show-file-list="false" :headers="token" :multiple="false" + name="file" :accept='data.addUploadConfig.accept' :on-error="onError" ref='upload' class="avatar-uploader" style="background: transparent;width: 80px;height: 80px;border: 1px solid #DCDFE6;border-radius: 6px;margin: 10px 0;"> - <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" style="width: 80px;height: 80px;border-radius: 6px;"> + <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" + style="width: 80px;height: 80px;border-radius: 6px;"> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> - <el-cascader :options="data.cascaderField[a.label].tree" v-if="showCascader(a.label)" clearable :props="data.cascaderField.props" size="small" style="width: 100%;" :show-all-levels="false" @change="m=>handleCascader(m,a.label)"></el-cascader> + <el-cascader :options="data.cascaderField[a.label].tree" v-if="showCascader(a.label)" clearable + :placeholder="`璇烽�夋嫨${a.value}`" :props="data.cascaderField.props" size="small" style="width: 100%;" + @change="m=>handleCascader(m,a.label)" filterable></el-cascader> </el-col> </div> </div> @@ -299,23 +267,18 @@ <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi" :value="b.value" :label="b.label"></el-option> </el-select> - <el-upload - :action="javaApi+data.addUploadConfig.url" - v-if="showUpload(a.label)" - :on-success="m=>handleSuccessUp(m, a.label)" - :show-file-list="false" - :headers="token" - name="file" - :multiple="false" - :accept='data.addUploadConfig.accept' - :on-error="onError" - ref='upload' + <el-upload :action="javaApi+data.addUploadConfig.url" v-if="showUpload(a.label)" + :on-success="m=>handleSuccessUp(m, a.label)" :show-file-list="false" :headers="token" name="file" + :multiple="false" :accept='data.addUploadConfig.accept' :on-error="onError" ref='upload' class="avatar-uploader" style="background: transparent;width: 80px;height: 80px;border: 1px solid #DCDFE6;border-radius: 6px;margin: 10px 0;"> - <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" style="width: 80px;height: 80px;border-radius: 6px;"> + <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" + style="width: 80px;height: 80px;border-radius: 6px;"> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> - <el-cascader :options="data.cascaderField[a.label].tree" v-if="showCascader(a.label)" clearable :props="data.cascaderField.props" size="small" style="width: 100%;" :show-all-levels="false" @change="m=>handleCascader(m,a.label)"></el-cascader> + <el-cascader :options="data.cascaderField[a.label].tree" v-if="showCascader(a.label)" clearable + :placeholder="`璇烽�夋嫨${a.value}`" :props="data.cascaderField.props" size="small" style="width: 100%;" + @change="m=>handleCascader(m,a.label)" filterable></el-cascader> </el-col> </el-row> </div> @@ -356,7 +319,9 @@ import { Page } from 'iview'; -import { data } from 'jquery'; +import { + data + } from 'jquery'; export default { props: { tableRowClassName: { @@ -444,7 +409,7 @@ }], type: [], uploadStr: "", - currentId:'',//褰撳墠楂樹寒鐨処D + currentId: '', //褰撳墠楂樹寒鐨処D }, tableHead: [], tableData: [], @@ -469,18 +434,19 @@ token: null, fileList: [], init: true, - spanList:[ + spanList: [ // { // arr:[], // position:0 // } ], - specialSpanList:[ + specialSpanList: [ // { // arr:[], // position:0 // } ], +param: {} } }, watch: { @@ -493,10 +459,15 @@ } }, }, +beforeUpdate() { + this.$nextTick(() => { + this.$refs.eltable.doLayout() + }) + }, mounted() { this.data = this.componentData this.dataCopy = this.HaveJson(this.componentData) - if(this.data.init===undefined||this.data.init===true){ + if (this.data.init === undefined || this.data.init === true) { this.selectList() } this.token = { @@ -523,15 +494,20 @@ } }); }, - spanMethod({ row, column, rowIndex, columnIndex }){ + spanMethod({ + row, + column, + rowIndex, + columnIndex + }) { // 涓�鑸殑鍚堝苟琛� - if(this.data.spanConfig!=undefined&&this.data.spanConfig.rows&&this.data.spanConfig.rows.length>0){ + if (this.data.spanConfig != undefined && this.data.spanConfig.rows && this.data.spanConfig.rows.length > 0) { let i = null; - let obj = this.data.spanConfig.rows.find((item,index)=>{ + let obj = this.data.spanConfig.rows.find((item, index) => { i = index; - return item.index==columnIndex + return item.index == columnIndex }) - if(obj){ + if (obj) { const _row = this.spanList[i].arr[rowIndex]; const _col = _row > 0 ? 1 : 0; return { @@ -541,13 +517,14 @@ } } // 鐗规畩鐨勫悎骞惰 - if(this.data.spanConfig!=undefined&&this.data.spanConfig.special&&this.data.spanConfig.special.main&&this.data.spanConfig.special.rows&&this.data.spanConfig.special.rows.length>0){ + if (this.data.spanConfig != undefined && this.data.spanConfig.special && this.data.spanConfig.special.main && + this.data.spanConfig.special.rows && this.data.spanConfig.special.rows.length > 0) { let i = null; - let obj = this.data.spanConfig.special.rows.find((item,index)=>{ + let obj = this.data.spanConfig.special.rows.find((item, index) => { i = index; - return item.index==columnIndex + return item.index == columnIndex }) - if(obj){ + if (obj) { const _row = this.specialSpanList[i].arr[rowIndex]; const _col = _row > 0 ? 1 : 0; return { @@ -563,10 +540,10 @@ } else { this.multipleSelection = val[val.length - 1]; } - if(this.data.selectMethod!=undefined){ - if(this.$parent.$el.className.indexOf('el-')==0){ + if (this.data.selectMethod != undefined) { + if (this.$parent.$el.className.indexOf('el-') == 0) { this.$parent.$parent[this.data.selectMethod](val) - }else{ + } else { this.$parent[this.data.selectMethod](val) } } @@ -595,7 +572,7 @@ }, selectList() { this.loading = true - if(this.data.isPage!=undefined&&this.data.isPage!=true){ + if (this.data.isPage != undefined && this.data.isPage != true) { this.page = { current: -1, size: -1, @@ -626,25 +603,28 @@ } } // 涓�鑸殑鍚堝苟琛� - if(this.data.spanConfig!=undefined&&this.data.spanConfig.rows&&this.data.spanConfig.rows.length>0){ + if (this.data.spanConfig != undefined && this.data.spanConfig.rows && this.data.spanConfig.rows.length > + 0) { this.spanList = []; - this.data.spanConfig.rows.forEach((item,index)=>{ + this.data.spanConfig.rows.forEach((item, index) => { this.spanList.push({ - arr:[], - position:0 + arr: [], + position: 0 }) this.rowspan(this.spanList[index].arr, this.spanList[index].position, item.name); }) } // 鐗规畩鐨勫悎骞惰 - if(this.data.spanConfig!=undefined&&this.data.spanConfig.special&&this.data.spanConfig.special.main&&this.data.spanConfig.special.rows&&this.data.spanConfig.special.rows.length>0){ + if (this.data.spanConfig != undefined && this.data.spanConfig.special && this.data.spanConfig.special + .main && this.data.spanConfig.special.rows && this.data.spanConfig.special.rows.length > 0) { this.specialSpanList = [] - this.data.spanConfig.special.rows.forEach((item,index)=>{ + this.data.spanConfig.special.rows.forEach((item, index) => { this.specialSpanList.push({ - arr:[], - position:0 + arr: [], + position: 0 }) - this.rowspan(this.specialSpanList[index].arr, this.specialSpanList[index].position, this.data.spanConfig.special.main); + this.rowspan(this.specialSpanList[index].arr, this.specialSpanList[index].position, this.data + .spanConfig.special.main); }) } this.loading = false @@ -700,25 +680,25 @@ showUpload(label){ if(this.data.addUpload&&this.data.addUpload.find(m=>m==label)){ return true; - }else{ + } else { return false; } }, - showCascader(label){ - if(this.data.cascaderField&&this.data.cascaderField[label]){ + showCascader(label) { + if (this.data.cascaderField && this.data.cascaderField[label]) { return true; - }else{ + } else { return false; } }, - handleTree(arr,value){ + handleTree(arr, value) { let label = '' for (let i = 0; i < arr.length; i++) { - if(arr[i].id==value){ + if (arr[i].id == value) { label = arr[i].name return label - }else if(arr[i].children){ - label = this.handleTree(arr[i].children,value) + } else if (arr[i].children) { + label = this.handleTree(arr[i].children, value) } } return label @@ -730,11 +710,11 @@ this.upDia = true, this.upData = this.HaveJson(row) this.upHead = this.HaveJson(this.tableHead) - this.upHead.forEach((item,index)=>{ - if(this.data.cascaderField&&this.data.cascaderField[item.label]){ - if(this.upData[item.label]){ - this.upData[item.label] = this.upData[item.label].split(',').map(m=>Number(m)); - }else{ + this.upHead.forEach((item, index) => { + if (this.data.cascaderField && this.data.cascaderField[item.label]) { + if (this.upData[item.label]) { + this.upData[item.label] = JSON.parse(this.upData[item.label]) + } else { this.upData[item.label] = [] } } @@ -811,11 +791,11 @@ this.upData[a] = JSON.stringify(this.upData[a]) } } - this.upHead.forEach((item,index)=>{ - if(this.data.cascaderField&&this.data.cascaderField[item.label]){ - if(this.upData[item.label]){ - this.upData[item.label] = this.upData[item.label].join(','); - }else{ + this.upHead.forEach((item, index) => { + if (this.data.cascaderField && this.data.cascaderField[item.label]) { + if (this.upData[item.label]) { + this.upData[item.label] = JSON.stringify(this.upData[item.label]) + } else { this.upData[item.label] = '' } } @@ -840,9 +820,10 @@ this.upLoad = false }) }, - openAddDia(addUrl) { + openAddDia(addUrl, param) { this.addDia = true this.addUrl = addUrl +this.param = param this.upData = {} this.tableHead.forEach((k, v) => { if (k.label != 'orderBy' && k.label != 'createTime' && k.label != 'updateTime' && k.label != @@ -892,15 +873,20 @@ } } this.addLoad = true - this.upHead.forEach((item,index)=>{ - if(this.data.cascaderField&&this.data.cascaderField[item.label]){ - if(this.upData[item.label]){ - this.upData[item.label] = this.upData[item.label].join(','); - }else{ + this.upHead.forEach((item, index) => { + if (this.data.cascaderField && this.data.cascaderField[item.label]) { + if (this.upData[item.label]) { + this.upData[item.label] = JSON.stringify(this.upData[item.label]) + } else { this.upData[item.label] = '' } } }) +if (this.param !== undefined && this.param !== null) { + for (let i in this.param) { + this.upData[i] = this.param[i] + } + } this.$axios.post(this.addUrl, this.upData, { headers: { 'Content-Type': 'application/json' @@ -1058,24 +1044,24 @@ }) return count * 15 + 60 + 'px' }, - handleSuccessUp(response,label){ - if(typeof label === 'string'){ - if(response.code==200){ + handleSuccessUp(response, label) { + if (typeof label === 'string') { + if (response.code == 200) { this.upData[label] = response.data.url; } - }else{ - if(response.code==200){ + } else { + if (response.code == 200) { this.$message.success('涓婁紶鎴愬姛') this.selectList() } } }, - handleCascader(e,label){ + handleCascader(e, label) { this.upData[label] = e; }, // 鎵归噺鍒犻櫎 - batchDelete(){ - if(this.multipleSelection&&this.multipleSelection.length>0){ + batchDelete() { + if (this.multipleSelection && this.multipleSelection.length > 0) { this.$confirm('鏄惁鍒犻櫎閫変腑鐨勬暟鎹�?', "璀﹀憡", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", @@ -1093,7 +1079,7 @@ this.$message.error('鍒犻櫎澶辫触') }) }).catch(() => {}) - }else{ + } else { this.$message.error('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁') } }, diff --git a/src/components/view/a5-capacity-scope.vue b/src/components/view/a5-capacity-scope.vue index 1265682..94936fc 100644 --- a/src/components/view/a5-capacity-scope.vue +++ b/src/components/view/a5-capacity-scope.vue @@ -1,451 +1,559 @@ <style scoped> - .title { - height: 60px; - line-height: 60px; - } + .title { + height: 60px; + line-height: 60px; + } - .bodys { - height: 100%; - } + .bodys { + height: 100%; + } - .search { - background-color: #fff; - height: 80px; - display: flex; - align-items: center; - } + .search { + background-color: #fff; + height: 80px; + display: flex; + align-items: center; + } - .search_thing { - width: 350px; - display: flex; - align-items: center; - } + .search_thing { + width: 350px; + display: flex; + align-items: center; + } - .search_label { - width: 110px; - font-size: 14px; - text-align: right; - } + .search_label { + width: 110px; + font-size: 14px; + text-align: right; + } - .search_input { - width: calc(100% - 110px); - } + .search_input { + width: calc(100% - 110px); + } - .table { - margin-top: 10px; - background-color: #fff; - width: calc(100% - 40px); - height: calc(100% - 60px - 80px - 10px - 40px); - padding: 20px; - } + .table { + margin-top: 10px; + background-color: #fff; + width: calc(100% - 40px); + height: calc(100% - 60px - 80px - 10px - 40px); + padding: 20px; + } </style> <template> - <div class="capacity-scope"> - <div> - <el-row class="title"> - <el-col :span="12"> - <el-radio-group v-model="radio" @input="selectorSwitch" size="medium" fill="#3A7BFA" v-if="select==3"> - <el-radio-button label="0">妫�楠岄」鐩弬鏁�</el-radio-button> - <el-radio-button label="1">妫�楠屽璞�</el-radio-button> - </el-radio-group> - <el-button size="medium" type="primary" v-else-if="select==1">妫�楠岄」鐩弬鏁�</el-button> - <el-button size="medium" type="primary" v-else-if="select==2">妫�楠屽璞�</el-button> - </el-col> - <el-col :span="12" style="text-align: right;"> - <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button> - <el-button size="medium" icon="el-icon-delete">鍒犻櫎</el-button> - </el-col> - </el-row> - </div> - <div v-if="radio==0" class="bodys"> - <div class="search"> - <div class="search_thing"> - <div class="search_label">妫�楠岄」锛�</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="itemParameterData.entity.inspectionItem" @keyup.enter.native="refreshTable()"></el-input></div> - </div> - <div class="search_thing"> - <div class="search_label">妫�楠屽瓙椤癸細</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="itemParameterData.entity.inspectionItemSubclass" @keyup.enter.native="refreshTable()"></el-input></div> - </div> - <div class="search_thing" style="padding-left: 30px;"> - <el-button size="small" @click="refresh()">閲� 缃�</el-button> - <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - </div> - </div> - <div class="table"> - <ValueTable ref="itemParameterTable" :url="$api.capacityScope.selectItemParameterList" - :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter" - :componentData="itemParameterData" :key="upIndex" /> - </div> - </div> - <div class="bodys"> - <div class="search" v-if="radio==1"> - <div class="search_thing"> - <div class="search_label">鏍峰搧鍚嶇О锛�</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="testObjectData.entity.specimenName" @keyup.enter.native="refreshTable()"></el-input></div> - </div> - <div class="search_thing" style="padding-left: 30px;"> - <el-button size="small" @click="refresh()">閲� 缃�</el-button> - <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - </div> - </div> - <div class="table" v-if="radio==1"> - <ValueTable ref="testObjectTable" :url="$api.capacityScope.selectTestObjectList" - :upUrl="$api.capacityScope.upTestObject" :delUrl="$api.capacityScope.delTestObject" - :componentData="testObjectData" :key="upIndex" /> - </div> - </div> - </div> + <div class="capacity-scope"> + <div> + <el-row class="title"> + <el-col :span="12"> + <el-radio-group v-model="radio" @input="selectorSwitch" size="medium" fill="#3A7BFA" v-if="select==3"> + <el-radio-button label="0">妫�楠岄」鐩弬鏁�</el-radio-button> + <el-radio-button label="1">妫�楠屽璞�</el-radio-button> + </el-radio-group> + <el-button size="medium" type="primary" v-else-if="select==1">妫�楠岄」鐩弬鏁�</el-button> + <el-button size="medium" type="primary" v-else-if="select==2">妫�楠屽璞�</el-button> + </el-col> + <el-col :span="12" style="text-align: right;"> + <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button> + <el-button size="medium" icon="el-icon-delete">鍒犻櫎</el-button> + </el-col> + </el-row> + </div> + <div v-if="radio==0" class="bodys"> + <div class="search"> + <div class="search_thing"> + <div class="search_label">妫�楠岄」锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="itemParameterData.entity.inspectionItem" @keyup.enter.native="refreshTable()"></el-input></div> + </div> + <div class="search_thing"> + <div class="search_label">妫�楠屽瓙椤癸細</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="itemParameterData.entity.inspectionItemSubclass" @keyup.enter.native="refreshTable()"></el-input> + </div> + </div> + <div class="search_thing" style="padding-left: 30px;"> + <el-button size="small" @click="refresh()">閲� 缃�</el-button> + <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> + </div> + </div> + <div class="table"> + <ValueTable ref="itemParameterTable" :url="$api.capacityScope.selectItemParameterList" + :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter" + :componentData="itemParameterData" :key="upIndex" /> + </div> + </div> + <div class="bodys"> + <div class="search" v-if="radio==1"> + <div class="search_thing"> + <div class="search_label">妫�楠屽璞★細</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="testObjectData.entity.specimenName" @keyup.enter.native="refreshTable()"></el-input></div> + </div> + <div class="search_thing" style="padding-left: 30px;"> + <el-button size="small" @click="refresh()">閲� 缃�</el-button> + <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> + </div> + </div> + <div class="table" v-if="radio==1"> + <ValueTable ref="testObjectTable" :url="$api.capacityScope.selectTestObjectList" + :upUrl="$api.capacityScope.upTestObject" :delUrl="$api.capacityScope.delTestObject" + :componentData="testObjectData" :key="upIndex" /> + </div> + </div> + <el-dialog title="浜у搧缁存姢" :visible.sync="diaProduct" width="600px"> + <div class="body" v-if="diaProduct" style="height: 350px;overflow-y: auto;padding: 5px 0;"> + <ValueTable ref="productData" :url="$api.capacityScope.selectProductListByObjectId" + :upUrl="$api.capacityScope.upProduct" :delUrl="$api.capacityScope.delProduct" + :componentData="productData" :key="upIndex" /> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="diaProduct = false">鍙� 娑�</el-button> + <el-button type="primary" @click="openAdd2" :loading="productLoad">鏂� 澧�</el-button> + </span> + </el-dialog> + </div> </template> <script> - import ValueTable from '../tool/value-table.vue' - export default { - components: { - ValueTable - }, - data() { - return { - radio: '-1', - showItemParameter: true, - showTestObject: false, - itemParameterData: { - entity: { - inspectionItem: null, - inspectionItemSubclass: null, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: false, - showSelect: true, - select: true, - row: 2, - do: [{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'doDiy', - field: [] - }, { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }], - tagField: { - inspectionItemType: { - select: [] - }, - bsm:{ - select: [] - }, - inspectionValueType:{ - select:[] - }, - laboratory:{ - select:[] - }, - method:{select:[]}, - templateId:{ - select:[] - }, - sonLaboratory: {select:[]}, - unit: {select:[]}, - sample: {select:[]}, - dic: {select:[]}, - }, - selectField: { - inspectionItemType: { - select: [] - }, - bsm:{ - select: [] - }, - inspectionValueType:{ - select:[] - }, - laboratory:{ - select:[] - }, - templateId:{ - select:[] - }, - method:{select:[],choose: true}, - sample: {select:[]}, - sonLaboratory: {select:[]}, - unit: {select:[]}, - dic:{select:[]}, - }, - requiredAdd: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionValueType','laboratory','unit','method','price','manDay','sample'], - requiredUp: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionValueType','laboratory','unit','method','price','manDay','sample'] - }, - testObjectData: { - entity: { - specimenName: null, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: false, - showSelect: true, - select: true, - do: [{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'doDiy', - field: ['createUserName', 'updateUserName'] - }, { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }], - tagField: {}, - selectField: {}, - requiredAdd: ['specimenName','code'], - requiredUp: ['specimenName','code'] - }, - itemParameterEntityCopy: {}, - testObjectDataEntityCopy: {}, - upIndex: 0, - addDia: false, - addPower: true, - select: 0 - } - }, - mounted() { - this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity) - this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity) - this.selectEnumByCategory() - // this.selectEnumByCategoryForValue() - this.selectEnumByCategoryForSpecial() - this.selectEnumByCategoryForInspectionValueType() - this.obtainItemParameterList() - this.selectStandardMethods() - this.selectTestObjectByName() - this.getStandardTemplate() - this.selectEnumByCategoryForSLaboratory() + import ValueTable from '../tool/value-table.vue' + export default { + components: { + ValueTable + }, + data() { + return { + radio: '-1', + showItemParameter: true, + showTestObject: false, + itemParameterData: { + entity: { + inspectionItem: null, + inspectionItemSubclass: null, + orderBy: { + field: 'id', + order: 'asc' + } + }, + isIndex: false, + showSelect: true, + select: true, + row: 2, + do: [{ + id: 'update', + font: '缂栬緫', + type: 'text', + method: 'doDiy', + field: [] + }, { + id: 'delete', + font: '鍒犻櫎', + type: 'text', + method: 'doDiy' + }], + tagField: { + inspectionItemType: { + select: [] + }, + bsm: { + select: [] + }, + inspectionValueType: { + select: [] + }, + laboratory: { + select: [] + }, + method: { + select: [] + }, + templateId: { + select: [] + }, + sonLaboratory: { + select: [] + }, + unit: { + select: [] + }, + dic: { + select: [] + }, + }, + selectField: { + inspectionItemType: { + select: [] + }, + bsm: { + select: [] + }, + inspectionValueType: { + select: [] + }, + laboratory: { + select: [] + }, + templateId: { + select: [] + }, + method: { + select: [], + choose: true + }, + sonLaboratory: { + select: [] + }, + unit: { + select: [] + }, + dic: { + select: [] + }, + }, + cascaderField:{ + sample:{ + tree:[] + }, + // 瀛楁閰嶇疆 + props:{ + value:'name', + label:'name', + checkStrictly: false + } + }, + requiredAdd: ['sonLaboratory', 'inspectionItem', 'manHour', 'inspectionItemType', 'inspectionValueType', + 'unit', 'method', 'price', 'manDay' + ], + requiredUp: ['sonLaboratory', 'inspectionItem', 'manHour', 'inspectionItemType', 'inspectionValueType', + 'unit', 'method', 'price', 'manDay' + ] + }, + testObjectData: { + entity: { + specimenName: null, + orderBy: { + field: 'id', + order: 'asc' + } + }, + isIndex: false, + showSelect: true, + select: true, + do: [{ + id: 'update', + font: '缂栬緫', + type: 'text', + method: 'doDiy', + field: ['createUserName', 'updateUserName', 'product'] + }, { + id: 'delete', + font: '鍒犻櫎', + type: 'text', + method: 'doDiy' + }, { + font: '浜у搧缁存姢', + type: 'text', + method: 'upProduct' + }], + tagField: { + laboratoryId: { + select: [] + } + }, + selectField: { + laboratoryId: { + select: [] + } + }, + requiredAdd: ['specimenName', 'code', 'laboratoryId'], + requiredUp: ['specimenName', 'code', 'laboratoryId'] + }, + itemParameterEntityCopy: {}, + testObjectDataEntityCopy: {}, + upIndex: 0, + addDia: false, + addPower: true, + select: 0, + laboratory: [], + productLoad: false, + diaProduct: false, + productData: { + entity: { + objectId: 0, + orderBy: { + field: 'id', + order: 'asc' + } + }, + isPage: false, + isIndex: true, + showSelect: false, + select: true, + do: [{ + id: 'update', + font: '缂栬緫', + type: 'text', + method: 'doDiy', + field: [] + }, { + id: 'delete', + font: '鍒犻櫎', + type: 'text', + method: 'doDiy' + }], + tagField: {}, + selectField: {}, + requiredAdd: ['name','nameEn'], + requiredUp: ['name','nameEn'] + } + } + }, + mounted() { + this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity) + this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity) + this.selectEnumByCategory() + // this.selectEnumByCategoryForValue() + this.selectEnumByCategoryForSpecial() + this.selectEnumByCategoryForInspectionValueType() + this.obtainItemParameterList() + this.selectStandardMethods() + this.selectTestObjectByName() + this.getStandardTemplate() + this.selectEnumByCategoryForSLaboratory() this.selectDocUnit() - this.selectEnumByCategoryForUnit() - this.getPower('0') - }, - methods: { - selectorSwitch(radio) { - if (this.radio === '0') { - this.showItemParameter = true; - this.showTestObject = false; - /* this.$nextTick(() => { - this.$refs.itemParameterTable.selectList() - }) */ - } else { - this.showTestObject = true; - this.showItemParameter = false; - } - this.getPower(radio) - }, - refreshTable() { - if (this.radio === '0') { - this.$refs['itemParameterTable'].selectList() - } else { - this.$refs['testObjectTable'].selectList() - } - }, - refresh() { - this.itemParameterData.entity = this.HaveJson(this.itemParameterEntityCopy) - this.testObjectData.entity = this.HaveJson(this.testObjectDataEntityCopy) - this.upIndex++ - }, - openAdd() { - if (this.radio === '0') { - this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter); - } else { - this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject); - } - }, - selectEnumByCategory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠岄」绫诲瀷" - }).then(res => { - this.itemParameterData.selectField.inspectionItemType.select = res.data - res.data[1].type = 'info' - this.itemParameterData.tagField.inspectionItemType.select = res.data - }) - }, - selectEnumByCategoryForValue() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鍙栧�肩被鍨�" - }).then(res => { - this.itemParameterData.selectField.valueType.select = res.data - this.itemParameterData.tagField.valueType.select = res.data - }) - }, - selectEnumByCategoryForSpecial() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鏄惁" - }).then(res => { - this.itemParameterData.selectField.bsm.select = res.data - this.itemParameterData.tagField.bsm.select = res.data - }) - }, - selectEnumByCategoryForInspectionValueType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠屽�肩被鍨�" - }).then(res => { - this.itemParameterData.selectField.inspectionValueType.select = res.data - this.itemParameterData.tagField.inspectionValueType.select = res.data - }) - }, - selectEnumByCategoryForSLaboratory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "瀛愬疄楠屽" - }).then(res => { - this.itemParameterData.selectField.sonLaboratory.select = res.data - this.itemParameterData.tagField.sonLaboratory.select = res.data - }) - }, - selectEnumByCategoryForUnit() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鍗曚綅" - }).then(res => { - this.itemParameterData.selectField.unit.select = res.data - this.itemParameterData.tagField.unit.select = res.data - }) - }, + this.selectEnumByCategoryForUnit() + this.getPower('0') + }, + methods: { + selectorSwitch(radio) { + if (this.radio === '0') { + this.showItemParameter = true; + this.showTestObject = false; + /* this.$nextTick(() => { + this.$refs.itemParameterTable.selectList() + }) */ + } else { + this.showTestObject = true; + this.showItemParameter = false; + } + this.getPower(radio) + }, + refreshTable() { + if (this.radio === '0') { + this.$refs['itemParameterTable'].selectList() + } else { + this.$refs['testObjectTable'].selectList() + } + }, + refresh() { + this.itemParameterData.entity = this.HaveJson(this.itemParameterEntityCopy) + this.testObjectData.entity = this.HaveJson(this.testObjectDataEntityCopy) + this.upIndex++ + }, + openAdd() { + if (this.radio === '0') { + this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter); + } else { + this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject); + } + }, + selectEnumByCategory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠岄」绫诲瀷" + }).then(res => { + this.itemParameterData.selectField.inspectionItemType.select = res.data + res.data[1].type = 'info' + this.itemParameterData.tagField.inspectionItemType.select = res.data + }) + }, + selectEnumByCategoryForValue() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鍙栧�肩被鍨�" + }).then(res => { + this.itemParameterData.selectField.valueType.select = res.data + this.itemParameterData.tagField.valueType.select = res.data + }) + }, + selectEnumByCategoryForSpecial() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鏄惁" + }).then(res => { + this.itemParameterData.selectField.bsm.select = res.data + this.itemParameterData.tagField.bsm.select = res.data + }) + }, + selectEnumByCategoryForInspectionValueType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠屽�肩被鍨�" + }).then(res => { + this.itemParameterData.selectField.inspectionValueType.select = res.data + this.itemParameterData.tagField.inspectionValueType.select = res.data + }) + }, + selectEnumByCategoryForSLaboratory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "瀛愬疄楠屽" + }).then(res => { + this.itemParameterData.selectField.sonLaboratory.select = res.data + this.itemParameterData.tagField.sonLaboratory.select = res.data + }) + }, + selectEnumByCategoryForUnit() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鍗曚綅" + }).then(res => { + this.itemParameterData.selectField.unit.select = res.data + this.itemParameterData.tagField.unit.select = res.data + }) + }, selectDocUnit() { - this.$axios.post(this.$api.enums.getDic).then(res => { - this.itemParameterData.selectField.dic.select = res.data.map(m=>{ + this.$axios.post(this.$api.enums.getDic).then(res => { + this.itemParameterData.selectField.dic.select = res.data.map(m => { return { label: m, - value:m + value: m } }) - this.itemParameterData.tagField.dic.select = res.data.map(m=>{ + this.itemParameterData.tagField.dic.select = res.data.map(m => { return { label: m, - value:m + value: m } }) - }) - }, - obtainItemParameterList() { - this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { - let data = [] - res.data.forEach(a=>{ - data.push({ - label: a.laboratoryName, - value: a.laboratoryName - }) - }) - this.itemParameterData.selectField.laboratory.select = data - this.itemParameterData.tagField.laboratory.select = data - }) - }, - selectStandardMethods() { - this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { - let data = [] - res.data.forEach(a=>{ - data.push({ - label: a.code, - value: a.code - }) - }) - this.itemParameterData.selectField.method.select = data - this.itemParameterData.tagField.method.select = data - }) - }, - selectTestObjectByName() { - this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.specimenName, - value: a.id, - type: 'success' - }) - }) - this.itemParameterData.selectField.sample.select = data - this.itemParameterData.tagField.sample.select = data - }) - }, - getStandardTemplate() { - this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.name, - value: a.id, - type: 'success' - }) - }) - this.itemParameterData.selectField.templateId.select = data - this.itemParameterData.tagField.templateId.select = data - }) - }, - // 鏉冮檺鍒嗛厤 - getPower(radio) { - let power = JSON.parse(sessionStorage.getItem('power')) - let up = false - let add = false - let del = false - let select = 0 - for (var i = 0; i < power.length; i++) { - if (power[i].menuMethod == 'selectItemParameterList') { - select += 1 - } - if (power[i].menuMethod == 'selectTestObjectList') { - select += 2 - } - if (this.radio === '0') { - if (power[i].menuMethod == 'upItemParameter') { - up = true - } - if (power[i].menuMethod == 'delItemParameter') { - del = true - } - if (power[i].menuMethod == 'addItemParameter') { - add = true - } - } else { - if (power[i].menuMethod == 'upTestObject') { - up = true - } - if (power[i].menuMethod == 'delTestObject') { - del = true - } - if (power[i].menuMethod == 'addTestObject') { - add = true - } - } - } - if (this.radio === '0') { - if (!del) { - this.itemParameterData.do.splice(1, 1) - } - if (!up) { - this.itemParameterData.do.splice(0, 1) - } - } else { - if (!del) { - this.testObjectData.do.splice(1, 1) - } - if (!up) { - this.testObjectData.do.splice(0, 1) - } - } - this.addPower = add - this.select = select - if (select == 1 || select == 3) this.radio = radio - else if (select == 2) this.radio = '1' - else this.radio = '-1' - } - } - } + }) + }, + obtainItemParameterList() { + this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.laboratoryName, + value: a.id + }) + }) + this.itemParameterData.selectField.laboratory.select = data + this.itemParameterData.tagField.laboratory.select = data + this.testObjectData.selectField.laboratoryId.select = data + this.testObjectData.tagField.laboratoryId.select = data + this.laboratory = data + }) + }, + selectStandardMethods() { + this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.code, + value: a.code + }) + }) + this.itemParameterData.selectField.method.select = data + this.itemParameterData.tagField.method.select = data + }) + }, + selectTestObjectByName() { + this.$axios.get(this.$api.capacityScope.getItemTree).then(res => { + res.data.forEach(a=>{ + this.cascaderFieldData(a) + }) + this.itemParameterData.cascaderField.sample.tree = res.data + }) + }, + cascaderFieldData(val){ + if(val.children === undefined) { + return + }else if(val.children.length==0){[ + delete val.children + ]}else{ + val.children.forEach(a=>{ + this.cascaderFieldData(a) + }) + } + }, + getStandardTemplate() { + this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.name, + value: a.id, + type: 'success' + }) + }) + this.itemParameterData.selectField.templateId.select = data + this.itemParameterData.tagField.templateId.select = data + }) + }, + // 鏉冮檺鍒嗛厤 + getPower(radio) { + let power = JSON.parse(sessionStorage.getItem('power')) + let up = false + let add = false + let del = false + let product = false + let select = 0 + for (var i = 0; i < power.length; i++) { + if (power[i].menuMethod == 'selectItemParameterList') { + select += 1 + } + if (power[i].menuMethod == 'selectTestObjectList') { + select += 2 + } + if (this.radio === '0') { + if (power[i].menuMethod == 'upItemParameter') { + up = true + } + if (power[i].menuMethod == 'delItemParameter') { + del = true + } + if (power[i].menuMethod == 'addItemParameter') { + add = true + } + } else { + if (power[i].menuMethod == 'upTestObject') { + up = true + } + if (power[i].menuMethod == 'delTestObject') { + del = true + } + if (power[i].menuMethod == 'addTestObject') { + add = true + } + if (power[i].menuMethod == 'selectProductListByObjectId') { + product = true + } + } + } + if (this.radio === '0') { + if (!del) { + this.itemParameterData.do.splice(1, 1) + } + if (!up) { + this.itemParameterData.do.splice(0, 1) + } + } else { + if (!product) { + this.testObjectData.do.splice(2, 1) + } + if (!del) { + this.testObjectData.do.splice(1, 1) + } + if (!up) { + this.testObjectData.do.splice(0, 1) + } + } + this.addPower = add + this.select = select + if (select == 1 || select == 3) this.radio = radio + else if (select == 2) this.radio = '1' + else this.radio = '-1' + }, + upProduct(row) { + this.productData.entity.objectId = row.id + this.diaProduct = true + }, + openAdd2(){ + this.$refs.productData.openAddDia(this.$api.capacityScope.addProduct, {objectId: this.productData.entity.objectId}); + }, + } + } </script> diff --git a/src/components/view/a5-laboratory-management.vue b/src/components/view/a5-laboratory-management.vue index b71d734..82e8e6d 100644 --- a/src/components/view/a5-laboratory-management.vue +++ b/src/components/view/a5-laboratory-management.vue @@ -192,7 +192,11 @@ type: 'text', method: 'fileManagement' }], - tagField: {}, + tagField: { + type:{ + select:[] + } + }, selectField: {}, requiredAdd: ['laboratoryName', 'laboratoryNumber', 'head', 'phoneNumber'], requiredUp: ['laboratoryName', 'laboratoryNumber', 'head', 'phoneNumber'] @@ -211,11 +215,7 @@ showSelect: false, select: false, do: [], - tagField: { - type:{ - select:[] - } - }, + tagField: {}, selectField: { type:{ select:[] @@ -239,12 +239,12 @@ props: { multiple: false,emitPath:false,}, options:[ { - value:0, + value:'瀹為獙瀹よ祫璐�', label:'瀹為獙瀹よ祫璐�', children:[] }, { - value:1, + value:'棰濆绫诲瀷', label:'棰濆绫诲瀷', children:null }, @@ -278,7 +278,7 @@ return } let arr = res.data.body.records.map(m=>{ - m.value = m.id; + m.value = m.name; m.label = m.name; return m }) @@ -356,7 +356,7 @@ let up = false let del = false let add = false - let file = false + let file = false for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'upParameter') { up = true diff --git a/src/components/view/a5-laboratory-qualifications.vue b/src/components/view/a5-laboratory-qualifications.vue index 748d535..a5baa5e 100644 --- a/src/components/view/a5-laboratory-qualifications.vue +++ b/src/components/view/a5-laboratory-qualifications.vue @@ -191,23 +191,12 @@ v-model="formData.explanation"></el-input> </div> </div> - <!-- <div class="search_thing" style="margin-bottom: 16px;"> - <div class="search_label" style="width:120px">棣栨棰佸彂鏃堕棿锛�</div> - <div class="search_input"> - <el-date-picker style="width:100%" v-model="formData.firstTime" - type="datetime" - size="small" - format="yyyy-MM-dd HH:mm:ss" - value-format="yyyy-MM-dd HH:mm:ss" - clearable - placeholder="閫夋嫨鏃ユ湡"> - </el-date-picker> - </div> - </div> + + <div class="search_thing" style="margin-bottom: 16px;"> - <div class="search_label" style="width:120px">鏈�杩戦鍙戞椂闂达細</div> + <div class="search_label" style="width:120px"><span class="required-span">* </span>棰佸彂鏃堕棿锛�</div> <div class="search_input"> - <el-date-picker style="width:100%" v-model="formData.recentlyTime" + <el-date-picker style="width:100%" v-model="formData.dateOfIssuance" type="datetime" size="small" format="yyyy-MM-dd HH:mm:ss" @@ -216,7 +205,7 @@ placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> </div> - </div> --> + </div> <div class="search_thing" style="margin-bottom: 16px;"> <div class="search_label" style="width:120px"><span class="required-span">* </span>鍒版湡鏃堕棿锛�</div> <div class="search_input"> diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue index 2cd3435..bf4cdcc 100644 --- a/src/components/view/a6-device-management.vue +++ b/src/components/view/a6-device-management.vue @@ -55,13 +55,14 @@ <el-row class="title"> <el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏</el-col> <el-col :span="12" style="text-align: right;"> + <el-button size="medium" type="primary" @click="dialogVisible2 = true">鏂板</el-button> </el-col> </el-row> </div> <div class="search"> <div class="search_thing"> <div class="search_label">鐘舵�侊細</div> - <el-select v-model="componentData.entity.deviceStatus" placeholder="鍏ㄩ儴"> + <el-select v-model="componentData.entity.deviceStatus" placeholder="鍏ㄩ儴" size="small"> <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> @@ -76,19 +77,9 @@ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.specificationModel" @keyup.enter.native="refreshTable()"></el-input></div> </div> - <div class="search_thing"> - <div class="search_label">璁惧鍒嗙被锛�</div> - <el-select v-model="componentData.entity.largeCategory" placeholder="璇烽�夋嫨"> - <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - </div> <div class="search_thing" style="padding-left: 30px;"> <el-button size="small" @click="refresh()">閲� 缃�</el-button> <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - <el-col :span="12" style="text-align: right;"> - <el-button size="medium" type="primary" @click="dialogVisible2 = true">鏂板</el-button> - </el-col> </div> </div> <div class="table"> diff --git a/src/main.js b/src/main.js index 4d5253b..43d09d1 100644 --- a/src/main.js +++ b/src/main.js @@ -13,9 +13,9 @@ //鏈湴 Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; -const javaApi = 'http://192.168.11.200:8001';//鏉� +// const javaApi = 'http://192.168.11.200:8001';//鏉� // const javaApi = 'http://192.168.11.249:8001';//寮� -// const javaApi = 'http://192.168.11.50:8001';//濮� +const javaApi = 'http://192.168.11.50:8001';//濮� // const javaApi = 'http://192.168.11.2:8001';//鏌� // const javaApi = 'http://114.132.189.42:9006';//娴嬭瘯鏈� //鑳滀簯鏈嶅姟鍣� -- Gitblit v1.9.3