src/components/do/b1-ins-order/add.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-ins-order/cable-config.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-ins-order/fiberoptic-config.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/components/do/b1-ins-order/add.vue
@@ -100,7 +100,7 @@ <template> <div class="ins_order_add"> <div v-show="!configShow&&!equipConfigShow"> <div v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> <el-row class="title"> <el-col :span="6" style="padding-left: 20px;">å§æåä¿¡æ¯ æ»ä»·ï¼<span style="color: #3A7BFA">ï¿¥{{total}}</span></el-col> @@ -116,6 +116,8 @@ <el-button size="medium" @click="templateDia=true" v-show="active==1"> <span style="color: #3A7BFA;">ä¿å模æ¿</span> </el-button> <el-button size="medium" type="primary" @click="openCableConfig" v-if="active==1&&PROJECT=='è£ å¤çµç¼'">çµç¼é ç½®</el-button> <el-button size="medium" type="primary" @click="openEquipConfig" v-if="active==1">åæ ·åé ç½®</el-button> <el-button size="medium" type="primary" @click="openConfig" @@ -132,7 +134,7 @@ </el-col> </el-row> </div> <div class="search" v-show="!configShow&&!equipConfigShow"> <div class="search" v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> <el-row> <el-col class="search_thing" :span="6"> <div class="search_label">å§æç¼å·ï¼</div> @@ -300,7 +302,7 @@ </el-col> </el-row> </div> <div v-show="!configShow&&!equipConfigShow"> <div v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="250px" tooltip-effect="dark" border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;"> <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column> @@ -489,6 +491,7 @@ v-if="configShow" :active="active" /> <equipConfig :currentId="currentId" v-if="equipConfigShow" :active="active"/> <cableConfig v-if="cableConfigShow" :active="active" /> <el-dialog title="æ£æµå°ç¹æ®é¡¹ï¼è¯·ä½åºä»¥ä¸éæ©" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose"> <div class="body" style="max-height: 60vh;"> <el-row v-if="bsm1"> @@ -565,11 +568,13 @@ import ValueTable from '../../tool/value-table.vue' import fiberOpticConfig from './fiberoptic-config.vue' import equipConfig from './equip-config.vue' import cableConfig from './cable-config.vue' export default { components: { ValueTable, fiberOpticConfig, equipConfig equipConfig, cableConfig }, props: { active: { @@ -699,6 +704,7 @@ bsm1Val: null, bsm1Dia: false, equipConfigShow: false, cableConfigShow:false, bsm2: false, bsm2Val: null, bsm2Dia: false, @@ -1572,6 +1578,35 @@ // }) } }, openCableConfig(){ if (this.active === 1) { if (this.sampleIds.length === 0) { this.$message.error("æªéæ©æ ·å") return } this.cableConfigShow = true } else { if (this.sampleId === null) { this.$message.error('æªé䏿 ·å') return } // this.$axios.post(this.$api.insBushing.selectBushingBySampleId, { // sampleId: this.sampleId // }).then(res => { // if (res.data.length === 0) { // this.$message.error('è¯¥æ ·åæ²¡æé ç½®å 纤') // return // } // for (var i in this.sampleList) { // if (this.sampleList[i].id = this.sampleId) { // this.sampleList[i].bushing = res.data // break // } // } // this.configShow = true // }) } }, upBsm1(val) { let sections = JSON.parse(this.bsmRow.section); let asks = JSON.parse(this.bsmRow.ask); src/components/do/b1-ins-order/cable-config.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,148 @@ <template> <div class="ins_order_config"> <div> <el-row class="title"> <el-col :span="6" style="padding-left: 20px;">çµç¼é ç½®</el-col> <el-col :span="18" style="text-align: right;"> <el-button size="medium" @click="outConfig"> <span style="color: #3A7BFA;">è¿ å</span> </el-button> </el-col> </el-row> </div> <div class="search"> <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;"> <el-radio-button label="ç»ç¼">ç» ç¼</el-radio-button> <el-radio-button label="æ¤å¥">æ¤ å¥</el-radio-button> </el-radio-group> <div class="search_thing" v-if="currentTab=='ç»ç¼'"> <div class="search_label">è¯æ°ï¼</div> <el-input size="small" placeholder="请è¾å ¥" clearable v-model="vaule0"></el-input> </div> <el-button size="small" type="primary"@click="openAdd" style="margin-left: 20px;margin-right: 20px;" v-if="currentTab=='ç»ç¼'"> ç¡® å®</el-button> <div class="search_thing"> <div class="search_label">æ£éªæ åï¼</div> <el-select v-model="vaule0" placeholder="è¯·éæ©æ£éªæ å" size="small" clearable> <el-option v-for="item in standardList" :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" type="primary"@click="openAdd">ä¿ å</el-button> </div> </div> <div class="table"> <ValueTable ref="ValueTable" :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :componentData="componentData" :key="upIndex" /> </div> </div> </template> <script> import ValueTable from '../../tool/value-table.vue' export default { components: { ValueTable }, props: { active: { type: Number, default: () => 0 }, }, data(vm) { return { standardList:[], vaule0:'', currentTab:'ç»ç¼', componentData: { entity: { number: null, department: null, laboratory: null, orderBy: { field: 'id', order: 'desc' } }, isIndex: true, showSelect: true, select: true, do: [], tagField: {}, linkEvent: { }, selectField: { laboratory: { select: [] }, unit: { select: [] }, }, requiredAdd: [], requiredUp: [] }, upIndex:0, } }, methods: { outConfig() { this.$parent.cableConfigShow = false }, } } </script> <style scoped> .ins_order_config { width: 100%; height: 100%; overflow-y: auto; overflow-x: hidden; } .ins_order_config::-webkit-scrollbar { width: 0; } .title { height: 60px; line-height: 60px; } .search { background-color: #fff; height: 80px; display: flex; align-items: center; } .search_thing { width: 300px; display: flex; align-items: center; } .search_label { width: 100px; font-size: 14px; text-align: right; } .search_input { width: calc(100% - 70px); } .table { margin-top: 10px; background-color: #fff; width: calc(100% - 40px); height: calc(100% - 60px - 80px - 26px - 24px); padding: 20px; } </style> src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -202,6 +202,75 @@ </el-col> </el-row> </div> <el-dialog title="æ£æµå°ç¹æ®é¡¹ï¼è¯·ä½åºä»¥ä¸éæ©" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose"> <div class="body" style="max-height: 60vh;"> <el-row v-if="bsm1"> <el-col class="search_thing" :span="22"> <div class="search_label"><span class="required-span">* </span>æ¤å¥å¯åº¦ï¼</div> <div class="search_input"> <el-radio-group v-model="bsm1Val" @input="upBsm1"> <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a"></el-radio> </el-radio-group> </div> </el-col> <el-col class="search_thing" :span="22"> <div class="search_label">è¦æ±å¼ï¼</div> <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''"> <el-radio-group v-model="bsm1Val" @input="upBsm1"> <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a">{{JSON.parse(bsmRow.ask)[ai]}}</el-radio> </el-radio-group> </div> </el-col> <el-col class="search_thing" :span="22"> <div class="search_label">åä»·ï¼</div> <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''"> <el-radio-group v-model="bsm1Val" @input="upBsm1"> <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a">{{JSON.parse(bsmRow.price)[ai]}}</el-radio> </el-radio-group> </div> </el-col> </el-row> <el-row v-if="bsm2"> <el-col class="search_thing" :span="22"> <div class="search_label" style="width: 220px;"><span class="required-span">* </span>æ ·åçæ¥é 对æ°éï¼</div> <div class="search_input"> <el-input-number size="medium" v-model="bsm2Val" :min="1" :max="bsm2Val3.length" :precision="0" style="width: 70%;" :controls="false" @change="bsm2Up"></el-input-number> <span>MAXï¼{{bsm2Val3.length}}</span> </div> </el-col> <el-col style="margin-top: 6px;"> <el-col v-for="(a,ai) in bsm2Val2" :key="ai"> <el-col :span="10"> <el-select v-model="a[0]" placeholder="è¯·éæ©" size="small" style="width: 100%;"> <el-option v-for="(item,index) in sampleList" :key="index" :label="index+1" :value="index+1"> </el-option> </el-select> </el-col> <!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> --> <el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">ââ</el-col> <el-col :span="10"> <el-select v-model="a[1]" placeholder="è¯·éæ©" size="small" style="width: 100%;"> <el-option v-for="(item,index) in sampleList" :key="index" :label="index+1" :value="index+1"> </el-option> </el-select> </el-col> <!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> --> </el-col> </el-col> </el-row> </div> </el-dialog> </div> </template> @@ -215,6 +284,7 @@ }, data() { return { type:1, saveLoad: false, packageInfo: { radio: 1, @@ -251,7 +321,17 @@ currentDetectionItems:null, mireStandardLoading:false, multiFiberList:[], isAskOnlyRead:true isAskOnlyRead:true, bsm1Dia: false, bsmRow: null, bsm1: false, bsm1Val: null, bsm2: false, bsm2Val: null, bsm2Dia: false, bsm2Val2: [], bsm2Val3: [], sampleIds:[] } }, computed: { @@ -546,6 +626,7 @@ }) }, rowClickFiber(row, column, event,type){ this.type = type if(this.active===1){ if(type==0){ let standard = null; @@ -567,6 +648,12 @@ }else{ this.isAskOnlyRead = true; } } } if(this.type==1){ if (this.active !== 1) { this.sampleIds = [] this.sampleIds.push(row.id) } } this.currentDetectionItems = row @@ -633,6 +720,51 @@ }); } } if(this.type==1){ this.detectionItems.forEach(p => { if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) { if (p.section.indexOf('[') > -1) { this.bsmRow = this.HaveJson(p) } this.bsm1 = true this.bsm1Dia = true } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) { this.bsm1 = false } if (p.bsm === '1' && p.inspectionItem === 'çæ¥æè' && this.sampleList.length > 1 && p.state === 1) { this.bsm2 = true this.bsm1Dia = true if(this.bsm2Val2.length === 0){ this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2 this.computationalPairing(this.sampleList.length) this.bsm2Val2 = this.HaveJson(this.bsm2Val3) } } else if (p.bsm === '1' && p.inspectionItem === 'çæ¥æè' && p.state === 1) { this.bsm2 = false } }) if (e.length > 0) { this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { item.insProduct.map(m => { m.state = 1 return m; }) } return item }) } else { this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { item.insProduct.map(m => { m.state = 0 return m; }) } return item }) } } this.$nextTick(() => { this.$refs.productTable.doLayout() }) @@ -657,6 +789,37 @@ return m; }); } if(this.type==1){ if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) { if (row.section.indexOf('[') > -1) { this.bsmRow = this.HaveJson(row) } this.bsm1 = true this.bsm1Dia = true } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) { this.bsm1 = false } if (row.bsm === '1' && row.inspectionItem === 'çæ¥æè' && this.sampleList.length > 1 && row.state === 1) { this.bsm2 = true this.bsm1Dia = true if(this.bsm2Val2.length === 0){ this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2 this.computationalPairing(this.sampleList.length) this.bsm2Val2 = this.HaveJson(this.bsm2Val3) } } else if (row.bsm === '1' && row.inspectionItem === 'çæ¥æè' && row.state === 1) { this.bsm2 = false } }else{ this.bsm1Dia = false } }, computationalPairing(n){ const nums = []; for (let i = 1; i <= n; i++) { nums.push(i); } this.bsm2Val3 = this.HaveJson(this.permute(nums)) }, setClassName({ column }) { if (column.type == 'selection' && !this.isAllDisabled) { @@ -691,6 +854,73 @@ }) this.$message.success('å·²ä¿å') this.$emit('saveFiberopticConfig') }, beforeClose(done){ if (this.bsm1) { if (this.bsm1Val === null || this.bsm1Val === '') { this.$message.error('ç¹æ®é¡¹ç®å¿ é¡»å¤ç') return } } if (this.bsm2) { if (this.bsm2Val2.length === 0) { this.$message.error('ç¹æ®é¡¹ç®å¿ é¡»å¤ç') return } let set = new Set() for (let i=0;i<this.bsm2Val2.length;i++){ let num0 = set.size set.add(JSON.stringify(this.bsm2Val2[i])) let num1 = set.size if(num1==num0){ this.$message.error('å ³è项ç®ä¸è½éå¤') return } set.add(JSON.stringify(this.bsm2Val2[i].reverse())) let num2 = set.size if(num1==num2){ this.$message.error('å ³è项ç®ä¸è½éå¤') return } } } done() }, upBsm1(val) { let sections = JSON.parse(this.bsmRow.section); let asks = JSON.parse(this.bsmRow.ask); let tells = JSON.parse(this.bsmRow.tell); let manHours = JSON.parse(this.bsmRow.manHour); let prices = JSON.parse(this.bsmRow.price); for (var a in sections) { if (val === sections[a]) { this.productList.forEach(p => { if (p.id === this.bsmRow.id) { p.section = sections[a] p.ask = asks[a] p.tell = tells[a] p.manHour = manHours[a] p.price = prices[a] } }) break } } }, bsm2Up(val){ let list = [] for(let a=1;a < this.bsm2Val3.length + 1;a++){ list.push(a) } let set = new Set() let size1 = set.length while(set.size < val){ set.add(Math.ceil(Math.random() * this.bsm2Val3.length)) } this.bsm2Val2 = [] for(let a of set){ this.bsm2Val2.push(this.HaveJson(this.bsm2Val3[a-1])) } } } } src/main.js
@@ -15,11 +15,11 @@ Vue.prototype.PROJECT = 'æ£æµä¸å¿' //项ç®åç§°ï¼æ£æµä¸å¿ãè£ å¤çµç¼ //æ¬å° Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; const javaApi = 'http://192.168.144.200:8001';//æ // const javaApi = 'http://192.168.144.200:8001';//æ // const javaApi = 'http://192.168.11.249:8001';//å¼ // const javaApi = 'http://192.168.11.2:8001';//æ´ // const javaApi = 'http://127.0.0.1:8001';//æ // const javaApi = 'http://114.132.189.42:1234';//æµè¯æ const javaApi = 'http://114.132.189.42:1234';//æµè¯æ //èäºæå¡å¨ // Vue.prototype.LOCATIONVUE = "http://syxt.shxiao2.cn"; // const javaApi = 'http://122.114.52.69:8001';