薛乎乎~ 2024-12-17 13:21 采纳率: 81%
浏览 10

vue编写后端商城问题解决

img


利用vue编写商城程序,连接前后端上述情况应怎样解决:消除引用前面的两个点,即正常引用


<template> 
      <div class="common-layout"> 
    <el-container> 
      <el-header> 
        <Header></Header> 
      </el-header> 
      <el-container> 
        <el-aside> 
          <Aside></Aside> 
        </el-aside> 
        <el-main> 
          <el-card class="box-card"> 
            <router-view></router-view> 
          </el-card> 
        </el-main> 
      </el-container> 
    </el-container> 

    <el-row :gutter="20"> 
    <el-col :span="6"> 
      <el-card class="box-card"> 
        <template #header> 
          <div class="card-header"> 
            <el-avatar class="avatar" :src="admin.avatar" shape="square" :size="40"> </el-avatar> 
            <span style="font-size: 24px;">{{ admin.username }} </span> 
          </div> 
        </template> 
        <div class="info"> 
          <p>登录时间:{{ loginInfo.loginTime }}</p> 
          <p>登录地点:{{ loginInfo.loginPlace }}</p> 
        </div> 
      </el-card> 
    </el-col> 
    <!-- 单月统计信息展示 --> 
    <el-col :span="18"> 
  <el-card class="box-card"> 
    <template #header> 
      <div class="card-header"> 
        6月统计信息 
      </div> 
    </template> 
    <div class="info"> 
      <el-row :gutter="24"> 
        <!-- 商品数量 --> 
        <el-col :span="8"> 
          <div class="card-container"> 
            <div class="card-left-container" style="background-color: #EEAD0E;"> 
              <el-icon :size="90"> 
                <Memo /> 
              </el-icon> 
            </div> 
            <div class="card-right-container"> 
              <p class="number">500</p> 
              <p>商品数量(个)</p> 
            </div> 
          </div> 
        </el-col> 
        <!-- 商品分类数量 --> 
        <el-col :span="8"> 
          <div class="card-container"> 
            <div class="card-left-container" style="background-color: #AB82FF;">
                <el-icon :size="90"> 
                <Memo /> 
              </el-icon> 
            </div> 
            <div class="card-right-container"> 
              <p class="number">20</p> 
              <p>商品分类数量(个)</p> 
            </div> 
          </div> 
        </el-col> 
        <!-- 用户访问次数 --> 
        <el-col :span="8"> 
          <div class="card-container"> 
            <div class="card-left-container" style=" background-color: #63B8FF;"> 
              <el-icon :size="90"> 
                <Memo /> 
              </el-icon> 
            </div> 
            <div class="card-right-container"> 
              <p class="number">121</p> 
              <p>用户访问次数(次)</p> 
            </div> 
          </div> 
        </el-col> 
      </el-row> 
    </div> 
  </el-card> 
</el-col>
  </el-row> 


  <!-- 图表区域 -->
  <el-row :gutter="20"> 
  <el-col :span="12"> 
    <!-- 通过折线图展示2022年月度销售额 --> 
    <el-card class="box-card"> 
      <div id="salesVolume" style="width: auto; height:400px;"></div> 
    </el-card> 
  </el-col> 
  <el-col :span="12"> 
    <!-- 通过柱状图展示2022年订单数量 --> 
    <el-card class="box-card"> 
      <div id="orderQuantity" style="width: auto; height:400px;"></div> 
    </el-card> 
  </el-col> 
</el-row> 
  </div> 
</template> 

<script setup> 
import Header from '../components/Header.vue' 
import Aside from '../components/Aside.vue' 
import { reactive, onMounted } from 'vue' 
import { getAdmin } from '../../api' 
import useAdmin from '../../stores/admin'
import { Memo } from '@element-plus/icons-vue' 
import * as echarts from 'echarts' 

const { admin, updateAdmin } = useAdmin() 
 
