| | |
| | | <el-col :span="17"> |
| | | <el-row> |
| | | <el-col :span="23" style="display: flex;flex-wrap: wrap;"> |
| | | <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" v-for="(item,index) in insProductNew" :key="index + 'ppp'" v-show="isMore?true:(index<3?true:false)"> |
| | | <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" |
| | | v-for="(item, index) in insProductNew" :key="index + 'ppp'" v-show="isMore ? true : (index < 3 ? true : false)"> |
| | | <tr> |
| | | <td style="text-align: center;background: #F0F1F5;"> |
| | | <el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ item.inspectionItemSubclass }}</span> |
| | | <el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span |
| | | style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ |
| | | item.inspectionItemSubclass }}</span> |
| | | </el-tooltip> |
| | | </td> |
| | | <td> |
| | | <el-input size="small" placeholder="设备名称" v-model="item.equipName" readonly></el-input> |
| | | <el-input size="small" placeholder="设备名称" v-model="item.equipName" readonly></el-input> |
| | | </td> |
| | | <td> |
| | | <el-select v-model="item.equipValue" placeholder="设备编码" size="small" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)"> |
| | | <el-option |
| | | v-for="m in item.equipOptions" |
| | | :key="m.value" |
| | | :label="m.value" |
| | | :value="m.value"> |
| | | <el-select v-model="item.equipValue" placeholder="设备编码" size="small" :disabled="state > 1" |
| | | @focus="methodFocus(item)" @change="m => handleEquip(m, item)"> |
| | | <el-option v-for="m in item.equipOptions" :key="m.value" :label="m.value" :value="m.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </el-col> |
| | | <el-col :span="1" v-show="insProductNew.length>3"> |
| | | <el-button icon="el-icon-arrow-down" type="text" @click="isMore=true" v-if="!isMore">更多</el-button> |
| | | <el-button icon="el-icon-arrow-up" type="text" @click="isMore=false" v-if="isMore">收起</el-button> |
| | | <el-col :span="1" v-show="insProductNew.length > 3"> |
| | | <el-button icon="el-icon-arrow-down" type="text" @click="isMore = true" v-if="!isMore">更多</el-button> |
| | | <el-button icon="el-icon-arrow-up" type="text" @click="isMore = false" v-if="isMore">收起</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <div style="display: flex;align-items: center;justify-content: flex-end;flex-wrap: wrap;" class="btns" v-if="!isLook"> |
| | | <el-button type="primary" size="small" @click="addList(allBandList,'频段')" :disabled="state>1" style="margin: 4px;">添加频段</el-button> |
| | | <el-button type="success" size="small" @click="addList(angleList)" :disabled="state>1" style="margin: 4px;">添加角度</el-button> |
| | | <el-button size="small" @click="deleteList(angleList.length-1,angleList)" :disabled="state>1" style="margin: 4px;" type="danger">删除角度</el-button> |
| | | <div style="display: flex;align-items: center;justify-content: flex-end;flex-wrap: wrap;" class="btns" |
| | | v-if="!isLook"> |
| | | <el-button type="primary" size="small" @click="addList(allBandList, '频段')" :disabled="state > 1" |
| | | style="margin: 4px;">添加频段</el-button> |
| | | <el-button type="success" size="small" @click="addList(angleList)" :disabled="state > 1" |
| | | style="margin: 4px;">添加角度</el-button> |
| | | <el-button size="small" @click="deleteList(angleList.length - 1, angleList)" :disabled="state > 1" |
| | | style="margin: 4px;" type="danger">删除角度</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="5" style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;"> |
| | | <el-row :gutter="5" |
| | | style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">检验项目</div> |
| | | </el-col> |
| | |
| | | <div style="text-align: center;">结论</div> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="circuit-parameters-item" v-for="(h,y) in allBandList" :key="y+'ooo'"> |
| | | <div class="circuit-parameters-item" v-for="(h, y) in allBandList" :key="y + 'ooo'"> |
| | | <div class="circuit-parameters-item-title"> |
| | | <span>频段:</span> |
| | | <el-select v-model="h.band" placeholder="请选择" size="small" style="width: 200px;" :disabled="state>1"> |
| | | <el-option |
| | | v-for="item in bandList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | <el-select v-model="h.band" placeholder="请选择" size="small" style="width: 200px;" :disabled="state > 1"> |
| | | <el-option v-for="item in bandList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button size="small" @click="deleteList(y,allBandList,'删除频段')" :disabled="state>1" style="margin-left: 16px;" type="danger">删除频段</el-button> |
| | | <el-button type="primary" size="small" @click="addList(h.projectList,'互调')" style="margin-left: 16px;" :disabled="state>1" v-show="!isLook&&intermodulationNum>0">添加互调</el-button> |
| | | <el-button size="small" @click="deleteList(y, allBandList, '删除频段')" :disabled="state > 1" style="margin-left: 16px;" |
| | | type="danger">删除频段</el-button> |
| | | <el-button type="primary" size="small" @click="addList(h.projectList, '互调')" style="margin-left: 16px;" |
| | | :disabled="state > 1" v-show="!isLook && intermodulationNum > 0">添加互调</el-button> |
| | | <!-- <el-button size="small" @click="deleteList(0,h.projectList,'互调')" :disabled="state>1" v-show="!isLook&&intermodulationNum>0">删除互调</el-button> --> |
| | | <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" v-show="!isLook">保 存</el-button> |
| | | <el-button type="primary" size="small" @click="save(h, y)" :disabled="state > 1" :loading="loading[y]" |
| | | v-show="!isLook">保 存</el-button> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="circuit-parameters-item-content"> |
| | | <template v-for="(n,j) in h.projectList"> |
| | | <template v-for="(n, j) in h.projectList"> |
| | | <!-- 电压驻波比 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('驻波比')||n.inspectionItemSubclass.includes('隔离度')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('驻波比') || n.inspectionItemSubclass.includes('隔离度')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>端口</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'aaa'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'aaa'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(item,index) in n.angleList" :key="index + 'eee'"> |
| | | <tr v-for="(item, index) in n.angleList" :key="index + 'eee'"> |
| | | <td> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" @blur="handleAngle(item.value,index,h.band)" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" |
| | | @blur="handleAngle(item.value, index, h.band)" :disabled="state > 1"></el-input> |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':(n.result===3?'不判定':'待定'))) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : (n.result === 3 ?'不判定':'待定'))) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 互调 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('互调')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('互调')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>频段</td> |
| | | <td :colspan="n.portList.length+1"> |
| | | <td :colspan="n.portList.length + 1"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <!-- <el-input size="small" placeholder="频段" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input> --> |
| | | <el-select v-model="n.often" placeholder="请选择" size="small" style="width: 200px;" :disabled="state>1"> |
| | | <el-option |
| | | v-for="item in bandList0" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | <el-select v-model="n.often" placeholder="请选择" size="small" style="width: 200px;" |
| | | :disabled="state > 1"> |
| | | <el-option v-for="item in bandList0" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button type="danger" icon="el-icon-delete" circle size="small" @click="deleteList(j,h.projectList,'互调')" :disabled="state>1" v-show="!isLook&&intermodulationNum>0" style="margin-left: 20px;"></el-button> |
| | | <el-button type="danger" icon="el-icon-delete" circle size="small" |
| | | @click="deleteList(j, h.projectList, '互调')" :disabled="state > 1" |
| | | v-show="!isLook && intermodulationNum > 0" style="margin-left: 20px;"></el-button> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>端口</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'fff'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'fff'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | <!-- <td :rowspan="n.angleList.length+1"> |
| | |
| | | <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1" style="margin: 5px;"></el-button> |
| | | </td> --> |
| | | </tr> |
| | | <tr v-for="(item,index) in n.angleList" :key="index + 'eee'"> |
| | | <tr v-for="(item, index) in n.angleList" :key="index + 'eee'"> |
| | | <td> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index,h.band)"></el-input> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state > 1" |
| | | @blur="handleAngle(item.value, index, h.band)"></el-input> |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':(n.result===3?'不判定':'待定'))) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : (n.result === 3 ?'不判定':'待定'))) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 幅度偏差/最大相位偏差 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('偏差')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('偏差')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>频段</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'aaa'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'aaa'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="频段" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="频段" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | <!-- <td :rowspan="n.angleList.length+1"> |
| | |
| | | <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1" style="margin: 5px;"></el-button> |
| | | </td> --> |
| | | </tr> |
| | | <tr v-for="(item,index) in n.angleList" :key="index + 'eee'"> |
| | | <tr v-for="(item, index) in n.angleList" :key="index + 'eee'"> |
| | | <td> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index,h.band)"></el-input> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state > 1" |
| | | @blur="handleAngle(item.value, index, h.band)"></el-input> |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ?'不判定':'待定')) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 最大耦合度/最小耦合度 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('耦合度')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('耦合度')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <td>角度</td> |
| | | <td> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="频点" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input> |
| | | <el-input size="small" placeholder="频点" v-model="n.often" :disabled="state > 1" |
| | | @blur="handlePort(n)"></el-input> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(item,index) in n.angleList" :key="index + 'eee'"> |
| | | <tr v-for="(item, index) in n.angleList" :key="index + 'eee'"> |
| | | <td> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index,h.band)"></el-input> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state > 1" |
| | | @blur="handleAngle(item.value, index, h.band)"></el-input> |
| | | </td> |
| | | <td> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][0]" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][0]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ?'不判定':'待定')) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-divider v-if="j!=h.projectList.length-1"></el-divider> |
| | | <el-divider v-if="j != h.projectList.length - 1"></el-divider> |
| | | </template> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | export default { |
| | | props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'], |
| | | props: ['insProduct', 'orderId', 'sampleId', 'state', 'num', 'isLook', 'currentNum'], |
| | | data() { |
| | | return { |
| | | value: "", |
| | | bandList:[], |
| | | bandList0:[], |
| | | portList:[ |
| | | bandList: [], |
| | | bandList0: [], |
| | | portList: [ |
| | | { |
| | | value:'1', |
| | | value: '1', |
| | | }, |
| | | { |
| | | value:'2', |
| | | value: '2', |
| | | }, |
| | | { |
| | | value:'3', |
| | | value: '3', |
| | | }, |
| | | { |
| | | value:'4', |
| | | value: '4', |
| | | }, |
| | | ], |
| | | angleList:[ |
| | | angleList: [ |
| | | { |
| | | value:'' |
| | | value: '' |
| | | } |
| | | ], |
| | | projectList:[ |
| | | projectList: [ |
| | | { |
| | | name:'电压驻波比', |
| | | unit:'/', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | name: '电压驻波比', |
| | | unit: '/', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'同极化隔离度', |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | name: '同极化隔离度', |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'互调', |
| | | band:'2100MHz', |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | name: '互调', |
| | | band: '2100MHz', |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'偏差', |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | name: '偏差', |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'最大耦合度', |
| | | unit:'dB', |
| | | band:'2100MHz', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | resValue:'' |
| | | name: '最大耦合度', |
| | | unit: 'dB', |
| | | band: '2100MHz', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | resValue: '' |
| | | }, |
| | | ], |
| | | |
| | | allBandList:[],//频段 |
| | | insProductNew:[], |
| | | isMore:false, |
| | | loading:{}, |
| | | intermodulationNum:0,//互调检验项目的数量 |
| | | upTemplateState:false, |
| | | allBandList: [],//频段 |
| | | insProductNew: [], |
| | | isMore: false, |
| | | loading: {}, |
| | | intermodulationNum: 0,//互调检验项目的数量 |
| | | upTemplateState: false, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // 角度数量变化时,更新所有频段下面的所有项目下的所有端口和角度 |
| | | angleList(val) { |
| | | if(!this.upTemplateState){ |
| | | if (!this.upTemplateState) { |
| | | this.allBandList.forEach(item => { |
| | | item.projectList.forEach(m => { |
| | | // 添加角度 |
| | | for(let i=0;i<val.length;i++){ |
| | | if(!m.angleList[i]){ |
| | | this.$set(m.angleList,i, {value:''}) |
| | | } |
| | | } |
| | | // 删除角度 |
| | | for(let i=0;i<m.angleList.length;i++){ |
| | | if(!val[i]){ |
| | | m.angleList.splice(i,1) |
| | | } |
| | | } |
| | | if(m.inspectionItemSubclass.includes('耦合度')){ |
| | | for(let i = 0;i<m.angleList.length;i++){ |
| | | if(!m.value[i]){ |
| | | this.$set(m.value,i, []) |
| | | } |
| | | if(!m.value[i][0]){ |
| | | m.value[i][0] = '' |
| | | item.projectList.forEach(m => { |
| | | // 添加角度 |
| | | for (let i = 0; i < val.length; i++) { |
| | | if (!m.angleList[i]) { |
| | | this.$set(m.angleList, i, { value: '' }) |
| | | } |
| | | } |
| | | }else{ |
| | | for(let i = 0;i<m.angleList.length;i++){ |
| | | if(!m.value[i]){ |
| | | this.$set(m.value,i, []) |
| | | // 删除角度 |
| | | for (let i = 0; i < m.angleList.length; i++) { |
| | | if (!val[i]) { |
| | | m.angleList.splice(i, 1) |
| | | } |
| | | for(let j=0;j<m.portList.length;j++){ |
| | | if(!(m.value[i][j]===''||m.value[i][j])){ |
| | | m.value[i].push('') |
| | | } |
| | | if (m.inspectionItemSubclass.includes('耦合度')) { |
| | | for (let i = 0; i < m.angleList.length; i++) { |
| | | if (!m.value[i]) { |
| | | this.$set(m.value, i, []) |
| | | } |
| | | if (!m.value[i][0]) { |
| | | m.value[i][0] = '' |
| | | } |
| | | } |
| | | } else { |
| | | for (let i = 0; i < m.angleList.length; i++) { |
| | | if (!m.value[i]) { |
| | | this.$set(m.value, i, []) |
| | | } |
| | | for (let j = 0; j < m.portList.length; j++) { |
| | | if (!(m.value[i][j] === '' || m.value[i][j])) { |
| | | m.value[i].push('') |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | }) |
| | | } |
| | | // console.log(this.allBandList) |
| | | }, |
| | | currentNum(val) { |
| | | this.initData() |
| | | }, |
| | | insProduct:{ |
| | | deep:true, |
| | | handler:function(val){ |
| | | insProduct: { |
| | | deep: true, |
| | | handler: function (val) { |
| | | // console.log('更新页面啦') |
| | | this.initData() |
| | | } |
| | |
| | | }) |
| | | }, |
| | | // 初始化数据 |
| | | initData(){ |
| | | initData() { |
| | | this.allBandList = [] |
| | | this.intermodulationNum = 0 |
| | | // 处理项目 |
| | | this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m=>m.inspectionItem.includes('电路试验')) |
| | | this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m => m.inspectionItem.includes('电路试验')) |
| | | this.insProductNew.forEach(async item => { |
| | | if(item.inspectionItemSubclass.includes('互调')){ |
| | | this.intermodulationNum++ |
| | | } |
| | | if (item.inspectionItemSubclass.includes('互调')) { |
| | | this.intermodulationNum++ |
| | | } |
| | | // 获取设备列表 |
| | | item.equipOptions = [] |
| | | }) |
| | | if(this.insProductNew[0].insProductResult2&&this.insProductNew[0].insProductResult2.length>0){ |
| | | if (this.insProductNew[0].insProductResult2 && this.insProductNew[0].insProductResult2.length > 0) { |
| | | // 已经存在值时,赋值 |
| | | let bandList = this.insProductNew[0].insProductResult2.map(m=>m.frequency) |
| | | let bandList = this.insProductNew[0].insProductResult2.map(m => m.frequency) |
| | | bandList = Array.from(new Set(bandList)) |
| | | // 上传附件后,设置检验项数据为空的内容 |
| | | let sample = this.insProductNew[0];//获取驻波比的数据,如果驻波比值存在而其他检验项值不存在,则根据驻波比设置默认数据 |
| | | if(sample.insProductResult2&&sample.insProductResult2.length>0){ |
| | | if (sample.insProductResult2 && sample.insProductResult2.length > 0) { |
| | | this.insProductNew.forEach(item => { |
| | | if(!item.inspectionItemSubclass.includes('驻波比')&&(!item.insProductResult2||item.insProductResult2.length==0||item.insProductResult2.length<bandList.length)){ |
| | | if(!(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length)){ |
| | | if (!item.inspectionItemSubclass.includes('驻波比') && (!item.insProductResult2 || item.insProductResult2.length == 0 || item.insProductResult2.length < bandList.length)) { |
| | | if (!(item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length)) { |
| | | item.insProductResult2 = [] |
| | | } |
| | | sample.insProductResult2.forEach(m=>{ |
| | | sample.insProductResult2.forEach(m => { |
| | | let obj = this.HaveJson(m) |
| | | // 如果数据有,但是不够所有频段的数量,则补全数据 |
| | | if(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length){ |
| | | let obj0 = item.insProductResult2.find(n=>m.frequency==n.frequency) |
| | | if(!obj0){ |
| | | if (item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length) { |
| | | let obj0 = item.insProductResult2.find(n => m.frequency == n.frequency) |
| | | if (!obj0) { |
| | | let port = '1,2,3,4' |
| | | let value = JSON.parse(m.value) |
| | | let value0 = [] |
| | | value.forEach(n=>{ |
| | | if(!item.inspectionItemSubclass.includes('耦合度')){ |
| | | value0.push(['','','','']) |
| | | }else{ |
| | | value.forEach(n => { |
| | | if (!item.inspectionItemSubclass.includes('耦合度')) { |
| | | value0.push(['', '', '', '']) |
| | | } else { |
| | | value0.push(['']) |
| | | } |
| | | }) |
| | |
| | | obj.value = JSON.stringify(value0) |
| | | item.insProductResult2.push(obj) |
| | | } |
| | | }else{ |
| | | } else { |
| | | // 如果一条数据都没有,则补全数据 |
| | | let port = '1,2,3,4' |
| | | let value = JSON.parse(m.value) |
| | | let value0 = [] |
| | | value.forEach(n=>{ |
| | | if(!item.inspectionItemSubclass.includes('耦合度')){ |
| | | value0.push(['','','','']) |
| | | }else{ |
| | | value.forEach(n => { |
| | | if (!item.inspectionItemSubclass.includes('耦合度')) { |
| | | value0.push(['', '', '', '']) |
| | | } else { |
| | | value0.push(['']) |
| | | } |
| | | }) |
| | |
| | | } |
| | | // 继续回显数据 |
| | | this.allBandList = [] |
| | | for(let i = 0;i<bandList.length;i++){ |
| | | for (let i = 0; i < bandList.length; i++) { |
| | | let arr = [] |
| | | this.insProductNew.forEach(item => { |
| | | let equipNameList = [] |
| | | let equipValueList = [] |
| | | item.insProductResult2.forEach(n => { |
| | | if(n.frequency===bandList[i]){ |
| | | if (n.frequency === bandList[i]) { |
| | | // 赋值页面设备名称和值 |
| | | if(n.equipValue){ |
| | | if (n.equipValue) { |
| | | equipNameList.push(n.equipName) |
| | | equipValueList.push(n.equipValue) |
| | | } |
| | | // 以下为赋值列表信息 |
| | | let portList = [] |
| | | let angleList = [] |
| | | if(n.port&&n.port.split(',').length>0){ |
| | | n.port.split(',').forEach(m=>{ |
| | | portList.push({value:m}) |
| | | if (n.port && n.port.split(',').length > 0) { |
| | | n.port.split(',').forEach(m => { |
| | | portList.push({ value: m }) |
| | | }) |
| | | } |
| | | if(n.angle&&n.angle.split(',').length>0){ |
| | | n.angle.split(',').forEach(m=>{ |
| | | angleList.push({value:m}) |
| | | if (n.angle && n.angle.split(',').length > 0) { |
| | | n.angle.split(',').forEach(m => { |
| | | angleList.push({ value: m }) |
| | | }) |
| | | this.angleList = angleList |
| | | this.upTemplateState = false; |
| | | } |
| | | let ask = '' |
| | | if(item.ask.includes(',')){ |
| | | item.ask.split(',').forEach((m,i)=>{ |
| | | ask = ask + m+ (i==item.ask.split(',').length-1?'':'<br/>') |
| | | if (item.ask.includes(',')) { |
| | | item.ask.split(',').forEach((m, i) => { |
| | | ask = ask + m + (i == item.ask.split(',').length - 1 ? '' : '<br/>') |
| | | }) |
| | | }else{ |
| | | } else { |
| | | ask = item.ask |
| | | } |
| | | console.log(ask) |
| | | let obj = { |
| | | inspectionItemSubclass: item.inspectionItemSubclass, |
| | | unit:item.unit, |
| | | ask:ask, |
| | | result:n.result, |
| | | id:item.id, |
| | | often:n.often, |
| | | equipName:n.equipName, |
| | | equipValue:n.equipValue, |
| | | frequency:n.frequency, |
| | | sonLaboratory:item.sonLaboratory, |
| | | portNum:JSON.parse(n.value).length>0?JSON.parse(n.value)[0].length:4 |
| | | unit: item.unit, |
| | | ask: ask, |
| | | result: n.result, |
| | | id: item.id, |
| | | often: n.often, |
| | | equipName: n.equipName, |
| | | equipValue: n.equipValue, |
| | | frequency: n.frequency, |
| | | sonLaboratory: item.sonLaboratory, |
| | | portNum: JSON.parse(n.value).length > 0 ? JSON.parse(n.value)[0].length : 4 |
| | | } |
| | | this.$set(obj,'portList', n.port?portList:[]) |
| | | this.$set(obj,'angleList', n.angle?angleList:[]) |
| | | this.$set(obj,'value', JSON.parse(n.value)) |
| | | this.$set(obj, 'portList', n.port ? portList : []) |
| | | this.$set(obj, 'angleList', n.angle ? angleList : []) |
| | | this.$set(obj, 'value', JSON.parse(n.value)) |
| | | arr.push(obj) |
| | | } |
| | | }) |
| | | if(equipValueList.length>0){ |
| | | this.$delete(item,'equipName') |
| | | this.$delete(item,'equipValue') |
| | | this.$set(item,'equipName',equipNameList[equipNameList.length-1]) |
| | | this.$set(item,'equipValue',equipValueList[equipValueList.length-1]) |
| | | if (equipValueList.length > 0) { |
| | | this.$delete(item, 'equipName') |
| | | this.$delete(item, 'equipValue') |
| | | this.$set(item, 'equipName', equipNameList[equipNameList.length - 1]) |
| | | this.$set(item, 'equipValue', equipValueList[equipValueList.length - 1]) |
| | | } |
| | | }) |
| | | this.$set(this.allBandList,i, { |
| | | this.$set(this.allBandList, i, { |
| | | band: bandList[i], |
| | | projectList: arr |
| | | }) |
| | | } |
| | | }else{ |
| | | } else { |
| | | console.log(2222) |
| | | // 没有值时,初始化页面 |
| | | this.insProductNew.forEach(async item => { |
| | |
| | | // 赋值端口和角度 |
| | | this.portList = [ |
| | | { |
| | | value:'1', |
| | | value: '1', |
| | | }, |
| | | { |
| | | value:'2', |
| | | value: '2', |
| | | }, |
| | | { |
| | | value:'3', |
| | | value: '3', |
| | | }, |
| | | { |
| | | value:'4', |
| | | value: '4', |
| | | }, |
| | | ] |
| | | this.angleList = [ |
| | | { |
| | | value:'' |
| | | value: '' |
| | | } |
| | | ] |
| | | item.portList = JSON.parse(JSON.stringify(this.portList)) |
| | |
| | | // 赋值最差值 |
| | | item.value = [] |
| | | item.portNum = 4 |
| | | if(item.inspectionItemSubclass.includes('耦合度')){ |
| | | for(let i = 0;i<item.angleList.length;i++){ |
| | | if (item.inspectionItemSubclass.includes('耦合度')) { |
| | | for (let i = 0; i < item.angleList.length; i++) { |
| | | item.value.push(['']) |
| | | } |
| | | }else{ |
| | | for(let i = 0;i<item.angleList.length;i++){ |
| | | } else { |
| | | for (let i = 0; i < item.angleList.length; i++) { |
| | | item.value.push([]) |
| | | for(let j=0;j<item.portList.length;j++){ |
| | | for (let j = 0; j < item.portList.length; j++) { |
| | | item.value[i].push('') |
| | | } |
| | | } |
| | |
| | | // 初始化频段 |
| | | this.allBandList.push( |
| | | { |
| | | band:'', |
| | | band: '', |
| | | projectList: JSON.parse(JSON.stringify(this.insProductNew)) |
| | | } |
| | | ) |
| | |
| | | } |
| | | }, |
| | | // 删除数组 |
| | | deleteList(index,list,type){ |
| | | deleteList(index, list, type) { |
| | | this.upTemplateState = false; |
| | | if(list.length>1){ |
| | | if(type=='互调'){ |
| | | if (list.length > 1) { |
| | | if (type == '互调') { |
| | | // let index = null; |
| | | let num = 0; |
| | | list.forEach((m,i)=>{ |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | list.forEach((m, i) => { |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | // index = i; |
| | | num++ |
| | | } |
| | | }) |
| | | if(num==1){ |
| | | if (num == 1) { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '不能删除最后一个互调' |
| | | }); |
| | | }else{ |
| | | } else { |
| | | list.splice(index, 1) |
| | | } |
| | | }else if(type=='删除频段'){ |
| | | } else if (type == '删除频段') { |
| | | this.$confirm(`是否确定删除 ${list[index].band} 频段数据?`, "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | this.$axios.post(this.$api.insOrderPlan.deleteInsContext, { |
| | | frequency:list[index].band, |
| | | productIds:list[index].projectList.map(m=>m.id), |
| | | num:this.num |
| | | frequency: list[index].band, |
| | | productIds: list[index].projectList.map(m => m.id), |
| | | num: this.num |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then(res => { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }).then(res => { |
| | | if (res.code === 201) { |
| | | this.$message.error('删除失败') |
| | | return |
| | |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }).catch(() => {}) |
| | | }else{ |
| | | }).catch(() => { }) |
| | | } else { |
| | | list.splice(index, 1) |
| | | } |
| | | }else{ |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '不能删除最后一个' |
| | |
| | | } |
| | | }, |
| | | // 添加数组 |
| | | addList(list,type){ |
| | | addList(list, type) { |
| | | this.upTemplateState = false; |
| | | if(type=='互调'){ |
| | | if (type == '互调') { |
| | | let obj = null; |
| | | let index = null; |
| | | list.forEach((m,i)=>{ |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | list.forEach((m, i) => { |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | obj = JSON.parse(JSON.stringify(m)); |
| | | index = i; |
| | | } |
| | |
| | | let num1 = obj.value[0].length |
| | | delete obj.value |
| | | obj.value = [] |
| | | for(let i = 0;i<num0;i++){ |
| | | for (let i = 0; i < num0; i++) { |
| | | obj.value.push([]) |
| | | for(let j = 0;j<num1;j++){ |
| | | for (let j = 0; j < num1; j++) { |
| | | obj.value[i].push('') |
| | | } |
| | | } |
| | | list.splice(index+1, 0, obj) |
| | | }else if(type=='频段'){ |
| | | list.splice(index + 1, 0, obj) |
| | | } else if (type == '频段') { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.band = '' |
| | | obj.projectList.forEach(item=>{ |
| | | obj.projectList.forEach(item => { |
| | | item.often = '' |
| | | item.result = '' |
| | | item.frequency = '' |
| | |
| | | let num1 = item.value[0].length |
| | | delete item.value |
| | | item.value = [] |
| | | for(let i = 0;i<num0;i++){ |
| | | for (let i = 0; i < num0; i++) { |
| | | item.value.push([]) |
| | | for(let j = 0;j<num1;j++){ |
| | | for (let j = 0; j < num1; j++) { |
| | | item.value[i].push('') |
| | | } |
| | | } |
| | | }) |
| | | list.push(obj) |
| | | }else if('端口'){ |
| | | } else if ('端口') { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.value = null; |
| | | list.push(obj) |
| | | }else{ |
| | | } else { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | list.push(obj) |
| | | } |
| | | }, |
| | | // 改变端口 |
| | | changePort(num,list){ |
| | | if(num>list.length){ |
| | | for(let i = list.length;i<num;i++){ |
| | | changePort(num, list) { |
| | | if (num > list.length) { |
| | | for (let i = list.length; i < num; i++) { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.value = null; |
| | | list.push(obj) |
| | | } |
| | | }else if(num<list.length){ |
| | | for(let i = list.length;i>num;i--){ |
| | | } else if (num < list.length) { |
| | | for (let i = list.length; i > num; i--) { |
| | | list.pop() |
| | | } |
| | | } |
| | |
| | | } |
| | | return arr |
| | | }, |
| | | async methodFocus(item){ |
| | | async methodFocus(item) { |
| | | this.$delete(item, 'equipOptions') |
| | | this.$set(item, 'equipOptions', await this.getEquipOptions(item)) |
| | | }, |
| | | handleEquip(m,item){ |
| | | handleEquip(m, item) { |
| | | this.$delete(item, 'equipValue') |
| | | this.$set(item, 'equipValue', m) |
| | | this.$delete(item, 'equipName') |
| | | this.$set(item, 'equipName', item.equipOptions.find(m=>m.value==item.equipValue).label) |
| | | this.$set(item, 'equipName', item.equipOptions.find(m => m.value == item.equipValue).label) |
| | | }, |
| | | // 统一修改同一频段的角度,如果角度没有带°,则拼接一个 |
| | | handleAngle(e,index,band){ |
| | | if(!e){ |
| | | handleAngle(e, index, band) { |
| | | if (!e) { |
| | | return |
| | | } |
| | | let val = e |
| | | if(!val.includes('°')){ |
| | | if (!val.includes('°')) { |
| | | val = val + '°' |
| | | } |
| | | this.allBandList.forEach(item=>{ |
| | | if(item.band==band){ |
| | | item.projectList.forEach(m=>{ |
| | | m.angleList.forEach((n,i)=>{ |
| | | if(index==i){ |
| | | this.allBandList.forEach(item => { |
| | | if (item.band == band) { |
| | | item.projectList.forEach(m => { |
| | | m.angleList.forEach((n, i) => { |
| | | if (index == i) { |
| | | n.value = val |
| | | } |
| | | }) |
| | |
| | | } |
| | | }) |
| | | }, |
| | | handlePort(n){ |
| | | if(!n.often){ |
| | | handlePort(n) { |
| | | if (!n.often) { |
| | | return |
| | | } |
| | | if(!n.often.includes('MHz')&&!n.often.includes('MHZ')){ |
| | | if (!n.often.includes('MHz') && !n.often.includes('MHZ')) { |
| | | n.often = n.often + 'MHz' |
| | | } |
| | | }, |
| | | save(h,y) { |
| | | let arr = h.projectList.map(item=>{ |
| | | if(item.portList&&item.portList.length>0){ |
| | | item.value.forEach(m=>{ |
| | | save(h, y) { |
| | | let arr = h.projectList.map(item => { |
| | | if (item.portList && item.portList.length > 0) { |
| | | item.value.forEach(m => { |
| | | m = m.splice(item.portList.length) |
| | | }) |
| | | } |
| | | let obj = { |
| | | insProductId:item.id, |
| | | equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue, |
| | | equipName:this.insProductNew.find(m=>m.id==item.id).equipName, |
| | | port:item.portList.map(m=>m.value).join(','), |
| | | angle:item.angleList.map(m=>m.value).join(','), |
| | | value:JSON.stringify(item.value), |
| | | often:item.often |
| | | insProductId: item.id, |
| | | equipValue: this.insProductNew.find(m => m.id == item.id).equipValue, |
| | | equipName: this.insProductNew.find(m => m.id == item.id).equipName, |
| | | port: item.portList.map(m => m.value).join(','), |
| | | angle: item.angleList.map(m => m.value).join(','), |
| | | value: JSON.stringify(item.value), |
| | | often: item.often |
| | | } |
| | | return obj |
| | | }) |
| | | this.$delete(this.loading, y) |
| | | this.$set( this.loading, y, true) |
| | | this.$set(this.loading, y, true) |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext2, { |
| | | // orderId:this.orderId, |
| | | sampleId:this.orderId, |
| | | sonLaboratory:h.projectList[0].sonLaboratory, |
| | | frequency:h.band, |
| | | insProductResult2s:arr |
| | | sampleId: this.orderId, |
| | | sonLaboratory: h.projectList[0].sonLaboratory, |
| | | frequency: h.band, |
| | | insProductResult2s: arr |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then(res => { |
| | | this.$set( this.loading, y, false) |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }).then(res => { |
| | | this.$set(this.loading, y, false) |
| | | // this.loading[y] = false |
| | | if (res.code === 201) { |
| | | this.$message.error('保存失败') |
| | | return |
| | | } |
| | | for(let i=0;i<res.data.length;i++){ |
| | | for (let i = 0; i < res.data.length; i++) { |
| | | h.projectList[i].result = res.data[i] |
| | | } |
| | | this.$message.success('已保存') |
| | |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | async saveAll(){ |
| | | if(this.allBandList.find(m=>!m.band)){ |
| | | async saveAll() { |
| | | if (this.allBandList.find(m => !m.band)) { |
| | | this.$message.error('请先填写频段') |
| | | return false |
| | | }else{ |
| | | } else { |
| | | let arr0 = [] |
| | | this.allBandList.forEach((h,j)=>{ |
| | | this.allBandList.forEach((h, j) => { |
| | | // this.save(h,j) |
| | | let arr = h.projectList.map(item=>{ |
| | | if(item.portList&&item.portList.length>0){ |
| | | item.value.forEach(m=>{ |
| | | let arr = h.projectList.map(item => { |
| | | if (item.portList && item.portList.length > 0) { |
| | | item.value.forEach(m => { |
| | | m = m.splice(item.portList.length) |
| | | }) |
| | | } |
| | | let obj = { |
| | | insProductId:item.id, |
| | | equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue, |
| | | equipName:this.insProductNew.find(m=>m.id==item.id).equipName, |
| | | port:item.portList.map(m=>m.value).join(','), |
| | | angle:item.angleList.map(m=>m.value).join(','), |
| | | value:JSON.stringify(item.value), |
| | | often:item.often |
| | | insProductId: item.id, |
| | | equipValue: this.insProductNew.find(m => m.id == item.id).equipValue, |
| | | equipName: this.insProductNew.find(m => m.id == item.id).equipName, |
| | | port: item.portList.map(m => m.value).join(','), |
| | | angle: item.angleList.map(m => m.value).join(','), |
| | | value: JSON.stringify(item.value), |
| | | often: item.often |
| | | } |
| | | return obj |
| | | }) |
| | | let obj0 = { |
| | | sampleId:this.orderId, |
| | | sonLaboratory:h.projectList[0].sonLaboratory, |
| | | frequency:h.band, |
| | | insProductResult2s:arr |
| | | sampleId: this.orderId, |
| | | sonLaboratory: h.projectList[0].sonLaboratory, |
| | | frequency: h.band, |
| | | insProductResult2s: arr |
| | | } |
| | | arr0.push(obj0) |
| | | }) |
| | | let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, {insProductResultDtos:arr0 |
| | | let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, { |
| | | insProductResultDtos: arr0 |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}) |
| | | if(res.code===201){ |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }) |
| | | if (res.code === 201) { |
| | | this.$message.error('保存失败') |
| | | return false |
| | | }else{ |
| | | } else { |
| | | this.$message.success('已保存') |
| | | return true |
| | | } |
| | | } |
| | | }, |
| | | // 更新模板 |
| | | upTemplate(obj){ |
| | | upTemplate(obj) { |
| | | this.upTemplateState = true; |
| | | // return |
| | | obj.allBandList.forEach((item,index)=>{ |
| | | if(!this.allBandList[index]){ |
| | | this.$set(this.allBandList, index, {projectList:this.HaveJson(this.allBandList[0].projectList)}) |
| | | obj.allBandList.forEach((item, index) => { |
| | | if (!this.allBandList[index]) { |
| | | this.$set(this.allBandList, index, { projectList: this.HaveJson(this.allBandList[0].projectList) }) |
| | | // this.allBandList[index] = { |
| | | // projectList:this.HaveJson(this.allBandList[0].projectList) |
| | | // } |
| | | } |
| | | this.allBandList[index].band = item.band |
| | | let arr = [] |
| | | item.projectList.forEach((m,i)=>{ |
| | | if(this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass)){ |
| | | item.projectList.forEach((m, i) => { |
| | | if (this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass)) { |
| | | let obj0 = { |
| | | angleList:m.angleList, |
| | | portList:m.portList, |
| | | portNum:m.portNum, |
| | | valueType:m.valueType |
| | | angleList: m.angleList, |
| | | portList: m.portList, |
| | | portNum: m.portNum, |
| | | valueType: m.valueType |
| | | } |
| | | this.$set(obj0,'value',m.value) |
| | | arr.push({...this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass),...obj0}) |
| | | this.$set(obj0, 'value', m.value) |
| | | arr.push({ ...this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass), ...obj0 }) |
| | | } |
| | | }) |
| | | this.$delete(this.allBandList[index],'projectList') |
| | | this.$set(this.allBandList[index],'projectList',arr) |
| | | this.$delete(this.allBandList[index], 'projectList') |
| | | this.$set(this.allBandList[index], 'projectList', arr) |
| | | // this.allBandList[index].projectList = arr |
| | | }) |
| | | this.angleList = obj.angleList |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .circuit-parameters{ |
| | | .circuit-parameters { |
| | | position: relative; |
| | | overflow: visible; |
| | | } |
| | | .circuit-parameters-item{ |
| | | |
| | | .circuit-parameters-item { |
| | | margin-bottom: 10px; |
| | | border: 1px solid #eee; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | border-radius: 8px; |
| | | } |
| | | .circuit-parameters-item-title{ |
| | | |
| | | .circuit-parameters-item-title { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .thermal-table{ |
| | | |
| | | .thermal-table { |
| | | min-width: calc(100% - 10px); |
| | | table-layout: fixed; |
| | | } |
| | | .thermal-table td,.thermal-table th { |
| | | min-width: 70px; |
| | | |
| | | .thermal-table td, |
| | | .thermal-table th { |
| | | min-width: 120px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | padding: 5px; |
| | | } |
| | | .thermal-table .el-input{ |
| | | |
| | | .thermal-table .el-input { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .equip{ |
| | | |
| | | .equip { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .red{ |
| | | |
| | | .red { |
| | | color: red; |
| | | } |
| | | .green{ |
| | | |
| | | .green { |
| | | color: green; |
| | | } |
| | | |
| | | >>>.el-input-number { |
| | | display: inline-flex; |
| | | flex-direction: column !important; |
| | | line-height: 26px; |
| | | } |
| | | |
| | | >>>.el-input-number__increase, >>>.el-input-number__decrease { |
| | | >>>.el-input-number__increase, |
| | | >>>.el-input-number__decrease { |
| | | width: 26px; |
| | | height: 26px; |
| | | } |
| | | >>>.el-input-number__increase{ |
| | | |
| | | >>>.el-input-number__increase { |
| | | top: 36px; |
| | | left: 10px; |
| | | border: 0px; |
| | |
| | | background: #3A7BFA; |
| | | color: #fff; |
| | | } |
| | | >>>.el-input-number__decrease{ |
| | | |
| | | >>>.el-input-number__decrease { |
| | | top: -30px; |
| | | border: 0px; |
| | | border-radius: 50%; |
| | |
| | | background: #F56C6C; |
| | | color: #fff; |
| | | } |
| | | >>>.el-input-number .el-input{ |
| | | |
| | | >>>.el-input-number .el-input { |
| | | width: 50px; |
| | | } |
| | | >>>.el-input-number .el-input__inner{ |
| | | |
| | | >>>.el-input-number .el-input__inner { |
| | | width: 50px; |
| | | padding: 0; |
| | | } |
| | |
| | | <el-col :span="17"> |
| | | <el-row> |
| | | <el-col :span="23" style="display: flex;flex-wrap: wrap;"> |
| | | <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" v-for="(item,index) in insProductNew" :key="index + 'ppp'" v-show="isMore?true:(index<3?true:false)"> |
| | | <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" |
| | | v-for="(item, index) in insProductNew" :key="index + 'ppp'" |
| | | v-show="isMore ? true : (index < 3 ? true : false)"> |
| | | <tr> |
| | | <td style="text-align: center;background: #F0F1F5;"> |
| | | <el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ item.inspectionItemSubclass }}</span> |
| | | <el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span |
| | | style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ |
| | | item.inspectionItemSubclass }}</span> |
| | | </el-tooltip> |
| | | </td> |
| | | <td> |
| | | <el-input size="small" placeholder="设备名称" v-model="item.equipName" readonly></el-input> |
| | | </td> |
| | | <td> |
| | | <el-select v-model="item.equipValue" placeholder="设备编码" size="small" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)"> |
| | | <el-option |
| | | v-for="m in item.equipOptions" |
| | | :key="m.value" |
| | | :label="m.value" |
| | | :value="m.value"> |
| | | <el-select v-model="item.equipValue" placeholder="设备编码" size="small" :disabled="state > 1" |
| | | @focus="methodFocus(item)" @change="m => handleEquip(m, item)"> |
| | | <el-option v-for="m in item.equipOptions" :key="m.value" :label="m.value" :value="m.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </el-col> |
| | | <el-col :span="1" v-show="insProductNew.length>3"> |
| | | <el-button icon="el-icon-arrow-down" type="text" @click="isMore=true" v-if="!isMore">更多</el-button> |
| | | <el-button icon="el-icon-arrow-up" type="text" @click="isMore=false" v-if="isMore">收起</el-button> |
| | | <el-col :span="1" v-show="insProductNew.length > 3"> |
| | | <el-button icon="el-icon-arrow-down" type="text" @click="isMore = true" v-if="!isMore">更多</el-button> |
| | | <el-button icon="el-icon-arrow-up" type="text" @click="isMore = false" v-if="isMore">收起</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-col> |
| | | <el-col :span="7" v-if="!isLook"> |
| | | <div style="display: flex;align-items: center;justify-content: flex-end;" class="btns"> |
| | | <el-button type="primary" size="small" @click="addList(allBandList,'频段')" :disabled="state>1" style="margin: 4px;">添加频段</el-button> |
| | | <el-button type="success" size="small" @click="addList(angleList)" v-if="!(state>1)&&intermodulationNum>0" style="margin: 4px;">添加角度</el-button> |
| | | <el-button size="small" @click="deleteList(angleList.length-1,angleList)" v-if="!(state>1)&&intermodulationNum>0" style="margin: 4px;" type="danger">删除角度</el-button> |
| | | <el-button type="primary" size="small" @click="addList(allBandList, '频段')" :disabled="state > 1" |
| | | style="margin: 4px;">添加频段</el-button> |
| | | <el-button type="success" size="small" @click="addList(angleList)" |
| | | v-if="!(state > 1) && intermodulationNum > 0" style="margin: 4px;">添加角度</el-button> |
| | | <el-button size="small" @click="deleteList(angleList.length - 1, angleList)" |
| | | v-if="!(state > 1) && intermodulationNum > 0" style="margin: 4px;" type="danger">删除角度</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="5" style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;"> |
| | | <el-row :gutter="5" |
| | | style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">检验项目</div> |
| | | </el-col> |
| | |
| | | <div style="text-align: center;">结论</div> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="circuit-parameters-item" v-for="(h,y) in allBandList" :key="y+'ooo'"> |
| | | <div class="circuit-parameters-item" v-for="(h, y) in allBandList" :key="y + 'ooo'"> |
| | | <div class="circuit-parameters-item-title"> |
| | | <span>频段:</span> |
| | | <el-select v-model="h.band" placeholder="请选择" size="small" style="width: 200px;" :disabled="state>1"> |
| | | <el-option |
| | | v-for="item in bandList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | <el-select v-model="h.band" placeholder="请选择" size="small" style="width: 200px;" :disabled="state > 1"> |
| | | <el-option v-for="item in bandList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button size="small" @click="deleteList(y,allBandList,'删除频段')" :disabled="state>1" style="margin-left: 16px;" type="danger">删除频段</el-button> |
| | | <el-button type="primary" size="small" @click="addList(h.projectList,'互调')" style="margin-left: 16px;" v-if="intermodulationNum>0&&!(state>1)">添加互调</el-button> |
| | | <el-button size="small" @click="deleteList(y, allBandList, '删除频段')" :disabled="state > 1" |
| | | style="margin-left: 16px;" type="danger">删除频段</el-button> |
| | | <el-button type="primary" size="small" @click="addList(h.projectList, '互调')" style="margin-left: 16px;" |
| | | v-if="intermodulationNum > 0 && !(state > 1)">添加互调</el-button> |
| | | <!-- <el-button size="small" @click="deleteList(0,h.projectList,'互调')" v-if="intermodulationNum>0&&!(state>1)">删除互调</el-button> --> |
| | | <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" style="margin-left: 16px;" v-show="!isLook">保 存</el-button> |
| | | <el-button type="primary" size="small" @click="save(h, y)" :disabled="state > 1" :loading="loading[y]" |
| | | style="margin-left: 16px;" v-show="!isLook">保 存</el-button> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="circuit-parameters-item-content"> |
| | | <template v-for="(n,j) in h.projectList"> |
| | | <template v-for="(n, j) in h.projectList"> |
| | | <!-- 电压驻波比/同极化隔离度/异极化隔离度 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('驻波比')||n.inspectionItemSubclass.includes('隔离度')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('驻波比') || n.inspectionItemSubclass.includes('隔离度')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>端口</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'aaa'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'aaa'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | |
| | | <td> |
| | | <span>最差值</span> |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : '待定')) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 互调 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('互调')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('互调')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>频段</td> |
| | | <td :colspan="n.portList.length+1"> |
| | | <td :colspan="n.portList.length + 1"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <!-- <el-input size="small" placeholder="频点" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input> --> |
| | | <el-select v-model="n.often" placeholder="请选择" size="small" style="width: 200px;" :disabled="state>1"> |
| | | <el-option |
| | | v-for="item in bandList0" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | <el-select v-model="n.often" placeholder="请选择" size="small" style="width: 200px;" |
| | | :disabled="state > 1"> |
| | | <el-option v-for="item in bandList0" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button type="danger" icon="el-icon-delete" circle size="small" @click="deleteList(j,h.projectList,'互调')" :disabled="state>1" v-show="!isLook&&intermodulationNum>0" style="margin-left: 20px;"></el-button> |
| | | <el-button type="danger" icon="el-icon-delete" circle size="small" |
| | | @click="deleteList(j, h.projectList, '互调')" :disabled="state > 1" |
| | | v-show="!isLook && intermodulationNum > 0" style="margin-left: 20px;"></el-button> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>端口</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'fff'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'fff'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(item,index) in n.angleList" :key="index + 'eee'"> |
| | | <tr v-for="(item, index) in n.angleList" :key="index + 'eee'"> |
| | | <td> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state>1" @blur="handleAngle(item.value,index,h.band)"></el-input> |
| | | <el-input size="small" placeholder="角度" v-model="item.value" :disabled="state > 1" |
| | | @blur="handleAngle(item.value, index, h.band)"></el-input> |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[index][i]" v-if="n.value[index]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : '待定')) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-divider v-if="j!=h.projectList.length-1"></el-divider> |
| | | <el-divider v-if="j != h.projectList.length - 1"></el-divider> |
| | | </template> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | export default { |
| | | props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'], |
| | | props: ['insProduct', 'orderId', 'sampleId', 'state', 'num', 'isLook', 'currentNum'], |
| | | data() { |
| | | return { |
| | | value: "", |
| | | bandList:[], |
| | | bandList0:[], |
| | | portList:[ |
| | | bandList: [], |
| | | bandList0: [], |
| | | portList: [ |
| | | { |
| | | value:'1', |
| | | value: '1', |
| | | }, |
| | | { |
| | | value:'2', |
| | | value: '2', |
| | | }, |
| | | { |
| | | value:'3', |
| | | value: '3', |
| | | }, |
| | | { |
| | | value:'4', |
| | | value: '4', |
| | | }, |
| | | ], |
| | | angleList:[ |
| | | angleList: [ |
| | | { |
| | | value:'' |
| | | value: '' |
| | | } |
| | | ], |
| | | projectList:[ |
| | | projectList: [ |
| | | { |
| | | inspectionItemSubclass:'电压驻波比', |
| | | unit:'/', |
| | | ask:'≤1.45', |
| | | result:0, |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | inspectionItemSubclass: '电压驻波比', |
| | | unit: '/', |
| | | ask: '≤1.45', |
| | | result: 0, |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | inspectionItemSubclass:'同极化隔离度', |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:0, |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | inspectionItemSubclass: '同极化隔离度', |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: 0, |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | inspectionItemSubclass:'互调', |
| | | often:'',//互调特有字段 |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:0, |
| | | portList:[], |
| | | angleList:[], |
| | | value:[],//双层数组 |
| | | inspectionItemSubclass: '互调', |
| | | often: '',//互调特有字段 |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: 0, |
| | | portList: [], |
| | | angleList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | ], |
| | | allBandList:[],//频段 |
| | | isMore:false, |
| | | insProductNew:[], |
| | | intermodulationNum:0,//互调检验项目的数量 |
| | | loading:{}, |
| | | upTemplateState:false, |
| | | allBandList: [],//频段 |
| | | isMore: false, |
| | | insProductNew: [], |
| | | intermodulationNum: 0,//互调检验项目的数量 |
| | | loading: {}, |
| | | upTemplateState: false, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // 角度数量变化时,更新所有频段下面的所有项目下的所有端口和角度 |
| | | angleList(val) { |
| | | if(!this.upTemplateState){ |
| | | if (!this.upTemplateState) { |
| | | this.allBandList.forEach(item => { |
| | | item.projectList.forEach(m => { |
| | | if(m.angleList.length!==val.length){ |
| | | m.angleList = JSON.parse(JSON.stringify(this.angleList)) |
| | | } |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | for(let i = 0;i<m.angleList.length;i++){ |
| | | if(!m.value[i]){ |
| | | this.$set(m.value,i, []) |
| | | item.projectList.forEach(m => { |
| | | if (m.angleList.length !== val.length) { |
| | | m.angleList = JSON.parse(JSON.stringify(this.angleList)) |
| | | } |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | for (let i = 0; i < m.angleList.length; i++) { |
| | | if (!m.value[i]) { |
| | | this.$set(m.value, i, []) |
| | | } |
| | | for (let j = 0; j < m.portList.length; j++) { |
| | | if (!m.value[i][j]) { |
| | | m.value[i].push('') |
| | | } |
| | | } |
| | | } |
| | | for(let j=0;j<m.portList.length;j++){ |
| | | if(!m.value[i][j]){ |
| | | m.value[i].push('') |
| | | } else { |
| | | for (let j = 0; j < m.portList.length; j++) { |
| | | if (!m.value[0][j]) { |
| | | m.value[0].push('') |
| | | } |
| | | } |
| | | } |
| | | }else{ |
| | | for(let j=0;j<m.portList.length;j++){ |
| | | if(!m.value[0][j]){ |
| | | m.value[0].push('') |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | currentNum(val) { |
| | | this.initData() |
| | | }, |
| | | insProduct:{ |
| | | deep:true, |
| | | handler:function(val){ |
| | | insProduct: { |
| | | deep: true, |
| | | handler: function (val) { |
| | | this.initData() |
| | | } |
| | | } |
| | |
| | | }) |
| | | }, |
| | | // 初始化数据 |
| | | initData(){ |
| | | initData() { |
| | | this.allBandList = [] |
| | | this.intermodulationNum = 0 |
| | | // 处理项目 |
| | | this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m=>m.inspectionItem.includes('电路试验')) |
| | | this.insProductNew.forEach( item => { |
| | | this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m => m.inspectionItem.includes('电路试验')) |
| | | this.insProductNew.forEach(item => { |
| | | // 是否存在互调检验项目 |
| | | if(item.inspectionItemSubclass.includes('互调')){ |
| | | if (item.inspectionItemSubclass.includes('互调')) { |
| | | this.intermodulationNum++ |
| | | } |
| | | // 获取设备列表 |
| | | item.equipOptions = [] |
| | | }) |
| | | if(this.insProductNew[0].insProductResult2&&this.insProductNew[0].insProductResult2.length>0){ |
| | | if (this.insProductNew[0].insProductResult2 && this.insProductNew[0].insProductResult2.length > 0) { |
| | | // 已经存在值时,赋值 |
| | | let bandList = this.insProductNew[0].insProductResult2.map(m=>m.frequency) |
| | | let bandList = this.insProductNew[0].insProductResult2.map(m => m.frequency) |
| | | bandList = Array.from(new Set(bandList)) |
| | | // 上传附件后,设置检验项数据为空的内容 |
| | | let sample = this.insProductNew[0];//获取驻波比的数据,如果驻波比值存在而其他检验项值不存在,则根据驻波比设置默认数据 |
| | | if(sample.insProductResult2&&sample.insProductResult2.length>0){ |
| | | if (sample.insProductResult2 && sample.insProductResult2.length > 0) { |
| | | this.insProductNew.forEach(item => { |
| | | if(!item.inspectionItemSubclass.includes('驻波比')&&(!item.insProductResult2||item.insProductResult2.length==0||item.insProductResult2.length<bandList.length)){ |
| | | if(!(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length)){ |
| | | if (!item.inspectionItemSubclass.includes('驻波比') && (!item.insProductResult2 || item.insProductResult2.length == 0 || item.insProductResult2.length < bandList.length)) { |
| | | if (!(item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length)) { |
| | | item.insProductResult2 = [] |
| | | } |
| | | sample.insProductResult2.forEach(m=>{ |
| | | sample.insProductResult2.forEach(m => { |
| | | let obj = this.HaveJson(m) |
| | | // 如果数据有,但是不够所有频段的数量,则补全数据 |
| | | if(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length){ |
| | | let obj0 = item.insProductResult2.find(n=>m.frequency==n.frequency) |
| | | if(!obj0){ |
| | | if (item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length) { |
| | | let obj0 = item.insProductResult2.find(n => m.frequency == n.frequency) |
| | | if (!obj0) { |
| | | let port = '1,2,3,4' |
| | | let value = JSON.parse(m.value) |
| | | let value0 = [] |
| | | value.forEach(n=>{ |
| | | if(!item.inspectionItemSubclass.includes('耦合度')){ |
| | | value0.push(['','','','']) |
| | | }else{ |
| | | value.forEach(n => { |
| | | if (!item.inspectionItemSubclass.includes('耦合度')) { |
| | | value0.push(['', '', '', '']) |
| | | } else { |
| | | value0.push(['']) |
| | | } |
| | | }) |
| | |
| | | obj.value = JSON.stringify(value0) |
| | | item.insProductResult2.push(obj) |
| | | } |
| | | }else{ |
| | | } else { |
| | | // 如果一条数据都没有,则补全数据 |
| | | let port = '1,2,3,4' |
| | | let value = JSON.parse(m.value) |
| | | let value0 = [] |
| | | value.forEach(n=>{ |
| | | if(!item.inspectionItemSubclass.includes('耦合度')){ |
| | | value0.push(['','','','']) |
| | | }else{ |
| | | value.forEach(n => { |
| | | if (!item.inspectionItemSubclass.includes('耦合度')) { |
| | | value0.push(['', '', '', '']) |
| | | } else { |
| | | value0.push(['']) |
| | | } |
| | | }) |
| | |
| | | } |
| | | // 继续回显数据 |
| | | this.allBandList = [] |
| | | for(let i = 0;i<bandList.length;i++){ |
| | | for (let i = 0; i < bandList.length; i++) { |
| | | let arr = [] |
| | | this.insProductNew.forEach(item => { |
| | | if(item.inspectionItemSubclass.includes('互调')){ |
| | | if (item.inspectionItemSubclass.includes('互调')) { |
| | | this.intermodulationNum++ |
| | | } |
| | | let equipNameList = [] |
| | | let equipValueList = [] |
| | | item.insProductResult2.forEach(n => { |
| | | if(n.frequency===bandList[i]){ |
| | | if (n.frequency === bandList[i]) { |
| | | // 赋值页面设备名称和值 |
| | | if(n.equipValue){ |
| | | if (n.equipValue) { |
| | | equipNameList.push(n.equipName) |
| | | equipValueList.push(n.equipValue) |
| | | } |
| | | // 以下为赋值列表信息 |
| | | let portList = [] |
| | | let angleList = [] |
| | | if(n.port&&n.port.split(',').length>0){ |
| | | n.port.split(',').forEach(m=>{ |
| | | portList.push({value:m}) |
| | | if (n.port && n.port.split(',').length > 0) { |
| | | n.port.split(',').forEach(m => { |
| | | portList.push({ value: m }) |
| | | }) |
| | | } |
| | | if(n.angle&&n.angle.split(',').length>0){ |
| | | n.angle.split(',').forEach(m=>{ |
| | | angleList.push({value:m}) |
| | | if (n.angle && n.angle.split(',').length > 0) { |
| | | n.angle.split(',').forEach(m => { |
| | | angleList.push({ value: m }) |
| | | }) |
| | | this.angleList = angleList |
| | | this.upTemplateState = false |
| | | } |
| | | let ask = '' |
| | | if(item.ask.includes(',')){ |
| | | item.ask.split(',').forEach((m,i)=>{ |
| | | ask = ask + m+ (i==item.ask.split(',').length-1?'':'<br/>') |
| | | if (item.ask.includes(',')) { |
| | | item.ask.split(',').forEach((m, i) => { |
| | | ask = ask + m + (i == item.ask.split(',').length - 1 ? '' : '<br/>') |
| | | }) |
| | | }else{ |
| | | } else { |
| | | ask = item.ask |
| | | } |
| | | let obj = { |
| | | inspectionItemSubclass: item.inspectionItemSubclass, |
| | | unit:item.unit, |
| | | ask:ask, |
| | | result:n.result, |
| | | id:item.id, |
| | | often:n.often, |
| | | equipName:n.equipName, |
| | | equipValue:n.equipValue, |
| | | frequency:n.frequency, |
| | | sonLaboratory:item.sonLaboratory, |
| | | portNum:JSON.parse(n.value).length>0?JSON.parse(n.value)[0].length:4 |
| | | unit: item.unit, |
| | | ask: ask, |
| | | result: n.result, |
| | | id: item.id, |
| | | often: n.often, |
| | | equipName: n.equipName, |
| | | equipValue: n.equipValue, |
| | | frequency: n.frequency, |
| | | sonLaboratory: item.sonLaboratory, |
| | | portNum: JSON.parse(n.value).length > 0 ? JSON.parse(n.value)[0].length : 4 |
| | | } |
| | | this.$set(obj,'portList', n.port?portList:[]) |
| | | this.$set(obj,'angleList', n.angle?angleList:[]) |
| | | this.$set(obj,'value', JSON.parse(n.value)) |
| | | this.$set(obj, 'portList', n.port ? portList : []) |
| | | this.$set(obj, 'angleList', n.angle ? angleList : []) |
| | | this.$set(obj, 'value', JSON.parse(n.value)) |
| | | arr.push(obj) |
| | | } |
| | | }) |
| | | if(equipValueList.length>0){ |
| | | this.$delete(item,'equipName') |
| | | this.$delete(item,'equipValue') |
| | | this.$set(item,'equipName',equipNameList[equipNameList.length-1]) |
| | | this.$set(item,'equipValue',equipValueList[equipValueList.length-1]) |
| | | if (equipValueList.length > 0) { |
| | | this.$delete(item, 'equipName') |
| | | this.$delete(item, 'equipValue') |
| | | this.$set(item, 'equipName', equipNameList[equipNameList.length - 1]) |
| | | this.$set(item, 'equipValue', equipValueList[equipValueList.length - 1]) |
| | | } |
| | | }) |
| | | this.$set(this.allBandList,i, { |
| | | this.$set(this.allBandList, i, { |
| | | band: bandList[i], |
| | | projectList: arr |
| | | }) |
| | | } |
| | | }else{ |
| | | } else { |
| | | // 没有值时,初始化页面 |
| | | this.insProductNew.forEach(async item => { |
| | | // 赋值设备 |
| | |
| | | item.equipValue = '' |
| | | this.portList = [ |
| | | { |
| | | value:'1', |
| | | value: '1', |
| | | }, |
| | | { |
| | | value:'2', |
| | | value: '2', |
| | | }, |
| | | { |
| | | value:'3', |
| | | value: '3', |
| | | }, |
| | | { |
| | | value:'4', |
| | | value: '4', |
| | | }, |
| | | ] |
| | | this.angleList = [ |
| | | { |
| | | value:'' |
| | | value: '' |
| | | } |
| | | ] |
| | | // 赋值端口和角度 |
| | |
| | | item.portNum = 4 |
| | | // 赋值最差值 |
| | | item.value = [] |
| | | if(item.inspectionItemSubclass.includes('互调')){ |
| | | for(let i = 0;i<item.angleList.length;i++){ |
| | | if (item.inspectionItemSubclass.includes('互调')) { |
| | | for (let i = 0; i < item.angleList.length; i++) { |
| | | item.value.push([]) |
| | | for(let j=0;j<item.portList.length;j++){ |
| | | for (let j = 0; j < item.portList.length; j++) { |
| | | item.value[i].push('') |
| | | } |
| | | } |
| | | }else{ |
| | | } else { |
| | | item.value.push([]) |
| | | for(let j=0;j<item.portList.length;j++){ |
| | | for (let j = 0; j < item.portList.length; j++) { |
| | | item.value[0].push('') |
| | | } |
| | | } |
| | |
| | | // 初始化频段 |
| | | this.allBandList.push( |
| | | { |
| | | band:'', |
| | | band: '', |
| | | projectList: JSON.parse(JSON.stringify(this.insProductNew)) |
| | | } |
| | | ) |
| | | } |
| | | }, |
| | | // 删除数组 |
| | | deleteList(index,list,type){ |
| | | deleteList(index, list, type) { |
| | | this.upTemplateState = false |
| | | if(list.length>1){ |
| | | if(type=='互调'){ |
| | | if (list.length > 1) { |
| | | if (type == '互调') { |
| | | // let index = null; |
| | | let num = 0; |
| | | list.forEach((m,i)=>{ |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | list.forEach((m, i) => { |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | // index = i; |
| | | num++ |
| | | } |
| | | }) |
| | | if(num==1){ |
| | | if (num == 1) { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '不能删除最后一个互调' |
| | | }); |
| | | }else{ |
| | | } else { |
| | | list.splice(index, 1) |
| | | } |
| | | }else if(type=='删除频段'){ |
| | | } else if (type == '删除频段') { |
| | | this.$confirm(`是否确定删除 ${list[index].band} 频段数据?`, "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | this.$axios.post(this.$api.insOrderPlan.deleteInsContext, { |
| | | frequency:list[index].band, |
| | | productIds:list[index].projectList.map(m=>m.id), |
| | | num:this.num |
| | | frequency: list[index].band, |
| | | productIds: list[index].projectList.map(m => m.id), |
| | | num: this.num |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then(res => { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }).then(res => { |
| | | if (res.code === 201) { |
| | | this.$message.error('删除失败') |
| | | return |
| | |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }).catch(() => {}) |
| | | }else{ |
| | | }).catch(() => { }) |
| | | } else { |
| | | list.splice(index, 1) |
| | | } |
| | | }else{ |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '不能删除最后一个' |
| | |
| | | } |
| | | }, |
| | | // 添加数组 |
| | | addList(list,type){ |
| | | addList(list, type) { |
| | | this.upTemplateState = false |
| | | if(type=='互调'){ |
| | | if (type == '互调') { |
| | | let obj = null; |
| | | let index = null; |
| | | list.forEach((m,i)=>{ |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | list.forEach((m, i) => { |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | obj = JSON.parse(JSON.stringify(m)); |
| | | index = i; |
| | | } |
| | |
| | | let num1 = obj.value[0].length |
| | | delete obj.value |
| | | obj.value = [] |
| | | for(let i = 0;i<num0;i++){ |
| | | for (let i = 0; i < num0; i++) { |
| | | obj.value.push([]) |
| | | for(let j = 0;j<num1;j++){ |
| | | for (let j = 0; j < num1; j++) { |
| | | obj.value[i].push('') |
| | | } |
| | | } |
| | | list.splice(index+1, 0, obj) |
| | | }else if(type=='频段'){ |
| | | list.splice(index + 1, 0, obj) |
| | | } else if (type == '频段') { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.band = '' |
| | | obj.projectList.forEach(item=>{ |
| | | obj.projectList.forEach(item => { |
| | | item.often = '' |
| | | item.result = '' |
| | | item.frequency = '' |
| | |
| | | let num1 = item.value[0].length |
| | | delete item.value |
| | | item.value = [] |
| | | for(let i = 0;i<num0;i++){ |
| | | for (let i = 0; i < num0; i++) { |
| | | item.value.push([]) |
| | | for(let j = 0;j<num1;j++){ |
| | | for (let j = 0; j < num1; j++) { |
| | | item.value[i].push('') |
| | | } |
| | | } |
| | | }) |
| | | list.push(obj) |
| | | }else if(type=='端口'){ |
| | | } else if (type == '端口') { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.value = null; |
| | | list.push(obj) |
| | | }else{ |
| | | } else { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | list.push(obj) |
| | | } |
| | | }, |
| | | // 改变端口 |
| | | changePort(num,list){ |
| | | if(num>list.length){ |
| | | for(let i = list.length;i<num;i++){ |
| | | changePort(num, list) { |
| | | if (num > list.length) { |
| | | for (let i = list.length; i < num; i++) { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.value = null; |
| | | list.push(obj) |
| | | } |
| | | }else if(num<list.length){ |
| | | for(let i = list.length;i>num;i--){ |
| | | } else if (num < list.length) { |
| | | for (let i = list.length; i > num; i--) { |
| | | list.pop() |
| | | } |
| | | } |
| | |
| | | return arr |
| | | }, |
| | | // 统一修改同一频段的角度,如果角度没有带°,则拼接一个 |
| | | handleAngle(e,index,band){ |
| | | if(!e){ |
| | | handleAngle(e, index, band) { |
| | | if (!e) { |
| | | return |
| | | } |
| | | let val = e |
| | | if(!val.includes('°')){ |
| | | if (!val.includes('°')) { |
| | | val = val + '°' |
| | | } |
| | | this.allBandList.forEach(item=>{ |
| | | if(item.band==band){ |
| | | item.projectList.forEach(m=>{ |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | m.angleList.forEach((n,i)=>{ |
| | | if(index==i){ |
| | | this.allBandList.forEach(item => { |
| | | if (item.band == band) { |
| | | item.projectList.forEach(m => { |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | m.angleList.forEach((n, i) => { |
| | | if (index == i) { |
| | | n.value = val |
| | | } |
| | | }) |
| | |
| | | } |
| | | }) |
| | | }, |
| | | handlePort(n){ |
| | | if(!n.often){ |
| | | handlePort(n) { |
| | | if (!n.often) { |
| | | return |
| | | } |
| | | if(!n.often.includes('MHz')&&!n.often.includes('MHZ')){ |
| | | if (!n.often.includes('MHz') && !n.often.includes('MHZ')) { |
| | | n.often = n.often + 'MHz' |
| | | } |
| | | }, |
| | | async methodFocus(item){ |
| | | async methodFocus(item) { |
| | | this.$delete(item, 'equipOptions') |
| | | this.$set(item, 'equipOptions', await this.getEquipOptions(item)) |
| | | }, |
| | | handleEquip(m,item){ |
| | | handleEquip(m, item) { |
| | | this.$delete(item, 'equipValue') |
| | | this.$set(item, 'equipValue', m) |
| | | this.$delete(item, 'equipName') |
| | | this.$set(item, 'equipName', item.equipOptions.find(m=>m.value==item.equipValue).label) |
| | | this.$set(item, 'equipName', item.equipOptions.find(m => m.value == item.equipValue).label) |
| | | }, |
| | | save(h,y) { |
| | | let arr = h.projectList.map(item=>{ |
| | | if(item.portList&&item.portList.length>0){ |
| | | item.value.forEach(m=>{ |
| | | save(h, y) { |
| | | let arr = h.projectList.map(item => { |
| | | if (item.portList && item.portList.length > 0) { |
| | | item.value.forEach(m => { |
| | | m = m.splice(item.portList.length) |
| | | }) |
| | | } |
| | | let obj = { |
| | | insProductId:item.id, |
| | | equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue, |
| | | equipName:this.insProductNew.find(m=>m.id==item.id).equipName, |
| | | port:item.portList.map(m=>m.value).join(','), |
| | | angle:item.angleList.map(m=>m.value).join(','), |
| | | value:JSON.stringify(item.value), |
| | | often:item.often |
| | | insProductId: item.id, |
| | | equipValue: this.insProductNew.find(m => m.id == item.id).equipValue, |
| | | equipName: this.insProductNew.find(m => m.id == item.id).equipName, |
| | | port: item.portList.map(m => m.value).join(','), |
| | | angle: item.angleList.map(m => m.value).join(','), |
| | | value: JSON.stringify(item.value), |
| | | often: item.often |
| | | } |
| | | return obj |
| | | }) |
| | | this.$delete(this.loading, y) |
| | | this.$set( this.loading, y, true) |
| | | this.$set(this.loading, y, true) |
| | | // this.loading[y] = true |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext2, { |
| | | // orderId:this.orderId, |
| | | sampleId:this.orderId, |
| | | sonLaboratory:h.projectList[0].sonLaboratory, |
| | | frequency:h.band, |
| | | insProductResult2s:arr |
| | | sampleId: this.orderId, |
| | | sonLaboratory: h.projectList[0].sonLaboratory, |
| | | frequency: h.band, |
| | | insProductResult2s: arr |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then(res => { |
| | | this.$set( this.loading, y, false) |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }).then(res => { |
| | | this.$set(this.loading, y, false) |
| | | // this.loading[y] = false |
| | | if (res.code === 201) { |
| | | this.$message.error('保存失败') |
| | | return |
| | | } |
| | | for(let i=0;i<res.data.length;i++){ |
| | | for (let i = 0; i < res.data.length; i++) { |
| | | h.projectList[i].result = res.data[i] |
| | | } |
| | | this.$message.success('已保存') |
| | |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | async saveAll(){ |
| | | if(this.allBandList.find(m=>!m.band)){ |
| | | async saveAll() { |
| | | if (this.allBandList.find(m => !m.band)) { |
| | | this.$message.error('请先填写频段') |
| | | return false |
| | | }else{ |
| | | } else { |
| | | let arr0 = [] |
| | | this.allBandList.forEach((h,j)=>{ |
| | | this.allBandList.forEach((h, j) => { |
| | | // this.save(h,j) |
| | | let arr = h.projectList.map(item=>{ |
| | | if(item.portList&&item.portList.length>0){ |
| | | item.value.forEach(m=>{ |
| | | let arr = h.projectList.map(item => { |
| | | if (item.portList && item.portList.length > 0) { |
| | | item.value.forEach(m => { |
| | | m = m.splice(item.portList.length) |
| | | }) |
| | | } |
| | | let obj = { |
| | | insProductId:item.id, |
| | | equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue, |
| | | equipName:this.insProductNew.find(m=>m.id==item.id).equipName, |
| | | port:item.portList.map(m=>m.value).join(','), |
| | | angle:item.angleList.map(m=>m.value).join(','), |
| | | value:JSON.stringify(item.value), |
| | | often:item.often |
| | | insProductId: item.id, |
| | | equipValue: this.insProductNew.find(m => m.id == item.id).equipValue, |
| | | equipName: this.insProductNew.find(m => m.id == item.id).equipName, |
| | | port: item.portList.map(m => m.value).join(','), |
| | | angle: item.angleList.map(m => m.value).join(','), |
| | | value: JSON.stringify(item.value), |
| | | often: item.often |
| | | } |
| | | return obj |
| | | }) |
| | | let obj0 = { |
| | | sampleId:this.orderId, |
| | | sonLaboratory:h.projectList[0].sonLaboratory, |
| | | frequency:h.band, |
| | | insProductResult2s:arr |
| | | sampleId: this.orderId, |
| | | sonLaboratory: h.projectList[0].sonLaboratory, |
| | | frequency: h.band, |
| | | insProductResult2s: arr |
| | | } |
| | | arr0.push(obj0) |
| | | }) |
| | | let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, {insProductResultDtos:arr0 |
| | | let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, { |
| | | insProductResultDtos: arr0 |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}) |
| | | if(res.code===201){ |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }) |
| | | if (res.code === 201) { |
| | | this.$message.error('保存失败') |
| | | return false |
| | | }else{ |
| | | } else { |
| | | this.$message.success('已保存') |
| | | return true |
| | | } |
| | | } |
| | | }, |
| | | // 更新模板 |
| | | upTemplate(obj){ |
| | | upTemplate(obj) { |
| | | this.upTemplateState = true; |
| | | // return |
| | | obj.allBandList.forEach((item,index)=>{ |
| | | if(!this.allBandList[index]){ |
| | | this.$set(this.allBandList, index, {projectList:this.HaveJson(this.allBandList[0].projectList)}) |
| | | obj.allBandList.forEach((item, index) => { |
| | | if (!this.allBandList[index]) { |
| | | this.$set(this.allBandList, index, { projectList: this.HaveJson(this.allBandList[0].projectList) }) |
| | | // this.allBandList[index] = { |
| | | // projectList:this.HaveJson(this.allBandList[0].projectList), |
| | | // band:item.band |
| | | // } |
| | | } |
| | | let arr = [] |
| | | item.projectList.forEach((m,i)=>{ |
| | | if(this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass)){ |
| | | item.projectList.forEach((m, i) => { |
| | | if (this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass)) { |
| | | let obj0 = { |
| | | angleList:m.angleList, |
| | | portList:m.portList, |
| | | portNum:m.portNum, |
| | | angleList: m.angleList, |
| | | portList: m.portList, |
| | | portNum: m.portNum, |
| | | // value:m.value, |
| | | valueType:m.valueType |
| | | valueType: m.valueType |
| | | } |
| | | this.$set(obj0,'value',m.value) |
| | | arr.push({...this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass),...obj0}) |
| | | this.$set(obj0, 'value', m.value) |
| | | arr.push({ ...this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass), ...obj0 }) |
| | | } |
| | | }) |
| | | // this.allBandList[index].projectList = arr |
| | | this.$delete(this.allBandList[index],'projectList') |
| | | this.$set(this.allBandList[index],'projectList',arr) |
| | | this.$delete(this.allBandList[index], 'projectList') |
| | | this.$set(this.allBandList[index], 'projectList', arr) |
| | | }) |
| | | this.angleList = obj.angleList |
| | | this.intermodulationNum = obj.intermodulationNum |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .circuit-parameters-item{ |
| | | .circuit-parameters-item { |
| | | margin-bottom: 10px; |
| | | border: 1px solid #eee; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | border-radius: 8px; |
| | | } |
| | | .circuit-parameters-item-title{ |
| | | |
| | | .circuit-parameters-item-title { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .thermal-table{ |
| | | |
| | | .thermal-table { |
| | | min-width: calc(100% - 10px); |
| | | table-layout: fixed; |
| | | } |
| | | .thermal-table td,.thermal-table th { |
| | | min-width: 70px; |
| | | |
| | | .thermal-table td, |
| | | .thermal-table th { |
| | | min-width: 120px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | padding: 5px; |
| | | } |
| | | .thermal-table .el-input{ |
| | | |
| | | .thermal-table .el-input { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .equip{ |
| | | |
| | | .equip { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .red{ |
| | | |
| | | .red { |
| | | color: red; |
| | | } |
| | | .green{ |
| | | |
| | | .green { |
| | | color: green; |
| | | } |
| | | |
| | | >>>.el-input-number { |
| | | display: inline-flex; |
| | | flex-direction: column !important; |
| | | line-height: 26px; |
| | | } |
| | | |
| | | >>>.el-input-number__increase, >>>.el-input-number__decrease { |
| | | >>>.el-input-number__increase, |
| | | >>>.el-input-number__decrease { |
| | | width: 26px; |
| | | height: 26px; |
| | | } |
| | | >>>.el-input-number__increase{ |
| | | |
| | | >>>.el-input-number__increase { |
| | | top: 36px; |
| | | left: 10px; |
| | | border: 0px; |
| | |
| | | background: #3A7BFA; |
| | | color: #fff; |
| | | } |
| | | >>>.el-input-number__decrease{ |
| | | |
| | | >>>.el-input-number__decrease { |
| | | top: -30px; |
| | | border: 0px; |
| | | border-radius: 50%; |
| | |
| | | background: #F56C6C; |
| | | color: #fff; |
| | | } |
| | | >>>.el-input-number .el-input{ |
| | | |
| | | >>>.el-input-number .el-input { |
| | | width: 50px; |
| | | } |
| | | >>>.el-input-number .el-input__inner{ |
| | | |
| | | >>>.el-input-number .el-input__inner { |
| | | width: 50px; |
| | | padding: 0; |
| | | } |
| | |
| | | <el-col :span="17"> |
| | | <el-row> |
| | | <el-col :span="23" style="display: flex;flex-wrap: wrap;"> |
| | | <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" v-for="(item,index) in insProductNew" :key="index + 'ppp'" v-show="isMore?true:(index<3?true:false)"> |
| | | <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" |
| | | v-for="(item, index) in insProductNew" :key="index + 'ppp'" |
| | | v-show="isMore ? true : (index < 3 ? true : false)"> |
| | | <tr> |
| | | <td style="text-align: center;background: #F0F1F5;"> |
| | | <el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ item.inspectionItemSubclass }}</span> |
| | | <el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span |
| | | style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ |
| | | item.inspectionItemSubclass }}</span> |
| | | </el-tooltip> |
| | | </td> |
| | | <td> |
| | | <el-input size="small" placeholder="设备名称" v-model="item.equipName" readonly></el-input> |
| | | <el-input size="small" placeholder="设备名称" v-model="item.equipName" readonly></el-input> |
| | | </td> |
| | | <td> |
| | | <el-select v-model="item.equipValue" placeholder="设备编码" size="small" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)"> |
| | | <el-option |
| | | v-for="m in item.equipOptions" |
| | | :key="m.value" |
| | | :label="m.value" |
| | | :value="m.value"> |
| | | <el-select v-model="item.equipValue" placeholder="设备编码" size="small" :disabled="state > 1" |
| | | @focus="methodFocus(item)" @change="m => handleEquip(m, item)"> |
| | | <el-option v-for="m in item.equipOptions" :key="m.value" :label="m.value" :value="m.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </el-col> |
| | | <el-col :span="1" v-show="insProductNew.length>3"> |
| | | <el-button icon="el-icon-arrow-down" type="text" @click="isMore=true" v-if="!isMore">更多</el-button> |
| | | <el-button icon="el-icon-arrow-up" type="text" @click="isMore=false" v-if="isMore">收起</el-button> |
| | | <el-col :span="1" v-show="insProductNew.length > 3"> |
| | | <el-button icon="el-icon-arrow-down" type="text" @click="isMore = true" v-if="!isMore">更多</el-button> |
| | | <el-button icon="el-icon-arrow-up" type="text" @click="isMore = false" v-if="isMore">收起</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <div style="display: flex;align-items: center;justify-content: flex-end;flex-wrap: wrap;" class="btns" v-if="!isLook"> |
| | | <el-button type="primary" size="small" @click="addList(allBandList,'频段')" :disabled="state>1" style="margin: 4px;">添加频段</el-button> |
| | | <div style="display: flex;align-items: center;justify-content: flex-end;flex-wrap: wrap;" class="btns" |
| | | v-if="!isLook"> |
| | | <el-button type="primary" size="small" @click="addList(allBandList, '频段')" :disabled="state > 1" |
| | | style="margin: 4px;">添加频段</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="5" style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;"> |
| | | <el-row :gutter="5" |
| | | style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">检验项目</div> |
| | | </el-col> |
| | |
| | | <div style="text-align: center;">结论</div> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="circuit-parameters-item" v-for="(h,y) in allBandList" :key="y+'ooo'"> |
| | | <div class="circuit-parameters-item" v-for="(h, y) in allBandList" :key="y + 'ooo'"> |
| | | <div class="circuit-parameters-item-title"> |
| | | <span>频段:</span> |
| | | <el-select v-model="h.band" placeholder="请选择" size="small" style="width: 200px;" :disabled="state>1"> |
| | | <el-option |
| | | v-for="item in bandList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | <el-select v-model="h.band" placeholder="请选择" size="small" style="width: 200px;" :disabled="state > 1"> |
| | | <el-option v-for="item in bandList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button size="small" @click="deleteList(y,allBandList,'删除频段')" :disabled="state>1" style="margin-left: 16px;" type="danger">删除频段</el-button> |
| | | <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" v-show="!isLook">保 存</el-button> |
| | | <el-button size="small" @click="deleteList(y, allBandList, '删除频段')" :disabled="state > 1" |
| | | style="margin-left: 16px;" type="danger">删除频段</el-button> |
| | | <el-button type="primary" size="small" @click="save(h, y)" :disabled="state > 1" :loading="loading[y]" |
| | | v-show="!isLook">保 存</el-button> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="circuit-parameters-item-content"> |
| | | <template v-for="(n,j) in h.projectList"> |
| | | <template v-for="(n, j) in h.projectList"> |
| | | <!-- 电压驻波比 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('驻波比')||n.inspectionItemSubclass.includes('隔离度')||n.inspectionItemSubclass.includes('带外抑制')||n.inspectionItemSubclass.includes('带内波动')||n.inspectionItemSubclass.includes('插入损耗')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('驻波比') || n.inspectionItemSubclass.includes('隔离度') || n.inspectionItemSubclass.includes('带外抑制') || n.inspectionItemSubclass.includes('带内波动') || n.inspectionItemSubclass.includes('插入损耗')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>端口</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'aaa'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'aaa'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | |
| | | <td> |
| | | 最差值 |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':(n.result===3?'不判定':'待定'))) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : (n.result === 3 |
| | | ? '不判定' : '待定'))) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 互调 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('互调')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('互调')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>频段</td> |
| | | <td :colspan="n.portList.length+1"> |
| | | <td :colspan="n.portList.length + 1"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <!-- <el-input size="small" placeholder="频段" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input> --> |
| | | <el-select v-model="n.often" placeholder="请选择" size="small" style="width: 200px;" :disabled="state>1"> |
| | | <el-option |
| | | v-for="item in bandList0" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | <el-select v-model="n.often" placeholder="请选择" size="small" style="width: 200px;" |
| | | :disabled="state > 1"> |
| | | <el-option v-for="item in bandList0" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | </tr> |
| | | <tr> |
| | | <td>端口</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'fff'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'fff'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="端口" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | |
| | | <td> |
| | | 最差值 |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':(n.result===3?'不判定':'待定'))) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : (n.result === 3 |
| | | ? '不判定' : '待定'))) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 幅度偏差/最大相位偏差 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('偏差')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('偏差')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr> |
| | | <td>频段</td> |
| | | <td v-for="(item,index) in n.portList" :key="index+'aaa'"> |
| | | <td v-for="(item, index) in n.portList" :key="index + 'aaa'"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-input size="small" placeholder="频段" v-model="item.value" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="频段" v-model="item.value" :disabled="state > 1"></el-input> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | |
| | | <td> |
| | | 最差值 |
| | | </td> |
| | | <td v-for="(m,i) in n.portList" :key="i+'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]" :disabled="state>1"></el-input> |
| | | <td v-for="(m, i) in n.portList" :key="i + 'ggg'"> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]" |
| | | :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number> |
| | | <el-input-number v-model="n.portNum" :min="1" :max="100" label="数量" size="small" |
| | | @change="m => changePort(m, n.portList)" :disabled="state > 1"></el-input-number> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : '待定')) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 最大耦合度/最小耦合度 --> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" v-if="n.inspectionItemSubclass.includes('耦合度')"> |
| | | <el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;" |
| | | v-if="n.inspectionItemSubclass.includes('耦合度')"> |
| | | <el-col :span="2"> |
| | | <div style="text-align: center;">{{ n.inspectionItemSubclass }}</div> |
| | | </el-col> |
| | |
| | | 最差值 |
| | | </td> |
| | | <td> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][0]" :disabled="state>1"></el-input> |
| | | <el-input size="small" placeholder="最差值" v-model="n.value[0][0]" :disabled="state > 1"></el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'不合格':(n.result===1?'合格':(n.result===3?'不判定':'待定')) }} |
| | | <div style="text-align: center;" :class="{ red: n.result === 0, green: n.result === 1 }">{{ |
| | | n.result === 0 ? '不合格' : (n.result === 1 ? '合格' : (n.result === 3 ? '不判定' : '待定')) }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-divider v-if="j!=h.projectList.length-1"></el-divider> |
| | | <el-divider v-if="j != h.projectList.length - 1"></el-divider> |
| | | </template> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | export default { |
| | | props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'], |
| | | props: ['insProduct', 'orderId', 'sampleId', 'state', 'num', 'isLook', 'currentNum'], |
| | | data() { |
| | | return { |
| | | value: "", |
| | | bandList:[], |
| | | bandList0:[], |
| | | portList:[ |
| | | bandList: [], |
| | | bandList0: [], |
| | | portList: [ |
| | | { |
| | | value:'1', |
| | | value: '1', |
| | | }, |
| | | ], |
| | | projectList:[ |
| | | projectList: [ |
| | | { |
| | | name:'电压驻波比', |
| | | unit:'/', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | value:[],//双层数组 |
| | | name: '电压驻波比', |
| | | unit: '/', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'同极化隔离度', |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | value:[],//双层数组 |
| | | name: '同极化隔离度', |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'互调', |
| | | band:'2100MHz', |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | value:[],//双层数组 |
| | | name: '互调', |
| | | band: '2100MHz', |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'偏差', |
| | | unit:'dB', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | value:[],//双层数组 |
| | | name: '偏差', |
| | | unit: 'dB', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | value: [],//双层数组 |
| | | }, |
| | | { |
| | | name:'最大耦合度', |
| | | unit:'dB', |
| | | band:'2100MHz', |
| | | ask:'≤1.45', |
| | | result:'', |
| | | conclusion:'合格', |
| | | portList:[], |
| | | value:[],//双层数组 |
| | | resValue:'' |
| | | name: '最大耦合度', |
| | | unit: 'dB', |
| | | band: '2100MHz', |
| | | ask: '≤1.45', |
| | | result: '', |
| | | conclusion: '合格', |
| | | portList: [], |
| | | value: [],//双层数组 |
| | | resValue: '' |
| | | }, |
| | | ], |
| | | |
| | | allBandList:[],//频段 |
| | | insProductNew:[], |
| | | isMore:false, |
| | | loading:{}, |
| | | intermodulationNum:0,//互调检验项目的数量 |
| | | upTemplateState:false, |
| | | allBandList: [],//频段 |
| | | insProductNew: [], |
| | | isMore: false, |
| | | loading: {}, |
| | | intermodulationNum: 0,//互调检验项目的数量 |
| | | upTemplateState: false, |
| | | }; |
| | | }, |
| | | watch: { |
| | | currentNum(val) { |
| | | this.initData() |
| | | }, |
| | | insProduct:{ |
| | | deep:true, |
| | | handler:function(val){ |
| | | insProduct: { |
| | | deep: true, |
| | | handler: function (val) { |
| | | // console.log('更新页面啦') |
| | | this.initData() |
| | | } |
| | |
| | | }) |
| | | }, |
| | | // 初始化数据 |
| | | initData(){ |
| | | initData() { |
| | | this.allBandList = [] |
| | | this.intermodulationNum = 0 |
| | | // 处理项目 |
| | | this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m=>m.inspectionItem.includes('电路试验')) |
| | | this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m => m.inspectionItem.includes('电路试验')) |
| | | this.insProductNew.forEach(async item => { |
| | | if(item.inspectionItemSubclass.includes('互调')){ |
| | | this.intermodulationNum++ |
| | | } |
| | | if (item.inspectionItemSubclass.includes('互调')) { |
| | | this.intermodulationNum++ |
| | | } |
| | | // 获取设备列表 |
| | | item.equipOptions = [] |
| | | }) |
| | | if(this.insProductNew[0].insProductResult2&&this.insProductNew[0].insProductResult2.length>0){ |
| | | if (this.insProductNew[0].insProductResult2 && this.insProductNew[0].insProductResult2.length > 0) { |
| | | // 已经存在值时,赋值 |
| | | let bandList = this.insProductNew[0].insProductResult2.map(m=>m.frequency) |
| | | let bandList = this.insProductNew[0].insProductResult2.map(m => m.frequency) |
| | | bandList = Array.from(new Set(bandList)) |
| | | // 上传附件后,设置检验项数据为空的内容 |
| | | let sample = this.insProductNew[0];//获取驻波比的数据,如果驻波比值存在而其他检验项值不存在,则根据驻波比设置默认数据 |
| | | if(sample.insProductResult2&&sample.insProductResult2.length>0){ |
| | | if (sample.insProductResult2 && sample.insProductResult2.length > 0) { |
| | | this.insProductNew.forEach(item => { |
| | | if(!item.inspectionItemSubclass.includes('驻波比')&&(!item.insProductResult2||item.insProductResult2.length==0||item.insProductResult2.length<bandList.length)){ |
| | | if(!(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length)){ |
| | | if (!item.inspectionItemSubclass.includes('驻波比') && (!item.insProductResult2 || item.insProductResult2.length == 0 || item.insProductResult2.length < bandList.length)) { |
| | | if (!(item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length)) { |
| | | item.insProductResult2 = [] |
| | | } |
| | | sample.insProductResult2.forEach(m=>{ |
| | | sample.insProductResult2.forEach(m => { |
| | | let obj = this.HaveJson(m) |
| | | // 如果数据有,但是不够所有频段的数量,则补全数据 |
| | | if(item.insProductResult2.length>0&&item.insProductResult2.length<bandList.length){ |
| | | let obj0 = item.insProductResult2.find(n=>m.frequency==n.frequency) |
| | | if(!obj0){ |
| | | if (item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length) { |
| | | let obj0 = item.insProductResult2.find(n => m.frequency == n.frequency) |
| | | if (!obj0) { |
| | | let port = '1' |
| | | let value = JSON.parse(m.value) |
| | | let value0 = [] |
| | | value.forEach(n=>{ |
| | | if(!item.inspectionItemSubclass.includes('耦合度')){ |
| | | value.forEach(n => { |
| | | if (!item.inspectionItemSubclass.includes('耦合度')) { |
| | | value0.push(['']) |
| | | }else{ |
| | | } else { |
| | | value0.push(['']) |
| | | } |
| | | }) |
| | |
| | | obj.value = JSON.stringify(value0) |
| | | item.insProductResult2.push(obj) |
| | | } |
| | | }else{ |
| | | } else { |
| | | // 如果一条数据都没有,则补全数据 |
| | | let port = '1' |
| | | let value = JSON.parse(m.value) |
| | | let value0 = [] |
| | | value.forEach(n=>{ |
| | | if(!item.inspectionItemSubclass.includes('耦合度')){ |
| | | value.forEach(n => { |
| | | if (!item.inspectionItemSubclass.includes('耦合度')) { |
| | | value0.push(['']) |
| | | }else{ |
| | | } else { |
| | | value0.push(['']) |
| | | } |
| | | }) |
| | |
| | | } |
| | | // 继续回显数据 |
| | | this.allBandList = [] |
| | | for(let i = 0;i<bandList.length;i++){ |
| | | for (let i = 0; i < bandList.length; i++) { |
| | | let arr = [] |
| | | this.insProductNew.forEach(item => { |
| | | let equipNameList = [] |
| | | let equipValueList = [] |
| | | item.insProductResult2.forEach(n => { |
| | | if(n.frequency===bandList[i]){ |
| | | if (n.frequency === bandList[i]) { |
| | | // 赋值页面设备名称和值 |
| | | if(n.equipValue){ |
| | | if (n.equipValue) { |
| | | equipNameList.push(n.equipName) |
| | | equipValueList.push(n.equipValue) |
| | | } |
| | | // 以下为赋值列表信息 |
| | | let portList = [] |
| | | if(n.port&&n.port.split(',').length>0){ |
| | | n.port.split(',').forEach(m=>{ |
| | | portList.push({value:m}) |
| | | if (n.port && n.port.split(',').length > 0) { |
| | | n.port.split(',').forEach(m => { |
| | | portList.push({ value: m }) |
| | | }) |
| | | } |
| | | let ask = '' |
| | | if(item.ask.includes(',')){ |
| | | item.ask.split(',').forEach((m,i)=>{ |
| | | ask = ask + m+ (i==item.ask.split(',').length-1?'':'<br/>') |
| | | if (item.ask.includes(',')) { |
| | | item.ask.split(',').forEach((m, i) => { |
| | | ask = ask + m + (i == item.ask.split(',').length - 1 ? '' : '<br/>') |
| | | }) |
| | | }else{ |
| | | } else { |
| | | ask = item.ask |
| | | } |
| | | console.log(ask) |
| | | let obj = { |
| | | inspectionItemSubclass: item.inspectionItemSubclass, |
| | | unit:item.unit, |
| | | ask:ask, |
| | | result:n.result, |
| | | id:item.id, |
| | | often:n.often, |
| | | equipName:n.equipName, |
| | | equipValue:n.equipValue, |
| | | frequency:n.frequency, |
| | | sonLaboratory:item.sonLaboratory, |
| | | portNum:JSON.parse(n.value).length>0?JSON.parse(n.value)[0].length:4 |
| | | unit: item.unit, |
| | | ask: ask, |
| | | result: n.result, |
| | | id: item.id, |
| | | often: n.often, |
| | | equipName: n.equipName, |
| | | equipValue: n.equipValue, |
| | | frequency: n.frequency, |
| | | sonLaboratory: item.sonLaboratory, |
| | | portNum: JSON.parse(n.value).length > 0 ? JSON.parse(n.value)[0].length : 4 |
| | | } |
| | | this.$set(obj,'portList', n.port?portList:[]) |
| | | this.$set(obj,'value', JSON.parse(n.value)) |
| | | this.$set(obj, 'portList', n.port ? portList : []) |
| | | this.$set(obj, 'value', JSON.parse(n.value)) |
| | | arr.push(obj) |
| | | } |
| | | }) |
| | | if(equipValueList.length>0){ |
| | | this.$delete(item,'equipName') |
| | | this.$delete(item,'equipValue') |
| | | this.$set(item,'equipName',equipNameList[equipNameList.length-1]) |
| | | this.$set(item,'equipValue',equipValueList[equipValueList.length-1]) |
| | | if (equipValueList.length > 0) { |
| | | this.$delete(item, 'equipName') |
| | | this.$delete(item, 'equipValue') |
| | | this.$set(item, 'equipName', equipNameList[equipNameList.length - 1]) |
| | | this.$set(item, 'equipValue', equipValueList[equipValueList.length - 1]) |
| | | } |
| | | }) |
| | | this.$set(this.allBandList,i, { |
| | | this.$set(this.allBandList, i, { |
| | | band: bandList[i], |
| | | projectList: arr |
| | | }) |
| | | } |
| | | }else{ |
| | | } else { |
| | | console.log(2222) |
| | | // 没有值时,初始化页面 |
| | | this.insProductNew.forEach(async item => { |
| | |
| | | // 赋值端口和角度 |
| | | this.portList = [ |
| | | { |
| | | value:'1', |
| | | value: '1', |
| | | }, |
| | | ] |
| | | item.portList = JSON.parse(JSON.stringify(this.portList)) |
| | |
| | | // 赋值最差值 |
| | | item.value = [] |
| | | item.portNum = 4 |
| | | if(item.inspectionItemSubclass.includes('耦合度')){ |
| | | if (item.inspectionItemSubclass.includes('耦合度')) { |
| | | item.value.push(['']) |
| | | }else{ |
| | | } else { |
| | | item.value.push([]) |
| | | for(let j=0;j<item.portList.length;j++){ |
| | | for (let j = 0; j < item.portList.length; j++) { |
| | | item.value[i].push('') |
| | | } |
| | | } |
| | |
| | | // 初始化频段 |
| | | this.allBandList.push( |
| | | { |
| | | band:'', |
| | | band: '', |
| | | projectList: JSON.parse(JSON.stringify(this.insProductNew)) |
| | | } |
| | | ) |
| | |
| | | } |
| | | }, |
| | | // 删除数组 |
| | | deleteList(index,list,type){ |
| | | deleteList(index, list, type) { |
| | | this.upTemplateState = false; |
| | | if(list.length>1){ |
| | | if(type=='互调'){ |
| | | if (list.length > 1) { |
| | | if (type == '互调') { |
| | | // let index = null; |
| | | let num = 0; |
| | | list.forEach((m,i)=>{ |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | list.forEach((m, i) => { |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | // index = i; |
| | | num++ |
| | | } |
| | | }) |
| | | if(num==1){ |
| | | if (num == 1) { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '不能删除最后一个互调' |
| | | }); |
| | | }else{ |
| | | } else { |
| | | list.splice(index, 1) |
| | | } |
| | | }else if(type=='删除频段'){ |
| | | } else if (type == '删除频段') { |
| | | this.$confirm(`是否确定删除 ${list[index].band} 频段数据?`, "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | this.$axios.post(this.$api.insOrderPlan.deleteInsContext, { |
| | | frequency:list[index].band, |
| | | productIds:list[index].projectList.map(m=>m.id), |
| | | num:this.num |
| | | frequency: list[index].band, |
| | | productIds: list[index].projectList.map(m => m.id), |
| | | num: this.num |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then(res => { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }).then(res => { |
| | | if (res.code === 201) { |
| | | this.$message.error('删除失败') |
| | | return |
| | |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }).catch(() => {}) |
| | | }else{ |
| | | }).catch(() => { }) |
| | | } else { |
| | | list.splice(index, 1) |
| | | } |
| | | }else{ |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '不能删除最后一个' |
| | |
| | | } |
| | | }, |
| | | // 添加数组 |
| | | addList(list,type){ |
| | | addList(list, type) { |
| | | this.upTemplateState = false; |
| | | if(type=='互调'){ |
| | | if (type == '互调') { |
| | | let obj = null; |
| | | let index = null; |
| | | list.forEach((m,i)=>{ |
| | | if(m.inspectionItemSubclass.includes('互调')){ |
| | | list.forEach((m, i) => { |
| | | if (m.inspectionItemSubclass.includes('互调')) { |
| | | obj = JSON.parse(JSON.stringify(m)); |
| | | index = i; |
| | | } |
| | |
| | | let num1 = obj.value[0].length |
| | | delete obj.value |
| | | obj.value = [] |
| | | for(let i = 0;i<num0;i++){ |
| | | for (let i = 0; i < num0; i++) { |
| | | obj.value.push([]) |
| | | for(let j = 0;j<num1;j++){ |
| | | for (let j = 0; j < num1; j++) { |
| | | obj.value[i].push('') |
| | | } |
| | | } |
| | | list.splice(index+1, 0, obj) |
| | | }else if(type=='频段'){ |
| | | list.splice(index + 1, 0, obj) |
| | | } else if (type == '频段') { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.band = '' |
| | | obj.projectList.forEach(item=>{ |
| | | obj.projectList.forEach(item => { |
| | | item.often = '' |
| | | item.result = '' |
| | | item.frequency = '' |
| | |
| | | let num1 = item.value[0].length |
| | | delete item.value |
| | | item.value = [] |
| | | for(let i = 0;i<num0;i++){ |
| | | for (let i = 0; i < num0; i++) { |
| | | item.value.push([]) |
| | | for(let j = 0;j<num1;j++){ |
| | | for (let j = 0; j < num1; j++) { |
| | | item.value[i].push('') |
| | | } |
| | | } |
| | | }) |
| | | list.push(obj) |
| | | }else if('端口'){ |
| | | } else if ('端口') { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.value = null; |
| | | list.push(obj) |
| | | }else{ |
| | | } else { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | list.push(obj) |
| | | } |
| | | }, |
| | | // 改变端口 |
| | | changePort(num,list){ |
| | | if(num>list.length){ |
| | | for(let i = list.length;i<num;i++){ |
| | | changePort(num, list) { |
| | | if (num > list.length) { |
| | | for (let i = list.length; i < num; i++) { |
| | | let obj = JSON.parse(JSON.stringify(list[0])); |
| | | obj.value = null; |
| | | list.push(obj) |
| | | } |
| | | }else if(num<list.length){ |
| | | for(let i = list.length;i>num;i--){ |
| | | } else if (num < list.length) { |
| | | for (let i = list.length; i > num; i--) { |
| | | list.pop() |
| | | } |
| | | } |
| | |
| | | } |
| | | return arr |
| | | }, |
| | | async methodFocus(item){ |
| | | async methodFocus(item) { |
| | | this.$delete(item, 'equipOptions') |
| | | this.$set(item, 'equipOptions', await this.getEquipOptions(item)) |
| | | }, |
| | | handleEquip(m,item){ |
| | | handleEquip(m, item) { |
| | | this.$delete(item, 'equipValue') |
| | | this.$set(item, 'equipValue', m) |
| | | this.$delete(item, 'equipName') |
| | | this.$set(item, 'equipName', item.equipOptions.find(m=>m.value==item.equipValue).label) |
| | | this.$set(item, 'equipName', item.equipOptions.find(m => m.value == item.equipValue).label) |
| | | }, |
| | | handlePort(n){ |
| | | if(!n.often){ |
| | | handlePort(n) { |
| | | if (!n.often) { |
| | | return |
| | | } |
| | | if(!n.often.includes('MHz')&&!n.often.includes('MHZ')){ |
| | | if (!n.often.includes('MHz') && !n.often.includes('MHZ')) { |
| | | n.often = n.often + 'MHz' |
| | | } |
| | | }, |
| | | save(h,y) { |
| | | let arr = h.projectList.map(item=>{ |
| | | if(item.portList&&item.portList.length>0){ |
| | | item.value.forEach(m=>{ |
| | | save(h, y) { |
| | | let arr = h.projectList.map(item => { |
| | | if (item.portList && item.portList.length > 0) { |
| | | item.value.forEach(m => { |
| | | m = m.splice(item.portList.length) |
| | | }) |
| | | } |
| | | let obj = { |
| | | insProductId:item.id, |
| | | equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue, |
| | | equipName:this.insProductNew.find(m=>m.id==item.id).equipName, |
| | | port:item.portList.map(m=>m.value).join(','), |
| | | value:JSON.stringify(item.value), |
| | | often:item.often |
| | | insProductId: item.id, |
| | | equipValue: this.insProductNew.find(m => m.id == item.id).equipValue, |
| | | equipName: this.insProductNew.find(m => m.id == item.id).equipName, |
| | | port: item.portList.map(m => m.value).join(','), |
| | | value: JSON.stringify(item.value), |
| | | often: item.often |
| | | } |
| | | return obj |
| | | }) |
| | | this.$delete(this.loading, y) |
| | | this.$set( this.loading, y, true) |
| | | this.$set(this.loading, y, true) |
| | | this.$axios.post(this.$api.insOrderPlan.saveInsContext2, { |
| | | // orderId:this.orderId, |
| | | sampleId:this.orderId, |
| | | sonLaboratory:h.projectList[0].sonLaboratory, |
| | | frequency:h.band, |
| | | insProductResult2s:arr |
| | | sampleId: this.orderId, |
| | | sonLaboratory: h.projectList[0].sonLaboratory, |
| | | frequency: h.band, |
| | | insProductResult2s: arr |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then(res => { |
| | | this.$set( this.loading, y, false) |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }).then(res => { |
| | | this.$set(this.loading, y, false) |
| | | // this.loading[y] = false |
| | | if (res.code === 201) { |
| | | this.$message.error('保存失败') |
| | | return |
| | | } |
| | | for(let i=0;i<res.data.length;i++){ |
| | | for (let i = 0; i < res.data.length; i++) { |
| | | h.projectList[i].result = res.data[i] |
| | | } |
| | | this.$message.success('已保存') |
| | |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | async saveAll(){ |
| | | if(this.allBandList.find(m=>!m.band)){ |
| | | async saveAll() { |
| | | if (this.allBandList.find(m => !m.band)) { |
| | | this.$message.error('请先填写频段') |
| | | return false |
| | | }else{ |
| | | } else { |
| | | let arr0 = [] |
| | | this.allBandList.forEach((h,j)=>{ |
| | | this.allBandList.forEach((h, j) => { |
| | | // this.save(h,j) |
| | | let arr = h.projectList.map(item=>{ |
| | | if(item.portList&&item.portList.length>0){ |
| | | item.value.forEach(m=>{ |
| | | let arr = h.projectList.map(item => { |
| | | if (item.portList && item.portList.length > 0) { |
| | | item.value.forEach(m => { |
| | | m = m.splice(item.portList.length) |
| | | }) |
| | | } |
| | | let obj = { |
| | | insProductId:item.id, |
| | | equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue, |
| | | equipName:this.insProductNew.find(m=>m.id==item.id).equipName, |
| | | port:item.portList.map(m=>m.value).join(','), |
| | | value:JSON.stringify(item.value), |
| | | often:item.often |
| | | insProductId: item.id, |
| | | equipValue: this.insProductNew.find(m => m.id == item.id).equipValue, |
| | | equipName: this.insProductNew.find(m => m.id == item.id).equipName, |
| | | port: item.portList.map(m => m.value).join(','), |
| | | value: JSON.stringify(item.value), |
| | | often: item.often |
| | | } |
| | | return obj |
| | | }) |
| | | let obj0 = { |
| | | sampleId:this.orderId, |
| | | sonLaboratory:h.projectList[0].sonLaboratory, |
| | | frequency:h.band, |
| | | insProductResult2s:arr |
| | | sampleId: this.orderId, |
| | | sonLaboratory: h.projectList[0].sonLaboratory, |
| | | frequency: h.band, |
| | | insProductResult2s: arr |
| | | } |
| | | arr0.push(obj0) |
| | | }) |
| | | let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, {insProductResultDtos:arr0 |
| | | let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, { |
| | | insProductResultDtos: arr0 |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}) |
| | | if(res.code===201){ |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs: true |
| | | }) |
| | | if (res.code === 201) { |
| | | this.$message.error('保存失败') |
| | | return false |
| | | }else{ |
| | | } else { |
| | | this.$message.success('已保存') |
| | | return true |
| | | } |
| | | } |
| | | }, |
| | | // 更新模板 |
| | | upTemplate(obj){ |
| | | upTemplate(obj) { |
| | | this.upTemplateState = true; |
| | | // return |
| | | obj.allBandList.forEach((item,index)=>{ |
| | | if(!this.allBandList[index]){ |
| | | this.$set(this.allBandList, index, {projectList:this.HaveJson(this.allBandList[0].projectList)}) |
| | | obj.allBandList.forEach((item, index) => { |
| | | if (!this.allBandList[index]) { |
| | | this.$set(this.allBandList, index, { projectList: this.HaveJson(this.allBandList[0].projectList) }) |
| | | // this.allBandList[index] = { |
| | | // projectList:this.HaveJson(this.allBandList[0].projectList) |
| | | // } |
| | | } |
| | | this.allBandList[index].band = item.band |
| | | let arr = [] |
| | | item.projectList.forEach((m,i)=>{ |
| | | if(this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass)){ |
| | | item.projectList.forEach((m, i) => { |
| | | if (this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass)) { |
| | | let obj0 = { |
| | | portList:m.portList, |
| | | portNum:m.portNum, |
| | | valueType:m.valueType |
| | | portList: m.portList, |
| | | portNum: m.portNum, |
| | | valueType: m.valueType |
| | | } |
| | | this.$set(obj0,'value',m.value) |
| | | arr.push({...this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass),...obj0}) |
| | | this.$set(obj0, 'value', m.value) |
| | | arr.push({ ...this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass), ...obj0 }) |
| | | } |
| | | }) |
| | | this.$delete(this.allBandList[index],'projectList') |
| | | this.$set(this.allBandList[index],'projectList',arr) |
| | | this.$delete(this.allBandList[index], 'projectList') |
| | | this.$set(this.allBandList[index], 'projectList', arr) |
| | | // this.allBandList[index].projectList = arr |
| | | }) |
| | | this.intermodulationNum = obj.intermodulationNum |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .circuit-parameters{ |
| | | .circuit-parameters { |
| | | position: relative; |
| | | overflow: visible; |
| | | } |
| | | .circuit-parameters-item{ |
| | | |
| | | .circuit-parameters-item { |
| | | margin-bottom: 10px; |
| | | border: 1px solid #eee; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | border-radius: 8px; |
| | | } |
| | | .circuit-parameters-item-title{ |
| | | |
| | | .circuit-parameters-item-title { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .thermal-table{ |
| | | |
| | | .thermal-table { |
| | | min-width: calc(100% - 10px); |
| | | table-layout: fixed; |
| | | } |
| | | .thermal-table td,.thermal-table th { |
| | | min-width: 70px; |
| | | |
| | | .thermal-table td, |
| | | .thermal-table th { |
| | | min-width: 120px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | padding: 5px; |
| | | } |
| | | .thermal-table .el-input{ |
| | | |
| | | .thermal-table .el-input { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .equip{ |
| | | |
| | | .equip { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .red{ |
| | | |
| | | .red { |
| | | color: red; |
| | | } |
| | | .green{ |
| | | |
| | | .green { |
| | | color: green; |
| | | } |
| | | |
| | | >>>.el-input-number { |
| | | display: inline-flex; |
| | | flex-direction: column !important; |
| | | line-height: 26px; |
| | | } |
| | | |
| | | >>>.el-input-number__increase, >>>.el-input-number__decrease { |
| | | >>>.el-input-number__increase, |
| | | >>>.el-input-number__decrease { |
| | | width: 26px; |
| | | height: 26px; |
| | | } |
| | | >>>.el-input-number__increase{ |
| | | |
| | | >>>.el-input-number__increase { |
| | | top: 36px; |
| | | left: 10px; |
| | | border: 0px; |
| | |
| | | background: #3A7BFA; |
| | | color: #fff; |
| | | } |
| | | >>>.el-input-number__decrease{ |
| | | |
| | | >>>.el-input-number__decrease { |
| | | top: -30px; |
| | | border: 0px; |
| | | border-radius: 50%; |
| | |
| | | background: #F56C6C; |
| | | color: #fff; |
| | | } |
| | | >>>.el-input-number .el-input{ |
| | | |
| | | >>>.el-input-number .el-input { |
| | | width: 50px; |
| | | } |
| | | >>>.el-input-number .el-input__inner{ |
| | | |
| | | >>>.el-input-number .el-input__inner { |
| | | width: 50px; |
| | | padding: 0; |
| | | } |