VUE 工程搭建

1. 工程結構:

2. index.html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>my-project</title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

 

3. router.js:

import Vue from 'vue'
import Router from 'vue-router'
import teamList from '@/components/teamList'
import roleList from '@/components/roleList'
import teamDetail from '@/components/teamDetail'
// import App from '@/App'

Vue.use(Router)

export default new Router({
  routes: [
      {
          path:'/teamList',
          component:teamList,
      },
      {
          path:'/roleList',
          component:roleList,
      },
      {
          path:'/teamDetail',
          component:teamDetail,
      }
  ]
})

 

 

4. main.js:

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

import App from './App'
import router from './router.js'

Vue.use(ElementUI);

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  //template: '<App/>'
  render: h => h(App)
})

 

5. app.vue:

<template>
  <div class="content">
    <h1>this is app.vue</h1>
    <el-row :gutter="20">
      <el-col :span="4">
        <leftMenu></leftMenu>
      </el-col>
      <el-col :span="20">
        <mainContent></mainContent>
      </el-col>
    </el-row>
  </div>
</template>
<script>
import leftMenu from "@/components/leftMenu";
import mainContent from "@/components/mainContent";

export default {
  name: "App",
  components: {
    leftMenu: leftMenu,
    mainContent: mainContent
  }
};
</script>

<style scoped>
div#home {
  width: 100%;
}

 

 

6. leftMenu.vue:

<template>
  <el-col>
    <ul>
      <li>
        <router-link to="/teamList">團隊管理</router-link>
      </li>
      <li>
        <router-link to="/roleList">權限管理</router-link>
      </li>
    </ul>
  </el-col>
</template>
<script>
export default {};
</script>
<style scoped>
</style>

 

 

7. mianContent.vue:

<template>
    <div id="div_main_content">
        <router-view></router-view>
    </div>
</template>
<script>
export default {
    
}
</script>
<style scoped>
    div#div_main_content{
        border: 1px solid #d3d3d3;
    }
</style>

 

 

8. navBar.vue:

<template>
    <div style="padding:20px">
        <el-breadcrumb separator-class="el-icon-arrow-right">
            <el-breadcrumb-item :to="{ path: '/' }">首頁</el-breadcrumb-item>
            <el-breadcrumb-item>活動管理</el-breadcrumb-item>
            <el-breadcrumb-item>活動列表</el-breadcrumb-item>
            <el-breadcrumb-item>活動詳情</el-breadcrumb-item>
        </el-breadcrumb>
    </div>
</template>
<script>
export default {
    data(){
        return {

        };
    },
    methods:{



    }
}
</script>
<style scoped>

</style>

 

 

9. roleList.vue:

<template>
    <div>
        <navBar></navBar>
        <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"  @selection-change="handleSelectionChange">
            <el-table-column  type="selection" width="55"></el-table-column>
            <el-table-column  label="日期"  width="120">
              <template slot-scope="scope">{{ scope.row.date }}</template>
            </el-table-column>
            <el-table-column prop="name"  label="姓名"   width="120"></el-table-column>
            <el-table-column  prop="address"  label="地址"  show-overflow-tooltip></el-table-column>
        </el-table>
        <div style="margin-top: 20px">
            <el-button @click="toggleSelection([tableData[1], tableData[2]])">切換第二、第三行的選中狀態</el-button>
            <el-button @click="toggleSelection()">取消選擇</el-button>
        </div>


        <el-button type="text" @click="dialogTableVisible = true">打開嵌套表格的 Dialog</el-button>

        <el-dialog title="收貨地址" :visible.sync="dialogTableVisible">
        <el-table :data="gridData">
            <el-table-column property="date" label="日期" width="150"></el-table-column>
            <el-table-column property="name" label="姓名" width="200"></el-table-column>
            <el-table-column property="address" label="地址"></el-table-column>
        </el-table>
        </el-dialog>

        <el-button type="text" @click="dialogFormVisible = true">打開嵌套表單的 Dialog</el-button>

        <el-dialog title="收貨地址" :visible.sync="dialogFormVisible">
            <el-form :model="form">
                <el-form-item label="活動名稱" :label-width="formLabelWidth">
                <el-input v-model="form.name" autocomplete="off"></el-input>
                </el-form-item>
                <el-form-item label="活動區域" :label-width="formLabelWidth">
                <el-select v-model="form.region" placeholder="請選擇活動區域">
                    <el-option label="區域一" value="shanghai"></el-option>
                    <el-option label="區域二" value="beijing"></el-option>
                </el-select>
                </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footer">
                <el-button @click="dialogFormVisible = false">取 消</el-button>
                <el-button type="primary" @click="dialogFormVisible = false">確 定</el-button>
            </div>
        </el-dialog>
    </div>