onMounted(() => { 
  loadAdmin() 
  initCharts1() 
  initCharts2() 

}) 
// 图表1:月度销售额 
const initCharts1 = () => { 
  const myChart = echarts.init(document.getElementById('salesVolume')) 
  myChart.setOption({ 
    color: ['#1493fa'], 
    title: { text: '2022年月度销售额' }, 
    xAxis: { 
      data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], 
      name: '月份', 
      axisLabel: { 
        interval: 0 
      }, 
    }, 
    yAxis: { 
      name: '单位(千万元)', 
    }, 
    grid: { 
      left: '3%', 
      right: '8%', 
      bottom: '5%', 
      containLabel: true, 
    }, 
    legend: {}, 
    series: [ 
      { 
        data: [6, 7, 8.5, 8, 9, 10, 13, 12, 10, 16, 15, 14], 
        type: 'line', 
        name: '销售额',
        smooth: true, 
        label: { 
          show: true, 
          position: 'top', 
        } 
      } 
    ] 
  }) 
  // 图表自适应大小 
  window.onresize = () => { 
    myChart.resize() 
  } 
} 
 
 
// 图表2:2022年订单数量 
const initCharts2 = () => { 
  const myChart = echarts.init(document.getElementById('orderQuantity')) 
  myChart.setOption({ 
    title: { text: '2022年订单数量' }, 
    color: ['#1493fa'], 
    grid: { 
      left: '3%', 
      right: '8%', 
      bottom: '3%', 
      containLabel: true, 
    }, 
    xAxis: { 
      type: 'category', 
      data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], 
      name: '月份', 
      // 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐 
      axisTick: { 
        alignWithLabel: true, 
      }, 
      axisLabel: { 
        interval: 0,rotate: 45 // 设置刻度标签旋转角度为45度 
      },
    }, 
    legend: {}, 
    yAxis: { 
      name: '单位(个)', 
    }, 
    series: [ 
      { 
        data: [400, 450, 300, 230, 250, 300, 400, 350, 160, 350, 380, 400], 
        type: 'bar', 
        barWidth: '60%', 
        name: '订单总数', 
        label: { 
          show: true, 
          position: 'top', 
        } 
      } 
    ] 
  }) 
  // 图表自适应大小 
  window.onresize = () => { 
    myChart.resize() 
  }
} 
 
const loadAdmin = async () => { 
  let data = await getAdmin() 
  updateAdmin({ 
    username: data.username, 
    avatar: data.avatar 
  }) 
} 
 
// 用户登录信息(模拟数据) 
const loginInfo = reactive({ 
  loginTime: '2023-07-22 09:00:00', 
  loginPlace: '北京' 
})
 
</script> 
 
<style lang="scss" scoped> 
.el-container { 
  height: 100%; 
  .el-header { 
    background: -webkit-gradient(linear, left top, right top, from(#1493fa), to(#01c6fa)); 
    text-align: center; 
    line-height: 60px; 
    color: #333; 
  } 
  .el-aside { 
    width: 200px; 
    height: 100%; 
    color: #333; 
    background: white 
  } 
  .el-main { 
    height: 100vh; 
    background-color: #e9eef3; 
    color: #333; 
  } 
  .el-row { 
  margin-bottom: 20px; 
  &:last-child { 
    margin-bottom: 0; 
  } 
  .el-col { 
    .box-card { 
      .card-header { 
        display: flex; 
        justify-content: space-between; 
        align-items: center; 
      } 
      .info { 
        font-size: 14px; 
      }
} 
} 
  } 
  .card-container { 
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  border: 1px solid #e4e7ed; 
  text-align: center;
} 
  padding-right: 20px; 
  .card-left-container { 
    color: white; 
  } 
  .card-right-container { 
    .number { 
      font-size: 18px; 
      font-weight: bold; 
    } 
  } 
} 
</style>

  • 写回答

2条回答 默认 最新

  • asmlcat 2024-12-17 17:18
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 12月17日