| | |
| | | upEnum: "/enum/upEnum", //ä¿®æ¹æä¸¾ |
| | | delEnum: "/enum/delEnum", //å 餿䏾 |
| | | selectEnumByCategory: "/enum/selectEnumByCategory", //éè¿åç±»æ¥è¯¢æä¸¾ |
| | | getDic: "/enum/getDic", //è·åæ°æ®åå
¸çåç±» |
| | | } |
| | | |
| | | const capacityScope = { |
| | |
| | | sonLaboratory: {select:[]}, |
| | | unit: {select:[]}, |
| | | sample: {select:[]}, |
| | | dic: {select:[]}, |
| | | }, |
| | | selectField: { |
| | | inspectionItemType: { |
| | |
| | | deviceGroup:{select:[]}, |
| | | sample: {select:[]}, |
| | | sonLaboratory: {select:[]}, |
| | | unit: {select:[]} |
| | | unit: {select:[]}, |
| | | dic:{select:[]}, |
| | | }, |
| | | requiredAdd: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','sample'], |
| | | requiredUp: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','sample'] |
| | |
| | | this.selectTestObjectByName() |
| | | this.getStandardTemplate() |
| | | this.selectEnumByCategoryForSLaboratory() |
| | | this.selectDocUnit() |
| | | this.selectEnumByCategoryForUnit() |
| | | this.getPower('0') |
| | | }, |
| | |
| | | this.itemParameterData.tagField.unit.select = res.data |
| | | }) |
| | | }, |
| | | selectDocUnit() { |
| | | this.$axios.post(this.$api.enums.getDic).then(res => { |
| | | this.itemParameterData.selectField.dic.select = res.data.map(m=>{ |
| | | return { |
| | | label: m, |
| | | value:m |
| | | } |
| | | }) |
| | | this.itemParameterData.tagField.dic.select = res.data.map(m=>{ |
| | | return { |
| | | label: m, |
| | | value:m |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | obtainItemParameterList() { |
| | | this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { |
| | | let data = [] |
| | |
| | | .card { |
| | | list-style-type: none; |
| | | display: grid; |
| | | grid-template-columns: repeat(auto-fit, 375px); |
| | | grid-template-columns: repeat(auto-fit, 415px); |
| | | /* justify-content: center; */ |
| | | grid-gap: 16px; |
| | | min-height: 300px; |
| | | } |
| | | .card li{ |
| | | width: 375px; |
| | | width: 415px; |
| | | height: 165px; |
| | | border-radius: 8px 8px 8px 8px; |
| | | border: 1px solid #EEEEEE; |
| | |
| | | <el-button type="primary" @click="confirmClaim">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æ¥åå®¡æ ¸" :visible.sync="issuedVisible" width="22cm" :modal-append-to-body="false" :fullscreen="fullscreen"> |
| | | <div class="full-screen"> |
| | | <el-dialog title="æ¥åå®¡æ ¸" :visible.sync="issuedVisible" width="400px" :modal-append-to-body="false" :fullscreen="fullscreen"> |
| | | <!-- <div class="full-screen"> |
| | | <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i> |
| | | <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" > |
| | | </div> |
| | | <div class="btns"> |
| | | </div> --> |
| | | <!-- <div class="btns"> |
| | | <el-button type="primary" size="small">éè¿</el-button> |
| | | <el-button size="small">ä¸éè¿</el-button> |
| | | </div> |
| | | </div> --> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="issuedReasonVisible=true">ä¸éè¿</el-button> |
| | | <el-button type="primary" @click="subIssued" :loading="loadingIssued">é è¿</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æ¥åæ¹å" :visible.sync="approveVisible" width="22cm" :modal-append-to-body="false" :fullscreen="fullscreen"> |
| | | <div class="full-screen"> |
| | | <el-dialog title="ä¸éè¿åå " :visible.sync="issuedReasonVisible" width="400px" :modal-append-to-body="false"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">ä¸éè¿åå ï¼</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请è¾å
¥" clearable |
| | | v-model="reason"></el-input></div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="issuedReasonVisible=false">åæ¶</el-button> |
| | | <el-button type="primary" @click="handleIssuedReason" :loading="loadingIssuedReason">ç¡®å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æ¥åæ¹å" :visible.sync="approveVisible" width="400px" :modal-append-to-body="false" :fullscreen="fullscreen"> |
| | | <!-- <div class="full-screen"> |
| | | <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i> |
| | | <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" > |
| | | </div> |
| | | <div class="btns"> |
| | | </div> --> |
| | | <!-- <div class="btns"> |
| | | <el-button type="primary" size="small">æ¹å</el-button> |
| | | <el-button size="small">䏿¹å</el-button> |
| | | </div> --> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="approveReasonVisible=true">䏿¹å</el-button> |
| | | <el-button type="primary" @click="subApprove" :loading="loadingApprove">æ¹ å</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="䏿¹ååå " :visible.sync="approveReasonVisible" width="400px" :modal-append-to-body="false"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">䏿¹ååå ï¼</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请è¾å
¥" clearable |
| | | v-model="reason"></el-input></div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="approveReasonVisible=false">åæ¶</el-button> |
| | | <el-button type="primary" @click="handleApproveReason" :loading="loadingApproveReason">ç¡®å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | isIndex: true, |
| | | showSelect: false, |
| | | select: false, |
| | | do: [{ |
| | | id: 'handleWeave', |
| | | font: 'å¨çº¿ç¼å¶', |
| | | type: 'text', |
| | | method: 'handleWeave', |
| | | disabFun: (row, index) => { |
| | | return row.isExamine != null |
| | | } |
| | | }, { |
| | | do: [ |
| | | // { |
| | | // id: 'handleWeave', |
| | | // font: 'å¨çº¿ç¼å¶', |
| | | // type: 'text', |
| | | // method: 'handleWeave', |
| | | // disabFun: (row, index) => { |
| | | // return row.isExamine != null |
| | | // } |
| | | // }, |
| | | { |
| | | id: 'download', |
| | | font: 'ä¸è½½', |
| | | type: 'text', |
| | |
| | | disabFun: (row, index) => { |
| | | return row.isExamine != null |
| | | } |
| | | },{ |
| | | id: 'handleSubmit', |
| | | font: 'æäº¤', |
| | | type: 'text', |
| | | method: 'handleSubmit', |
| | | disabFun: (row, index) => { |
| | | return row.isExamine != null |
| | | } |
| | | }, { |
| | | id: 'handleIssued', |
| | | font: 'å®¡æ ¸', |
| | |
| | | } |
| | | }], |
| | | linkEvent: { |
| | | code: { |
| | | method: 'selectAllByOne' |
| | | } |
| | | // code: { |
| | | // method: 'selectAllByOne' |
| | | // } |
| | | }, |
| | | tagField: { |
| | | isRatify: { |
| | |
| | | statusList: [], |
| | | claimVisible: false, |
| | | issuedVisible: false, |
| | | issuedReasonVisible:false, |
| | | approveVisible: false, |
| | | approveReasonVisible:false, |
| | | fullscreen:false, |
| | | value:`` |
| | | loadingApproveReason:false, |
| | | loadingApprove:false, |
| | | loadingIssuedReason:false, |
| | | loadingIssued:false, |
| | | value:``, |
| | | reason:'', |
| | | currentInfo:null, |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | let edit = false |
| | | let up = false |
| | | let res = false |
| | | let issued = false |
| | | let approve = false |
| | | let sub = true |
| | | let issued = true |
| | | let approve = true |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'upReportFile') { |
| | | edit = true |
| | |
| | | if (!issued) { |
| | | this.componentData.do.splice(4, 1) |
| | | } |
| | | if (!res) { |
| | | if (!sub) { |
| | | this.componentData.do.splice(3, 1) |
| | | } |
| | | if (!up) { |
| | | if (!res) { |
| | | this.componentData.do.splice(2, 1) |
| | | } |
| | | if (!edit) { |
| | | this.componentData.do.splice(0, 1) |
| | | if (!up) { |
| | | this.componentData.do.splice(1, 1) |
| | | } |
| | | }, |
| | | handleClose() { |
| | | this.upLoad = false; |
| | | // if (!edit) { |
| | | // this.componentData.do.splice(0, 1) |
| | | // } |
| | | }, |
| | | confirmClaim() { |
| | | // console.log(this.$refs.Word.getValue()) |
| | |
| | | }) |
| | | }, |
| | | handleIssued(row){ |
| | | this.currentInfo = row; |
| | | this.issuedVisible = true; |
| | | }, |
| | | subIssued(){ |
| | | this.loadingIssued = true; |
| | | }, |
| | | handleApprove(row){ |
| | | this.currentInfo = row; |
| | | this.approveVisible = true; |
| | | }, |
| | | subApprove(){ |
| | | this.loadingApprove = true; |
| | | }, |
| | | handleSubmit(row){ |
| | | this.$confirm('æ¯å¦æäº¤å½åæ¥å?', "æäº¤", { |
| | | confirmButtonText: "æäº¤", |
| | | cancelButtonText: "åæ¶", |
| | | type: "success" |
| | | }).then(() => { |
| | | this.$axios.post(this.delUrl, { |
| | | id: row.id |
| | | }).then(res => { |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | this.$message.success('æäº¤æå') |
| | | this.selectList() |
| | | }).catch(e => { |
| | | this.$message.error('æäº¤å¤±è´¥') |
| | | }) |
| | | }).catch(() => {}) |
| | | }, |
| | | handleIssuedReason(){ |
| | | if(!this.reason){ |
| | | return this.$message.error('请è¾å
¥åå ') |
| | | } |
| | | this.loadingIssuedReason = true; |
| | | }, |
| | | handleApproveReason(){ |
| | | if(!this.reason){ |
| | | return this.$message.error('请è¾å
¥åå ') |
| | | } |
| | | this.loadingApproveReason = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <div class="daily-main"> |
| | | <div class="daily-content" style="height:100%"> |
| | | <p style="font-size: 16px;padding:19.5px 0px">æ¯æ¥ä¸å¡ç»è®¡</p> |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-row :gutter="20"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="daily-card daily-head"> |
| | | <div class="daily-head-left"> |
| | | <h4>仿¥ä»»å¡æ¥æ¶</h4> |
| | |
| | | <div class="daily-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-0.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="daily-card daily-head"> |
| | | <div class="daily-head-left"> |
| | | <h4>仿¥ä»»å¡å®æ</h4> |
| | |
| | | <div class="daily-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-1.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="daily-card daily-head"> |
| | | <div class="daily-head-left"> |
| | | <h4>仿¥ä»»å¡å©ä½</h4> |
| | |
| | | <div class="daily-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-2.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="daily-card daily-head"> |
| | | <div class="daily-head-left"> |
| | | <h4>仿¥æ£æµè´¹ç¨</h4> |
| | |
| | | <div class="daily-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-3.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="daily-card daily-head"> |
| | | <div class="daily-head-left"> |
| | | <h4>仿¥æ£æµå·¥æ¶</h4> |
| | |
| | | <div class="daily-head-left-info"> |
| | | <img src="../../../static/img/daliy-down.svg" alt=""> |
| | | <span :class="{active:true}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-4.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="daily-card daily-head"> |
| | | <div class="daily-head-left"> |
| | | <h4>仿¥æ£æµäººå</h4> |
| | |
| | | <div class="daily-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-5.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="35"> |
| | | <el-row :gutter="20"> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 30px;"> |
| | | <div class="daily-card chart-box"> |
| | | <h4>è¿10æ¥ä»»å¡æ¥æ¶é</h4> |
| | |
| | | <div class="inspection-main"> |
| | | <div class="inspection-content" style="height:100%"> |
| | | <p style="font-size: 16px;padding:19.5px 0px">æ£æµé¡¹ç®ç»è®¡</p> |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-row :gutter="20"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="inspection-card inspection-head"> |
| | | <div class="inspection-head-left"> |
| | | <h4>仿¥é¡¹ç®æ¥æ¶</h4> |
| | |
| | | <div class="inspection-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-0.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="inspection-card inspection-head"> |
| | | <div class="inspection-head-left"> |
| | | <h4>仿¥é¡¹ç®å®æ</h4> |
| | |
| | | <div class="inspection-head-left-info"> |
| | | <img src="../../../static/img/daliy-up.svg" alt=""> |
| | | <span :class="{active:false}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-1.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="inspection-card inspection-head"> |
| | | <div class="inspection-head-left"> |
| | | <h4>仿¥é¡¹ç®å©ä½</h4> |
| | |
| | | <div class="inspection-head-left-info"> |
| | | <img src="../../../static/img/daliy-down.svg" alt=""> |
| | | <span :class="{active:true}" class="num"> 8.5% </span> |
| | | <span>è¾æ¨å¤©</span> |
| | | <span style="font-size: 12px;">è¾æ¨å¤©</span> |
| | | </div> |
| | | </div> |
| | | <img src="../../../static/img/daliy-2.svg" alt="" srcset=""> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="inspection-card inspection-head" style="flex-direction: column;padding-bottom: 5px;"> |
| | | <h4 style="margin-bottom: 5px;">仿¥é¡¹ç®åæ ¼ç</h4> |
| | | <echart-module :id="'inspection-qualified'" :config="chartConfig2" :datas="chartData2" style="align-self: center;"></echart-module> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="inspection-card inspection-head" style="flex-direction: column;padding-bottom: 5px;"> |
| | | <h4 style="margin-bottom: 5px;">仿¥é¡¹ç®å®æç</h4> |
| | | <echart-module :id="'inspection-complete'" :config="chartConfig3" :datas="chartData3" style="align-self: center;"></echart-module> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;"> |
| | | <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 30px;"> |
| | | <div class="inspection-card inspection-head" style="flex-direction: column;padding-bottom: 5px;"> |
| | | <h4 style="margin-bottom: 5px;">仿¥é¡¹ç®å»¶æç</h4> |
| | | <echart-module :id="'inspection-extension'" :config="chartConfig4" :datas="chartData4" style="align-self: center;"></echart-module> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="35"> |
| | | <el-row :gutter="20"> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 30px;"> |
| | | <div class="inspection-card chart-box"> |
| | | <h4>è¿10æ¥é¡¹ç®æ¥æ¶é</h4> |
| | |
| | | |
| | | .no1 { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .no1 .left { |
| | | width: 65%; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .left-1 { |
| | |
| | | font-size: 17px; |
| | | } |
| | | |
| | | .left-2 { |
| | | width: 100%; |
| | | display: flex; |
| | | } |
| | | |
| | | .card-1 { |
| | | width: calc(25% - 40px); |
| | | height: 100px; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .card-1 .label .p1 { |
| | | color: #333; |
| | | font-size: 0.85vw; |
| | | font-style: normal; |
| | | font-weight: 400; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .card-1 .label .p2 { |
| | | color: #3A7BFA; |
| | | font-size: 1.4vw; |
| | | font-style: normal; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .card-1 .label { |
| | | width: calc(100% - 4vw); |
| | | } |
| | | |
| | | .card-1 .icon { |
| | | background-color: #F3F6FA; |
| | | border-radius: 50%; |
| | | width: 4vw; |
| | | height: 4vw; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .card-1 .icon i { |
| | | font-size: 1.6vw; |
| | | color: #3A7BFA; |
| | | } |
| | | |
| | | .right { |
| | | width: 35%; |
| | | width: 32%; |
| | | height: calc(7.2vw + 10px + 120px); |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .card-2 { |
| | | width: 33.3%; |
| | | height: calc(50% - 20px); |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | cursor: pointer; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .card-2 .icon { |
| | | width: 3.5vw; |
| | | height: 3.5vw; |
| | | background-color: #F3F6FA; |
| | | border-radius: 24px; |
| | | } |
| | | |
| | | .card-2 .icon i { |
| | | font-size: 1.7vw; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: 100%; |
| | | } |
| | | |
| | | .card-2 .text { |
| | | width: 100%; |
| | | text-align: center; |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | .cart-3, |
| | | .cart-4, |
| | | .cart-5, |
| | | .cart-6 { |
| | | width: calc(50%); |
| | | height: 300px; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .cart-3 div, |
| | | .cart-4 div, |
| | | .cart-5 div, |
| | | .cart-6 div { |
| | | width: 100%; |
| | | height: calc(100% - 30px); |
| | | } |
| | | |
| | | .card p { |
| | | width: 100%; |
| | | line-height: 30px; |
| | | } |
| | | |
| | | .cart-3, |
| | | .cart-5 { |
| | | margin-right: 10px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="index"> |
| | | <el-row :gutter="10"> |
| | | <el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="1"><div class="grid-content bg-purple"></div></el-col> |
| | | <el-col :xs="4" :sm="6" :md="8" :lg="9" :xl="11"><div class="grid-content bg-purple-light"></div></el-col> |
| | | </el-row> |
| | | <div class="no no1"> |
| | | <div class="left"> |
| | | <div class="left-1 card"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="left-2"> |
| | | <div class="card card-1"> |
| | | <div class="label"> |
| | | <p class="p1">æ¨æ¥å®¢æ·æ¶è´¹</p> |
| | | <p class="p2">{{data.data1.data1}}</p> |
| | | </div> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1139"></i> |
| | | </div> |
| | | </div> |
| | | <div class="card card-1"> |
| | | <div class="label"> |
| | | <p class="p1">æ¨æ¥å®é
æ¶è´¹</p> |
| | | <p class="p2">{{data.data1.data2}}</p> |
| | | </div> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1139"></i> |
| | | </div> |
| | | </div> |
| | | <div class="card card-1"> |
| | | <div class="label"> |
| | | <p class="p1">æ¨æ¥ææ¬</p> |
| | | <p class="p2">{{data.data1.data3}}</p> |
| | | </div> |
| | | <div class="icon"> |
| | | <i class="font icon-qiandai" style="color: #FF9900;font-size: 2.4vw;"></i> |
| | | </div> |
| | | </div> |
| | | <div class="card card-1" style="margin-right: 0;"> |
| | | <div class="label"> |
| | | <p class="p1">æ¨æ¥å®é
ææ¬</p> |
| | | <p class="p2">{{data.data1.data4}}</p> |
| | | </div> |
| | | <div class="icon"> |
| | | <i class="font icon-qiandai" style="color: #FF9900;font-size: 2.4vw;"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right card"> |
| | | <p>常ç¨åè½</p> |
| | | <div class="card-2" @click="openComponent('è´¢å¡ä¸æ¥')"> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1236" style="color: #3A7BFA;"></i> |
| | | </div> |
| | | <div class="text">è´¢å¡ä¸æ¥</div> |
| | | </div> |
| | | <div class="card-2" @click="openComponent('è¿ç²ä¸æ¥')"> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1122" style="color: #34BD66;"></i> |
| | | </div> |
| | | <div class="text">è¿ç²ä¸æ¥</div> |
| | | </div> |
| | | <div class="card-2" @click="openComponent('人å管ç')"> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1124" style="color: #FF9900;"></i> |
| | | </div> |
| | | <div class="text">人å管ç</div> |
| | | </div> |
| | | <div class="card-2" @click="openComponent('è§è²ç®¡ç')"> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1126" style="color: #3A7BFA;"></i> |
| | | </div> |
| | | <div class="text">è§è²ç®¡ç</div> |
| | | </div> |
| | | <div class="card-2" @click="openComponent('客æ·ç®¡ç')"> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1124" style="color: #34BD66;"></i> |
| | | </div> |
| | | <div class="text">客æ·ç®¡ç</div> |
| | | </div> |
| | | <div class="card-2" @click="openComponent('项ç®ç®¡ç')"> |
| | | <div class="icon"> |
| | | <i class="font icon-a-Group1232" style="color: #FF9900;"></i> |
| | | </div> |
| | | <div class="text">项ç®ç®¡ç</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="no no-2"> |
| | | <div class="card cart-3"> |
| | | <p>ä¸å¨å®¢æ·æ¶è´¹</p> |
| | | <div id="card-1"></div> |
| | | </div> |
| | | <div class="card cart-4"> |
| | | <p>ä¸å¨å®¢æ·å®é
æ¶è´¹</p> |
| | | <div id="card-2"></div> |
| | | </div> |
| | | </div> |
| | | <div class="no no-2"> |
| | | <div class="card cart-5"> |
| | | <p>项ç®å®¢æ·ææ¬</p> |
| | | <div id="card-3"></div> |
| | | </div> |
| | | <div class="card cart-6"> |
| | | <p>项ç®å®é
ææ¬</p> |
| | | <div id="card-4"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import * as echarts from 'echarts'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | user: {}, |
| | | now: null, |
| | | data: { |
| | | data1: {}, |
| | | data2: [], |
| | | data3: [], |
| | | data4: [], |
| | | data5: [] |
| | | }, |
| | | myChart1: null, |
| | | myChart2: null, |
| | | myChart3: null, |
| | | myChart4: null |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.user = JSON.parse(localStorage.getItem('user')) |
| | | this.nowTime() |
| | | this.myChart1 = echarts.init($('#card-1')[0]); |
| | | this.myChart2 = echarts.init($('#card-2')[0]); |
| | | this.myChart3 = echarts.init($('#card-3')[0]); |
| | | this.myChart4 = echarts.init($('#card-4')[0]); |
| | | this.getDataList() |
| | | setInterval(() => { |
| | | this.nowTime() |
| | | }, 1000) |
| | | /* setInterval(() => { |
| | | this.getDataList() |
| | | }, 60 * 1000) */ |
| | | }, |
| | | methods: { |
| | | nowTime() { |
| | |
| | | } |
| | | this.now = y + "-" + m + "-" + d + " " + h + ":" + min + ":" + s; |
| | | }, |
| | | openComponent(str) { |
| | | var str1 = {} |
| | | var str2 = -1 |
| | | switch (str) { |
| | | case 'è´¢å¡ä¸æ¥': |
| | | str1 = { |
| | | k: 6, |
| | | v: "è´¢å¡ä¸æ¥", |
| | | i: "font icon-a-Group1236", |
| | | u: "finance-submit" |
| | | } |
| | | break |
| | | case 'è¿ç²ä¸æ¥': |
| | | str1 = { |
| | | k: 5, |
| | | v: "è¿ç²ä¸æ¥", |
| | | i: "font icon-a-Group1122", |
| | | u: "fans-submit" |
| | | } |
| | | break |
| | | case '人å管ç': |
| | | str1 = { |
| | | k: 8, |
| | | v: "人å管ç", |
| | | i: "font icon-a-Group1124", |
| | | u: "person-manage" |
| | | } |
| | | break |
| | | case 'è§è²ç®¡ç': |
| | | str1 = { |
| | | k: 7, |
| | | v: "è§è²ç®¡ç", |
| | | i: "font icon-a-Group1126", |
| | | u: "role-manage" |
| | | } |
| | | break |
| | | case '客æ·ç®¡ç': |
| | | str1 = { |
| | | k: 4, |
| | | v: "客æ·ç®¡ç", |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "custom-enum" |
| | | } |
| | | str2 = 4 |
| | | break |
| | | case '项ç®ç®¡ç': |
| | | str1 = { |
| | | k: 11, |
| | | v: "项ç®ç®¡ç", |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "product-enum" |
| | | } |
| | | str2 = 4 |
| | | break |
| | | } |
| | | this.$parent.addTab(str1, str2) |
| | | }, |
| | | initEcharts1() { |
| | | var myChart = this.myChart1 |
| | | var option; |
| | | let dataX = [] |
| | | let data = []; |
| | | this.data.data2.forEach(a => { |
| | | dataX.push(a.date) |
| | | data.push(a.account_consumptions) |
| | | }) |
| | | let yMax = 1000; |
| | | let dataShadow = []; |
| | | for (let i = 0; i < data.length; i++) { |
| | | dataShadow.push(yMax); |
| | | } |
| | | option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | top: "20px", |
| | | left: "50px", |
| | | bottom: "30px", |
| | | right: "20px" |
| | | }, |
| | | title: {}, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: dataX, |
| | | axisLabel: { |
| | | color: '#333' |
| | | }, |
| | | }, |
| | | yAxis: { |
| | | axisLine: { |
| | | show: false |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | axisLabel: { |
| | | color: '#333' |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | type: [10, 10], |
| | | dashOffset: 20 |
| | | }, |
| | | show: true |
| | | } |
| | | }, |
| | | series: [{ |
| | | type: 'bar', |
| | | barWidth: '20%', |
| | | roam: false, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ |
| | | offset: 0, |
| | | color: '#ffd062' |
| | | }, |
| | | { |
| | | offset: 0.5, |
| | | color: '#ffa844' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#f59433' |
| | | } |
| | | ]), |
| | | barBorderRadius: [8, 8, 0, 0] |
| | | }, |
| | | data: data |
| | | }] |
| | | }; |
| | | option && myChart.setOption(option); |
| | | }, |
| | | initEcharts2() { |
| | | var myChart = this.myChart2 |
| | | var option; |
| | | let dataX = [] |
| | | let data = []; |
| | | this.data.data3.forEach(a => { |
| | | dataX.push(a.date) |
| | | data.push(a.consumption) |
| | | }) |
| | | let yMax = 1000; |
| | | let dataShadow = []; |
| | | for (let i = 0; i < data.length; i++) { |
| | | dataShadow.push(yMax); |
| | | } |
| | | option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | top: "20px", |
| | | left: "50px", |
| | | bottom: "30px", |
| | | right: "20px" |
| | | }, |
| | | title: {}, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: dataX, |
| | | axisLabel: { |
| | | color: '#333' |
| | | }, |
| | | }, |
| | | yAxis: { |
| | | axisLine: { |
| | | show: false |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | axisLabel: { |
| | | color: '#333' |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | type: [10, 10], |
| | | dashOffset: 20 |
| | | }, |
| | | show: true |
| | | } |
| | | }, |
| | | series: [{ |
| | | type: 'bar', |
| | | barWidth: '20%', |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ |
| | | offset: 0, |
| | | color: '#74b3fe' |
| | | }, |
| | | { |
| | | offset: 0.5, |
| | | color: '#4982f3' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#1c56df' |
| | | } |
| | | ]), |
| | | barBorderRadius: [8, 8, 0, 0] |
| | | }, |
| | | data: data |
| | | }] |
| | | }; |
| | | option && myChart.setOption(option); |
| | | }, |
| | | initEcharts3() { |
| | | var myChart = this.myChart3 |
| | | var dataX = [] |
| | | var dataY = [] |
| | | this.data.data4.forEach(a => { |
| | | dataX.push(a.product) |
| | | dataY.push(a.customerCosts) |
| | | }) |
| | | var option; |
| | | option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | top: "20px", |
| | | left: "50px", |
| | | bottom: "30px", |
| | | right: "20px" |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: dataX, |
| | | axisLabel: { |
| | | interval: 0, |
| | | } |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | splitLine: { |
| | | lineStyle: { |
| | | type: [10, 10], |
| | | dashOffset: 20 |
| | | }, |
| | | show: true |
| | | } |
| | | }, |
| | | series: [{ |
| | | data: dataY, |
| | | type: 'line', |
| | | areaStyle: {}, |
| | | smooth: true, |
| | | symbolSize: 7, |
| | | lineStyle: { |
| | | color: '#3c7aff' |
| | | }, |
| | | itemStyle: { |
| | | color: '#3c7aff' |
| | | }, |
| | | areaStyle: { |
| | | color: '#E5EEFF' |
| | | } |
| | | }] |
| | | }; |
| | | option && myChart.setOption(option); |
| | | }, |
| | | initEcharts4() { |
| | | var myChart = this.myChart4 |
| | | var dataX = [] |
| | | var dataY = [] |
| | | this.data.data5.forEach(a => { |
| | | dataX.push(a.product) |
| | | dataY.push(a.actualCost) |
| | | }) |
| | | var option; |
| | | option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | top: "20px", |
| | | left: "50px", |
| | | bottom: "30px", |
| | | right: "20px" |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: dataX, |
| | | axisLabel: { |
| | | interval: 0 |
| | | } |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | splitLine: { |
| | | lineStyle: { |
| | | type: [10, 10], |
| | | dashOffset: 20 |
| | | }, |
| | | show: true |
| | | } |
| | | }, |
| | | series: [{ |
| | | data: dataY, |
| | | type: 'line', |
| | | areaStyle: {}, |
| | | smooth: true, |
| | | symbolSize: 7, |
| | | lineStyle: { |
| | | color: '#f59433' |
| | | }, |
| | | itemStyle: { |
| | | color: '#f59433' |
| | | }, |
| | | areaStyle: { |
| | | color: '#FFF6DE' |
| | | } |
| | | }] |
| | | }; |
| | | option && myChart.setOption(option); |
| | | }, |
| | | getDataList() { |
| | | this.$axios.get(this.$api.dataReporting.getDataList).then(res => { |
| | | this.data = res.data |
| | | this.initEcharts1() |
| | | this.initEcharts2() |
| | | this.initEcharts3() |
| | | this.initEcharts4() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | </script> |
| | |
| | | k: 0, |
| | | v: "个人é¦é¡µ", |
| | | i: "font icon-a-Group1124", |
| | | u: "nullFace" |
| | | u: "index-index" |
| | | }] |
| | | } |
| | | this.tabActive = JSON.parse(localStorage.getItem('tabActive')) |
| | |
| | | k: 0, |
| | | v: "个人é¦é¡µ", |
| | | i: "font icon-a-Group1124", |
| | | u: "nullFace" |
| | | u: "index-index" |
| | | }] |
| | | this.saveClick() |
| | | }, |