1.搅合站分辨率修改 2.拌和站屏管理添加材料改成input 3.巡检任务bug修改
| | |
| | | <div style="display: flex;"> |
| | | <div style="margin-right: 10px;" v-for="(item, index) in ruleForm.infos " :key="index"> |
| | | <el-form-item :label="index === 0 ? '材料名称' : ''" :prop="`infos.${index}.dictId`"> |
| | | <el-select v-model="item.dictId" size="mini" placeholder="请选择材料名称"> |
| | | <!-- <el-select v-model="item.dictId" size="mini" placeholder="请选择材料名称"> |
| | | <el-option v-for="item in selects.materials" :key="item.value" :label="item.label" |
| | | :value="item.value"></el-option> |
| | | </el-select> |
| | | </el-select> --> |
| | | <el-input v-model="item.dictId" size="mini" placeholder="请输入" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="index === 0 ? '规格型号' : ''" :prop="`infos.${index}.spec`"> |
| | | <el-input v-model="item.spec" size="mini" placeholder="请输入" clearable></el-input> |
| | |
| | | times: [], // 时间范围 |
| | | selects: { |
| | | screenNames: [], // 配合比屏 |
| | | materials: [] // 材料名称 |
| | | // materials: [] // 材料名称[先改成输入,,字典表材料不匹配] |
| | | }, // 下拉框状态选择汇总 |
| | | tableData: [{ |
| | | inType: '', // 录入方式 |
| | |
| | | construction: '', // 施工部位 |
| | | mixingConsumeId: '', // 每个材料id |
| | | dataLists: [ |
| | | {name: '材料名称', type: 'dictName', value: []}, // 材料名称 |
| | | {name: '材料名称', type: 'dictId', value: []}, // 材料名称 |
| | | {name: '规格型号', type: 'spec', value: []}, // 规格型号 |
| | | {name: '生产厂家', type: 'manufacturer', value: []}, // 生产厂家 |
| | | {name: '材料含水率(%)', type: 'watFull', value: []}, // 含水率 |
| | |
| | | construction: '', // 施工部位 |
| | | mixingConsumeId: '', // 每个材料id |
| | | dataLists: [ |
| | | {name: '材料名称', type: 'dictName', value: []}, // 材料名称 |
| | | {name: '材料名称', type: 'dictId', value: []}, // 材料名称 |
| | | {name: '规格型号', type: 'spec', value: []}, // 规格型号 |
| | | {name: '生产厂家', type: 'manufacturer', value: []}, // 生产厂家 |
| | | {name: '材料含水率(%)', type: 'watFull', value: []}, // 含水率 |
| | |
| | | }) |
| | | }, |
| | | //获取字典表材料名称 |
| | | async getDicFilteredData() { |
| | | let params = {pageNum: 1, pageSize: 100000000} |
| | | let {data} = await this.$api.Dictionary.searchDictionary(params) |
| | | data.list.forEach(item => { |
| | | if (item.dictType === 'pipe_materials') { |
| | | this.selects.materials.push({ |
| | | label: item.dictName, |
| | | value: item.dictId, |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | // async getDicFilteredData() { |
| | | // let params = {pageNum: 1, pageSize: 100000000} |
| | | // let {data} = await this.$api.Dictionary.searchDictionary(params) |
| | | // data.list.forEach(item => { |
| | | // if (item.dictType === 'pipe_materials') { |
| | | // this.selects.materials.push({ |
| | | // label: item.dictName, |
| | | // value: item.dictId, |
| | | // }) |
| | | // } |
| | | // }) |
| | | // }, |
| | | // 获取配比屏名称 |
| | | async getScreenNames() { |
| | | const params = {pageNum: 1, pageSize: 9999} |
| | |
| | | if (!this.isRenderDialog) { |
| | | this.isRenderDialog = true |
| | | } |
| | | if (!this.selects.materials.length) { |
| | | await this.getDicFilteredData() |
| | | } |
| | | // if (!this.selects.materials.length) { |
| | | // await this.getDicFilteredData() |
| | | // } |
| | | this.asyncVisible = true |
| | | this.$nextTick(() => { |
| | | resolve() |
| | |
| | | this.submitMode = 'update' |
| | | this.showDialog().then(() => { |
| | | const {mixingSignboardId, proName, constructionUnit, saveStamp, construction, dataListFlat} = this.tableData[i] |
| | | console.log(constructionUnit) |
| | | this.ruleForm = Object.assign(this.ruleForm, { |
| | | mixingSignboardId, |
| | | proName, |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex: 1; |
| | | padding: 0 4px; |
| | | line-height: 24px; |
| | | margin: -1px -1px -1px 0; |
| | | border: 1px solid #01B3EF; |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | } |
| | |
| | | </div> |
| | | <div class="mixing_rows"> |
| | | <div class="mixing_rows_titles">检验状态:</div> |
| | | <div class="mixing_rows_datas" :class="{'standardStyle':mixingList.status===1,'notStandardStyle':mixingList.status!==1}">{{mixingList&&mixingList.status===1?'合格':mixingList&&mixingList.status===2?'待检':''}}</div> |
| | | <div class="mixing_rows_datas" |
| | | :class="{ 'standardStyle': mixingList.status === 1, 'notStandardStyle': mixingList.status !== 1 }"> |
| | | {{ mixingList && mixingList.status === 1 ? '合格' : mixingList && mixingList.status === 2 ? '待检' : '' |
| | | }}</div> |
| | | </div> |
| | | <div class="mixing_rows"> |
| | | <div class="mixing_rows_titles">报告编号:</div> |
| | |
| | | data(){ |
| | | return{ |
| | | timer:null,//定时器 |
| | | mixingList:null,//展示数据 |
| | | mixingList: [],//展示数据 |
| | | } |
| | | }, |
| | | created(){ |
| | |
| | | flex-direction: column; |
| | | width: 100%; |
| | | height: 100%; |
| | | padding: 5px; |
| | | padding: 0.4rem; |
| | | background: url("../../assets/mixing/mixing_bg3.png") no-repeat; |
| | | background-size: 100% 100%; |
| | | background-position: center center; |
| | |
| | | .mixing_left{ |
| | | display: flex; |
| | | flex-direction: column; |
| | | width: 45%; |
| | | margin-right: 15px; |
| | | flex: 1; |
| | | margin-right: 3rem; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | |
| | | width: 100%; |
| | | background: url("../../assets/mixing/mixing_left_bg.png") no-repeat; |
| | | background-size: 100% 100%; |
| | | |
| | | >div{ |
| | | display: flex; |
| | | justify-content: center; |
| | |
| | | background-color: rgba(37, 129, 255, 0.29); |
| | | } |
| | | } |
| | | |
| | | .mixing_left_name{ |
| | | flex: 1; |
| | | width: 100%; |
| | |
| | | background: linear-gradient(to bottom,#FFFFFF 0%,rgba(140, 186, 255, 0.88) 100%); |
| | | background-clip: text; |
| | | -webkit-background-clip: text; |
| | | text-fill-color: transparent; |
| | | -webkit-text-fill-color: transparent; |
| | | color: #FFFFFF; |
| | | font-size: 9rem; |
| | | font-weight: 500; |
| | | } |
| | | } |
| | | |
| | | .mixing_right{ |
| | | width: calc(55% - 100px); |
| | | flex: 1.2; |
| | | background: linear-gradient(to right,#0D3776 0%,#041A40 100%); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | padding: 2rem 4rem; |
| | | |
| | | .mixing_rows{ |
| | | padding: 10px 20px; |
| | | overflow: hidden; |
| | | display: flex; |
| | | |
| | | .mixing_rows_titles{ |
| | | flex: none; |
| | | color: #FFFFFF; |
| | | font-weight: 400; |
| | | font-size: 5rem; |
| | | } |
| | | |
| | | .mixing_rows_datas{ |
| | | flex: none; |
| | | color: #FFFFFF; |
| | | font-weight: 400; |
| | | font-size: 5rem; |
| | | } |
| | | |
| | | .standardStyle{ |
| | | color:#15EF48; |
| | | font-size:8rem; |
| | | } |
| | | |
| | | .notStandardStyle{ |
| | | color:rgba(255, 102, 0, 1); |
| | | font-size:8rem; |
| | |
| | | <el-tab-pane label="任务打卡" name="second"></el-tab-pane>
|
| | | </el-tabs>
|
| | | </div>
|
| | | <div class="content">
|
| | | <component :is="cpns[activeName]"></component>
|
| | | </div>
|
| | | </div>
|
| | | </template>
|
| | | <script>
|
| | |
| | |
|
| | | <style lang="scss" scoped>
|
| | | @import '@/style/layout-main.scss';
|
| | |
|
| | | .main {
|
| | | display: flex;
|
| | |
|
| | | .content {
|
| | | overflow: hidden;
|
| | | flex: 1;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <!-- 安全管理 ==> 风险分级管控 => 区域巡检(巡检任务)-->
|
| | | <template>
|
| | | <div>
|
| | | <div class="wrap">
|
| | | <div class="main_header">
|
| | | <div class="header_item">
|
| | | <span class="header_label">巡检任务:</span>
|
| | |
| | | <style lang="scss" scoped>
|
| | | @import '@/style/layout-main.scss';
|
| | |
|
| | | .wrap {
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | height: 100%;
|
| | |
|
| | | .main_content {
|
| | | overflow: hidden;
|
| | | flex: 1;
|
| | | }
|
| | | }
|
| | |
|
| | | .divider {
|
| | | position: relative;
|
| | | margin-bottom: 30px;
|
| | |
| | | <!-- 安全管理 ==> 风险分级管控 => 区域巡检(任务打卡)-->
|
| | | <template>
|
| | | <div>
|
| | | <div class="wrap">
|
| | | <div class="main_header">
|
| | | <div class="header_item">
|
| | | <span class="header_label">巡检人:</span>
|
| | |
| | | </div>
|
| | | <div class="header_item">
|
| | | <span class="header_label">巡检状态:</span>
|
| | | <el-select size="mini" v-model="queryInfo.status">
|
| | | <el-select size="mini" v-model="queryInfo.status" clearable>
|
| | | <el-option v-for="item in queryStatus" :key="item.value" :label="item.label" :value="item.value"
|
| | | placeholder="请选择巡检状态"></el-option>
|
| | | </el-select>
|
| | |
| | | <el-image class="image" v-for="(item, index) in regionInfos.img" :key="index" :src="item" fit="contain"
|
| | | :preview-src-list="regionInfos.img"></el-image>
|
| | | </el-form-item>
|
| | |
|
| | | <el-form-item label="获取当前位置:">{{ regionInfos.location }}</el-form-item>
|
| | | </el-form>
|
| | | </el-dialog>
|
| | | </div>
|
| | |
| | | region: '', // 巡检区域
|
| | | res: '', // 巡检结果
|
| | | img: '', // 上传的图片
|
| | | location: '', // 位置
|
| | | }
|
| | | }
|
| | | },
|
| | |
| | | this.regionInfos.time = res.data.inspectionTime
|
| | | this.regionInfos.region = res.data.region
|
| | | this.regionInfos.res = res.data.result
|
| | | this.regionInfos.location = res.data.location
|
| | | this.regionInfos.img = []
|
| | |
|
| | | if (res.data.imgPaths) {
|
| | | let arr = []
|
| | | res.data.imgPaths.split(',').forEach(item => {
|
| | | arr.push(process.env.VUE_APP_BASE_URL + '/' + item)
|
| | | arr.push('https://szpipe.thhy-tj.com/' + item) // 是生产地址
|
| | | })
|
| | | this.regionInfos.img.push(...arr)
|
| | | }
|
| | |
| | | <style lang="scss" scoped>
|
| | | @import '@/style/layout-main.scss';
|
| | |
|
| | | .wrap {
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | height: 100%;
|
| | |
|
| | | .main_content {
|
| | | overflow: hidden;
|
| | | flex: 1;
|
| | | }
|
| | | }
|
| | |
|
| | | .rule_form {
|
| | | color: #fff;
|
| | |
|