¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/router/axios' |
| | | import qs from 'qs' |
| | | |
| | | // æ ¹æ®æ¥æè·åç产è°åº¦å¾
åäºé¡¹ |
| | | export function getReportList(query) { |
| | | return request({ |
| | | url: '/mes/productionSchedul/getReportList', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // è·åç产è°åº¦å¾
åæ¥è¡¨ |
| | | export function getReport(query) { |
| | | return request({ |
| | | url: '/mes/productionSchedul/getReport', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | |
| | | <template> |
| | | <div class="dashboard-main"> |
| | | <!-- <div class="body"> |
| | | <div class="body"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <p class="todo-title"><i class="el-icon-bell"></i><span> ç产è°åº¦ · å¾
å</span></p> |
| | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-card class="box-card todo-card"> |
| | | <el-collapse v-model="activeName" accordion class="todo-collapse" style="display:none"> |
| | | <ul class="type-box"> |
| | | <li v-for="(m,i) in tabList" :key="i" :class="{active:current == i}" @click="changeTab(m,i)">{{ m }}</li> |
| | | </ul> |
| | | <el-collapse v-model="activeName" accordion class="todo-collapse" style="display: none;"> |
| | | <el-collapse-item name="1"> |
| | | <template slot="title"> |
| | | <span class="title">仿¥å¾
å</span> |
| | |
| | | </template> |
| | | </el-calendar> |
| | | <div class="todo-span"><span>å¾
å</span></div> |
| | | <div class="todo-info" v-for="(item,index) in 10" :key="index"> |
| | | <div class="todo-info" v-for="(item,index) in todoList" :key="index" v-show="todoList.length>0"> |
| | | <div class="todo-info-state"></div> |
| | | <span>{{ item }}</span> |
| | | </div> |
| | | <span class="no-info" v-if="todoList.length==0">ææ </span> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card class="box-card todo-total-card"> |
| | | <div class="todo-total-text"> |
| | | <span>仿¥å¾
å</span> |
| | | <span v-text="todoByDayList.length"></span> |
| | | <span v-text="todoInfo.todoByDay"></span> |
| | | </div> |
| | | <div class="todo-total-text"> |
| | | <span>æ¬å¨å¾
å</span> |
| | | <span v-text="todoByWeekList.length"></span> |
| | | <span v-text="todoInfo.todoByWeek"></span> |
| | | </div> |
| | | <div class="todo-total-text"> |
| | | <span>æ¬æå¾
å</span> |
| | | <span v-text="todoByMonthList.length"></span> |
| | | <span v-text="todoInfo.todoByMonth"></span> |
| | | </div> |
| | | <div class="todo-total-text"> |
| | | <span>è¶
æ</span> |
| | | <span v-text="0"></span> |
| | | <span v-text="todoInfo.outByTime"></span> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <style scoped="scoped" lang="scss"> |
| | |
| | | background: #FFFFFF; |
| | | border-radius: 8px 8px 8px 8px; |
| | | border: 1px solid #E8E8E8; |
| | | display: flex; |
| | | align-items: center; |
| | | .todo-info-state{ |
| | | width:12px; |
| | | height:64px; |
| | |
| | | position: relative; |
| | | top:0px; |
| | | } |
| | | span{ |
| | | font-size: 14px; |
| | | margin: 0 16px; |
| | | } |
| | | } |
| | | .no-info{ |
| | | font-size: 14px; |
| | | color: #666; |
| | | display: inline-block; |
| | | text-align: center; |
| | | width: 100%; |
| | | margin-top: 100px; |
| | | } |
| | | .todo-total-card{ |
| | | margin-left: 15px; |
| | |
| | | margin-bottom:10px; |
| | | height: 40px; |
| | | background: linear-gradient( 90deg, #C8C2FF 0%, rgba(200,194,255,0) 100%); |
| | | display: flex; |
| | | align-items: center; |
| | | span:nth-child(1){ |
| | | width:50%; |
| | | height:40px; |
| | |
| | | >>>.el-calendar-table td.is-selected { |
| | | background-color: #e3effc; |
| | | } |
| | | .type-box{ |
| | | list-style-type: none; |
| | | display: flex; |
| | | align-items: center; |
| | | width: 100%; |
| | | padding-left: 0; |
| | | margin-left: 20px; |
| | | li{ |
| | | padding: 8px 16px; |
| | | border: 1px solid #E3E1FD; |
| | | cursor: pointer; |
| | | font-size: 14px; |
| | | color: #875A7B; |
| | | &.active{ |
| | | background: linear-gradient( 180deg, #E3E1FD 0%, #F0EFF9 100%); |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
| | | <script> |
| | |
| | | import ECharts from 'vue-echarts' |
| | | import {dateFormat} from '@/util/date' |
| | | import {getProductionSchedulReport} from '@/api/plan/productionschedul' |
| | | import { getReportList,getReport } from '@/api/wel/index' |
| | | export default { |
| | | name: 'Wel', |
| | | components: { |
| | |
| | | todoByDayList: [], |
| | | todoByWeekList: [], |
| | | todoByMonthList: [], |
| | | tabList:['æ°´å¯æ¥æä»¶','æµ·å·¥å¨ä»¶','è§æµç½','å
¶ä»'], |
| | | current:0, |
| | | type:'æ°´å¯æ¥æä»¶', |
| | | todoList:[], |
| | | todoInfo:{} |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['website']) |
| | | }, |
| | | created() { |
| | | this.getProSchedulReport() |
| | | // this.getProSchedulReport() |
| | | this.getReportList(); |
| | | this.getReport(); |
| | | }, |
| | | watch:{ |
| | | calendarValue(newVal){ |
| | | if(newVal){ |
| | | console.log(dateFormat(newVal,'yyyy-MM-dd')); |
| | | this.getReportList() |
| | | } |
| | | } |
| | | }, |
| | |
| | | }).catch(error=>{ |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | changeTab(m,i){ |
| | | this.type = m; |
| | | this.current = i; |
| | | this.getReportList() |
| | | this.getReport(); |
| | | }, |
| | | getReportList(){ |
| | | getReportList({ |
| | | type:this.type, |
| | | time:dateFormat(this.calendarValue,'yyyy-MM-dd') |
| | | }).then(res=>{ |
| | | if(res.status===200){ |
| | | this.todoList = res.data.data |
| | | } |
| | | }).catch(error=>{ |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | getReport(){ |
| | | getReport({ |
| | | type:this.type, |
| | | }).then(res=>{ |
| | | if(res.status===200){ |
| | | this.todoInfo = res.data.data |
| | | } |
| | | }).catch(error=>{ |
| | | console.error(error) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | style: `@page { |
| | | margin:0; |
| | | padding: 0; |
| | | size: 360px 170px; |
| | | size: 360px 170px landscape; |
| | | } |
| | | html{ |
| | | zoom:100%; |
| | |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { delObj, fetchList,pullEquip } from '@/api/equipment/metering' |
| | | import TableForm from './metering-form' |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'datetime' |
| | | }, |
| | | |
| | | |
| | | { |
| | | minWidth: '150', |
| | | width: '150', |
| | |
| | | printable: 'printMetering',//é¡µé¢ |
| | | type: "html",//ææ¡£ç±»å |
| | | maxWidth:450, |
| | | targetStyles:['*'], |
| | | targetStyles:['*'], |
| | | style: `@page { |
| | | margin:0; |
| | | padding: 0; |
| | | size: 360px 170px; |
| | | size: 360px 170px landscape; |
| | | } |
| | | html{ |
| | | zoom:100%; |
| | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | <el-button type="primary" @click="confirmSaveOrUpdateMould">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æ ç¾å表" :visible.sync="diaPrintTab" width="500px" top="5vh"> |
| | | <div style="width:100%;height:400px;overflow-y: auto;"> |
| | | <div class="dia_body" id="printRaw"> |
| | | <el-card class="box-card" v-for="(tem, i) in multipleSelection" :key="i" style="margin-bottom: 10px; font-size: 16px !important;"> |
| | | <!-- <el-row> |
| | | <el-col :span="8" :offset="1">åºå·ï¼</el-col> |
| | | <el-col :span="7" style="font-weight: bold;">{{ tem.id }}</el-col> |
| | | </el-row> --> |
| | | <el-row> |
| | | <el-col :span="6" :offset="1">ç¼å·ï¼</el-col> |
| | | <el-col :span="12" style="font-weight: bold;">{{ tem.code }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6" :offset="1">模å
·åç§°ï¼</el-col> |
| | | <el-col :span="12" style="font-weight: bold;">{{ tem.name }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6" :offset="1">模å
·ä½ç½®ï¼</el-col> |
| | | <el-col :span="12" style="font-weight: bold;">{{ tem.workShop }}-{{tem.shelfNo}}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6" :offset="1">模å
·äºç»´ç ï¼</el-col> |
| | | <el-col :span="7"> |
| | | <vueQr :text="tem.code" :size="80" :margin="2"></vueQr> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="diaPrintTab = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="printFun">æ å°</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { fetchList,addMould,updateMould,delById } from '@/api/equipment/moulde' |
| | | import { mapGetters } from 'vuex' |
| | | import { remote } from '@/api/admin/dict' |
| | | import vueQr from 'vue-qr' |
| | | import PrintJS from 'print-js' |
| | | export default { |
| | | data(){ |
| | | return { |
| | |
| | | }, |
| | | components: { |
| | | ttable, |
| | | vueQr, |
| | | }, |
| | | watch: { |
| | | dialogVisible(newVal){ |
| | |
| | | type: 'text', |
| | | fun: this.deleteHandle |
| | | }] |
| | | } |
| | | if(this.permissions.equipment_mould_labelprint){ |
| | | this.table.toolbar.push({ |
| | | text: 'æ ç¾æå°', |
| | | type: 'primary', |
| | | fun: this.labelPrint |
| | | }) |
| | | } |
| | | this.table.operator = arr.length>0 ? arr : null |
| | | }, |
| | |
| | | this.$message.error('è¯·éæ©æ¨¡å
·') |
| | | } |
| | | }, |
| | | labelPrint(){ |
| | | if(this.multipleSelection.length==0){ |
| | | this.$message.warning('è¯·éæ©ä¸æ¡æ°æ®') |
| | | return |
| | | } |
| | | this.diaPrintTab = true |
| | | }, |
| | | printFun() { |
| | | // this.printDialogVisible = false; |
| | | this.diaPrintTab = false; |
| | | PrintJS({ |
| | | printable: 'printRaw',//é¡µé¢ |
| | | type: "html",//ææ¡£ç±»å |
| | | maxWidth:450, |
| | | targetStyles:['*'], |
| | | style: `@page { |
| | | margin:0; |
| | | padding: 0; |
| | | size: 360px 170px landscape; |
| | | } |
| | | html{ |
| | | zoom:100%; |
| | | } |
| | | @media print{ |
| | | width: 360px; |
| | | height: 170px; |
| | | margin:0; |
| | | padding: 0; |
| | | }`, |
| | | onPrintDialogClose: this.erexcel=false, |
| | | targetStyles: ["*"], // 使ç¨domçæææ ·å¼ï¼å¾éè¦ |
| | | font_size: '', |
| | | }); |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | targetStyles:['*'], |
| | | style: `@page { |
| | | margin:0; |
| | | size: 360px 175px; |
| | | size: 360px 175px landscape; |
| | | } |
| | | html{ |
| | | zoom:100%; |
| | |
| | | style: `@page { |
| | | margin:0; |
| | | padding: 0; |
| | | size: 323px 210px; |
| | | size: 323px 210px landscape; |
| | | } |
| | | html{ |
| | | zoom:100%; |
| | |
| | | return this.StateList |
| | | } |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'remark', |
| | | label: '夿³¨', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | ], |
| | | toolbar: [], |
| | | operator: null, |
| | |
| | | type: "html", |
| | | // header: "åæææ£æµæ¥å", |
| | | targetStyles: ["*"], |
| | | style: `@page {margin: 0mm 5mm;size: A4;} |
| | | style: `@page {margin: 0mm 5mm;size: A4 landscape;} |
| | | html {zoom:100%;} |
| | | @media print { |
| | | html,body{ |
| | |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥æ£æ¥æ" prop="startTime"> |
| | | <el-date-picker |
| | | :disabled="dataForm.id!=null" |
| | | disabled |
| | | v-model="dataForm.startTime" |
| | | type="datetime" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥æ£äºº" prop="createUser" v-if="dataForm.id!=null"> |
| | | <el-col :span="6" v-if="dataForm.id!=null"> |
| | | <el-form-item label="æ¥æ£äºº" prop="createUser" > |
| | | <el-input v-model="dataForm.createUser" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="projectName" label="项ç®åç§°" v-if="dataForm.id!=null"> |
| | | <el-col :span="6" v-if="dataForm.id!=null"> |
| | | <el-form-item prop="projectName" label="项ç®åç§°" > |
| | | <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName"> |
| | | <el-input v-model="dataForm.projectName" disabled ></el-input> |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="dataForm.remark" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | |
| | | ref="testValueInput" |
| | | @blur="checkTestValues(scope.row,'blur',$event)" |
| | | @select="checkTestValues(scope.row,'select',$event)" |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" |
| | | v-model="scope.row.testValueList[index]" |
| | | :fetch-suggestions="querySearch" |
| | | placeholder="请è¾å
¥æéæ©æ£æµå¼" > |
| | |
| | | unit: '', |
| | | number: '', |
| | | supplier: '', |
| | | remark:'', |
| | | rawInsProducts: [{ |
| | | deviceId: 0, |
| | | father:'', |
| | |
| | | }], |
| | | dataRule: { |
| | | code:[{ required: true, message: 'è¯·æ«æéæ©é¶ä»¶', trigger: 'blur' }], |
| | | startTime: [{ required: true, message: 'è¯·éæ©æ¥æ£æ¥æ', trigger: 'blur' }] |
| | | // startTime: [{ required: true, message: 'è¯·éæ©æ¥æ£æ¥æ', trigger: 'blur' }] |
| | | }, |
| | | deviceList: [], |
| | | } |
| | |
| | | this.dataForm.code = param.code |
| | | this.dataForm.name = param.name |
| | | this.dataForm.formTime = param.formTime |
| | | this.dataForm.startTime = param.formTime |
| | | this.dataForm.unit = param.unit |
| | | this.dataForm.specs = param.specs |
| | | this.dataForm.supplier = param.supplier |
| | |
| | | }); |
| | | }, |
| | | addTeatValueColumn(){ |
| | | this.empiricalValueAdd = this.empiricalValueAdd + 1; |
| | | this.$nextTick(()=>{ |
| | | this.empiricalValueAdd = this.empiricalValueAdd + 1; |
| | | }) |
| | | }, |
| | | // æ·»å è¡ |
| | | clickAddLine(row,index) { |
| | |
| | | this.dataForm.rawInsNo = data.rawInsNo |
| | | this.dataForm.name = data.name |
| | | this.dataForm.formTime = data.formTime |
| | | this.dataForm.startTime = data.startTime |
| | | this.dataForm.remark = data.remark |
| | | this.dataForm.code = data.code |
| | | this.dataForm.specs = data.specs |
| | | this.dataForm.unit = data.runit |
| | |
| | | this.list.forEach(item=>{ |
| | | item.children.forEach(c=>{ |
| | | c.testValue=c.testValueList.join(",") |
| | | c.required = c.required.replace(',','ï¼').replace('(','ï¼').replace(')','ï¼') |
| | | }) |
| | | }) |
| | | data.rawInsProducts = this.list |
| | |
| | | obj.testValList.push('') |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | this.pageDataFun(pageSize,this.tableData) |
| | |
| | | } |
| | | /* Page Definitions */ |
| | | @page WordSection1{ |
| | | size:595.3pt 841.9pt; |
| | | size:595.3pt 841.9pt landscape; |
| | | margin:72.0pt 2.0cm 2.0cm 2.0cm; |
| | | layout-grid:15.6pt; |
| | | } |
| | |
| | | .procedure { |
| | | word-wrap:break-word; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | dataFormTestStandardParam() { |
| | | this.isSubmit = true |
| | | if (this.testStandardParams.length > 0) { |
| | | this.testStandardParams.map(m=>{ |
| | | m.referenceValue = m.referenceValue.replace(',','ï¼').replace('(','ï¼').replace(')','ï¼') |
| | | return m |
| | | }) |
| | | addTestStandardParam(this.testStandardParams) |
| | | .then((response) => { |
| | | this.$message.success('æ£æµæ ååæ°ä¿åæå') |