CRM项目Element-Plus组件本土化设置活动列表页的新增活动跳转------CRM项目

250 篇文章 0 订阅
142 篇文章 0 订阅
// 程序入口,相当于main方法
// 这里从vue下导入了一个createApp方法\函数
import { createApp } from 'vue'
// 从Element-Plus导入该组件
import ElementPlus from 'element-plus'
// 导入了我们默认的app组件
import App from './App.vue'
// 导入ElementPlus的中文包
import zhCn from 'element-plus/es/locale/lang/zh-cn';
import 'element-plus/dist/index.css'
import router from "./router/router.js"
import * as ElementPlusIconsVue from '@element-plus/icons-vue';

// 利用上面导入的createApp函数创建一个vue应用
// 并将app挂载到这个#app这个ID下
let app = createApp(App);
// 把所有的图标以component的形式注册上去
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
}

app.use(ElementPlus,{locale: zhCn,}).use(router).mount('#app')

// 程序入口,相当于main方法

// 这里从vue下导入了一个createApp方法\函数

import { createApp } from 'vue'

// 从Element-Plus导入该组件

import ElementPlus from 'element-plus'

// 导入了我们默认的app组件

import App from './App.vue'

// 导入ElementPlus的中文包

import zhCn from 'element-plus/es/locale/lang/zh-cn';

import 'element-plus/dist/index.css'

import router from "./router/router.js"

import * as ElementPlusIconsVue from '@element-plus/icons-vue';

// 利用上面导入的createApp函数创建一个vue应用

// 并将app挂载到这个#app这个ID下

let app = createApp(App);

// 把所有的图标以component的形式注册上去

for (const [key, component] of Object.entries(ElementPlusIconsVue)) {

    app.component(key, component)

}

app.use(ElementPlus,{locale: zhCn,}).use(router).mount('#app')

<template>
  <!-- 添加活动 -->
  <el-form :inline="true" :model="activityQuery" :rules="activityRules">

    <el-form-item label="负责人">
      <el-select
        v-model="activityQuery.ownerId"
        placeholder="请选择负责人"
        clearable
        @click="loadOwner()"
      >
      <el-option
          v-for="item in owners"
          :key="item.id"
          :label="item.name"
          :value="item.id"
      />
      </el-select>
    </el-form-item>

    <el-form-item label="活动名称">
      <el-input v-model="activityQuery.activityName" placeholder="请输入活动名称" clearable />
    </el-form-item>


    <el-form-item label="活动时间" class="date">
        <el-date-picker
        v-model="activityQuery.activityTime"
        type="datetimerange"
        start-placeholder="开始时间"
        end-placeholder="结束时间"
        value-format="YYYY-MM-DD HH:mm:ss"
      />
    </el-form-item>

    <el-form-item label="活动预算" prop="cost">
      <el-input v-model="activityQuery.cost" placeholder="请输入活动预算" clearable />
    </el-form-item>

    <el-form-item label="创建时间" class="createTime">
        <el-date-picker
        v-model="activityQuery.createTime"
        type="datetime"
        placeholder="请选择创建时间"
        value-format="YYYY-MM-DD HH:mm:ss"
      />
    </el-form-item>

    <el-form-item>
        <el-button type="primary" plain @click="onReset()">重置</el-button>
        <el-button type="primary" @click="onSearch()">搜索</el-button>
    </el-form-item>

  </el-form>

  <hr>

  <!-- 活动列表 -->
  <el-button type="primary" @click="addUser()">录入市场活动</el-button>
    <el-button type="danger" @click="batchDel()">批量删除</el-button>
    <el-table
        :data="activityList"
        style="width: 100%"
        @selection-change="handleSelectionChange"
    >
        <!-- 复选框    -->
        <el-table-column type="selection" width="30%" />
        <el-table-column type="index" label="序号" width="52%" />
        <el-table-column prop="ownerDO.name" label="负责人" width="75%" show-overflow-tooltip />
        <el-table-column property="name" label="活动名称" width="150%" show-overflow-tooltip />
        <el-table-column property="startTime" label="开始时间" width="150%" show-overflow-tooltip />
        <el-table-column property="endTime" label="结束时间" width="150%" show-overflow-tooltip />
        <el-table-column property="cost" label="活动预算" width="150%" show-overflow-tooltip />
        <el-table-column property="createTime" label="创建时间" width="150%" show-overflow-tooltip />
        <el-table-column label="操作" show-overflow-tooltip>
            <template #default="scope">
                <el-button type="primary" @click="view(scope.row.id)">详情</el-button>
                <el-button type="success" @click="edit(scope.row.id)">编辑</el-button>
                <el-button type="danger" @click="del(scope.row.id)">删除</el-button> 
            </template>
        </el-table-column>
    </el-table>

    <!-- 分页条 -->
    <div class="parent">
      <el-pagination
        background
        layout="prev, pager, next"
        :page-size="pageSize"
        :total="total"
        @prev-click="toPage"
        @next-click="toPage"
        @current-change="toPage"
     />
    </div>
</template>

