| | |
| | | <template> |
| | | <div class="content1"> |
| | | <div class="content_left"> |
| | | <!-- 彿¥å工产éTOP10 --> |
| | | <div class="content_left_item1"> |
| | | <div class="content_left_item1_head"> |
| | | <span>彿¥å工产éTOP10</span> |
| | | </div> |
| | | <div class="content_left_item1_content"> |
| | | <div class="content_left_item1_content_row" v-for="(item, index) in data.production" :key="index"> |
| | | <div class="content_left_item1_content_row_name"> |
| | | <div :class="index > 2 ? 'num bg1' : 'num bg2'">{{ index + 1 }}</div> |
| | | <span>{{item.userName}}</span> |
| | | </div> |
| | | <div class="content_left_item1_content_row_line"> |
| | | <el-progress |
| | | :show-text="false" |
| | | :percentage="item.doneNum / baseNum"> |
| | | </el-progress> |
| | | </div> |
| | | <div class="content_left_item1_content_row_num">{{ item.doneNum }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- ä»åºå®æ¶ä½éç»è®¡ --> |
| | | <div class="content_left_item2"> |
| | | <div class="content_left_item2_head"> |
| | | <span>ä»åºå®æ¶ä½éç»è®¡</span> |
| | | </div> |
| | | <div class="content_left_item2_content"> |
| | | <div class="item2_content_head"> |
| | | <div class="item2_content_head_item">ç©æåç§° / å·¥åº</div> |
| | | <div class="item2_content_head_item">ä»åº</div> |
| | | <div class="item2_content_head_item">è´§æ¶</div> |
| | | <div class="item2_content_head_item">æ°é</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" class="main_container"> |
| | | <div ref="scrollContainer" class="scroll_container"> |
| | | <div v-for="(item, index) in data.marginStatistics" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.materialName }} / {{ item.procedureName }}</div> |
| | | <div class="scroll_item_row">{{ item.warehouseName }}</div> |
| | | <div class="scroll_item_row">{{ item.location }}</div> |
| | | <div class="scroll_item_row">{{ item.num }}{{ item.unitName }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content1"> |
| | | <div class="content_left"> |
| | | <!-- 彿¥å工产éTOP10 --> |
| | | <div class="content_left_item1"> |
| | | <div class="content_left_item1_head"> |
| | | <span>彿¥å工产éTOP10</span> |
| | | </div> |
| | | <div class="content_center"> |
| | | <!-- æå计åè¿åº¦/å·¥åºè¿åº¦ --> |
| | | <div class="content_center_top"> |
| | | <div class="content_center_top_list"> |
| | | <div @click="clickCate(index)" :class="item.active ? 'content_center_top_list_item bg4' : 'content_center_top_list_item bg3'" v-for="(item, index) in cate" :key="index"> |
| | | {{ item.name }} |
| | | </div> |
| | | </div> |
| | | <div class="content_center_top_form" v-if="cate[0].active"> |
| | | <div class="content_center_top_form_head"> |
| | | <div class="content_center_top_form_head_item">计åç¼ç </div> |
| | | <div class="content_center_top_form_head_item">ç©æåç§°</div> |
| | | <div class="content_center_top_form_head_item">ç©æç¼ç </div> |
| | | <div class="content_center_top_form_head_item">è®¡åæ°é</div> |
| | | <div class="content_center_top_form_head_item">åå·¥åºå®ææ
åµ</div> |
| | | <div class="content_center_top_form_head_item">è¯åæ°/å®å·¥æ°</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter1" @mouseleave="handleMouseLeave1" class="main_container"> |
| | | <div ref="scrollContainer1" class="scroll_container"> |
| | | <div v-for="(item, index) in data.plannedProgress" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.code }}</div> |
| | | <div class="scroll_item_row">{{ item.materialName }}</div> |
| | | <div class="scroll_item_row">{{ item.materialCode }}</div> |
| | | <div class="scroll_item_row">{{ item.num }}</div> |
| | | <div class="scroll_item_row"> |
| | | <el-tooltip |
| | | v-for="(child, i) in item.procedureList" :key="i" |
| | | effect="dark" |
| | | :content="'å·²æ¥å·¥è¯åæ°' + child.doneNum + 'ï¼å·¥åºè®¡åæ°' + child.planNum" |
| | | placement="top"> |
| | | <div class="scroll_item_row_item" @click="jump(child.procedureId, child.procedureName)"> |
| | | <div class="scroll_item_row_item_x"></div> |
| | | <!-- <img v-if="i == 0 || i == 1" src="@/assets/img/ic_complete@2x.png" alt="" /> --> |
| | | <span v-if="child.rate < 100">{{ child.rate }}%</span> |
| | | <img v-else src="@/assets/img/ic_complete@2x.png" alt="" /> |
| | | <span class="scroll_item_row_item_wz">{{ child.procedureName }}</span> |
| | | </div> |
| | | </el-tooltip> |
| | | </div> |
| | | <div class="scroll_item_row">{{ item.qualifiedNum }}/{{ item.doneNum }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content_center_top_form1" v-if="cate[1].active"> |
| | | <div class="content_center_top_form_head"> |
| | | <div class="content_center_top_form_head_item">å·¥åºåç§°</div> |
| | | <div class="content_center_top_form_head_item">计å个æ°</div> |
| | | <div class="content_center_top_form_head_item">è®¡åæ°é</div> |
| | | <div class="content_center_top_form_head_item">è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">æªå®å·¥æ°é</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯ç</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter2" @mouseleave="handleMouseLeave2" class="main_container"> |
| | | <div ref="scrollContainer2" class="scroll_container"> |
| | | <div v-for="(item, index) in data.processProgress" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.procedureName }}</div> |
| | | <div class="scroll_item_row">{{ item.planCount }}</div> |
| | | <div class="scroll_item_row">{{ item.num }}</div> |
| | | <div class="scroll_item_row">{{ item.qualifiedNum }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedNum }}</div> |
| | | <div class="scroll_item_row">{{ item.undoneNum }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedRate }}%</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content_left_item1_content"> |
| | | <div class="content_left_item1_content_row" v-for="(item, index) in data.production" :key="index"> |
| | | <div class="content_left_item1_content_row_name"> |
| | | <div :class="index > 2 ? 'num bg1' : 'num bg2'">{{ index + 1 }}</div> |
| | | <span>{{ item.userName }}</span> |
| | | </div> |
| | | <!-- æ¥å·¥æ¥å¿ --> |
| | | <div class="content_center_bottom"> |
| | | <div class="content_center_bottom_head"> |
| | | <span>æ¥å·¥æ¥å¿</span> |
| | | </div> |
| | | <div class="content_center_bottom_b"> |
| | | <div class="content_center_top_form_head"> |
| | | <div class="content_center_top_form_head_item">åå·¥åç§°</div> |
| | | <div class="content_center_top_form_head_item">ç©æåç§°</div> |
| | | <div class="content_center_top_form_head_item">ç©æç¼ç </div> |
| | | <div class="content_center_top_form_head_item">æ¥å·¥æ¶é´</div> |
| | | <div class="content_center_top_form_head_item">è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯ç</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter3" @mouseleave="handleMouseLeave3" class="main_container"> |
| | | <div ref="scrollContainer3" class="scroll_container"> |
| | | <div v-for="(item, index) in data.log" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.userName }}</div> |
| | | <div class="scroll_item_row">{{ item.materialName }}</div> |
| | | <div class="scroll_item_row">{{ item.materialCode }}</div> |
| | | <div class="scroll_item_row">{{ item.createTime }}</div> |
| | | <div class="scroll_item_row">{{ item.qualifiedNum ? item.qualifiedNum : '-' }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedNum }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedRate ? item.unqualifiedRate : '0' }}%</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content_left_item1_content_row_line"> |
| | | <el-progress :show-text="false" :percentage="item.doneNum / baseNum * 100"> |
| | | </el-progress> |
| | | </div> |
| | | <div class="content_left_item1_content_row_num">{{ item.doneNum }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="content_right"> |
| | | <!-- è¿7天ä¸è¯ååå¸ --> |
| | | <div class="content_right_top"> |
| | | <div class="content_right_top_head"> |
| | | <span>è¿7天ä¸è¯ååå¸</span> |
| | | </div> |
| | | <div class="content_right_top_nr"> |
| | | <div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0"> |
| | | <span>{{ data.num }}</span> |
| | | <span>ä¸è¯é¡¹åå¸</span> |
| | | </div> |
| | | <div class="content_right_top_nr_top" id="lineChrat"></div> |
| | | <div class="content_right_top_nr_bottom" id="pieChart"></div> |
| | | </div> |
| | | </div> |
| | | <!-- 设å¤å·¡æ£è®°å½ --> |
| | | <div class="content_right_bottom"> |
| | | <div class="content_right_bottom_head"> |
| | | <span>设å¤å·¡æ£è®°å½</span> |
| | | </div> |
| | | <div class="content_right_bottom_nr"> |
| | | <div class="item2_content_head"> |
| | | <div class="item2_content_head_item">å·¡æ£æ¶é´</div> |
| | | <div class="item2_content_head_item">å·¡æ£è®¾å¤</div> |
| | | <div class="item2_content_head_item">å·¡æ£ç»æ</div> |
| | | <div class="item2_content_head_item">å·¡æ£äººå</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter4" @mouseleave="handleMouseLeave4" class="main_container"> |
| | | <div ref="scrollContainer4" class="scroll_container"> |
| | | <div v-for="(item, index) in data.patrolInspection" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.checkdate }}</div> |
| | | <div class="scroll_item_row">{{ item.deviceName }}</div> |
| | | <div class="scroll_item_row">{{ item.status == 0 ? 'åæ ¼' : 'ä¸åæ ¼' }}</div> |
| | | <div class="scroll_item_row">{{ item.userName }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- ä»åºå®æ¶ä½éç»è®¡ --> |
| | | <div class="content_left_item2"> |
| | | <div class="content_left_item2_head"> |
| | | <span>ä»åºå®æ¶ä½éç»è®¡</span> |
| | | </div> |
| | | <div class="content_left_item2_content"> |
| | | <div class="item2_content_head"> |
| | | <div class="item2_content_head_item">ç©æåç§° / å·¥åº</div> |
| | | <div class="item2_content_head_item">ä»åº</div> |
| | | <div class="item2_content_head_item">è´§æ¶</div> |
| | | <div class="item2_content_head_item">æ°é</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" class="main_container"> |
| | | <div ref="scrollContainer" class="scroll_container"> |
| | | <div v-for="(item, index) in data.marginStatistics" :key="index" |
| | | :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.materialName }} / {{ item.procedureName }}</div> |
| | | <div class="scroll_item_row">{{ item.warehouseName }}</div> |
| | | <div class="scroll_item_row">{{ item.location }}</div> |
| | | <div class="scroll_item_row">{{ item.num }}{{ item.unitName }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content_center"> |
| | | <!-- æå计åè¿åº¦/å·¥åºè¿åº¦ --> |
| | | <div class="content_center_top"> |
| | | <div class="content_center_top_list"> |
| | | <div @click="clickCate(index)" |
| | | :class="item.active ? 'content_center_top_list_item bg4' : 'content_center_top_list_item bg3'" |
| | | v-for="(item, index) in cate" :key="index"> |
| | | {{ item.name }} |
| | | </div> |
| | | </div> |
| | | <div class="content_center_top_form" v-if="cate[0].active"> |
| | | <div class="content_center_top_form_head"> |
| | | <div class="content_center_top_form_head_item">计åç¼ç </div> |
| | | <div class="content_center_top_form_head_item">ç©æåç§°</div> |
| | | <div class="content_center_top_form_head_item">ç©æç¼ç </div> |
| | | <div class="content_center_top_form_head_item">è®¡åæ°é</div> |
| | | <div class="content_center_top_form_head_item">åå·¥åºå®ææ
åµ</div> |
| | | <div class="content_center_top_form_head_item">è¯åæ°/å®å·¥æ°</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter1" @mouseleave="handleMouseLeave1" class="main_container"> |
| | | <div ref="scrollContainer1" class="scroll_container"> |
| | | <div v-for="(item, index) in data.plannedProgress" :key="index" |
| | | :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.code }}</div> |
| | | <div class="scroll_item_row">{{ item.materialName }}</div> |
| | | <div class="scroll_item_row">{{ item.materialCode }}</div> |
| | | <div class="scroll_item_row">{{ item.num }}</div> |
| | | <div class="scroll_item_row"> |
| | | <el-tooltip v-for="(child, i) in item.procedureList" :key="i" effect="dark" |
| | | :content="'å·²æ¥å·¥è¯åæ°' + child.doneNum + 'ï¼å·¥åºè®¡åæ°' + child.planNum" placement="top"> |
| | | <div class="scroll_item_row_item" @click="jump(child.procedureId, child.procedureName)"> |
| | | <div class="scroll_item_row_item_x"></div> |
| | | <!-- <img v-if="i == 0 || i == 1" src="@/assets/img/ic_complete@2x.png" alt="" /> --> |
| | | <span v-if="child.rate < 100">{{ child.rate }}%</span> |
| | | <img v-else src="@/assets/img/ic_complete@2x.png" alt="" /> |
| | | <span class="scroll_item_row_item_wz">{{ child.procedureName }}</span> |
| | | </div> |
| | | </el-tooltip> |
| | | </div> |
| | | <div class="scroll_item_row">{{ item.qualifiedNum }}/{{ item.doneNum }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content_center_top_form1" v-if="cate[1].active"> |
| | | <div class="content_center_top_form_head"> |
| | | <div class="content_center_top_form_head_item">å·¥åºåç§°</div> |
| | | <div class="content_center_top_form_head_item">计å个æ°</div> |
| | | <div class="content_center_top_form_head_item">è®¡åæ°é</div> |
| | | <div class="content_center_top_form_head_item">è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">æªå®å·¥æ°é</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯ç</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter2" @mouseleave="handleMouseLeave2" class="main_container"> |
| | | <div ref="scrollContainer2" class="scroll_container"> |
| | | <div v-for="(item, index) in data.processProgress" :key="index" |
| | | :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.procedureName }}</div> |
| | | <div class="scroll_item_row">{{ item.planCount }}</div> |
| | | <div class="scroll_item_row">{{ item.num }}</div> |
| | | <div class="scroll_item_row">{{ item.qualifiedNum }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedNum }}</div> |
| | | <div class="scroll_item_row">{{ item.undoneNum }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedRate }}%</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- æ¥å·¥æ¥å¿ --> |
| | | <div class="content_center_bottom"> |
| | | <div class="content_center_bottom_head"> |
| | | <span>æ¥å·¥æ¥å¿</span> |
| | | </div> |
| | | <div class="content_center_bottom_b"> |
| | | <div class="content_center_top_form_head"> |
| | | <div class="content_center_top_form_head_item">åå·¥åç§°</div> |
| | | <div class="content_center_top_form_head_item">ç©æåç§°</div> |
| | | <div class="content_center_top_form_head_item">ç©æç¼ç </div> |
| | | <div class="content_center_top_form_head_item">æ¥å·¥æ¶é´</div> |
| | | <div class="content_center_top_form_head_item">è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯åæ°</div> |
| | | <div class="content_center_top_form_head_item">ä¸è¯ç</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter3" @mouseleave="handleMouseLeave3" class="main_container"> |
| | | <div ref="scrollContainer3" class="scroll_container"> |
| | | <div v-for="(item, index) in data.log" :key="index" |
| | | :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.userName }}</div> |
| | | <div class="scroll_item_row">{{ item.materialName }}</div> |
| | | <div class="scroll_item_row">{{ item.materialCode }}</div> |
| | | <div class="scroll_item_row">{{ item.createTime }}</div> |
| | | <div class="scroll_item_row">{{ item.qualifiedNum ? item.qualifiedNum : '-' }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedNum }}</div> |
| | | <div class="scroll_item_row">{{ item.unqualifiedRate ? item.unqualifiedRate : '0' }}%</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content_right"> |
| | | <!-- è¿7天ä¸è¯ååå¸ --> |
| | | <div class="content_right_top"> |
| | | <div class="content_right_top_head"> |
| | | <span>è¿7天ä¸è¯ååå¸</span> |
| | | </div> |
| | | <div class="content_right_top_nr"> |
| | | <div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0"> |
| | | <span>{{ data.num }}</span> |
| | | <span>ä¸è¯é¡¹åå¸</span> |
| | | </div> |
| | | <div class="content_right_top_nr_top" id="lineChrat"></div> |
| | | <div class="content_right_top_nr_bottom" id="pieChart"></div> |
| | | </div> |
| | | </div> |
| | | <!-- 设å¤å·¡æ£è®°å½ --> |
| | | <div class="content_right_bottom"> |
| | | <div class="content_right_bottom_head"> |
| | | <span>设å¤å·¡æ£è®°å½</span> |
| | | </div> |
| | | <div class="content_right_bottom_nr"> |
| | | <div class="item2_content_head"> |
| | | <div class="item2_content_head_item">å·¡æ£æ¶é´</div> |
| | | <div class="item2_content_head_item">å·¡æ£è®¾å¤</div> |
| | | <div class="item2_content_head_item">å·¡æ£ç»æ</div> |
| | | <div class="item2_content_head_item">å·¡æ£äººå</div> |
| | | </div> |
| | | <div @mouseenter="handleMouseEnter4" @mouseleave="handleMouseLeave4" class="main_container"> |
| | | <div ref="scrollContainer4" class="scroll_container"> |
| | | <div v-for="(item, index) in data.patrolInspection" :key="index" |
| | | :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> |
| | | <div class="scroll_item_row">{{ item.checkdate }}</div> |
| | | <div class="scroll_item_row">{{ item.deviceName }}</div> |
| | | <div class="scroll_item_row">{{ item.status == 0 ? 'åæ ¼' : 'ä¸åæ ¼' }}</div> |
| | | <div class="scroll_item_row">{{ item.userName }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { reactive, ref, onMounted, nextTick, onUnmounted, computed, watch, toRefs } from 'vue' |
| | | import { getPlanData, getTop, getStockList, getWorkPlansList, getProcedureProcessList, getRecordLogPage, getDeviceCheckPage, getUnqualified7DayData, getUnqualifiedCateData } from '@/utils/api.js' |
| | | import { useCounterStore } from '@/stores/counter.js' |
| | | import * as echarts from 'echarts' |
| | | import { useRouter } from 'vue-router' |
| | | import { reactive, ref, onMounted, nextTick, onUnmounted, computed, watch, toRefs } from 'vue' |
| | | import { getPlanData, getTop, getStockList, getWorkPlansList, getProcedureProcessList, getRecordLogPage, getDeviceCheckPage, getUnqualified7DayData, getUnqualifiedCateData } from '@/utils/api.js' |
| | | import { useCounterStore } from '@/stores/counter.js' |
| | | import * as echarts from 'echarts' |
| | | import { useRouter } from 'vue-router' |
| | | |
| | | const router = useRouter() |
| | | const router = useRouter() |
| | | |
| | | let data = reactive({ |
| | | production: [], |
| | | marginStatistics: [], |
| | | plannedProgress: [], |
| | | processProgress: [], |
| | | log: [], |
| | | patrolInspection: [], |
| | | dayDistribution: [], |
| | | typeDistribution: [], |
| | | num: 0, |
| | | baseNum: 0 |
| | | let data = reactive({ |
| | | production: [], |
| | | marginStatistics: [], |
| | | plannedProgress: [], |
| | | processProgress: [], |
| | | log: [], |
| | | patrolInspection: [], |
| | | dayDistribution: [], |
| | | typeDistribution: [], |
| | | num: 0, |
| | | baseNum: 0 |
| | | }) |
| | | |
| | | let { baseNum } = toRefs(data) |
| | | |
| | | let timer = ref(null) |
| | | let timer1 = ref(null) |
| | | let timer2 = ref(null) |
| | | let timer3 = ref(null) |
| | | let timer4 = ref(null) |
| | | let timer5 = ref(null) |
| | | let scrollContainer = ref(null) |
| | | let scrollContainer1 = ref(null) |
| | | let scrollContainer2 = ref(null) |
| | | let scrollContainer3 = ref(null) |
| | | let scrollContainer4 = ref(null) |
| | | let cate = ref([ |
| | | { |
| | | name: 'æå计åè¿åº¦', |
| | | id: 1, |
| | | active: true, |
| | | background: 'tab_select_grey@2x.png', |
| | | activeBackground: 'tab_select@2x.png' |
| | | }, |
| | | { |
| | | name: 'å·¥åºè¿åº¦', |
| | | id: 2, |
| | | active: false, |
| | | background: 'tab_select_grey@2x.png', |
| | | activeBackground: 'tab_select@2x.png' |
| | | } |
| | | ]) |
| | | |
| | | const enterprise = useCounterStore() |
| | | |
| | | const companyId = computed(() => { |
| | | return enterprise.companyId |
| | | }) |
| | | const departId = computed(() => { |
| | | return enterprise.departId |
| | | }) |
| | | |
| | | const jump = (procedureId, procedureName) => { |
| | | enterprise.setProcedureName(procedureName) |
| | | router.push({ name: 'process', query: { procedureId } }) |
| | | } |
| | | |
| | | watch(() => departId.value, (val) => { |
| | | if (val) { |
| | | init() |
| | | } |
| | | }) |
| | | |
| | | start1() |
| | | |
| | | const init = () => { |
| | | // 彿¥å工产éTOP10 |
| | | getTop(companyId.value, departId.value) |
| | | .then(res => { |
| | | if (res.length > 0) { |
| | | data.baseNum = res[0].doneNum |
| | | data.production = res |
| | | } |
| | | }) |
| | | |
| | | let { baseNum } = toRefs(data) |
| | | |
| | | let timer = ref(null) |
| | | let timer1 = ref(null) |
| | | let timer2 = ref(null) |
| | | let timer3 = ref(null) |
| | | let timer4 = ref(null) |
| | | let timer5 = ref(null) |
| | | let scrollContainer = ref(null) |
| | | let scrollContainer1 = ref(null) |
| | | let scrollContainer2 = ref(null) |
| | | let scrollContainer3 = ref(null) |
| | | let scrollContainer4 = ref(null) |
| | | let cate = ref([ |
| | | { |
| | | name: 'æå计åè¿åº¦', |
| | | id: 1, |
| | | active: true, |
| | | background: 'tab_select_grey@2x.png', |
| | | activeBackground: 'tab_select@2x.png' |
| | | }, |
| | | { |
| | | name: 'å·¥åºè¿åº¦', |
| | | id: 2, |
| | | active: false, |
| | | background: 'tab_select_grey@2x.png', |
| | | activeBackground: 'tab_select@2x.png' |
| | | } |
| | | ]) |
| | | |
| | | const enterprise = useCounterStore() |
| | | |
| | | const companyId = computed(() => { |
| | | return enterprise.companyId |
| | | }) |
| | | const departId = computed(() => { |
| | | return enterprise.departId |
| | | }) |
| | | |
| | | const jump = (procedureId, procedureName) => { |
| | | enterprise.setProcedureName(procedureName) |
| | | router.push({ name: 'process', query: { procedureId } }) |
| | | } |
| | | |
| | | watch(() => departId.value, (val) => { |
| | | if (val) { |
| | | init() |
| | | } |
| | | }) |
| | | |
| | | start1() |
| | | |
| | | const init = () => { |
| | | // 彿¥å工产éTOP10 |
| | | getTop(companyId.value, departId.value) |
| | | .then(res => { |
| | | if (res.length > 0) { |
| | | data.baseNum = res[0].doneNum |
| | | data.production = res |
| | | } |
| | | }) |
| | | // ä»åºå®æ¶ä½éç»è®¡ |
| | | getStockList(companyId.value, departId.value) |
| | | .then(res => { |
| | | data.marginStatistics = res |
| | | nextTick(() => { |
| | | start() |
| | | }) |
| | | }) |
| | | // æå计åè¿åº¦ |
| | | getWorkPlansList(companyId.value, departId.value) |
| | | .then(res => { |
| | | res.forEach(item => { |
| | | item.rate = Math.trunc(item.rate) |
| | | }) |
| | | data.plannedProgress = res |
| | | nextTick(() => { |
| | | start1() |
| | | }) |
| | | }) |
| | | // æ¥å·¥æ¥å¿ |
| | | getRecordLogPage(companyId.value, departId.value, { |
| | | capacity: 9999, |
| | | model: {}, |
| | | page: 1 |
| | | }).then(res => { |
| | | data.log = res.records |
| | | nextTick(() => { |
| | | start3() |
| | | }) |
| | | }) |
| | | // 设å¤å·¡æ£è®°å½ |
| | | getDeviceCheckPage(companyId.value, departId.value, { |
| | | capacity: 9999, |
| | | model: {}, |
| | | page: 1 |
| | | }).then(res => { |
| | | data.patrolInspection = res.records |
| | | nextTick(() => { |
| | | start4() |
| | | }) |
| | | }) |
| | | // è¿ä¸å¤©ä¸è¯æ° |
| | | getUnqualified7DayData(companyId.value, departId.value, '') |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | | data.dayDistribution = res.map(item => { |
| | | return { |
| | | date: item.createTime, |
| | | num: item.unqualifiedNum |
| | | } |
| | | }) |
| | | setDayChart() |
| | | } |
| | | }) |
| | | // è¿ä¸å¤©ä¸è¯é¡¹ |
| | | getUnqualifiedCateData(companyId.value, departId.value, '') |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | | data.num = 0 |
| | | data.typeDistribution = res.map(item => { |
| | | data.num += item.unqualifiedNum |
| | | return { |
| | | name: item.categoryName, |
| | | num: item.unqualifiedNum |
| | | } |
| | | }) |
| | | setTypeChart() |
| | | } |
| | | }) |
| | | // getPlanData |
| | | getPlanData(companyId.value, departId.value) |
| | | .then(res => { |
| | | enterprise.setNum(res) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 䏿¥æçº¿å¾ |
| | | */ |
| | | function setDayChart() { |
| | | let dayChartDom = document.getElementById('lineChrat'); |
| | | let myChart = echarts.init(dayChartDom); |
| | | let dateList = [] |
| | | let numList = [] |
| | | let num = 0 |
| | | data.dayDistribution.forEach(item => { |
| | | dateList.push(item.date) |
| | | numList.push(item.num) |
| | | num += item.num |
| | | }) |
| | | let option; |
| | | option = { |
| | | title: { |
| | | text: `è¿ä¸æ¥ä¸è¯åæ»æ°ï¼${num}`, |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 12 |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | splitLine: { |
| | | lineStyle: { |
| | | width: 0.5, |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | data: dateList |
| | | }, |
| | | |
| | | yAxis: { |
| | | type: 'value', |
| | | splitLine: { |
| | | lineStyle: { |
| | | width: 0.5, |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | data: numList, |
| | | type: 'line', |
| | | lineStyle: { |
| | | color: '#03D2B5', |
| | | width: 1 |
| | | }, |
| | | areaStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: 'rgba(3, 210, 181, .9)', |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: 'rgba(3, 210, 181, 0)', |
| | | } |
| | | ]) |
| | | } |
| | | } |
| | | ], |
| | | |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | legend: { |
| | | name: '1adssad', |
| | | itemWidth: 10, |
| | | itemHeight: 10, |
| | | itemGap: 4, |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | } |
| | | } |
| | | |
| | | option && myChart.setOption(option); |
| | | } |
| | | |
| | | /** |
| | | * ä¸è¯ç±»ååå¸ |
| | | */ |
| | | function setTypeChart() { |
| | | let dayChartDom = document.getElementById('pieChart'); |
| | | let myChart = echarts.init(dayChartDom); |
| | | let legendData = [] |
| | | let seriesData = [] |
| | | data.typeDistribution.forEach(item => { |
| | | legendData.push(item.name) |
| | | seriesData.push({name:item.name, value:item.num}) |
| | | }) |
| | | let option = { |
| | | // title: { |
| | | // text: 'ååæ°éç»è®¡', |
| | | // subtext: '纯å±èæ', |
| | | // left: 'center' |
| | | // }, |
| | | // tooltip: { |
| | | // trigger: 'item', |
| | | // formatter: '{a} <br/>{b} : {c} ({d}%)' |
| | | // }, |
| | | legend: { |
| | | show: false, |
| | | type: 'scroll', |
| | | orient: 'vertical', |
| | | right: 10, |
| | | top: 20, |
| | | bottom: 20, |
| | | data: legendData |
| | | }, |
| | | series: [ |
| | | { |
| | | // name: 'å§å', |
| | | type: 'pie', |
| | | radius: ['60%', '70%'], |
| | | // avoidLabelOverlap: false, |
| | | itemStyle: { |
| | | borderRadius: 4, |
| | | borderColor: 'rgba(52, 88, 159, 0.4)', |
| | | borderWidth: 4 |
| | | }, |
| | | center: ['50%', '50%'], |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | label: { |
| | | formatter:'{dot| } {title|{b} {c}}\n\n{per|{d}%}', |
| | | rich: { |
| | | title: { |
| | | color: '#fff' |
| | | }, |
| | | per: { |
| | | color: '#01D9FE' |
| | | }, |
| | | dot: { |
| | | backgroundColor: 'inherit', |
| | | width: 8, |
| | | height: 8, |
| | | borderRadius: 4 |
| | | } |
| | | } |
| | | }, |
| | | // labelLayout: { |
| | | // hideOverlap: true |
| | | // }, |
| | | endLabel: { |
| | | show: true, |
| | | distance: 5, |
| | | color: "red" |
| | | }, |
| | | data: seriesData, |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 1)' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | option && myChart.setOption(option); |
| | | } |
| | | onUnmounted(()=>{ |
| | | clearTimeout(timer.value) |
| | | clearTimeout(timer1.value) |
| | | clearTimeout(timer2.value) |
| | | clearTimeout(timer3.value) |
| | | clearTimeout(timer4.value) |
| | | clearTimeout(timer5.value) |
| | | }) |
| | | const clickCate = (index) => { |
| | | clearTimeout(timer1.value) |
| | | clearTimeout(timer2.value) |
| | | cate.value.forEach((item, i) => { |
| | | if (i === index) { |
| | | // æå计åè¿åº¦ |
| | | if (i == 0) { |
| | | getWorkPlansList(companyId.value, departId.value) |
| | | .then(res => { |
| | | data.plannedProgress = res |
| | | nextTick(() => { |
| | | start1() |
| | | }) |
| | | }) |
| | | } else { |
| | | getProcedureProcessList(companyId.value, departId.value) |
| | | .then(res => { |
| | | data.processProgress = res |
| | | nextTick(() => { |
| | | start2() |
| | | }) |
| | | }) |
| | | } |
| | | item.active = true |
| | | } else { |
| | | item.active = false |
| | | } |
| | | }) |
| | | } |
| | | function handleMouseEnter() { |
| | | clearTimeout(timer.value) |
| | | } |
| | | function handleMouseEnter1() { |
| | | clearTimeout(timer1.value) |
| | | } |
| | | function handleMouseEnter2() { |
| | | clearTimeout(timer2.value) |
| | | } |
| | | function handleMouseEnter3() { |
| | | clearTimeout(timer3.value) |
| | | } |
| | | function handleMouseEnter4() { |
| | | clearTimeout(timer4.value) |
| | | } |
| | | function handleMouseLeave() { |
| | | // ä»åºå®æ¶ä½éç»è®¡ |
| | | getStockList(companyId.value, departId.value) |
| | | .then(res => { |
| | | data.marginStatistics = res |
| | | nextTick(() => { |
| | | start() |
| | | } |
| | | function handleMouseLeave1() { |
| | | start1() |
| | | } |
| | | function handleMouseLeave2() { |
| | | start2() |
| | | } |
| | | function handleMouseLeave3() { |
| | | start3() |
| | | } |
| | | function handleMouseLeave4() { |
| | | start4() |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start() { |
| | | clearTimeout(timer.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed = ref(100) |
| | | timer.value = setInterval(ListScroll, speed.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start1() { |
| | | clearTimeout(timer1.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed1 = ref(100) |
| | | timer1.value = setInterval(ListScroll1, speed1.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start2() { |
| | | clearTimeout(timer2.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed2 = ref(100) |
| | | timer2.value = setInterval(ListScroll2, speed2.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start3() { |
| | | clearTimeout(timer3.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed3 = ref(100) |
| | | timer3.value = setInterval(ListScroll3, speed3.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start4() { |
| | | clearTimeout(timer4.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed4 = ref(100) |
| | | timer4.value = setInterval(ListScroll4, speed4.value) |
| | | } |
| | | function ListScroll() { |
| | | let scrollDom = scrollContainer.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if(scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer.value |
| | | }else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if(scrollDom.children.length < 8) { |
| | | clearTimeout(timer.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll1() { |
| | | let scrollDom = scrollContainer1.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if(scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer1.value |
| | | }else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if(scrollDom.children.length < 7) { |
| | | clearTimeout(timer1.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll2() { |
| | | let scrollDom = scrollContainer2.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if(scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer2.value |
| | | }else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if(scrollDom.children.length < 7) { |
| | | clearTimeout(timer2.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll3() { |
| | | let scrollDom = scrollContainer3.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if(scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer3.value |
| | | }else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if(scrollDom.children.length < 6) { |
| | | clearTimeout(timer3.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll4() { |
| | | let scrollDom = scrollContainer4.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if(scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer4.value |
| | | }else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if(scrollDom.children.length < 7) { |
| | | clearTimeout(timer4.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | |
| | | // onUnmounted(() => { |
| | | |
| | | // }) |
| | | |
| | | onMounted(() => { |
| | | if (!departId.value) return; |
| | | timer5.value = setInterval(init(), 60000) |
| | | }) |
| | | }) |
| | | // æå计åè¿åº¦ |
| | | getWorkPlansList(companyId.value, departId.value) |
| | | .then(res => { |
| | | data.plannedProgress = res |
| | | nextTick(() => { |
| | | start1() |
| | | }) |
| | | }) |
| | | // æ¥å·¥æ¥å¿ |
| | | getRecordLogPage(companyId.value, departId.value, { |
| | | capacity: 9999, |
| | | model: {}, |
| | | page: 1 |
| | | }).then(res => { |
| | | data.log = res.records |
| | | nextTick(() => { |
| | | start3() |
| | | }) |
| | | }) |
| | | // 设å¤å·¡æ£è®°å½ |
| | | getDeviceCheckPage(companyId.value, departId.value, { |
| | | capacity: 9999, |
| | | model: {}, |
| | | page: 1 |
| | | }).then(res => { |
| | | data.patrolInspection = res.records |
| | | nextTick(() => { |
| | | start4() |
| | | }) |
| | | }) |
| | | // è¿ä¸å¤©ä¸è¯æ° |
| | | getUnqualified7DayData(companyId.value, departId.value, '') |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | | data.dayDistribution = res.map(item => { |
| | | return { |
| | | date: item.createTime, |
| | | num: item.unqualifiedNum |
| | | } |
| | | }) |
| | | setDayChart() |
| | | } |
| | | }) |
| | | // è¿ä¸å¤©ä¸è¯é¡¹ |
| | | getUnqualifiedCateData(companyId.value, departId.value, '') |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | | data.num = 0 |
| | | data.typeDistribution = res.map(item => { |
| | | data.num += item.unqualifiedNum |
| | | return { |
| | | name: item.categoryName, |
| | | num: item.unqualifiedNum |
| | | } |
| | | }) |
| | | setTypeChart() |
| | | } |
| | | }) |
| | | // getPlanData |
| | | getPlanData(companyId.value, departId.value) |
| | | .then(res => { |
| | | enterprise.setNum(res) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 䏿¥æçº¿å¾ |
| | | */ |
| | | function setDayChart() { |
| | | let dayChartDom = document.getElementById('lineChrat'); |
| | | let myChart = echarts.init(dayChartDom); |
| | | let dateList = [] |
| | | let numList = [] |
| | | let num = 0 |
| | | data.dayDistribution.forEach(item => { |
| | | dateList.push(item.date) |
| | | numList.push(item.num) |
| | | num += item.num |
| | | }) |
| | | let option; |
| | | option = { |
| | | title: { |
| | | text: `è¿ä¸æ¥ä¸è¯åæ»æ°ï¼${num}`, |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 12 |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | splitLine: { |
| | | lineStyle: { |
| | | width: 0.5, |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | data: dateList |
| | | }, |
| | | |
| | | yAxis: { |
| | | type: 'value', |
| | | splitLine: { |
| | | lineStyle: { |
| | | width: 0.5, |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | data: numList, |
| | | type: 'line', |
| | | lineStyle: { |
| | | color: '#03D2B5', |
| | | width: 1 |
| | | }, |
| | | areaStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: 'rgba(3, 210, 181, .9)', |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: 'rgba(3, 210, 181, 0)', |
| | | } |
| | | ]) |
| | | } |
| | | } |
| | | ], |
| | | |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | legend: { |
| | | name: '1adssad', |
| | | itemWidth: 10, |
| | | itemHeight: 10, |
| | | itemGap: 4, |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | } |
| | | } |
| | | |
| | | option && myChart.setOption(option); |
| | | } |
| | | |
| | | /** |
| | | * ä¸è¯ç±»ååå¸ |
| | | */ |
| | | function setTypeChart() { |
| | | let dayChartDom = document.getElementById('pieChart'); |
| | | let myChart = echarts.init(dayChartDom); |
| | | let legendData = [] |
| | | let seriesData = [] |
| | | data.typeDistribution.forEach(item => { |
| | | legendData.push(item.name) |
| | | seriesData.push({ name: item.name, value: item.num }) |
| | | }) |
| | | let option = { |
| | | legend: { |
| | | show: false, |
| | | type: 'scroll', |
| | | orient: 'vertical', |
| | | right: 10, |
| | | top: 20, |
| | | bottom: 20, |
| | | data: legendData |
| | | }, |
| | | series: [ |
| | | { |
| | | // name: 'å§å', |
| | | type: 'pie', |
| | | |
| | | radius: ['60%', '70%'], |
| | | // avoidLabelOverlap: false, |
| | | itemStyle: { |
| | | borderRadius: 4, |
| | | borderColor: 'rgba(52, 88, 159, 0.4)', |
| | | borderWidth: 4 |
| | | }, |
| | | center: ['50%', '50%'], |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | label: { |
| | | formatter: '{dot| } {title|{b} {c}}\n\n{per|{d}%}', |
| | | rich: { |
| | | title: { |
| | | color: '#fff' |
| | | }, |
| | | per: { |
| | | color: '#01D9FE' |
| | | }, |
| | | dot: { |
| | | backgroundColor: 'inherit', |
| | | width: 8, |
| | | height: 8, |
| | | borderRadius: 4 |
| | | } |
| | | } |
| | | }, |
| | | // labelLayout: { |
| | | // hideOverlap: true |
| | | // }, |
| | | endLabel: { |
| | | show: true, |
| | | distance: 5, |
| | | color: "red" |
| | | }, |
| | | data: seriesData, |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 1)' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | option && myChart.setOption(option); |
| | | } |
| | | |
| | | // onBeforeUnmount(()=>{ |
| | | // clearTimeout(timer.value) |
| | | // clearTimeout(timer1.value) |
| | | // clearTimeout(timer2.value) |
| | | // clearTimeout(timer3.value) |
| | | // clearTimeout(timer4.value) |
| | | // }) |
| | | onUnmounted(() => { |
| | | clearTimeout(timer.value) |
| | | clearTimeout(timer1.value) |
| | | clearTimeout(timer2.value) |
| | | clearTimeout(timer3.value) |
| | | clearTimeout(timer4.value) |
| | | clearTimeout(timer5.value) |
| | | }) |
| | | const clickCate = (index) => { |
| | | clearTimeout(timer1.value) |
| | | clearTimeout(timer2.value) |
| | | cate.value.forEach((item, i) => { |
| | | if (i === index) { |
| | | // æå计åè¿åº¦ |
| | | if (i == 0) { |
| | | getWorkPlansList(companyId.value, departId.value) |
| | | .then(res => { |
| | | data.plannedProgress = res |
| | | nextTick(() => { |
| | | start1() |
| | | }) |
| | | }) |
| | | } else { |
| | | getProcedureProcessList(companyId.value, departId.value) |
| | | .then(res => { |
| | | data.processProgress = res |
| | | nextTick(() => { |
| | | start2() |
| | | }) |
| | | }) |
| | | } |
| | | item.active = true |
| | | } else { |
| | | item.active = false |
| | | } |
| | | }) |
| | | } |
| | | function handleMouseEnter() { |
| | | clearTimeout(timer.value) |
| | | } |
| | | function handleMouseEnter1() { |
| | | clearTimeout(timer1.value) |
| | | } |
| | | function handleMouseEnter2() { |
| | | clearTimeout(timer2.value) |
| | | } |
| | | function handleMouseEnter3() { |
| | | clearTimeout(timer3.value) |
| | | } |
| | | function handleMouseEnter4() { |
| | | clearTimeout(timer4.value) |
| | | } |
| | | function handleMouseLeave() { |
| | | start() |
| | | } |
| | | function handleMouseLeave1() { |
| | | start1() |
| | | } |
| | | function handleMouseLeave2() { |
| | | start2() |
| | | } |
| | | function handleMouseLeave3() { |
| | | start3() |
| | | } |
| | | function handleMouseLeave4() { |
| | | start4() |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start() { |
| | | clearTimeout(timer.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed = ref(100) |
| | | timer.value = setInterval(ListScroll, speed.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start1() { |
| | | clearTimeout(timer1.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed1 = ref(100) |
| | | timer1.value = setInterval(ListScroll1, speed1.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start2() { |
| | | clearTimeout(timer2.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed2 = ref(100) |
| | | timer2.value = setInterval(ListScroll2, speed2.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start3() { |
| | | clearTimeout(timer3.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed3 = ref(100) |
| | | timer3.value = setInterval(ListScroll3, speed3.value) |
| | | } |
| | | // å¼å¯å®æ¶å¨ |
| | | function start4() { |
| | | clearTimeout(timer4.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | let speed4 = ref(100) |
| | | timer4.value = setInterval(ListScroll4, speed4.value) |
| | | } |
| | | function ListScroll() { |
| | | let scrollDom = scrollContainer.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if (scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer.value |
| | | } else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length < 8) { |
| | | clearTimeout(timer.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll1() { |
| | | let scrollDom = scrollContainer1.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if (scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer1.value |
| | | } else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length < 7) { |
| | | clearTimeout(timer1.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll2() { |
| | | let scrollDom = scrollContainer2.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if (scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer2.value |
| | | } else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length < 7) { |
| | | clearTimeout(timer2.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll3() { |
| | | let scrollDom = scrollContainer3.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if (scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer3.value |
| | | } else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length < 6) { |
| | | clearTimeout(timer3.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | function ListScroll4() { |
| | | let scrollDom = scrollContainer4.value |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | | if (scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer4.value |
| | | } else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length < 7) { |
| | | clearTimeout(timer4.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | | scrollDom.removeChild(first) |
| | | // å°è¯¥èç¹æ¼æ¥å°ç»ä»¶æå |
| | | scrollDom.append(first) |
| | | } |
| | | } |
| | | } |
| | | |
| | | // onUnmounted(() => { |
| | | |
| | | // }) |
| | | |
| | | onMounted(() => { |
| | | if (!departId.value) return; |
| | | timer5.value = setInterval(init(), 60000) |
| | | }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content1 { |
| | | .content1 { |
| | | width: 100%; |
| | | height: auto; |
| | | display: flex; |
| | | align-items: start; |
| | | justify-content: space-between; |
| | | |
| | | .content_left { |
| | | flex: 1; |
| | | .content_left_item1 { |
| | | width: 100%; |
| | | height: 398px; |
| | | margin-bottom: 20px; |
| | | .content_left_item1_head { |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | width: 100%; |
| | | height: auto; |
| | | display: flex; |
| | | align-items: start; |
| | | justify-content: space-between; |
| | | .content_left { |
| | | flex: 1; |
| | | .content_left_item1 { |
| | | width: 100%; |
| | | margin-bottom: 20px; |
| | | .content_left_item1_head { |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | line-height: 24px; |
| | | text-shadow: 0px 0px 10px rgba(0,24,72,0.75); |
| | | } |
| | | } |
| | | .content_left_item1_content { |
| | | width: 100%; |
| | | height: 360px; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%); |
| | | .content_left_item1_content_row { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-bottom: 13px; |
| | | &:last-child { |
| | | margin: 0; |
| | | } |
| | | .content_left_item1_content_row_name { |
| | | flex-shrink: 0; |
| | | width: 100px; |
| | | display: flex; |
| | | align-items: center; |
| | | span { |
| | | font-size: 13px; |
| | | font-family: SourceHanSansSC-Regular, SourceHanSansSC; |
| | | font-weight: 400; |
| | | color: #D2E0FF; |
| | | margin-left: 9px; |
| | | } |
| | | .num { |
| | | width: 20px; |
| | | height: 20px; |
| | | line-height: 20px; |
| | | text-align: center; |
| | | font-size: 12px; |
| | | font-family: SourceHanSansSC-Medium, SourceHanSansSC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | .bg1 { |
| | | background: url('@/assets/img/rank_blue@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .bg2 { |
| | | background: url('@/assets/img/rank_yellow@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | } |
| | | .content_left_item1_content_row_line { |
| | | flex: 1; |
| | | margin: 0 15px; |
| | | &::v-deep(.el-progress-bar__outer) { |
| | | border-radius: 0%; |
| | | background: rgba(255,255,255,0.13); |
| | | } |
| | | &::v-deep(.el-progress-bar__inner) { |
| | | border-radius: 0%; |
| | | background: linear-gradient(270deg, #00B0FF 0%, #345BA3 100%); |
| | | } |
| | | } |
| | | .content_left_item1_content_row_num { |
| | | font-size: 13px; |
| | | width: 60px; |
| | | font-family: SourceHanSansSC-Regular, SourceHanSansSC; |
| | | font-weight: 400; |
| | | color: #D2E0FF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .content_left_item2 { |
| | | width: 100%; |
| | | .content_left_item2_head { |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | line-height: 24px; |
| | | text-shadow: 0px 0px 10px rgba(0,24,72,0.75); |
| | | } |
| | | } |
| | | .content_left_item2_content { |
| | | width: 100%; |
| | | height: 361px; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%); |
| | | .item2_content_head { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | background: rgba(52,88,159,0.5); |
| | | .item2_content_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | &:first-child { |
| | | flex: 1.5; |
| | | } |
| | | } |
| | | } |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 36px); |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | .scroll_item_bg1 { |
| | | background: rgba(52,88,159,0.2); |
| | | } |
| | | .scroll_item_bg2 { |
| | | background: rgba(52,88,159,0.5); |
| | | } |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | width: 0; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | font-size: 13px; |
| | | &:first-child { |
| | | flex: 1.5; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | line-height: 24px; |
| | | text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75); |
| | | } |
| | | .content_center { |
| | | flex: 2; |
| | | margin: 0 20px; |
| | | } |
| | | |
| | | .content_left_item1_content { |
| | | width: 100%; |
| | | height: 360px; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | |
| | | .content_left_item1_content_row { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-bottom: 13px; |
| | | |
| | | &:last-child { |
| | | margin: 0; |
| | | } |
| | | |
| | | .content_left_item1_content_row_name { |
| | | flex-shrink: 0; |
| | | width: 100px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .content_center_top { |
| | | width: 100%; |
| | | height: 509px; |
| | | margin-bottom: 20px; |
| | | background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%); |
| | | .content_center_top_list { |
| | | width: 100%; |
| | | height: 38px; |
| | | display: flex; |
| | | align-items: center; |
| | | .bg3 { |
| | | background: url('@/assets/img/tab_select_grey@2x.png'); |
| | | background-size: 100% 100%; |
| | | } |
| | | .bg4 { |
| | | background: url('@/assets/img/tab_select@2x.png'); |
| | | background-size: 100% 100%; |
| | | } |
| | | .content_center_top_list_item { |
| | | width: 200px; |
| | | height: 38px; |
| | | cursor: pointer; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | margin-right: 20px; |
| | | text-shadow: 0px 0px 10px rgba(0,24,72,0.75); |
| | | &:last-child { |
| | | margin-right: 0; |
| | | } |
| | | } |
| | | } |
| | | .content_center_top_form { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | height: calc(100% - 38px); |
| | | .content_center_top_form_head { |
| | | width: 100%; |
| | | height: 34px; |
| | | background: rgba(52,88,159,0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | .content_center_top_form_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | &:nth-child(5) { |
| | | flex: 2.7; |
| | | } |
| | | } |
| | | } |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 34px); |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | .scroll_item_bg1 { |
| | | background: rgba(52,88,159,0.2); |
| | | } |
| | | .scroll_item_bg2 { |
| | | background: rgba(52,88,159,0.5); |
| | | } |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 58px; |
| | | display: flex; |
| | | align-items: center; |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | font-size: 13px; |
| | | &:nth-child(5) { |
| | | flex: 3; |
| | | } |
| | | .scroll_item_row_item { |
| | | width: 29px; |
| | | height: 29px; |
| | | border-radius: 50%; |
| | | margin-right: 19px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border: 2px solid #01D9FE; |
| | | cursor: pointer; |
| | | position: relative; |
| | | &:last-child { |
| | | margin-right: 0; |
| | | .scroll_item_row_item_x { |
| | | display: none; |
| | | } |
| | | } |
| | | &:nth-child(1) { |
| | | border: 2px solid #03D2B5; |
| | | .scroll_item_row_item_x { |
| | | background-color: #03D2B5; |
| | | } |
| | | } |
| | | &:nth-child(2) { |
| | | border: 2px solid #03D2B5; |
| | | } |
| | | img { |
| | | width: 17px; |
| | | height: 13px; |
| | | } |
| | | span { |
| | | font-size: 12px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #01D9FE; |
| | | } |
| | | .scroll_item_row_item_wz { |
| | | white-space: nowrap; |
| | | position: absolute; |
| | | bottom: -10px; |
| | | left: 50%; |
| | | transform: translate(-50%, 45%); |
| | | font-size: 12px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #FFFFFF; |
| | | } |
| | | .scroll_item_row_item_x { |
| | | position: absolute; |
| | | right: -85%; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | width: 19px; |
| | | height: 2px; |
| | | background-color: #01D9FE; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .content_center_top_form1 { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | height: calc(100% - 38px); |
| | | .content_center_top_form_head { |
| | | width: 100%; |
| | | height: 34px; |
| | | background: rgba(52,88,159,0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | .content_center_top_form_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | } |
| | | } |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 34px); |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | .scroll_item_bg1 { |
| | | background: rgba(52,88,159,0.2); |
| | | } |
| | | .scroll_item_bg2 { |
| | | background: rgba(52,88,159,0.5); |
| | | } |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 13px; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | .scroll_item_row_item { |
| | | width: 29px; |
| | | height: 29px; |
| | | border-radius: 50%; |
| | | margin-right: 19px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border: 2px solid #01D9FE; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | align-items: center; |
| | | |
| | | span { |
| | | font-size: 13px; |
| | | font-family: SourceHanSansSC-Regular, SourceHanSansSC; |
| | | font-weight: 400; |
| | | color: #D2E0FF; |
| | | margin-left: 9px; |
| | | } |
| | | .content_center_bottom { |
| | | width: 100%; |
| | | height: 286px; |
| | | .content_center_bottom_head { |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(270deg, rgba(21,103,255,0) 0%, rgba(21,103,255,0.61) 100%); |
| | | border-radius: 10px 0px 0px 0px; |
| | | background: url('@/assets/img/gongxu_title@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | text-shadow: 0px 0px 10px rgba(0,24,72,0.75); |
| | | } |
| | | } |
| | | .content_center_bottom_b { |
| | | width: 100%; |
| | | height: calc(100% - 38px); |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%); |
| | | .content_center_top_form_head { |
| | | width: 100%; |
| | | height: 34px; |
| | | background: rgba(52,88,159,0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | .content_center_top_form_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | &:nth-child(4) { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 33px); |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | .scroll_item_bg1 { |
| | | background: rgba(52,88,159,0.2); |
| | | } |
| | | .scroll_item_bg2 { |
| | | background: rgba(52,88,159,0.5); |
| | | } |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 37px; |
| | | display: flex; |
| | | align-items: center; |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | display: flex; |
| | | font-size: 13px; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | &:nth-child(4) { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .num { |
| | | width: 20px; |
| | | height: 20px; |
| | | line-height: 20px; |
| | | text-align: center; |
| | | font-size: 12px; |
| | | font-family: SourceHanSansSC-Medium, SourceHanSansSC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | .content_right { |
| | | |
| | | .bg1 { |
| | | background: url('@/assets/img/rank_blue@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | |
| | | .bg2 { |
| | | background: url('@/assets/img/rank_yellow@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | } |
| | | |
| | | .content_left_item1_content_row_line { |
| | | flex: 1; |
| | | .content_right_top { |
| | | width: 100%; |
| | | height: 511px; |
| | | margin-bottom: 20px; |
| | | .content_right_top_head { |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | text-shadow: 0px 0px 10px rgba(0,24,72,0.75); |
| | | } |
| | | } |
| | | .content_right_top_nr { |
| | | width: 100%; |
| | | height: calc(100% - 38px); |
| | | background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%); |
| | | position: relative; |
| | | .content_right_top_nr_bottom_yuan { |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, 53%); |
| | | z-index: 999; |
| | | width: 114px; |
| | | height: 114px; |
| | | border-radius: 50%; |
| | | border: 2px dashed #01D9FE; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | span { |
| | | &:first-child { |
| | | font-size: 26px; |
| | | font-family: SourceHanSansSC-Medium, SourceHanSansSC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | &:last-child { |
| | | font-size: 13px; |
| | | font-family: SourceHanSansSC-Regular, SourceHanSansSC; |
| | | font-weight: 400; |
| | | color: rgba(255,255,255,0.8); |
| | | } |
| | | } |
| | | } |
| | | .content_right_top_nr_top { |
| | | width: 100%; |
| | | height: 50%; |
| | | padding: 10px 0 0 10px; |
| | | box-sizing: border-box; |
| | | } |
| | | .content_right_top_nr_bottom { |
| | | width: 100%; |
| | | height: 50%; |
| | | } |
| | | } |
| | | margin: 0 15px; |
| | | |
| | | &::v-deep(.el-progress-bar__outer) { |
| | | border-radius: 0%; |
| | | background: rgba(255, 255, 255, 0.13); |
| | | } |
| | | .content_right_bottom { |
| | | width: 100%; |
| | | height: 284px; |
| | | .content_right_bottom_head { |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | text-shadow: 0px 0px 10px rgba(0,24,72,0.75); |
| | | } |
| | | } |
| | | .content_right_bottom_nr { |
| | | width: 100%; |
| | | height: calc(100% - 38px); |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%); |
| | | .item2_content_head { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | background: rgba(52,88,159,0.5); |
| | | .item2_content_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | &:first-child { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 36px); |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | .scroll_item_bg1 { |
| | | background: rgba(52,88,159,0.2); |
| | | } |
| | | .scroll_item_bg2 { |
| | | background: rgba(52,88,159,0.5); |
| | | } |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | font-size: 13px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | &:first-child { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &::v-deep(.el-progress-bar__inner) { |
| | | border-radius: 0%; |
| | | background: linear-gradient(270deg, #00B0FF 0%, #345BA3 100%); |
| | | } |
| | | } |
| | | |
| | | .content_left_item1_content_row_num { |
| | | font-size: 13px; |
| | | width: 60px; |
| | | font-family: SourceHanSansSC-Regular, SourceHanSansSC; |
| | | font-weight: 400; |
| | | color: #D2E0FF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | |
| | | .content_left_item2 { |
| | | width: 100%; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .content_left_item2_head { |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | line-height: 24px; |
| | | text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75); |
| | | } |
| | | } |
| | | |
| | | .content_left_item2_content { |
| | | width: 100%; |
| | | height: 361px; |
| | | height: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | |
| | | .item2_content_head { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | background: rgba(52, 88, 159, 0.5); |
| | | |
| | | .item2_content_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | |
| | | &:first-child { |
| | | flex: 1.5; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 36px); |
| | | |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | |
| | | .scroll_item_bg1 { |
| | | background: rgba(52, 88, 159, 0.2); |
| | | } |
| | | |
| | | .scroll_item_bg2 { |
| | | background: rgba(52, 88, 159, 0.5); |
| | | } |
| | | |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | width: 0; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | font-size: 13px; |
| | | |
| | | &:first-child { |
| | | flex: 1.5; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .content_center { |
| | | flex: 2; |
| | | margin: 0 20px; |
| | | .content_center_top { |
| | | width: 100%; |
| | | height: 509px; |
| | | margin-bottom: 20px; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | |
| | | .content_center_top_list { |
| | | width: 100%; |
| | | height: 38px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .bg3 { |
| | | background: url('@/assets/img/tab_select_grey@2x.png'); |
| | | background-size: 100% 100%; |
| | | } |
| | | |
| | | .bg4 { |
| | | background: url('@/assets/img/tab_select@2x.png'); |
| | | background-size: 100% 100%; |
| | | } |
| | | .content_center_top_list_item { |
| | | width: 200px; |
| | | height: 38px; |
| | | cursor: pointer; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | margin-right: 20px; |
| | | text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75); |
| | | |
| | | &:last-child { |
| | | margin-right: 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .content_center_top_form { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | height: calc(100% - 38px); |
| | | |
| | | .content_center_top_form_head { |
| | | width: 100%; |
| | | height: 34px; |
| | | background: rgba(52, 88, 159, 0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .content_center_top_form_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | |
| | | &:nth-child(5) { |
| | | flex: 2.7; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 34px); |
| | | |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | |
| | | .scroll_item_bg1 { |
| | | background: rgba(52, 88, 159, 0.2); |
| | | } |
| | | |
| | | .scroll_item_bg2 { |
| | | background: rgba(52, 88, 159, 0.5); |
| | | } |
| | | |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 58px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | font-size: 13px; |
| | | |
| | | &:nth-child(5) { |
| | | flex: 3; |
| | | } |
| | | |
| | | .scroll_item_row_item { |
| | | width: 29px; |
| | | height: 29px; |
| | | border-radius: 50%; |
| | | margin-right: 19px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border: 2px solid #01D9FE; |
| | | cursor: pointer; |
| | | position: relative; |
| | | |
| | | &:last-child { |
| | | margin-right: 0; |
| | | |
| | | .scroll_item_row_item_x { |
| | | display: none; |
| | | } |
| | | } |
| | | |
| | | &:nth-child(1) { |
| | | border: 2px solid #03D2B5; |
| | | |
| | | .scroll_item_row_item_x { |
| | | background-color: #03D2B5; |
| | | } |
| | | } |
| | | |
| | | &:nth-child(2) { |
| | | border: 2px solid #03D2B5; |
| | | } |
| | | |
| | | img { |
| | | width: 17px; |
| | | height: 13px; |
| | | } |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #01D9FE; |
| | | } |
| | | |
| | | .scroll_item_row_item_wz { |
| | | white-space: nowrap; |
| | | position: absolute; |
| | | bottom: -10px; |
| | | left: 50%; |
| | | transform: translate(-50%, 45%); |
| | | font-size: 12px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #FFFFFF; |
| | | } |
| | | |
| | | .scroll_item_row_item_x { |
| | | position: absolute; |
| | | right: -85%; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | width: 19px; |
| | | height: 2px; |
| | | background-color: #01D9FE; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .content_center_top_form1 { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | height: calc(100% - 38px); |
| | | |
| | | .content_center_top_form_head { |
| | | width: 100%; |
| | | height: 34px; |
| | | background: rgba(52, 88, 159, 0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .content_center_top_form_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | } |
| | | } |
| | | |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 34px); |
| | | |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | |
| | | .scroll_item_bg1 { |
| | | background: rgba(52, 88, 159, 0.2); |
| | | } |
| | | |
| | | .scroll_item_bg2 { |
| | | background: rgba(52, 88, 159, 0.5); |
| | | } |
| | | |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 13px; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | |
| | | .scroll_item_row_item { |
| | | width: 29px; |
| | | height: 29px; |
| | | border-radius: 50%; |
| | | margin-right: 19px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border: 2px solid #01D9FE; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .content_center_bottom { |
| | | width: 100%; |
| | | height: 286px; |
| | | |
| | | .content_center_bottom_head { |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(270deg, rgba(21, 103, 255, 0) 0%, rgba(21, 103, 255, 0.61) 100%); |
| | | border-radius: 10px 0px 0px 0px; |
| | | background: url('@/assets/img/gongxu_title@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75); |
| | | } |
| | | } |
| | | |
| | | .content_center_bottom_b { |
| | | width: 100%; |
| | | height: calc(100% - 38px); |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | |
| | | .content_center_top_form_head { |
| | | width: 100%; |
| | | height: 34px; |
| | | background: rgba(52, 88, 159, 0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .content_center_top_form_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | |
| | | &:nth-child(4) { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 33px); |
| | | |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | |
| | | .scroll_item_bg1 { |
| | | background: rgba(52, 88, 159, 0.2); |
| | | } |
| | | |
| | | .scroll_item_bg2 { |
| | | background: rgba(52, 88, 159, 0.5); |
| | | } |
| | | |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 37px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | display: flex; |
| | | font-size: 13px; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | |
| | | &:nth-child(4) { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .content_right { |
| | | flex: 1; |
| | | |
| | | .content_right_top { |
| | | width: 100%; |
| | | height: 511px; |
| | | margin-bottom: 20px; |
| | | |
| | | .content_right_top_head { |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75); |
| | | } |
| | | } |
| | | |
| | | .content_right_top_nr { |
| | | width: 100%; |
| | | height: calc(100% - 38px); |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | position: relative; |
| | | |
| | | .content_right_top_nr_bottom_yuan { |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, 53%); |
| | | z-index: 999; |
| | | width: 114px; |
| | | height: 114px; |
| | | border-radius: 50%; |
| | | border: 2px dashed #01D9FE; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | span { |
| | | &:first-child { |
| | | font-size: 26px; |
| | | font-family: SourceHanSansSC-Medium, SourceHanSansSC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | |
| | | &:last-child { |
| | | font-size: 13px; |
| | | font-family: SourceHanSansSC-Regular, SourceHanSansSC; |
| | | font-weight: 400; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | } |
| | | } |
| | | } |
| | | |
| | | .content_right_top_nr_top { |
| | | width: 100%; |
| | | height: 50%; |
| | | padding: 10px 0 0 10px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .content_right_top_nr_bottom { |
| | | width: 100%; |
| | | height: 50%; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .content_right_bottom { |
| | | width: 100%; |
| | | height: 284px; |
| | | |
| | | .content_right_bottom_head { |
| | | width: 100%; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | padding-left: 34px; |
| | | box-sizing: border-box; |
| | | background: url('@/assets/img/home_title_short@2x.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | |
| | | span { |
| | | font-size: 16px; |
| | | font-family: SourceHanSansSC-Bold, SourceHanSansSC; |
| | | font-weight: bold; |
| | | color: #FFFFFF; |
| | | text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75); |
| | | } |
| | | } |
| | | |
| | | .content_right_bottom_nr { |
| | | width: 100%; |
| | | height: calc(100% - 38px); |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | |
| | | .item2_content_head { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | background: rgba(52, 88, 159, 0.5); |
| | | |
| | | .item2_content_head_item { |
| | | flex: 1; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 13px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | |
| | | &:first-child { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_container { |
| | | width: 100%; |
| | | height: calc(100% - 36px); |
| | | |
| | | .scroll_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | |
| | | .scroll_item_bg1 { |
| | | background: rgba(52, 88, 159, 0.2); |
| | | } |
| | | |
| | | .scroll_item_bg2 { |
| | | background: rgba(52, 88, 159, 0.5); |
| | | } |
| | | |
| | | .scroll_item { |
| | | width: 100%; |
| | | height: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .scroll_item_row { |
| | | flex: 1; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | font-size: 13px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | |
| | | &:first-child { |
| | | flex: 2; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }</style> |
| | | |