tanyanfei 4 years ago
parent
commit
96bbd0044f
7 changed files with 250 additions and 118 deletions
  1. 2 0
      .vscode/settings.json
  2. 25 3
      src/api.js
  3. 46 0
      src/components/Subject.vue
  4. 5 8
      src/views/Login.vue
  5. 61 74
      src/views/apply/New.vue
  6. 101 33
      src/views/project/Index.vue
  7. 10 0
      vue.config.js

+ 2 - 0
.vscode/settings.json

@@ -0,0 +1,2 @@
+{
+}

+ 25 - 3
src/api.js

@@ -1,6 +1,7 @@
 import axios from 'axios';
-var baseURL='https://www.scxjc.club'
-
+// var baseURL='https://www.scxjc.club'
+var baseURL=''
+// axios.defaults.headers.post['Content-Type']='text/plain';
 axios.interceptors.request.use(
     config => {
 		    // const token = localStorage.getItem('token');
@@ -47,12 +48,33 @@ axios.interceptors.response.use(function(response) {
 export default{
     //登录
     login: params => {
-		return axios.post(`${baseURL}/api/account/login/`, params);
+		return axios.post(`${baseURL}/api/account/login`, params);
 	},
 	//获取验证码
 	getCode: params => {
 		return axios.get(`${baseURL}/api/account/imgcode`)
 	},
+	//科目
+	getSubList: params => {
+		return axios.get(`${baseURL}/api/admin/subject/list`)
+	},
+	saveSub: params => {
+		return axios.post(`${baseURL}/api/admin/subject`, params);
+	},
+	updateSub: params => {
+		return axios.put(`${baseURL}/api/admin/subject`, params);
+	},
+	deleteSub: params => {
+		return axios.delete(`${baseURL}/api/admin/subject`, params);
+	},
+	//科目
+	getSignList: params => {
+		return axios.get(`${baseURL}/api/admin/signup/list`, {
+			params: params
+		})
+	},
+	
+	
 }
 
 

+ 46 - 0
src/components/Subject.vue

@@ -0,0 +1,46 @@
+<style lang="scss">
+ @import '../style/style.scss';
+    .sub{
+        .el-input{
+            width: 500px !important;
+        }
+    }
+</style>
+<template>
+    <el-cascader  class="sub" :props='props'
+    placeholder="请选择培训科目 / 作业类别 / 准操项目"
+    v-model="value" @change="handleChange"
+    :options="data"></el-cascader>
+</template>
+<script>
+export default {
+    data(){
+        return{
+            data:[],
+            value:[],
+            props:{
+                label:'name',
+                checkStrictly:true,
+                value:'name'
+            }
+        }
+    },
+    props: {
+        total:'',
+    },
+    methods:{
+        getData(type){
+            this.$api.getSubList().then(res=>{
+              this.data=res.data.data
+          })
+        },
+        handleChange(value) {
+            console.log(value);
+            this.$emit('subChange',value)
+        }
+    },
+    created(){
+        this.getData()
+    }
+}
+</script>

+ 5 - 8
src/views/Login.vue

@@ -119,14 +119,11 @@ export default {
           let parms=this.logindata;   
             this.$api.login(parms).then((res)=>{
                 let data=res.data
-                // console.log(Base64.decode(data.token))
-                  // if(res.status == 200){
-                  //     localStorage.setItem('token',data.token);
-                  //     window.location.hash='/';
-                      
-                  // }else{
-                  //     this.$message.error("账号或者密码有误");
-                  // } 
+                  if(res.data.code == 0){
+                      window.location.hash='/';
+                  }else{
+                      this.$message.error("账号或者密码有误");
+                  } 
             })
             .catch(err=>{
               this.$message.error("账号或者密码有误");

+ 61 - 74
src/views/apply/New.vue

@@ -35,41 +35,25 @@
         <p>报名信息  >  新办</p>
         <div class="filter">
             <el-form label-width="80px" :inline="true">
-                <el-form-item label="培训科目">
-                    <el-radio-group v-model="form.name"  size="small">
-                        <el-radio-button label="0">特种作业人员</el-radio-button>
-                        <el-radio-button label="1">负责人、安全生产管理人员</el-radio-button>
-                        <el-radio-button label="2">其他安全生产培训</el-radio-button>
-                    </el-radio-group>
-                </el-form-item><br>
-                <el-form-item label="作业类别">
-                    <el-radio-group v-model="form.name"  size="small">
-                        <el-radio-button label="1">电工作业</el-radio-button>
-                        <el-radio-button label="2">焊接与热切割</el-radio-button>
-                    </el-radio-group>
-                </el-form-item><br>
-                <el-form-item label="准操项目">
-                    <el-radio-group v-model="form.name"  size="small">
-                        <el-radio-button label="1">高压电工</el-radio-button>
-                        <el-radio-button label="2">低压电工</el-radio-button>
-                    </el-radio-group>
+                <el-form-item label="类别">
+                    <Subject @subChange='subChange'/>
                 </el-form-item>
                 <el-divider></el-divider>
                 <el-form-item label="姓名">
                         <el-input placeholder="姓名" v-model="form.name"></el-input>
                 </el-form-item>
                 <el-form-item label="联系电话">
-                        <el-input placeholder="联系电话" v-model="form.name"></el-input>
+                        <el-input placeholder="联系电话" v-model="form.phone"></el-input>
                 </el-form-item>
                 <el-form-item label="报名时间">
                     <el-date-picker
-                    v-model="form.name"
+                    v-model="form.signup_time"
                     type="date"
                     placeholder="选择日期">
                     </el-date-picker>
                 </el-form-item>
                 <el-form-item label="发票类型">
-                    <el-select v-model="form.a" placeholder="请选择">
+                    <el-select v-model="form.bill_type" placeholder="请选择">
                         <el-option  label="不需要发票"  :value="0"></el-option>
                         <el-option  label="纸质发票"  :value="0"></el-option>
                     </el-select>
@@ -83,47 +67,47 @@
                 <el-form-item label="考试设置">
                     <el-select v-model="form.a" placeholder="请选择">
                         <el-option  label="不需要发票"  :value="0"></el-option>
-                        <el-option  label="纸质发票"  :value="0"></el-option>
+                        <el-option  label="纸质发票"  :value="1"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="考试时间">
                     <el-date-picker
-                    v-model="form.name"
+                    v-model="form.exam_time"
                     type="date"
                     placeholder="选择日期">
                     </el-date-picker>
                 </el-form-item>
-                <el-form-item label="培训班级">
+                <!-- <el-form-item label="培训班级">
                     <el-select v-model="form.a" placeholder="请选择">
                         <el-option  label="不需要发票"  :value="0"></el-option>
                         <el-option  label="纸质发票"  :value="0"></el-option>
                     </el-select>
-                </el-form-item>
+                </el-form-item> -->
                 <el-form-item label="培训时间">
                     <el-date-picker
-                    v-model="form.name"
+                    v-model="form.train_time"
                     type="date"
                     placeholder="选择日期">
                     </el-date-picker>
                 </el-form-item>
-                <el-form-item label="公司名称">
+                <!-- <el-form-item label="公司名称">
                         <el-input placeholder="公司名称" v-model="form.name"></el-input>
-                </el-form-item>
+                </el-form-item> -->
                 <el-form-item>
-                       <el-button type="primary" icon="el-icon-search">搜索</el-button>
+                       <el-button @click="list=[],getData()" type="primary" icon="el-icon-search">搜索</el-button>
                 </el-form-item>
                 <el-divider></el-divider>
             </el-form>
-            <el-tabs v-model="activeName" @tab-click="">
-                <el-tab-pane name="1" label="全部"></el-tab-pane>
+            <el-tabs v-model="order_status" @tab-click="tabClick">
+                <el-tab-pane name="-3" label="全部"></el-tab-pane>
+                <el-tab-pane name="0" label="待审核"></el-tab-pane>
                 <el-tab-pane name="2" label="已支付待培训"></el-tab-pane>
-                <el-tab-pane name="3" label="审核中"></el-tab-pane>
-                <el-tab-pane name="4" label="审核未通过"></el-tab-pane>
-                <el-tab-pane name="5" label="待付款"></el-tab-pane>
-                <el-tab-pane name="6" label="待上传资料"></el-tab-pane>
-                <el-tab-pane name="7" label="已培训待考试"></el-tab-pane>
-                <el-tab-pane name="8" label="考试完成"></el-tab-pane>
-                <el-tab-pane name="9" label="已取消"></el-tab-pane>
+                <el-tab-pane name="-2" label="审核未通过"></el-tab-pane>
+                <el-tab-pane name="1" label="待付款"></el-tab-pane>
+                <el-tab-pane name="-1" label="待上传资料"></el-tab-pane>
+                <!-- <el-tab-pane name="7" label="已培训待考试"></el-tab-pane> -->
+                <el-tab-pane name="3" label="考试完成"></el-tab-pane>
+                <!-- <el-tab-pane name="9" label="已取消"></el-tab-pane> -->
             </el-tabs>
         </div>
         <div class="divider">
@@ -150,31 +134,40 @@
                 label="姓名">
                 </el-table-column>
                 <el-table-column
-                prop="province"
+                prop="phone"
                 label="联系电话">
                 </el-table-column>
                 <el-table-column
-                prop="city"
+                prop="order_status"
                 label="状态">
+                <template slot-scope="scope">
+                    <el-tag v-if='scope.row.order_status == -2' type="info">审核未通过</el-tag>
+                    <el-tag v-if='scope.row.order_status == -1' >待提交资料</el-tag>
+                    <el-tag v-if='scope.row.order_status == 0' type="warning">待审核</el-tag>
+                    <el-tag v-if='scope.row.order_status == 1' >已审核立即支付</el-tag>
+                    <el-tag v-if='scope.row.order_status == 2' type="warning">学习中</el-tag>
+                    <el-tag v-if='scope.row.order_status == 3' type="success">已完成</el-tag>
+                    <!-- -2:审核未通过,-1:待提交资料,0:待审核,1:已审核立即支付,2:学习中,3:已完成 -->
+                </template>
                 </el-table-column>
                 <el-table-column
-                prop="address"
+                prop="remark"
                 label="管理员备注">
                 </el-table-column>
                 <el-table-column
-                prop="zip"
+                prop="train_type"
                 label="报名类型">
                 </el-table-column>
                 <el-table-column
-                prop="zip"
+                prop="subject_item0"
                 label="作业类别">
                 </el-table-column>
                 <el-table-column
-                prop="zip"
+                prop="subject_item1"
                 label="准操项目">
                 </el-table-column>
                 <el-table-column
-                prop="zip"
+                prop="subject_item2"
                 label="培训类型">
                 </el-table-column>
         </el-table>
@@ -183,49 +176,43 @@
 </template>
 <script>
 import Page from '../../components/Page';
+import Subject from '../../components/Subject';
 // import { Base64 } from 'js-base64';
 export default {
   name: 'login',
   components:{
-        Page
+        Page,Subject
     },
   data(){
     return{
-      form:{name:1,a:''},
+      form:{train_type:'新办',subject_item:'',order_status:''},
       activeName:"1",
       total:1,
-      list:[
-          {
-          date: '2016-05-02',
-          name: '王小虎',
-          province: '上海',
-          city: '普陀区',
-          address: '上海市普陀区金沙江路 1518 弄',
-          zip: 200333
-        },
-        {
-          date: '2016-05-02',
-          name: '王小虎',
-          province: '上海',
-          city: '普陀区',
-          address: '上海市普陀区金沙江路 1518 弄',
-          zip: 200333
-        },{
-          date: '2016-05-02',
-          name: '王小虎',
-          province: '上海',
-          city: '普陀区',
-          address: '上海市普陀区金沙江路 1518 弄',
-          zip: 200333
-        }
-      ]
+      list:[],
+      order_status:''
     }
   },
   methods:{
-      gopage(){}
+      gopage(){},
+      getData(){
+          var parm=this.form;
+          if(this.order_status != '-3'){parm.order_status=this.order_status}
+          console.log(parm)
+          this.$api.getSignList(parm).then(res=>{
+              this.list=res.data.data
+          })
+      },
+      subChange(data){
+          this.form.subject_item=data.join('|')
+      },
+      tabClick(tab){
+          this.form.order_status=tab.name
+          this.list=[]
+          this.getData()
+      }
   },
   created(){
-  
+      this.getData()
   }
 }
 </script>

+ 101 - 33
src/views/project/Index.vue

@@ -10,6 +10,12 @@
                 padding: 20px 10px 20px 0;
                 .custom-tree-node{
                     width: 100%;
+                    .el-tree-node__content{
+                        height: 32px;
+                    }
+                    .label_name{
+                        font-size: 14px;
+                    }
                     .edit{
                         float: right;
                         i{
@@ -29,6 +35,10 @@
                         font-weight: 600;
                         font-size: 16px;
                     }
+                    .req{
+                        color:red;
+                        margin-left: 10px;
+                    }
                     .el-input-number,.el-input,.el-textarea{
                         width: 200px;
                     }
@@ -47,11 +57,11 @@
             <div class="div_left">
                  <el-tree
                     :data="data"
-                    node-key="id"
+                    node-key="id" :props='props'
                     default-expand-all
                     :expand-on-click-node="false">
                     <span class="custom-tree-node" slot-scope="{ node, data }">
-                        <span>{{ node.label }}</span>
+                        <span class="label_name">{{ node.label }}</span>
                         <span class="edit">
                         <el-button
                             type="text"
@@ -62,13 +72,13 @@
                         <el-button
                             type="text"
                             size="mini"
-                            @click="() => append(data)">
+                            @click="() => edit(data)">
                             <i class="el-icon-edit"></i>
                         </el-button>
                         <el-button
                             type="text"
                             size="mini"
-                            @click="() => remove(node, data)">
+                            @click="() => remove(data)">
                             <i class="el-icon-delete"></i>
                         </el-button>
                         </span>
@@ -76,26 +86,30 @@
                 </el-tree>
             </div>
             <div class="div_right">
-                <el-form class="form" label-width="90px" label-position='left'>
+                <el-form class="form" label-width="90px" label-position='left' v-show="add">
                     <el-form-item label="科目名称">
                         <el-input v-model="form.name"></el-input>
+                        <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="新办价格">
-                          <el-input-number v-model="form.name" controls-position="right"  :min="0" :max="10"></el-input-number>
+                          <el-input-number v-model="form.price_new" controls-position="right"  :min="0"></el-input-number>
+                          <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="复审价格">
-                          <el-input-number v-model="form.name" controls-position="right"  ></el-input-number>
+                          <el-input-number v-model="form.price_re" controls-position="right" :min="0" ></el-input-number>
+                          <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="换证价格">
-                          <el-input-number v-model="form.name" controls-position="right"  ></el-input-number>
+                          <el-input-number v-model="form.price_change" controls-position="right" :min="0" ></el-input-number>
+                          <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="排序">
-                          <el-input-number v-model="form.name" controls-position="right"  ></el-input-number>
+                          <el-input-number v-model="form.order" controls-position="right" :min="0" ></el-input-number>
                     </el-form-item>
                     <el-form-item label="说明">
-                        <el-input :rows="4" type="textarea" v-model="form.name"></el-input>
+                        <el-input :rows="4" type="textarea" v-model="form.intro"></el-input>
                     </el-form-item>
-                    <el-button type="primary">保存</el-button>
+                    <el-button @click="save" type="primary">保存</el-button>
                 </el-form>
             </div>
         </div>
@@ -104,34 +118,88 @@
 <script>
 // import { Base64 } from 'js-base64';
 export default {
-  name: 'login',
   data(){
     return{
-      data:[
-        {
-                id: 1,
-                label: '一级 1',
-                children: [{
-                id: 4,
-                label: '二级 1-1',
-                children: [{
-                    id: 9,
-                    label: '三级 1-1-1'
-                }, {
-                    id: 10,
-                    label: '三级 1-1-2'
-                }]
-                }]
-        }
-      ],
-      form:{name:""}
+      data:[],
+      form:{name:""},
+      props:{
+          label:'name'
+      },
+      add:0
     }
   },
   methods:{
-  
-    },
+      getData(){
+          this.$api.getSubList().then(res=>{
+              this.data=res.data.data
+          })
+      },
+      edit(data){
+          this.add=1
+          var parm={
+                id:data.id,
+                name:data.name,
+                pid:data.pid,
+                price_change:data.price_change,
+                price_new:data.price_new,
+                price_re:data.price_re,
+                intro:data.intro,
+                order:0,
+          }
+          this.form=parm
+      },
+      append(data){
+          this.add=1
+          var parm={
+                name:'',
+                pid:data.id,
+                price_change:0,
+                price_new:0,
+                price_re:0,
+                intro:'',
+                order:0,
+          }
+          this.form=parm
+      },
+      remove(data){
+          console.log(data)
+           this.$confirm('确定删除'+data.name+'科目?', '提示', {
+                    type: 'warning'
+                }).then(() => {
+                   this.$api.deleteSub({id:data.id}).then(res=>{
+                        this.$message({message: '删除成功!',type: 'success'});
+                        this.getData()
+                    })
+            })
+          
+      },
+      save(){
+          var parm=this.form;
+          if(parm.id){
+              this.$api.updateSub(parm).then(res=>{
+                  if(res.data.code==0){
+                      this.$message({message: '修改成功!',type: 'success'});
+                      this.add=0
+                      this.getData()
+                  }else{
+                      this.$message.error("保存失败");
+                  }
+              })
+          }else{
+              this.$api.saveSub(parm).then(res=>{
+                  if(res.data.code==0){
+                      this.$message({message: '添加成功!',type: 'success'});
+                      this.add=0
+                      this.getData()
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+              })
+          }
+      }
+  },
   created(){
-  
+      this.getData()
   }
 }
 </script>

+ 10 - 0
vue.config.js

@@ -0,0 +1,10 @@
+module.exports={
+    devServer:{
+        proxy:{
+            '/api':{
+                target:'https://www.scxjc.club',
+                changeOrigin: true,
+            }
+        }
+    }
+}