<script>
import { doGet } from '../http/httpRequest.js';
import { messageTip } from '../util/util.js'
export default {
    name:"activityView",
    mounted(){
      this.getData(1);
    },
    data(){
        return {
            activityQuery : {},
            activityList : [{
              ownerDO : {}
            }],
            selectedIds : [],
            pageSize : 0,
            total : 0,
            owners : [{}],
            activityRules : {
              // 定义市场活动表单验证规则
              cost : [
                { pattern : /^[0-9]+(\.[0-9]{2})?$/, message: '活动预算必须是整数或者两位小数', trigger: 'blur'}
              ]
            }
        }
    },
    methods : {
        // 勾选或者取消勾选触发
        handleSelectionChange(selectionItems){
            this.selectedIds = [];
            // 将已经勾选的数据传给我们
            selectionItems.forEach(data => {
                this.selectedIds.push(data.id);
            });
        },
        onReset(){
          this.activityQuery = {};
        },
        addUser(){
          this.$router.push("/dashboard/activity/add")
        },
        onSearch(){
          this.getData(1);
        },
        toPage(current){
            // 把当前页作为current传递给获取数据方法,就可以实现分页查询了
            this.getData(current);
        },
        getData(current){
          //开始时间
          let startTime = '';
          // 结束时间
          let endTime = '';
          for( let key in this.activityQuery.activityTime){
            if(key === '0'){
              startTime = this.activityQuery.activityTime[key];
            }
            if(key === '1'){
              endTime = this.activityQuery.activityTime[key];
            }
          }
          //获取数据,查询用户列表数据
          doGet("/api/activities",{
              // 当前查询第几页
              current : current,
              // 6个搜索条件
              ownerId : this.activityQuery.ownerId,
              name : this.activityQuery.activityName,
              startTime : startTime,
              endTime : endTime,
              cost : this.activityQuery.cost,
              createTime : this.activityQuery.createTime
          }).then(resp => {
              if(resp.data.code === 200){
                  this.activityList = resp.data.data.list;
                  this.total = resp.data.data.total;
                  this.pageSize = resp.data.data.pageSize;
              }
              else{
                messageTip("网络错误","error");
              }
          });
        },
        loadOwner(){
          doGet("/api/user/activityOwner",{}).then(resp => {
                if(resp.data.code === 200){
                  this.owners = resp.data.data;
                }
                else{
                  messageTip("网络错误","error");
                }
            });
        }
    }
}
</script>

<style scoped>
.el-form-item{
    width: 20%;
}
.date{
    width: 50%;
}
.createTime{
    width: 30%;
}
</style>

<template>

  <!-- 添加活动 -->

  <el-form :inline="true" :model="activityQuery" :rules="activityRules">

    <el-form-item label="负责人">

      <el-select

        v-model="activityQuery.ownerId"

        placeholder="请选择负责人"

        clearable

        @click="loadOwner()"

      >

      <el-option

          v-for="item in owners"

          :key="item.id"

          :label="item.name"

          :value="item.id"

      />

      </el-select>

    </el-form-item>

    <el-form-item label="活动名称">

      <el-input v-model="activityQuery.activityName" placeholder="请输入活动名称" clearable />

    </el-form-item>


 

    <el-form-item label="活动时间" class="date">

        <el-date-picker

        v-model="activityQuery.activityTime"

        type="datetimerange"

        start-placeholder="开始时间"

        end-placeholder="结束时间"

        value-format="YYYY-MM-DD HH:mm:ss"

      />

    </el-form-item>

    <el-form-item label="活动预算" prop="cost">

      <el-input v-model="activityQuery.cost" placeholder="请输入活动预算" clearable />

    </el-form-item>

    <el-form-item label="创建时间" class="createTime">

        <el-date-picker

        v-model="activityQuery.createTime"

        type="datetime"

        placeholder="请选择创建时间"

        value-format="YYYY-MM-DD HH:mm:ss"

      />

    </el-form-item>

    <el-form-item>

        <el-button type="primary" plain @click="onReset()">重置</el-button>

        <el-button type="primary" @click="onSearch()">搜索</el-button>

    </el-form-item>

  </el-form>

  <hr>

  <!-- 活动列表 -->

  <el-button type="primary" @click="addUser()">录入市场活动</el-button>

    <el-button type="danger" @click="batchDel()">批量删除</el-button>

    <el-table

        :data="activityList"

        style="width: 100%"

        @selection-change="handleSelectionChange"

    >

        <!-- 复选框    -->

        <el-table-column type="selection" width="30%" />

        <el-table-column type="index" label="序号" width="52%" />

        <el-table-column prop="ownerDO.name" label="负责人" width="75%" show-overflow-tooltip />

        <el-table-column property="name" label="活动名称" width="150%" show-overflow-tooltip />

        <el-table-column property="startTime" label="开始时间" width="150%" show-overflow-tooltip />

        <el-table-column property="endTime" label="结束时间" width="150%" show-overflow-tooltip />

        <el-table-column property="cost" label="活动预算" width="150%" show-overflow-tooltip />

        <el-table-column property="createTime" label="创建时间" width="150%" show-overflow-tooltip />

        <el-table-column label="操作" show-overflow-tooltip>

            <template #default="scope">

                <el-button type="primary" @click="view(scope.row.id)">详情</el-button>

                <el-button type="success" @click="edit(scope.row.id)">编辑</el-button>

                <el-button type="danger" @click="del(scope.row.id)">删除</el-button>

            </template>

        </el-table-column>

    </el-table>

    <!-- 分页条 -->

    <div class="parent">

      <el-pagination

        background

        layout="prev, pager, next"

        :page-size="pageSize"

        :total="total"

        @prev-click="toPage"

        @next-click="toPage"

        @current-change="toPage"

     />

    </div>

