src/components/do/b1-ins-order/add.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-ins-order/equip-config.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-inspect-order-plan/Inspection.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"> <div v-show="!configShow&&!equipConfigShow"> <el-row class="title"> <el-col :span="6" style="padding-left: 20px;">å§æåä¿¡æ¯ æ»ä»·ï¼<span style="color: #3A7BFA">ï¿¥{{total}}</span></el-col> @@ -116,8 +116,10 @@ <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="openEquipConfig" v-if="PROJECT==='è£ å¤çµç¼'">çµç¼é ç½®</el-button> <el-button size="medium" type="primary" @click="openConfig" v-if="this.addObj.sampleType==='å ç¼'">å 纤é ç½®</el-button> v-if="addObj.sampleType==='å ç¼'">å 纤é ç½®</el-button> <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">æäº¤</el-button> <!-- å®¡æ ¸ --> <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3" @@ -130,7 +132,7 @@ </el-col> </el-row> </div> <div class="search" v-show="!configShow"> <div class="search" v-show="!configShow&&!equipConfigShow"> <el-row> <el-col class="search_thing" :span="6"> <div class="search_label">å§æç¼å·ï¼</div> @@ -298,7 +300,7 @@ </el-col> </el-row> </div> <div v-show="!configShow"> <div v-show="!configShow&&!equipConfigShow"> <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> @@ -482,9 +484,12 @@ </el-row> </span> </el-dialog> <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow" :active="active" /> <el-dialog title="æ£æµå°ç¹æ®é¡¹ï¼è¯·ä½åºä»¥ä¸éæ©" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose"> <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow" :active="active" /> <equipConfig :currentId="currentId" v-if="equipConfigShow" :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"> <el-col class="search_thing" :span="22"> @@ -528,13 +533,14 @@ </template> <script> import { Main } from 'element-ui' import ValueTable from '../../tool/value-table.vue' import ValueTable from '../../tool/value-table.vue' import fiberOpticConfig from './fiberoptic-config.vue' import equipConfig from './equip-config.vue' export default { components: { ValueTable, fiberOpticConfig fiberOpticConfig, equipConfig }, props: { active: { @@ -663,6 +669,7 @@ bsm1: false, bsm1Val: null, bsm1Dia: false, equipConfigShow: false, bsm2: false, bsm2Val: null, bsm2Dia: false, @@ -820,53 +827,61 @@ this.$message.error('请è¾å ¥æ ·ååå·') } else if (!this.sampleList.every(m => m.standardMethodListId)) { this.$message.error('è¯·éæ©æ£éªæ å') } else if (this.totalArr.find(a => a.ask!=null&&a.ask.includes('RTS')) && !this.RTS) { } else if (this.totalArr.find(a => a.ask!=null&&a.ask.includes('RTS')&&a.state==1) && !this.RTS) { this.$message.error('请è¾å ¥RTS') } else { let sampleList = this.HaveJson(this.sampleList) let isRTS = this.totalArr.find(a => a.ask!=null&&a.ask.includes('RTS')) if (isRTS) { sampleList.forEach(item => { if (item.insProduct && item.insProduct.length > 0) { item.insProduct.forEach(a => { let ask = this.handleAsk(a.ask) if (ask) { a.ask = ask let isRTS = this.totalArr.find(a=>a.ask!=null&&a.ask.includes('RTS')&&a.state==1) if(isRTS){ sampleList.forEach(item=>{ if(item.insProduct&&item.insProduct.length>0){ item.insProduct.forEach(a=>{ if(a.state==1){ let ask = this.handleAsk(a.ask) if(ask&&a.state==1){ a.ask = ask } } }) } // å çº¤å¸¦é¡¹ç® if (item.bushing && item.bushing.length > 0) { item.bushing.forEach(a => { if (a.fiber && a.fiber.length > 0) { a.fiber.forEach(b => { if (b.productList && b.productList.length > 0) { b.productList.forEach(c => { let ask = this.handleAsk(c.ask) if (ask) { c.ask = ask if(item.bushing&&item.bushing.length>0){ item.bushing.forEach(a=>{ if(a.fiber&&a.fiber.length>0){ a.fiber.forEach(b=>{ if(b.productList&&b.productList.length>0){ b.productList.forEach(c=>{ if(c.state==1){ let ask = this.handleAsk(c.ask) if(ask&&c.state==1){ c.ask = ask } } }) } }) } if (a.fibers && a.fibers.length > 0) { a.fibers.forEach(b => { if (b.productList && b.productList.length > 0) { b.productList.forEach(c => { let ask = this.handleAsk(c.ask) if (ask) { c.ask = ask if(a.fibers&&a.fibers.length>0){ a.fibers.forEach(b=>{ if(b.productList&&b.productList.length>0){ b.productList.forEach(c=>{ if(c.state==1){ let ask = this.handleAsk(c.ask) if(ask&&c.state==1){ c.ask = ask } } }) } if (b.fiber && b.fiber.length > 0) { b.fiber.forEach(c => { if (c.productList && c.productList.length > 0) { c.productList.forEach(d => { let ask = this.handleAsk(d.ask) if (ask) { d.ask = ask if(b.fiber&&b.fiber.length>0){ b.fiber.forEach(c=>{ if(c.productList&&c.productList.length>0){ c.productList.forEach(d=>{ if(d.state==1){ let ask = this.handleAsk(d.ask) if(ask){ d.ask = ask } } }) } @@ -1498,6 +1513,35 @@ }) } }, openEquipConfig(){ if (this.active === 1) { if (this.sampleIds.length === 0) { this.$message.error("æªéæ©æ ·å") return } this.equipConfigShow = 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/equip-config.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,550 @@ <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" type="primary" @click="addChild" v-if="active==1">æ·»å åæ ·å</el-button> <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-if="active==1">ä¿ å</el-button> <el-button size="medium" @click="outConfig"> <span style="color: #3A7BFA;">è¿ å</span> </el-button> </el-col> </el-row> </div> <div class="center"> <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="50%" tooltip-effect="dark" border highlight-current-row @row-click="rowClick" style="margin-top: 10px;" @current-change="selectSample"> <!-- <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"> <template slot-scope="scope"> <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"> <template slot-scope="scope"> <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="ä¸å¡«ååç³»ç»èªå¨çæ" :readonly="active>1"></el-input> </template> </el-table-column> <el-table-column prop="model" label="æ ·ååå·" align="center" min-width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="æ ·ååå·" size="small" @change="handleChangeModel" :disabled="active>1" style="width: 100%;"> <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </template> </el-table-column> <el-table-column prop="modelNum" label="åå·åæ°" width="130" 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="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%;"> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> </template> </el-table-column> <el-table-column prop="joinName" label="é 奿 ·ååç§°" width="140" align="center"> <template slot-scope="scope"> <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1}" v-model="scope.row.joinName" :disabled="active!=1"></el-input> </template> </el-table-column> <el-table-column prop="joinModel" label="é 奿 ·ååå·" width="140" align="center"> <template slot-scope="scope"> <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1}" v-model="scope.row.joinModel" :disabled="active!=1"></el-input> </template> </el-table-column> <el-table-column prop="joinNum" label="é 奿 ·åæ°é" width="140" align="center"> <template slot-scope="scope"> <el-input-number size="small" v-model="scope.row.joinNum" :min="1" :max="100" :precision="0" :controls="false" style="width: 80%;" :disabled="active!=1"></el-input-number> </template> </el-table-column> </el-table> <el-table class="el-table" ref="productTable" :data="productList" height="50%" tooltip-effect="dark" border @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column> <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItemSubclass" label="æ£éªé¡¹å项" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="sonLaboratory" label="åå®éªå®¤" min-width="130" show-overflow-tooltip :filters="filters" :filter-method="filterHandler"></el-table-column> <el-table-column prop="methodS" label="è¯éªæ¹æ³" min-width="120" show-overflow-tooltip> </el-table-column> <el-table-column prop="unit" label="计éåä½" width="100" show-overflow-tooltip></el-table-column> <el-table-column prop="price" label="åä»·" width="100" show-overflow-tooltip></el-table-column> <el-table-column prop="section" label="åºé´" min-width="120" show-overflow-tooltip></el-table-column> <el-table-column prop="ask" label="è¦æ±å¼" min-width="220px"> <template slot-scope="scope"> <el-input size="small" placeholder="è¦æ±å¼" v-model="scope.row.ask" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)" v-if="active==1&&isAskOnlyRead"></el-input> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> </el-table> </div> <el-dialog title="éæ©åæ ·å" :visible.sync="selectStandardTree" width="400px"> <div class="body" style="height: 60vh;overflow-y: auto;user-select: none;" v-if="selectStandardTree"> <el-row style="margin-bottom: 10px;"> <el-col :span="24"> <label>æ ·åæ°éï¼</label> <el-input-number v-model="addObj.sampleNum" :min="1" label="请è¾å ¥æ°é" size="small"></el-input-number> </el-col> </el-row> <el-row> <el-col :span="24"> <el-input placeholder="è¾å ¥å ³é®åè¿è¡æç´¢" suffix-icon="el-icon-search" v-model="search" size="small" style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter" @keyup.enter.native="searchFilter"></el-input> </el-col> </el-row> <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" @dblclick.native="activeStandardTree"> <div class="custom-tree-node" slot-scope="{ node, data }"> <el-row> <el-col :span="24"> <span><i :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i> {{ data.code }} {{ data.label }}</span> </el-col> </el-row> </div> </el-tree> </div> <span slot="footer" class="dialog-footer"> <el-button @click="selectStandardTree = false">å æ¶</el-button> <el-button type="primary" @click="activeStandardTree">ç¡® å®</el-button> </span> </el-dialog> <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-row> </div> </el-dialog> </div> </template> <script> export default { props: { active: { type: Number, default: () => 0 }, }, data(){ return { saveLoad:false, sampleList:[], productList:[], getProductLoad:false, filters:[], sampleIds:[], isAskOnlyRead: false, selectStandardTree: false, search:'', expandedKeys:[], addObj:{ sampleNum:1, }, selectTree:null, models:[], sample: { sampleCode: null, laboratory: null, factory: null, sampleType: null, sample: null, model: null, modelNum: null, sampleNum: 1, isLeave: 0, unit: null }, currentMethod:null, methods:[], methodLoad: false, sampleId:null, bsmRow: null, bsm1: false, bsm1Val:null, bsm1Dia:false, list:[] } }, methods:{ save(){}, outConfig(){ this.$parent.equipConfigShow = false }, addChild(){ this.selectStandardTree = true }, selectSample(val){ this.sampleIds = [val.id] }, 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 = [] this.sampleIds.push(row.id) } this.productList = row.insProduct setTimeout(() => { this.productList.forEach(a => { if (a.state == 1) this.toggleSelection(a) }) }, 200) }, toggleSelection(row) { this.$refs.productTable.toggleRowSelection(row, true); }, selectable() { if (this.active > 1) { return false } else { return true } }, handleChangeModel(e){ let num = this.selectTree.split('-').length; if (num == 4) { this.selectTree = this.selectTree + ' - ' + e } else { let arr = this.selectTree.split('-') let arr0 = arr.slice(0, arr.length - 1) this.selectTree = arr0.join('-') + '- ' + e } }, methodChange(val, row){ if (val === null || val === '') 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 this.$axios.post(this.$api.standardTree.selectStandardProductList, { model: row.model + '-' + row.modelNum, standardMethodListId: val, factory: this.selectTree, }, { headers: { 'Content-Type': 'application/json' } }).then(res => { res.data.forEach(a => { a.state = 0 }) row.insProduct = this.HaveJson(res.data) this.getProductLoad = false this.productList = row.insProduct this.$refs.sampleTable.setCurrentRow(row) setTimeout(() => { this.productList.forEach(a => { if (a.state == 1) this.toggleSelection(a) }) }, 200) }) }, methodFocus() { this.selectsStandardMethodByFLSSM() }, selectsStandardMethodByFLSSM(){ this.methodLoad = true this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { tree: this.selectTree }).then(res => { this.methodLoad = false try { if (res.data.standardMethodList.length == 0 && this.selectTree.split('-').length == 5) { let arr = this.selectTree.split('-') let arr0 = arr.slice(0, arr.length - 1) let selectTree = arr0.join('-').substring(0, arr0.join('-').length - 1) this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { tree: selectTree }).then(ress => { this.methods = ress.data.standardMethodList }) } else { this.methods = res.data.standardMethodList } } catch (e) {} }) }, selectProduct(val){ this.productIds = [] val.forEach(a => { this.productIds.push(a.id) }) }, upProductSelect(selection, row){ row.state = row.state == 1 ? 0 : 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 } this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { item.insProduct.map(m => { if (m.id == row.id) { m.state = row.state; } return m; }) } return item }) }, tableRowClassName({ row, rowIndex }) { if (row.state === 0) { return 'warning-row'; } return ''; }, handleAll(){ if (e.length > 0) { this.productList.map(m => { m.state = 1 return m }) } else { this.productList.map(m => { m.state = 0 return m }) } this.productList.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 (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() }) }, filterHandler(value, row, column) { const property = column['property']; return row[property] === value; }, requestChange(e, row) { this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { item.insProduct.map(m => { if (m.id == row.id) { m.ask = e; } return m; }) } return item }) }, activeStandardTree() { let trees = this.selectTree.split(" - ") if (trees.length < 4) { this.$message.error('æªéæ©å产å') return } this.addObj.factory = trees[0] this.addObj.laboratory = trees[1] this.addObj.sampleType = trees[2] this.addObj.sample = trees[3] this.addObj.model = (trees[4] == undefined ? null : trees[4]) this.selectStandardTree = false this.sampleList = [] for (var i = 0; i < this.addObj.sampleNum; i++) { this.sample.joinName = null this.sample.joinModel = null this.sample.joinNum = 1 this.sample.sample = this.addObj.sample this.sample.model = this.addObj.model this.sample.unit = this.addObj.unit this.sample.standardMethodListId = null this.sample.insProduct = [] this.sample.id = this.count this.sampleList.push(this.HaveJson(this.sample)) this.count++ } this.$refs.sampleTable.doLayout() }, searchFilter() { this.$refs.tree.filter(this.search) }, filterNode(value, data) { if (!value) return true; return data.label.indexOf(value) !== -1; }, handleNodeClick(val, node, el){ this.selectTree = '' this.models = val.children this.getNodeParent(node) this.selectTree = this.selectTree.replace(' - ', '') let data = this.selectTree.split(' - ') let data2 = '' for (let index = data.length - 1; index >= 0; index--) { data2 += " - " + data[index] } this.selectTree = data2.replace(' - ', '') }, getNodeParent(val) { if (val.parent != null) { this.selectTree += ' - ' + val.label this.getNodeParent(val.parent) } }, nodeOpen(data, node, el) { $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') }, nodeClose(data, node, el) { $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') }, beforeClose(done){ if(this.bsm1){ if(this.bsm1Val===null || this.bsm1Val === ''){ 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 } } }, } } </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; } .center { width: 100%; height: calc(100% - 70px); } >>>.all-disabled .el-checkbox__input .el-checkbox__inner { background-color: #edf2fc; border-color: #dcdfe6; cursor: not-allowed; } .node_i { color: orange; font-size: 18px; } .el-select-dropdown__item { display: flex; align-items: center; justify-content: space-between; } </style> src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -191,7 +191,11 @@ <template> <div v-loading="loading" class="inspection"> <el-row class="title"> <el-col :span="12" style="padding-left: 20px;">æ£éªå详æ </el-col> <el-col :span="12" style="padding-left: 20px;">æ£éªå详æ <span style="color: #3A7BFA;"> æ ·å</span> <span v-if="currentFiberOpticTape" style="color: #3A7BFA;"> - å 纤带</span> <span v-if="currentFiberOptic" style="color: #3A7BFA;"> - å 纤</span> </el-col> <el-col :span="12" style="text-align: right;"> <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">å çº¤åæ¢</el-button> <el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">å çº¤å¸¦åæ¢</el-button> @@ -251,7 +255,7 @@ :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1" :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`"> :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;background:${n.v.bg};`"> <template v-if="n.v.ps!=undefined && n.v.ps.value==='æ£éªå¼' && state==1"> <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v" :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" @@ -305,13 +309,41 @@ </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='æ ·åç¼å·'"> <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode"> <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)"></i> <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div> <i class="el-icon-caret-right table_caret" style="width: 16px;" @click="caretSample(1)"></i> <i class="el-icon-caret-right table_caret" style="width: 16px;" v-if="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i> </div> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='æ ·ååå·'"> <div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.model!==undefined&¤tSample.model!==null">{{currentSample.model}}</div> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='å¥ç®¡'"> <div style="display: flex;flex-wrap: nowrap;align-items: center;"> <!-- <i class="el-icon-caret-left table_caret" @click="caretBushing(-1)"></i> --> <div :style="`font-family:${n.v.ff} !important;`">{{currentBushing?currentBushing.color:''}}</div> <!-- <i class="el-icon-caret-right table_caret" @click="caretBushing(1)"></i> --> </div> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='å 纤带'"> <div style="display: flex;flex-wrap: nowrap;align-items: center;"> <i class="el-icon-caret-left table_caret" @click="caretTape(-1) " v-if="currentFiberOpticTape"></i> <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOpticTape?currentFiberOpticTape.code:''}}</div> <i class="el-icon-caret-right table_caret" v-if="currentFiberOpticTape" @click="caretTape(1)"></i> </div> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='å 纤'"> <div style="display: flex;flex-wrap: nowrap;align-items: center;"> <i class="el-icon-caret-left table_caret" @click="caretOptic(-1)" v-if="currentFiberOptic"></i> <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOptic?currentFiberOptic.color:''}} </div> <i v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i> </div> </template> <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span> </div> @@ -328,7 +360,7 @@ :on-success="handleSuccessUp" :show-file-list="false" accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload" :on-error="onError" ref='upload'> <el-button size="small" type="primary" :loading="upLoading">éä»¶ä¸ä¼ </el-button></el-upload> <el-button size="small" type="primary">éä»¶ä¸ä¼ </el-button></el-upload> <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList" :componentData="componentData0" :delUrl="$api.insOrderPlan.delfile" @@ -337,7 +369,7 @@ <el-drawer title="å çº¤åæ¢" :visible.sync="fiberOpticVisible" :size="500"> <el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border highlight-current-row @row-click="handleChangeOptic" :row-class-name="tableRowClassName" :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticVisible"> :current-row-key="currentKey2" :row-key="record=>record.index" v-if="fiberOpticVisible"> <el-table-column type="index" align="center" label="åºå·" width="70px" :key="Math.random()"> </el-table-column> <el-table-column prop="bushColor" label="管å¥è²æ " min-width="100px" show-overflow-tooltip></el-table-column> @@ -350,7 +382,7 @@ <el-drawer title="å çº¤å¸¦åæ¢" :visible.sync="fiberOpticTapeVisible" :size="500"> <el-table class="el-table" ref="fiberOpticTapeTable" :data="fiberOpticTape" height="100%" tooltip-effect="dark" border highlight-current-row @row-click="handleChangeTape" :row-class-name="tableRowClassName" :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticTapeVisible"> :current-row-key="currentKey1" :row-key="record=>record.index" v-if="fiberOpticTapeVisible"> <el-table-column type="index" align="center" label="åºå·" width="70px" :key="Math.random()"> </el-table-column> <el-table-column prop="code" label="å 纤带ç¼å·" min-width="110px" show-overflow-tooltip></el-table-column> @@ -363,7 +395,7 @@ <el-drawer title="å¥ç®¡åæ¢" :visible.sync="bushingVisible" :size="500"> <el-table class="el-table" ref="bushingTable" :data="bushing" height="100%" tooltip-effect="dark" border highlight-current-row @row-click="handleChangeBushing" :row-class-name="tableRowClassName" :current-row-key="currentKey" :row-key="record=>record.index" v-if="bushingVisible"> :current-row-key="currentKey0" :row-key="record=>record.index" v-if="bushingVisible"> <el-table-column type="index" align="center" label="åºå·" width="70px" :key="Math.random()"> </el-table-column> <el-table-column prop="color" label="ç®¡è²æ " min-width="100px" show-overflow-tooltip></el-table-column> @@ -484,7 +516,6 @@ isIndex: true, showSelect: false, select: false, selectMethod: '', sort: false, init:false, do: [ @@ -535,6 +566,9 @@ ps: {}, param: {}, currentKey: 1, currentKey0: 1, currentKey1: 1, currentKey2: 1, comparisonList: [], excelMethodList: [], equipOptions: [], @@ -667,6 +701,7 @@ this.fiberOpticTape = row.fibers; } this.bushingVisible = false; this.currentKey0 = row.index }, async handleChangeOptic(row, column, event){ this.currentFiberOptic = row; @@ -683,7 +718,7 @@ this.fiberOpticVisible = false; let list = await this.getCurrentProduct(row.id,2) this.getTableLists0(list) this.currentKey = row.index this.currentKey2 = row.index }, async handleChangeTape(row, column, event){ this.currentFiberOpticTape = row; @@ -707,7 +742,7 @@ // é ç½®å 纤 this.fiberOptic = row.fiber; } this.currentKey = row.index this.currentKey1 = row.index }, async handleChangeSample(row, column, event) { this.param = {} @@ -1637,6 +1672,85 @@ }) this.getTableLists() }, caretBushing(num){ let index = this.currentKey0 + num if(index < 1){ this.$message.error('å½åæ¯ç¬¬ä¸ä¸ªå¥ç®¡') return } else if(index > this.bushing.length){ this.$message.error('å½åæ¯æåä¸ä¸ªå¥ç®¡') return } this.currentKey0 = index this.currentBushing = this.HaveJson(this.bushing[index - 1]) this.fiberOpticTape = [] this.currentFiberOpticTape = null; this.fiberOptic = [] this.currentFiberOptic = null; if( this.currentBushing.fiber&& this.currentBushing.fiber.length>0){ // ç´æ¥é ç½®å 纤 this.fiberOptic = this.currentBushing.fiber; }else if( this.currentBushing.fibers&& this.currentBushing.fibers.length>0){ // é ç½®å 纤带åï¼åé ç½®å 纤 this.fiberOpticTape = this.currentBushing.fibers; } }, async caretTape(num){ let index = this.currentKey1 + num if(index < 1){ this.$message.error('å½åæ¯ç¬¬ä¸ä¸ªå 纤带') return } else if(index > this.fiberOpticTape.length){ this.$message.error('å½åæ¯æåä¸ä¸ªå 纤带') return } this.currentKey1 = index this.currentFiberOpticTape = this.HaveJson(this.fiberOpticTape[index - 1]) this.param = {} this.fiberOptic = [] this.currentFiberOptic = null; this.currentFiberOpticTape.productList.forEach(a => { this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null } }) this.fiberOpticTapeVisible = false; let list = await this.getCurrentProduct(this.currentFiberOpticTape.id,1) this.getTableLists0(list) if(this.currentFiberOpticTape.fiber&&this.currentFiberOpticTape.fiber.length>0){ // é ç½®å 纤 this.fiberOptic = this.currentFiberOpticTape.fiber; } }, async caretOptic(num){ let index = this.currentKey2 + num if(index < 1){ this.$message.error('å½åæ¯ç¬¬ä¸ä¸ªå 纤') return } else if(index > this.fiberOptic.length){ this.$message.error('å½åæ¯æåä¸ä¸ªå 纤') return } this.currentKey2 = index this.currentFiberOptic = this.HaveJson(this.fiberOptic[index - 1]) this.currentFiberOptic.productList.forEach(a => { this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], insResult: null } }) let list = await this.getCurrentProduct(this.currentFiberOptic.id,2) this.getTableLists0(list) }, handleSuccessUp(response, ) { this.upLoading = false; if (response.code == 200) { @@ -1665,10 +1779,10 @@ if (res.code === 200) { let url = ''; if(res.data.type==1){ url = this.javaApi+'/img/'+res.data.url url = this.javaApi+'/img/'+res.data.fileUrl file.downloadIamge(url,row.fileName) }else{ url = this.javaApi+'/word/'+res.data.url url = this.javaApi+'/word/'+res.data.fileUrl const link = document.createElement('a'); link.href = url; link.download = row.fileName; src/main.js
@@ -11,10 +11,12 @@ import api from './assets/api/controller.js' import swal from 'sweetalert' // 项ç®åæ¢ Vue.prototype.PROJECT = 'æ£æµä¸å¿' //项ç®åç§°ï¼æ£æµä¸å¿ãè£ å¤çµç¼ //æ¬å° Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; const javaApi = 'http://192.168.11.200:8001';//æ // const javaApi = 'http://192.168.11.249:8001';//å¼ // const javaApi = 'http://192.168.144.249:8001';//å¼ // const javaApi = 'http://172.20.10.3:8001';//å§ // const javaApi = 'http://192.168.11.2:8001';//æ´ // const javaApi = 'http://127.0.0.1:8001';//æ