</template>
<script>
import navBar from '@/components/navBar'

export default {
    components:{
      navBar: navBar
    },
    data() {
      return {
        tableData: [{
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-08',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-06',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-07',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }],
        multipleSelection: [],


        gridData: [{
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀區金沙江路 1518 弄'
        }],
        dialogTableVisible: false,
        dialogFormVisible: false,
        form: {
          name: '',
          region: '',
          date1: '',
          date2: '',
          delivery: false,
          type: [],
          resource: '',
          desc: ''
        },
        formLabelWidth: '120px'
      }
    },

    methods: {
      toggleSelection(rows) {
        if (rows) {
          rows.forEach(row => {
            this.$refs.multipleTable.toggleRowSelection(row);
          });
        } else {
          this.$refs.multipleTable.clearSelection();
        }
      },
      handleSelectionChange(val) {
        this.multipleSelection = val;
      }
    }
  }
</script>
<style scoped>

</style>

 

 

10. teamDetail.vue:

<template>
    <div>
        <navBar></navBar>
        <el-row :gutter="20" style="padding-left:20px">
            <el-col :span="20">
                <div class="grid-content bg-purple">
                    <h1>團隊信息</h1>
                    <el-row :gutter="20">
                        <el-col :span="5" style="text-align:right">部門:</el-col>
                        <el-col :span="5" style="text-align:left">解決方案部</el-col>
                        <el-col :span="5" style="text-align:right">團隊類別:</el-col>
                        <el-col :span="5" style="text-align:left">解決方案</el-col>
                        <el-col :span="4"></el-col>
                    </el-row>
                    <el-row :gutter="20">
                        <el-col :span="5" style="text-align:right">團隊名稱:</el-col>
                        <el-col :span="5" style="text-align:left">大客戶一二七部</el-col>
                        <el-col :span="5" style="text-align:right">團隊負責人:</el-col>
                        <el-col :span="5" style="text-align:left">張三</el-col>
                        <el-col :span="4"></el-col>
                    </el-row>
                    <el-row :gutter="20">
                        <el-col :span="5" style="text-align:right">備註:</el-col>
                        <el-col :span="5" style="text-align:left">我是備註xxxxxxxxxxxxxxxxxxx</el-col>
                        <el-col :span="5" style="text-align:right">狀態:</el-col>
                        <el-col :span="5" style="text-align:left">正常</el-col>
                        <el-col :span="4"></el-col>
                    </el-row>
                </div>
            </el-col>
        </el-row>

        <el-row :gutter="20" style="padding-left:20px">
            <el-col :span="20">
                <div class="grid-content bg-purple">
                    <h1>小組信息</h1>
                    <el-row :gutter="20" style="padding-left:20px">
                        <el-col :span="8" style="padding-top:20px">
                             <div class="grid-content bg-purple">
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">小組名稱:</el-col>
                                    <el-col :span="16" style="text-align:left">xxxxx小組</el-col>
                                </el-row>
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">成員:</el-col>
                                    <el-col :span="16" style="text-align:left">張三、李四、王五</el-col>
                                </el-row>
                             </div>
                        </el-col>
                        <el-col :span="8" style="padding-top:20px">
                             <div class="grid-content bg-purple">
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">小組名稱:</el-col>
                                    <el-col :span="16" style="text-align:left">xxxxx小組</el-col>
                                </el-row>
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">成員:</el-col>
                                    <el-col :span="16" style="text-align:left">張三、李四、王五</el-col>
                                </el-row>
                             </div>
                        </el-col>
                        <el-col :span="8" style="padding-top:20px">
                             <div class="grid-content bg-purple">
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">小組名稱:</el-col>
                                    <el-col :span="16" style="text-align:left">xxxxx小組</el-col>
                                </el-row>
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">成員:</el-col>
                                    <el-col :span="16" style="text-align:left">張三、李四、王五</el-col>
                                </el-row>
                             </div>
                        </el-col>
                        <el-col :span="8" style="padding-top:20px">
                             <div class="grid-content bg-purple">
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">小組名稱:</el-col>
                                    <el-col :span="16" style="text-align:left">xxxxx小組</el-col>
                                </el-row>
                                <el-row :gutter="20">
                                    <el-col :span="8" style="text-align:right">成員:</el-col>
                                    <el-col :span="16" style="text-align:left">張三、李四、王五</el-col>
                                </el-row>
                             </div>
                        </el-col>
                    </el-row>
                </div>
            </el-col>
        </el-row>

        <el-row :gutter="20" style="padding-left:20px">
            <el-col :span="20">
                <div class="grid-content bg-purple">
                    <h1>團隊成員信息</h1>
                    <el-row :gutter="20">
                        <el-col :span="3" style="text-align:right">成員信息:</el-col>
                        <el-col :span="21" style="text-align:left">張三、李四、王五、趙四、孫八、趙啓、張思</el-col>
                    </el-row>
                </div>
            </el-col>
        </el-row>
    </div>
</template>
<script>
import navBar from '@/components/navBar'
export default {
    components:{
        navBar: navBar
    },
    data(){
        return {

        };
    },
    methods:{



    }
}
</script>
<style scoped>
    .el-row {
        margin-bottom: 20px;
        &:last-child {
        margin-bottom: 0;
        }
    }
    .el-col {
        border-radius: 4px;
    }
    .bg-purple {
        border: 1px solid  #d3d3d3;
    }
    .grid-content {
        border-radius: 4px;
        min-height: 36px;
        padding:20px
    }
   /*  .row-bg {
        padding: 10px 0;
        background-color: #f9fafc;
    } */
</style>

 

11. teamList.vue:

<template>
  <div style="padding-right:20px">
    <navBar></navBar>
    <el-row>
      <el-form
        :inline="true"
        :model="formInline"
        class="demo-form-inline"
        style="margin-left:20px"
        label-width="80px"
      >
        <el-form-item>
          <el-button type="primary">新建團隊</el-button>
        </el-form-item>
        <el-form-item label="團隊名稱">
          <el-input v-model="formInline.user" placeholder="團隊名稱" style="width:200px"></el-input>
        </el-form-item>
        <el-form-item label="團隊類別">
          <el-select v-model="formInline.region" placeholder="團隊類別" style="width:200px">
            <el-option label="解決方案" value="01"></el-option>
            <el-option label="協同" value="02"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="狀態">
          <el-select v-model="formInline.region" placeholder="狀態">
            <el-option label="正常" value="Y"></el-option>
            <el-option label="禁用" value="N"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="onSubmit">查詢</el-button>
        </el-form-item>
      </el-form>
    </el-row>
    <hr />
    <el-row>
      <el-table :data="tableData" stripe style="margin-left:20px">
        <el-table-column prop="orgNm" label="團隊名稱" width="180"></el-table-column>
        <el-table-column prop="parentOrgNm" label="所屬部門" width="180"></el-table-column>
        <el-table-column prop="orgType" label="團隊類別" width="180"></el-table-column>
        <el-table-column prop="leaderUserName" label="團隊負責人" width="180"></el-table-column>
        <el-table-column prop="leaderMobile" label="團隊負責人手機號" width="180"></el-table-column>
        <el-table-column prop="members" label="團隊成員" width="180"></el-table-column>
        <el-table-column prop="useYn" label="狀態" width="180"></el-table-column>
        <el-table-column prop="orgRemark" label="備註" width="180"></el-table-column>
        <el-table-column fixed="right" label="操作" width="100">
          <template slot-scope="scope">
            <router-link to="/teamDetail">查看詳情</router-link>
          </template>
        </el-table-column>
      </el-table>
    </el-row>
    <el-row :gutter="24">
      <el-col :span="8" :offset="16">
        <el-pagination background layout="prev, pager, next" :total="1000" style="width:100%"></el-pagination>
      </el-col>
    </el-row>
    <hr />

    <el-form :label-position="labelPosition" label-width="70px">
      <el-row>
        <el-col :span="12">
          <el-form-item label="部門">
            <el-select placeholder="請選擇部門">
              <el-option label="解決方案" value="01"></el-option>
              <el-option label="協同" value="02"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="團隊名稱">
            <el-select placeholder="請訓責團隊名稱">
              <el-option label="解決方案" value="01"></el-option>
              <el-option label="協同" value="02"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="活動區域">
            <el-input></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="活動區域">
            <el-input></el-input>
          </el-form-item>
          <el-form-item label="名稱">
            <el-input></el-input>
          </el-form-item>
          <el-form-item label="活動形式">
            <el-input></el-input>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </div>
</template>
<script>
import navBar from '@/components/navBar';
export default {
  components: {
    navBar: navBar
  },
  data () {
    return {
      labelPosition: 'right',
      tableData: [
        {
          orgNm: '銷售團隊0001',
          parentOrgNm: '銷售一部',
          orgType: '解決方案',
          leaderUserName: '張三',
          leaderMobile: '13788889999',
          members: '張三,李四,王五,趙四',
          useYn: '正常',
          orgRemark: '銷售團隊0001銷售團隊0001銷售團隊0001銷售團隊0001'
        }
      ],
      formInline: {
        user: '',
        region: ''
      }
    }
  },
  methods: {
    onSubmit () {
      console.log('submit!')
    }
  }
}
</script>
<style scoped>
.el-form-item {
  margin-left: 50px !important;
}

/* .el-input,
.el-select {
  width: 200px !important;
} */
</style>

 

ps: 詳細內容見工程附件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章