</template>

<script>

import { doGet } from '../http/httpRequest.js';

import { messageTip } from '../util/util.js'

export default {

    name:"activityView",

    mounted(){

      this.getData(1);

    },

    data(){

        return {

            activityQuery : {},

            activityList : [{

              ownerDO : {}

            }],

            selectedIds : [],

            pageSize : 0,

            total : 0,

            owners : [{}],

            activityRules : {

              // 定义市场活动表单验证规则

              cost : [

                { pattern : /^[0-9]+(\.[0-9]{2})?$/, message: '活动预算必须是整数或者两位小数', trigger: 'blur'}

              ]

            }

        }

    },

    methods : {

        // 勾选或者取消勾选触发

        handleSelectionChange(selectionItems){

            this.selectedIds = [];

            // 将已经勾选的数据传给我们

            selectionItems.forEach(data => {

                this.selectedIds.push(data.id);

            });

        },

        onReset(){

          this.activityQuery = {};

        },

        addUser(){

          this.$router.push("/dashboard/activity/add")

        },

        onSearch(){

          this.getData(1);

        },

        toPage(current){

            // 把当前页作为current传递给获取数据方法,就可以实现分页查询了

            this.getData(current);

        },

        getData(current){

          //开始时间

          let startTime = '';

          // 结束时间

          let endTime = '';

          for( let key in this.activityQuery.activityTime){

            if(key === '0'){

              startTime = this.activityQuery.activityTime[key];

            }

            if(key === '1'){

              endTime = this.activityQuery.activityTime[key];

            }

          }

          //获取数据,查询用户列表数据

          doGet("/api/activities",{

              // 当前查询第几页

              current : current,

              // 6个搜索条件

              ownerId : this.activityQuery.ownerId,

              name : this.activityQuery.activityName,

              startTime : startTime,

              endTime : endTime,

              cost : this.activityQuery.cost,

              createTime : this.activityQuery.createTime

          }).then(resp => {

              if(resp.data.code === 200){

                  this.activityList = resp.data.data.list;

                  this.total = resp.data.data.total;

                  this.pageSize = resp.data.data.pageSize;

              }

              else{

                messageTip("网络错误","error");

              }

          });

        },

        loadOwner(){

          doGet("/api/user/activityOwner",{}).then(resp => {

                if(resp.data.code === 200){

                  this.owners = resp.data.data;

                }

                else{

                  messageTip("网络错误","error");

                }

            });

        }

    }

}

</script>

<style scoped>

.el-form-item{

    width: 20%;

}

.date{

    width: 50%;

}

.createTime{

    width: 30%;

}

</style>

import { createRouter,createWebHistory } from "vue-router";

const router = createRouter({
    // 路由历史
    history:createWebHistory(),
    // 配置路由,可以配置多个路由
    routes:[
        {
            //路由路径
            path:"/",
            //对应路径的页面
            component:() => import('../view/login.vue')
        },
        {
            //路由路径
            path:"/dashboard",
            //对应路径的页面
            component:() => import('../view/dashboard.vue'),
            // 子路由
            children : [
                {
                    // 子路由的path开始不能有/
                    path:"user",
                    //对应路径的页面
                    component:() => import('../view/userView.vue'),
                },
                {
                    // 子路由路径
                    path:"user/detail/:id",
                    //路由路径所展示的页面
                    component : () => import('../view/userDetail.vue')
                },
                {
                    path:"activity",
                    component : () => import('../view/activityView.vue')
                },
                {
                    path:"activity/add",
                    component : () => import('../view/activityRecordView.vue')
                },
            ]
        }
    ]
});

export default router;

import { createRouter,createWebHistory } from "vue-router";

const router = createRouter({

    // 路由历史

    history:createWebHistory(),

    // 配置路由,可以配置多个路由

    routes:[

        {

            //路由路径

            path:"/",

            //对应路径的页面

            component:() => import('../view/login.vue')

        },

        {

            //路由路径

            path:"/dashboard",

            //对应路径的页面

            component:() => import('../view/dashboard.vue'),

            // 子路由

            children : [

                {

                    // 子路由的path开始不能有/

                    path:"user",

                    //对应路径的页面

                    component:() => import('../view/userView.vue'),

                },

                {

                    // 子路由路径

                    path:"user/detail/:id",

                    //路由路径所展示的页面

                    component : () => import('../view/userDetail.vue')

                },

                {

                    path:"activity",

                    component : () => import('../view/activityView.vue')

                },

                {

                    path:"activity/add",

                    component : () => import('../view/activityRecordView.vue')

                },

            ]

        }

    ]

});

export default router;

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值