Browse Source

合并服务器

yuanrf 2 years ago
parent
commit
7353131a91

+ 0 - 0
src/components/OP/Carguide.vue


+ 413 - 0
src/components/OP/Groupedit.vue

@@ -0,0 +1,413 @@
+<template>
+    <div  v-loading="fullscreenLoading">
+        <div class="groupedit">
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
+                <div class="required-box">
+                    <el-form-item label-width="120px" label="销售报价号:">
+                        <el-input :readonly="true"  el-input v-model="ruleForm.quotenum"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="本团成单人:" prop="person">
+                        <el-select v-model="ruleForm.person" placeholder="请选择本团成单人     ">
+                            <el-option v-for="(item,index) in personarr" :key="index" :label="item.cnName" :value="item.id"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="客户级别:" prop="grades">
+                        <el-select v-model="ruleForm.grades" placeholder="请选择客户级别">
+                            <el-option  v-for="(item,index) in gradearr" :key="index" :label="item.name" :value="item.id"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="团组类型:" prop="OP">
+                        <el-select class="op-type" v-model="ruleForm.OP" placeholder="请选择团组类型">
+                            <el-option  v-for="(item,index) in OPtype" :key="index" :label="item.name" :value="item.id"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="团组名称:" prop="groupname">
+                        <el-input   el-input v-model="ruleForm.groupname"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="客户名称:" prop="customername">
+                        <el-input   el-input v-model="ruleForm.customername"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="客户单位:" prop="customerunits">
+                        <el-input   el-input v-model="ruleForm.customerunits"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="出访国家:" prop="countriesvisited">
+                        <el-input   el-input v-model="ruleForm.countriesvisited"></el-input>
+                    </el-form-item>
+                    <el-form-item  label-width="120px" label="出访时间:" prop="visitingtime">
+                        <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.visitingtime" style="width: 100%;"></el-date-picker>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="出访天数:" prop="numdays">
+                        <el-input   el-input v-model="ruleForm.numdays"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="出访人数:" prop="numperson">
+                        <el-input   el-input v-model="ruleForm.numperson"></el-input>
+                    </el-form-item>
+                    <el-form-item  label-width="120px" label="合同时间:" prop="contracttime">
+                        <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.contracttime" style="width: 100%;"></el-date-picker>
+                    </el-form-item>
+                </div>
+                <div class="advance-box">
+                    <el-form-item label-width="120px" label="于出访时间前" prop="occasion">
+                        <el-input style="width: 100px;" el-input v-model="ruleForm.occasion"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="98px" label="日支付款项:" prop="payments">
+                        <el-input   el-input v-model="ruleForm.payments"></el-input>
+                    </el-form-item>
+                    <span style="margin-bottom: 22px;display: inline-block;color: #606266;font-size: 14px;">(预付款,请输入RMB)</span>
+                </div>
+                <el-form>
+                    <el-form-item label-width="120px" label="出访目的:">
+                        <el-input type="textarea" v-model="ruleForm.purposevisit"></el-input>
+                      </el-form-item>
+                      <el-form-item label-width="120px" label="特殊需求:">
+                          <el-input type="textarea" v-model="ruleForm.specialneeds"></el-input>
+                      </el-form-item>
+                      <el-form-item label-width="120px" label="其他需求:">
+                          <el-input type="textarea" v-model="ruleForm.otherneeds"></el-input>
+                      </el-form-item>
+                </el-form>
+                <el-form class="approval-box">
+                    <el-form-item label-width="160px" label="出国任务审批部门名称:">
+                        <el-input  el-input v-model="ruleForm.approvalname"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="批件文号:">
+                        <el-input   el-input v-model="ruleForm.approvalnumber1"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="130px" label="政治审查部门名称:">
+                        <el-input   el-input v-model="ruleForm.censorshipdepartment"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="批件文号:">
+                        <el-input   el-input v-model="ruleForm.approvalnumber2"></el-input>
+                    </el-form-item>
+                </el-form>
+                <el-form>
+                    <el-form-item label-width="120px" label="备注:">
+                        <el-input type="textarea" v-model="ruleForm.remark"></el-input>
+                    </el-form-item>
+                    <el-form-item label-width="120px" label="手机号:">
+                        <el-input type="textarea" v-model="ruleForm.phonenumber"></el-input>
+                    </el-form-item>
+                </el-form>
+                <el-form-item>
+                  <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
+                  <el-button @click="resetForm('ruleForm')">重 置</el-button>
+                  <el-button @click="clickback()">返 回</el-button>
+                </el-form-item>
+              </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import { el } from '@fullcalendar/core/internal-common';
+import { all } from 'q';
+export default {
+    data() {
+      return {
+        editid:'',
+        token:'',
+        userid:'',
+        ruleForm: {
+          quotenum:'',
+          groupname: '',
+          customername: '',
+          customerunits:'',
+          countriesvisited:'',
+          visitingtime:'',
+          contracttime:'',
+          numdays:'',
+          numperson:'',
+          occasion:'',
+          payments:'',
+          purposevisit: '',
+          specialneeds:'',
+          otherneeds:'',
+          approvalname:'',
+          approvalnumber1:'',
+          approvalnumber2:'',
+          censorshipdepartment:'',
+          remark:'',
+          phonenumber:'',
+          OP:'',
+          grades:'',
+          person:''
+        },
+        personarr:[],
+        gradearr:[],
+        OPtype:[],
+        rules: {
+          groupname: [
+            { required: true, message: '请输入团组名称', trigger: 'blur' },
+          ],
+          customername: [
+            { required: true, message: '请输入客户名称', trigger: 'blur' },
+          ],
+          customerunits:[
+            { required: true, message: '请输入客户单位', trigger: 'blur' },
+          ],
+          countriesvisited:[
+            { required: true, message: '请输入出访国家', trigger: 'blur' },
+          ],
+          person: [
+            { required: true, message: '请选择成团人', trigger: 'change' }
+          ],
+          grades:[
+            { required: true, message: '请选择级别', trigger: 'change' }
+          ],
+          OP:[
+            { required: true, message: '请选择类型', trigger: 'change' }
+          ],
+          visitingtime: [
+            { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
+          ],
+          contracttime: [
+            { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
+          ],
+          numdays:[
+            { required: true, message: '请输入出访天数', trigger: 'blur' },
+            {pattern:"^\\d+$",message: "请输入正整数",trigger: "blur"}
+          ],
+          numperson:[
+            { required: true, message: '请输入出访人数', trigger: 'blur' },
+            {pattern:"^\\d+$",message: "请输入正整数",trigger: "blur"}
+          ],
+          occasion:[
+            { required: true, message: '请输入出天数', trigger: 'blur' },
+            {pattern:"^\\d+$",message: "请输入正整数",trigger: "blur"}
+          ],
+          payments:[
+            { required: true, message: '请输入出款额', trigger: 'blur' },
+            {pattern:"^\\d+(\\.\\d+)?$",message: "请输入正浮点数或整数",trigger: "blur"}
+          ]
+        },
+        fullscreenLoading:false
+      };
+    },
+    methods: {
+        submitForm(formName) {
+            this.$refs[formName].validate((valid) => {
+            if (valid) {
+                this.addGroupInfo()
+            } else {
+                console.log('error submit!!');
+                return false;
+            }
+            });
+        },
+        //清空
+        resetForm(formName) {
+            this.$refs[formName].resetFields();
+        },
+        //返回
+        clickback(){
+            this.$router.go(-1);
+        },
+        //获取下拉列表
+        getdown(){
+            var url="/api/Groups/GroupEditBasicSource"
+            var that=this
+            this.$axios({
+                method: 'post',
+                url:url,
+                headers:{
+                    Authorization:'Bearer '+this.token
+                },
+                data:{
+                    portType: 1,
+                }
+            }).then(function(res){
+                if(res.data.code==200){
+                    that.personarr=res.data.data.userData;
+                    that.gradearr=res.data.data.teamLevData;
+                    that.OPtype=res.data.data.teamTypeData;
+                }
+            })
+        },
+        //新增获取销售号
+        getSalesQuoteNo(){
+            if(this.editid==undefined){
+                var url="/api/Groups/GetGroupSalesQuoteNo"
+                var that=this
+                if(this.editid==undefined){
+                    this.$axios({
+                        method: 'post',
+                        url:url,
+                        headers:{
+                            Authorization:'Bearer '+this.token
+                        },
+                    }).then(function(res){
+                        if(res.data.code==200){
+                            that.ruleForm.quotenum=res.data.data.salesQuoteNo;
+                        }
+                    })
+                }
+            }
+            
+        },
+        //处理时间
+        disposeTime(val){
+            var date = new Date(val);
+            var y = date.getFullYear();
+            var m = date.getMonth() + 1;
+            m = m < 10 ? ('0' + m) : m;
+            var d = date.getDate();
+            d = d < 10 ? ('0' + d) : d;
+            let time = y + '-' + m + '-' + d;
+            return time
+        },
+        //编辑获取原数据
+        getGroupInfo(){
+            var url="/api/Groups/GetGroupInfo"
+            var that=this
+            var datagroup
+            if(this.editid!=undefined){
+                this.$axios({
+                    method: 'post',
+                    url:url,
+                    headers:{
+                        Authorization:'Bearer '+this.token
+                    },
+                    data:{
+                        portType:1,
+                        id:that.editid
+                    }
+                }).then(function(res){
+                    if(res.data.code==200){
+                        datagroup=res.data.data;
+                        console.log(datagroup)
+                        that.ruleForm.quotenum=datagroup.salesQuoteNo;
+                        that.ruleForm.groupname=datagroup.teamName;
+                        that.ruleForm.customername=datagroup.clientName;
+                        that.ruleForm.customerunits=datagroup.clientUnit;
+                        that.ruleForm.countriesvisited=datagroup.visitCountry.replaceAll("|","、");
+                        that.ruleForm.visitingtime=new Date(datagroup.visitDate.split(' ')[0]);
+                        that.ruleForm.numdays=datagroup.visitDays+"";
+                        that.ruleForm.numperson=datagroup.visitPNumber+"";
+                        that.ruleForm.contracttime=new Date(datagroup.tontractTime.split(' ')[0]);
+                        that.ruleForm.payments=datagroup.paymentMoney+'';
+                        that.ruleForm.occasion=datagroup.payDay+'';
+                        that.ruleForm.purposevisit=datagroup.visitPurpose;
+                        that.ruleForm.specialneeds=datagroup.specialNeeds;
+                        that.ruleForm.otherneeds=datagroup.otherNeeds;
+                        that.ruleForm.approvalname=datagroup.cgrwspbmmc;
+                        that.ruleForm.approvalnumber1=datagroup.cgrwspwh;
+                        that.ruleForm.censorshipdepartment=datagroup.zzscbmmc;
+                        that.ruleForm.approvalnumber2=datagroup.zzscspwh;
+                        that.ruleForm.remark=datagroup.remark;
+                        that.ruleForm.phonenumber=datagroup.tellPhone;
+                        that.ruleForm.OP=datagroup.teamDid;
+                        that.ruleForm.grades=datagroup.teamLevSId;
+                        that.ruleForm.person=datagroup.jietuanOperator;
+                    }
+                })
+            }
+        },
+        //新增编辑
+        addGroupInfo(){
+            var url="/api/Groups/GroupOperation";
+            var that=this;
+            that.fullscreenLoading = true;
+            var status
+            if(this.editid!=undefined){
+                status=2
+            }else{
+                status=1
+            }
+            debugger
+            this.$axios({
+                    method: 'post',
+                    url:url,
+                    headers:{
+                        Authorization:'Bearer '+this.token
+                    },
+                    data:{
+                        portType:1,
+                        status:status,//添加1//修改2//删除3
+                        id:that.editid,
+                        userId:that.userid,
+                        salesQuoteNo:that.ruleForm.quotenum,
+                        jietuanOperator:parseInt(that.ruleForm.person),//
+                        teamLevSId:parseInt(that.ruleForm.grades),//
+                        teamDid:parseInt(that.ruleForm.OP),//
+                        teamName:that.ruleForm.groupname,
+                        clientName:that.ruleForm.customername,
+                        clientUnit:that.ruleForm.customerunits,
+                        visitCountry:that.ruleForm.countriesvisited.replaceAll("、","|"),
+                        visitDate:that.disposeTime(that.ruleForm.visitingtime),
+                        visitDays:parseInt(that.ruleForm.numdays),
+                        visitPNumber:parseInt(that.ruleForm.numperson),
+                        tontractTime:that.disposeTime(that.ruleForm.contracttime),
+                        payDay:parseInt(that.ruleForm.occasion),
+                        paymentMoney:parseInt(that.ruleForm.payments),
+                        visitPurpose:that.ruleForm.purposevisit,
+                        specialNeeds:that.ruleForm.specialneeds,
+                        otherNeeds:that.ruleForm.otherneeds,
+                        cgrwspbmmc:that.ruleForm.approvalname,
+                        cgrwspwh:that.ruleForm.approvalnumber1,
+                        zzscbmmc:that.ruleForm.censorshipdepartment,
+                        zzscspwh:that.ruleForm.approvalnumber2,
+                        tellPhone:that.ruleForm.phonenumber,
+                        remark:that.ruleForm.remark,
+                    }
+                }).then(function(res){
+                    console.log(res)
+                    if(res.data.code==200){
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success',
+                            offset:50
+                        });
+                        that.fullscreenLoading = false;
+                    }else{
+                        that.$message({
+                            message:res.data.msg,
+                            type: 'warning',
+                            offset:50
+                        });
+                        that.fullscreenLoading = false;
+                    }
+                })
+        }
+    },
+    mounted(){
+        this.editid=this.$route.query.id;
+        this.token=JSON.parse(localStorage.getItem('userinif')).token;
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        this.getSalesQuoteNo();
+        this.getdown();
+        this.getGroupInfo();
+    }
+}
+</script>
+<style>
+    .groupedit{
+        background-color: #fff;
+        border-radius: 10px;
+        padding: 20px;
+    }
+    .required-box{
+        display: flex;
+        flex-wrap: wrap;
+        justify-content: space-between;
+    }
+    .required-box>div{
+        width: 30%;
+    }
+    .required-box .el-select{
+        width: 100%;
+    }
+    .approval-box{
+        display: flex;
+        justify-content: space-between;
+    }
+    .approval-box>div{
+        width: 23%;
+    }
+    .approval-box>div:nth-child(1){
+        width: 30%;
+    }
+    .advance-box{
+        display: flex;
+        align-items: center;
+    }
+</style>>

+ 404 - 0
src/components/OP/OPgroup.vue

@@ -0,0 +1,404 @@
+<template>
+    <div v-loading="fullscreenLoading">
+        <div class="group-list">
+            <div class="group-title">
+                <div>团组列表</div>
+                <div class="group-box">
+                    <el-select v-model="value" clearable placeholder="请选择" @change="filterStatus(value)">
+                        <el-option
+                        v-for="item in options"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value">
+                        </el-option>
+                    </el-select>
+                    <el-input
+                    style="width:200px;"
+                    @input="Inquireclick()"
+                    placeholder="请输入查询内容"
+                    v-model="input"
+                    clearable>
+                    </el-input>
+                    <el-button @click="addgroup()" type="primary">新增团组</el-button>
+                </div>
+            </div>
+            <template>
+                <el-table
+                :data="groupDatas.slice((currentPage-1)*pageSize,currentPage*pageSize)"
+                border
+                style="width: 100%">
+                    <el-table-column
+                        prop="num"
+                        label="序 号"
+                        width="55">
+                        <template slot-scope="scope">
+                            {{(currentPage - 1) * pageSize + scope.$index + 1}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        prop="tourCode"
+                        width="100"
+                        label="团 号">
+                    </el-table-column>
+                    <!-- <el-table-column
+                        width="100" 
+                        prop="salesQuoteNo"
+                        label="销售报价号">
+                    </el-table-column> -->
+                    <el-table-column
+                        prop="teamType"
+                        label="团组类型"
+                        width="150">
+                    </el-table-column>
+                    <!-- <el-table-column
+                        prop="teamLev"
+                        label="级 别"
+                        width="80">
+                    </el-table-column> -->
+                    <el-table-column
+                        prop="teamName"
+                        label="团队名称"
+                        >
+                    </el-table-column>
+                    <el-table-column
+                        prop="clientName"
+                        label="客户名称"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column
+                        prop="clientUnit"
+                        label="客户单位">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitDate"
+                        :formatter="filteryear"
+                        label="出访时间"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitDays"
+                        label="出访天数"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitPNumber"
+                        label="出访人数"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="jietuanOperator"
+                        label="接团操作人"
+                        width="110">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                          <el-button
+                            size="mini"
+                            @click="handleEdit(scope.$index, scope.row)"><i class="el-icon-edit"></i></el-button>
+                          <el-button
+                            size="mini"
+                            type="danger"
+                            @click="handleDelete(scope.$index, scope.row,groupDatas)"><i class="el-icon-delete"></i></el-button>
+                        </template>
+                      </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' 
+                    @size-change="handleSizeChange" 
+                    @current-change="handleCurrentChange"
+                    :current-page="currentPage" 
+                    :page-sizes="[10,12,15,20]" 
+                    :page-size="pageSize" 
+                    layout="total, sizes, prev, pager, next" 
+                    :total="groupDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import { co, el } from '@fullcalendar/core/internal-common';
+export default {
+    data() {
+        return {
+            options: [
+                {
+                    value: '0',
+                    label: '全部'
+                }, {
+                    value: '1',
+                    label: '已完成'
+                }, {
+                    value: '2',
+                    label: '未完成'
+                }
+            ],
+            value: '0',
+            groupDatas:[],
+            groupData: [
+                
+            ],
+            groupDatass:[],
+            currentPage: 1, // 当前页码
+            pageSize: 12 ,// 每页的数据条数
+            input:'',
+            token:'',
+            fullscreenLoading:false,
+            userid:''
+        }
+    },
+    methods:{
+         //每页条数改变时触发 选择一页显示多少行
+         handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        Inquireclick(){
+            console.log(this.groupDatass)
+            var newarr=[];
+            if(this.input==""){
+                if(this.value=="0"){
+                    console.log(123)
+                    newarr=this.groupData;
+                }else{
+                    newarr=this.groupDatass;
+                }
+            }else{
+                for(var i=0;i<this.groupDatas.length;i++){
+                    if(this.groupDatas[i].clientName.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].clientUnit.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].jietuanOperator.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].salesQuoteNo.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].teamLev.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].teamName.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].teamType.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].tourCode.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }else if(this.groupDatas[i].visitDate.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                }
+            }
+            this.groupDatas=newarr;
+        },
+        addgroup(){
+            this.$router.push({path: '/home/Groupedit'});
+        },
+        //
+        Grouplist(){
+            var url="/api/Groups/GetGroupList"
+            var that=this
+            that.fullscreenLoading = true;
+            this.$axios({
+                method: 'post',
+                url:url,
+                headers:{
+                    Authorization:'Bearer '+this.token
+                },
+                data:{
+                    portType: 1,
+                }
+            }).then(function(res){
+                if(res.data.code==200){
+                    that.groupData=res.data.data
+                    that.groupData.forEach(item=>{
+                        if(item.clientName==null){
+                            item.clientName = ''
+                        } 
+                        if(item.clientUnit==null){
+                            item.clientUnit = ''
+                        } 
+                        if(item.id==null){
+                            item.id = ''
+                        } 
+                        if(item.isSure==null){
+                            item.isSure = ''
+                        } 
+                        if(item.jietuanOperator==null){
+                            item.jietuanOperator = ''
+                        } 
+                        if(item.salesQuoteNo==null){
+                            item.salesQuoteNo = ''
+                        } 
+                        if(item.teamName==null){
+                            item.teamName = ''
+                        } 
+                        if(item.teamType==null){
+                            item.teamType = ''
+                        } 
+                        if(item.tourCode==null){
+                            item.tourCode = ''
+                        } 
+                        if(item.visitDate==null){
+                            item.visitDate = ''
+                        } 
+                        if(item.visitDays==null){
+                            item.visitDays = ''
+                        } 
+                        if(item.visitPNumber==null){
+                            item.visitPNumber = ''
+                        } 
+                    })
+                    that.groupDatas=that.groupData;
+                    console.log(that.groupData)
+                    that.fullscreenLoading = false;
+                }
+            })
+        },
+        filteryear(val){
+            let gstime=val.visitDate.split(' ')[0]
+            return gstime;
+        },
+        //筛选状态
+        filterStatus(val){
+            console.log(val)
+            var newgroup=[];
+            if(this.input==""){
+                if(val=="0"||val==""){
+                    newgroup=this.groupData;
+                }else if(val=="1"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==1){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }else if(val=="2"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==0){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }
+                this.groupDatas=newgroup
+                this.groupDatass=newgroup 
+            }else{
+                if(val=="0"||val==""){
+                    newgroup=this.groupData
+                }else if(val=="1"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==1){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }else if(val=="2"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==0){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }
+                this.groupDatas=newgroup
+                this.groupDatass=newgroup 
+                this.Inquireclick()
+            }
+        },
+        //编辑
+        handleEdit(index, row,rows) {
+            console.log(index, row.id);
+            this.$router.push({path: '/home/Groupedit?id=' + row.id +''});
+        },
+        //删除
+        handleDelete(index, row,rows) {
+            this.$confirm('此操作将删除该条信息, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+            }).then(() => {
+                var url="/api/Groups/GroupDel"
+                var that=this
+                console.log(that.userid+'----'+row.id)
+                this.$axios({
+                    method: 'post',
+                    url:url,
+                    headers:{
+                        Authorization:'Bearer '+this.token
+                    },
+                    data:{
+                        portType: 1,
+                        id:row.id,
+                        userId:that.userid
+                    }
+                }).then(function(res){
+                    console.log(res);
+                    if(res.data.code==200){
+                        that.$message({
+                            message:res.data.msg ,
+                            type: 'success',
+                            offset:50
+                        });
+                        rows.splice(index, 1);
+                    }else{
+                        that.$message({
+                            message:res.data.msg ,
+                            type: 'warning',
+                            offset:50
+                        });
+                    }
+                })
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消删除'
+                });          
+            });
+            
+        }
+    },
+    mounted(){
+        this.token=JSON.parse(localStorage.getItem('userinif')).token;
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        console.log(this.token)
+        this.Grouplist();
+    }
+}
+</script>
+<style>
+    .group-list{
+        background-color: #fff;
+        padding: 10px;
+        box-shadow: 0 0 5px #0005;
+        border-radius: 10px;
+    }
+    .group-title{
+        display: flex;
+        font-size: 17px;
+        font-weight:600 ;
+        color: #555;
+        margin-top: 8px;
+        margin-bottom: 2px;
+        justify-content: space-between;
+        align-items: center;
+    }
+    .group-box{
+        display: flex;
+    }
+    .group-box>button{
+        margin-left: 10px;
+        padding: 8px 20px;
+    }
+    .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
+        text-align: center;
+    }
+    .group-box>.el-input{
+        margin-left: 10px;
+    }
+</style>

+ 355 - 0
src/components/OP/Tourguide.vue

@@ -0,0 +1,355 @@
+<template>
+    <div>
+        <div class="communal-list">
+            <div class="communal-title">
+                <div>员工列表</div>
+                <div class="communal-box">
+                    <el-input
+                        @input="Inquireclick()"
+                        placeholder="请输入内容"
+                        v-model="input"
+                        clearable>
+                    </el-input>
+                    <el-button @click="Inquireclick()" type="primary"><i class="icon-sousuo"></i></el-button>
+                </div>
+            </div>
+            <template>
+                <el-table
+                :data="tableDatas.slice((currentPage-1)*pageSize,currentPage*pageSize)"
+                border
+                style="width: 100%">
+                    <el-table-column
+                        prop="num"
+                        label="序 号"
+                        width="55">
+                        <template slot-scope="scope">
+                            {{(currentPage - 1) * pageSize + scope.$index + 1}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        prop="number"
+                        width="100"
+                        label="员工号">
+                    </el-table-column>
+                    <el-table-column
+                        width="100" 
+                        prop="cnName"
+                        label="姓 名">
+                    </el-table-column>
+                    <el-table-column
+                        prop="companyName"
+                        label="分属公司"
+                        width="220">
+                    </el-table-column>
+                    <el-table-column
+                        prop="jobName"
+                        label="职 位"
+                        width="200">
+                    </el-table-column>
+                    <el-table-column
+                        prop="ext"
+                        label="分机号"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column
+                        prop="phone"
+                        label="手机号"
+                        width="200">
+                    </el-table-column>
+                    <el-table-column
+                        prop="urgentPhone"
+                        label="紧急联络电话"
+                        width="200">
+                    </el-table-column>
+                    <el-table-column
+                        prop="email"
+                        label="电子邮箱">
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' 
+                    @size-change="handleSizeChange" 
+                    @current-change="handleCurrentChange"
+                    :current-page="currentPage" 
+                    :page-sizes="[10,15,20]" 
+                    :page-size="pageSize" 
+                    layout="total, sizes, prev, pager, next" 
+                    :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import { co, el } from '@fullcalendar/core/internal-common';
+export default {
+    data() {
+        return {
+            tableDatas:[],
+            tableData: [
+                {
+                    num:'1',
+                    date: '2016-05-03',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'2',
+                    date: '2016-05-02',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'3',
+                    date: '2016-05-04',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'4',
+                    date: '2016-05-01',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'5',
+                    date: '2016-05-08',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'6',
+                    date: '2016-05-06',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'7',
+                    date: '2016-05-07',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'8',
+                    date: '2016-05-06',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'9',
+                    date: '2016-05-07',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'10',
+                    date: '2016-05-06',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'11',
+                    date: '2016-05-07',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'12',
+                    date: '2016-05-06',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'13',
+                    date: '2016-05-07',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'14',
+                    date: '2016-05-06',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'15',
+                    date: '2016-05-07',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'16',
+                    date: '2016-05-06',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }, 
+                {
+                    num:'17',
+                    date: '2016-05-07',
+                    name: '王小虎',
+                    pnum:'15896358421',
+                    address: '上海市普陀区金沙江路 1518 弄'
+                }
+            ],
+            currentPage: 1, // 当前页码
+            pageSize: 15 ,// 每页的数据条数
+            input:'',
+            token:''
+        }
+    },
+    methods:{
+         //每页条数改变时触发 选择一页显示多少行
+         handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        Inquireclick(){
+            var newarr=[];
+            if(this.input==""){
+                newarr=this.tableData;
+            }else{
+                for(var i=0;i<this.tableData.length;i++){
+                    if(this.tableData[i].number.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                    else if(this.tableData[i].cnName.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                    else if(this.tableData[i].jobName.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                    else if(this.tableData[i].companyName.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                    else if(this.tableData[i].ext.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                    else if(this.tableData[i].phone.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                    else if(this.tableData[i].urgentPhone.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                    else if(this.tableData[i].email.indexOf(this.input)!=-1){
+                        newarr.push(this.tableData[i]);
+                    }
+                }
+            }
+            this.tableDatas=newarr;
+        },
+        Getemployees(){
+            var url="/api/System/GetUserList"
+            var that=this
+            this.$axios({
+                method: 'post',
+                url:url,
+                headers:{
+                    Authorization:'Bearer '+this.token
+                },
+                data:{
+                    portType: 1,
+                }
+            }).then(function(res){
+                console.log(res)
+                if(res.data.code==200){
+                    that.tableData=res.data.data
+                    // that.tableData.forEach(item=>{
+                    //     if(item.cnName==null){
+                    //         item.cnName = ''
+                    //     } 
+                    //     if(item.companyId==null){
+                    //         item.companyId = ''
+                    //     } 
+                    //     if(item.companyName==null){
+                    //         item.companyName = ''
+                    //     } 
+                    //     if(item.depId==null){
+                    //         item.depId = ''
+                    //     } 
+                    //     if(item.depName==null){
+                    //         item.depName = ''
+                    //     } 
+                    //     if(item.email==null){
+                    //         item.email = ''
+                    //     } 
+                    //     if(item.ext==null){
+                    //         item.ext = ''
+                    //     } 
+                    //     if(item.id==null){
+                    //         item.id = ''
+                    //     } 
+                    //     if(item.jobName==null){
+                    //         item.jobName = ''
+                    //     } 
+                    //     if(item.jobPostId==null){
+                    //         item.jobPostId = ''
+                    //     } 
+                    //     if(item.number==null){
+                    //         item.number = ''
+                    //     } 
+                    //     if(item.phone==null){
+                    //         item.phone = ''
+                    //     } 
+                    //     if(item.urgentPhone==null){
+                    //         item.urgentPhone = ''
+                    //     }
+                    // })
+                    // that.tableDatas=that.tableData;
+                    // console.log(that.tableDatas)
+                }
+            })
+        }
+    },
+    mounted(){
+        this.token=JSON.parse(localStorage.getItem('userinif')).token;
+        console.log(this.token)
+        this.Getemployees();
+    }
+}
+</script>
+<style>
+    .communal-list{
+        background-color: #fff;
+        padding: 10px;
+        box-shadow: 0 0 5px #0005;
+        border-radius: 10px;
+    }
+    .communal-title{
+        display: flex;
+        font-size: 17px;
+        font-weight:600 ;
+        color: #555;
+        margin-top: 8px;
+        margin-bottom: 2px;
+        justify-content: space-between;
+        align-items: center;
+    }
+    .communal-box{
+        display: flex;
+    }
+    .communal-box>button{
+        margin-left: 10px;
+        padding: 8px 20px;
+    }
+</style>

+ 244 - 0
src/components/Resource/CarData.vue

@@ -0,0 +1,244 @@
+<template>
+    <div>
+        <div class="communal-list">
+            <div class="communal-title">
+                <div>车公司资料</div>
+                <div class="communal-box">
+                    <el-input @input="Inquireclick()" placeholder="请输入单位地区/单位名称/联系人/联系电话" v-model="input" clearable
+                        style="width: 350px;">
+                    </el-input>
+                    <router-link to="/home/CarDataAdd">
+                        <el-button type="primary" style="margin-left: 10px;">新增</el-button>
+                    </router-link>
+
+                </div>
+            </div>
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
+                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中...">
+                    <el-table-column prop="num" label="序 号" width="55">
+                        <template slot-scope="scope">
+                            {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="unitArea" label="单位地区" width="180">
+                    </el-table-column>
+                    <el-table-column prop="unitName" label="单位名称">
+                    </el-table-column>
+                    <el-table-column prop="contact" label="联系人" width="220">
+                    </el-table-column>
+                    <el-table-column prop="contactTel" label="联系电话" width="180">
+                    </el-table-column>
+                    <el-table-column prop="score" label="评分" width="55">
+                    </el-table-column>
+                    <el-table-column prop="createTime" label="更新时间" width="180">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 12, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            rules: {
+                UnitArea: [
+                    { required: true, message: '请输入单位地区', trigger: 'blur' },
+                    { required: true, message: '请输入单位地区', trigger: 'change' },
+                ],
+                UnitName: [
+                    { required: true, message: '请输入单位名称', trigger: 'blur' },
+                ],
+                Contact: [
+                    { required: true, message: '请输入单位联系人', trigger: 'blur' },
+                ],
+                ContactTel: [
+                    { required: true, message: '请输入单位联系人电话', trigger: 'blur' },
+                ],
+
+            },
+            loading: false,
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 12,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            unitAreas: [],
+            restaurants: [],
+            upCarVisible: false,
+
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        carData() {
+            this.loading = true
+            var url = "/api/Resource/QuerCarData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    debugger
+                    that.tableData = res.data.data;
+                    that.tableDatas = that.tableData;
+                    that.tableData.forEach(function (item, index) {
+                        that.unitAreas.push({
+                            value: item.unitArea,
+                        });
+                    });
+                }
+                that.loading = false
+            }).catch(function (error) {
+                that.loading = false
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        //搜索框处理
+        Inquireclick() {
+            var newarr = [];
+            if (this.input == "") {
+                newarr = this.tableData;
+            } else {
+                for (var i = 0; i < this.tableData.length; i++) {
+                    if (this.tableData[i].unitArea.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].unitName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].contact.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].contactTel.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    }
+                }
+            }
+            this.tableDatas = newarr;
+        },
+        querySearch(queryString, cb) {
+            var arr = this.unitAreas;
+            for (var i = 0; i < arr.length - 1; i++) {
+                for (var j = i + 1; j < arr.length; j++) {
+                    if (arr[i].value == arr[j].value) {
+                        arr.splice(j, 1);
+                        //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
+                        j--;
+                    }
+                }
+            }
+            var restaurants = arr;
+            var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+        },
+        createFilter(queryString) {
+            return (restaurant) => {
+                return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+            };
+        },
+        upDate(index, row) {
+            localStorage.setItem('CarDataEdit', JSON.stringify(row));
+            this.$router.push('/home/carDataEdit')
+        },
+        handleSelect(item) {
+            console.log(item);
+        },
+        del(index, row) {
+            var url = "/api/Resource/DelCarData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    Id: row.id,
+                    DeleteUserId: this.userId
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    debugger
+                    that.$message({
+                        message: '删除成功',
+                        type: 'success'
+                    });
+                    that.carData();
+                } else {
+                    that.$message.error('删除失败!');
+                }
+                that.loading = false
+            }).catch(function (error) {
+                that.loading = false
+                that.$message.error("网络错误,请稍后重试");
+            });
+        }
+    },
+    mounted() {
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.carData();
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 10px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 383 - 0
src/components/Resource/CarDataAdd.vue

@@ -0,0 +1,383 @@
+<template>
+    <div v-loading="loading" element-loading-text="跳转中..." class="car_add">
+        <div class="communal-title">
+            <div>添加车公司资料</div>
+        </div>
+        <template>
+            <el-form :model="addData" :rules="rules" ref="addData" label-width="100px" class="demo-ruleForm">
+                <el-row>
+                    <el-col :span="8">
+                        <el-form-item label="服务评分" prop="Score">
+                            <el-select v-model="addData.Score" placeholder="服务评分">
+                                <el-option key="1" label="1分" value="1"></el-option>
+                                <el-option key="2" label="2分" value="2"></el-option>
+                                <el-option key="3" label="3分" value="3"></el-option>
+                                <el-option key="4" label="4分" value="4"></el-option>
+                                <el-option key="5" label="5分" value="5"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="单位地区" prop="UnitArea">
+                            <el-autocomplete class="inline-input" v-model="addData.UnitArea"
+                                :fetch-suggestions="querySearch" placeholder="请输入单位地区" @select="handleSelect"
+                                style="width: 290px;"></el-autocomplete>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="单位名称" prop="UnitName">
+                            <el-input placeholder="单位名称" v-model="addData.UnitName">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="单位地址" prop="Address">
+                            <el-input placeholder="单位地址" v-model="addData.Address">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="8">
+                        <el-form-item label="联系人" prop="Contact">
+                            <el-input placeholder="单位地址" v-model="addData.Contact">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="联系方式" prop="ContactTel">
+                            <el-input placeholder="联系方式" v-model="addData.ContactTel">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="电子邮箱" prop="ContactEmail">
+                            <el-input placeholder="电子邮箱" v-model="addData.ContactEmail">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="8">
+                        <el-form-item label="传 真" prop="ContactFax">
+                            <el-input placeholder="传 真" v-model="addData.ContactFax">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="23">
+                        <el-form-item label="其他信息" prop="OtherInfo">
+                            <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="addData.OtherInfo"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <div class="appraise-box">
+                    <el-form-item label="有相关的车辆资质" prop="QualificationScore" label-width="130px">
+                        <template>
+                            <el-radio v-model="addData.QualificationScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.QualificationScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.QualificationScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+
+                    <el-form-item label="车辆2-4年新,VIP及以上需要2年新" prop="CarAgeScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="addData.CarAgeScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.CarAgeScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.CarAgeScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+
+                    <el-form-item label="车身干净,无文字图片等" prop="CleanImgScore" label-width="170px">
+                        <template>
+                            <el-radio v-model="addData.CleanImgScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.CleanImgScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.CleanImgScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+
+
+                    <el-form-item label="车内整洁、无异味" prop="SmellScore" label-width="130px">
+                        <template>
+                            <el-radio v-model="addData.SmellScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.SmellScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.SmellScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+
+                    <el-form-item label="提前备水,纸巾等" prop="WaterPaperScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="addData.WaterPaperScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.WaterPaperScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.WaterPaperScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+
+                    <el-form-item label="车辆配置高(皮座椅等)" prop="HardwareScore" label-width="170px">
+                        <template>
+                            <el-radio v-model="addData.HardwareScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.HardwareScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.HardwareScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="时间概念强" prop="TimeScore" label-width="130px">
+                        <template>
+                            <el-radio v-model="addData.TimeScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.TimeScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.TimeScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+
+                    <el-form-item label="安全意识高" prop="SafetyScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="addData.SafetyScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.SafetyScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.SafetyScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+
+                    <el-form-item label="司机驾龄时间长,提前熟悉路线" prop="DrivingAgeScore" label-width="210px">
+                        <template>
+                            <el-radio v-model="addData.DrivingAgeScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="addData.DrivingAgeScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="addData.DrivingAgeScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                </div>
+                <el-form-item>
+                    <div style="margin-left: 60%;">
+                        <el-button type="primary" @click="addBtn">保存</el-button>
+                        <router-link to='/home/CarData'>
+                            <el-button>取消</el-button>
+                        </router-link>
+                    </div>
+                </el-form-item>
+            </el-form>
+        </template>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        var isnumber = (rule, value, callback) => {
+            debugger
+            var reg = /^1[3456789]\d{9}$/;//小数点左边最高16位,小数点右边最多4位
+            if (reg.test(value)) {
+                callback();
+            } else
+                callback(new Error("请输入正确的手机号"));
+
+
+        };
+        return {
+            rules: {
+                UnitArea: [
+                    { required: true, message: '请输入单位地区', trigger: 'blur' },
+                    { required: true, message: '请输入单位地区', trigger: 'change' },
+                ],
+                UnitName: [
+                    { required: true, message: '请输入单位名称', trigger: 'blur' },
+                ],
+                Contact: [
+                    { required: true, message: '请输入单位联系人', trigger: 'blur' },
+                ],
+                ContactTel: [
+                    { required: true, message: '请输入单位联系人电话', trigger: 'blur' },
+                    { validator: isnumber, message: '请输入正确的手机号', trigger: 'change' }
+                ],
+            },
+            loading: false,
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 15,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            addData: {
+                UnitArea: '',
+                UnitName: '',
+                Address: '',
+                Contact: '',
+                ContactTel: '',
+                ContactEmail: '',
+                ContactFax: '',
+                CarDes: '',
+                CarPicPaths: '',
+                OtherInfo: '',
+                Score: '5',
+                QualificationScore: 'A',
+                CarAgeScore: 'A',
+                CleanImgScore: 'A',
+                SmellScore: 'A',
+                WaterPaperScore: 'A',
+                HardwareScore: 'A',
+                TimeScore: 'A',
+                SafetyScore: 'A',
+                DrivingAgeScore: 'A',
+                CreateUserId: 0,
+                Remark: ''
+            },
+            unitAreas: [],
+            restaurants: [],
+
+        }
+    },
+    methods: {
+
+        carData() {
+            var url = "http://localhost:5256/api/Resource/QuerCarData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    debugger
+                    that.tableData = res.data.data;
+                    that.tableData.forEach(function (item, index) {
+                        that.unitAreas.push({
+                            value: item.unitArea,
+                        });
+                    });
+                }
+            })
+        },
+        handleSelect(item) {
+            console.log(item);
+        },
+        addBtn() {
+            const that = this;
+            debugger
+            this.addData.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+            this.addData.Remark = this.addData.OtherInfo
+            that.$refs.addData.validate((valid) => {
+                if (valid) {
+                    var url = "http://localhost:5256/api/Resource/AddCarData"
+
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.addData
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '添加成功',
+                                type: 'success'
+                            });
+                            that.loading = true;
+                            setTimeout(() => {
+                                that.$router.push('/home/CarData')
+                            }, 3000);
+                        } else {
+                            that.$message.error('添加失败!');
+                        }
+                    })
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            })
+        },
+
+
+        querySearch(queryString, cb) {
+            var arr = this.unitAreas;
+            for (var i = 0; i < arr.length - 1; i++) {
+                for (var j = i + 1; j < arr.length; j++) {
+                    if (arr[i].value == arr[j].value) {
+                        arr.splice(j, 1);
+                        //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
+                        j--;
+                    }
+                }
+            }
+            var restaurants = arr;
+            var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+        },
+        createFilter(queryString) {
+            return (restaurant) => {
+                return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+            };
+        },
+    },
+    mounted() {
+        debugger
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.carData();
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.car_add .communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-bottom: 20px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.appraise-box {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+    margin: 50px 0;
+}
+
+.appraise-box>div {
+    width: 30%;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+
+.car_add {
+    background-color: #fff;
+    padding: 20px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+@media screen and (max-width: 1700px) {
+    .appraise-box>div {
+        width: 48%;
+    }
+
+    .appraise-box>div el-form-item__content {
+        width: 260px !important;
+    }
+}
+</style>

+ 402 - 0
src/components/Resource/CarDataEdit.vue

@@ -0,0 +1,402 @@
+<template>
+    <div class="car-edit" v-loading="loading" element-loading-text="跳转中...">
+        <div class="communal-title">
+            <div>修改车公司资料</div>
+        </div>
+        <template>
+            <el-form :model="upData" :rules="rules" ref="upData" label-width="100px" class="demo-ruleForm">
+                <el-row>
+                    <el-col :span="8">
+                        <el-form-item label="服务评分" prop="Score">
+                            <el-select v-model="upData.Score" placeholder="服务评分">
+                                <el-option key="1" label="1分" value="1"></el-option>
+                                <el-option key="2" label="2分" value="2"></el-option>
+                                <el-option key="3" label="3分" value="3"></el-option>
+                                <el-option key="4" label="4分" value="4"></el-option>
+                                <el-option key="5" label="5分" value="5"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="单位地区" prop="UnitArea">
+                            <el-autocomplete class="inline-input" v-model="upData.UnitArea" :fetch-suggestions="querySearch"
+                                placeholder="请输入单位地区" @select="handleSelect" style="width: 290px;"></el-autocomplete>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="单位名称" prop="UnitName">
+                            <el-input placeholder="单位名称" v-model="upData.UnitName">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="单位地址" prop="Address">
+                            <el-input placeholder="单位地址" v-model="upData.Address">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="8">
+                        <el-form-item label="联系人" prop="Contact">
+                            <el-input placeholder="单位地址" v-model="upData.Contact">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="联系方式" prop="ContactTel">
+                            <el-input placeholder="联系方式" v-model="upData.ContactTel">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="电子邮箱" prop="ContactEmail">
+                            <el-input placeholder="电子邮箱" v-model="upData.ContactEmail">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="8">
+                        <el-form-item label="传 真" prop="ContactFax">
+                            <el-input placeholder="传 真" v-model="upData.ContactFax">
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-form-item label="其他信息" prop="OtherInfo">
+                    <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="upData.OtherInfo"></el-input>
+                </el-form-item>
+                <div class="appraise-box">
+                    <el-form-item label="有相关的车辆资质" prop="QualificationScore" label-width="224px">
+                        <template>
+                            <el-radio v-model="upData.QualificationScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.QualificationScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.QualificationScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="车辆2-4年新,VIP及以上需要2年新" prop="CarAgeScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="upData.CarAgeScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.CarAgeScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.CarAgeScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="车身干净,无文字图片等" prop="CleanImgScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="upData.CleanImgScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.CleanImgScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.CleanImgScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="车内整洁、无异味" prop="SmellScore" label-width="224px">
+                        <template>
+                            <el-radio v-model="upData.SmellScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.SmellScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.SmellScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="提前备水,纸巾等" prop="WaterPaperScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="upData.WaterPaperScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.WaterPaperScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.WaterPaperScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="车辆配置高(皮座椅等)" prop="HardwareScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="upData.HardwareScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.HardwareScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.HardwareScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="时间概念强" prop="TimeScore" label-width="224px">
+                        <template>
+                            <el-radio v-model="upData.TimeScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.TimeScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.TimeScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="安全意识高" prop="SafetyScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="upData.SafetyScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.SafetyScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.SafetyScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                    <el-form-item label="司机驾龄时间长,提前熟悉路线" prop="DrivingAgeScore" label-width="260px">
+                        <template>
+                            <el-radio v-model="upData.DrivingAgeScore" label="A" style="margin-right: 10px">A</el-radio>
+                            <el-radio v-model="upData.DrivingAgeScore" label="B" style="margin-right: 10px">B</el-radio>
+                            <el-radio v-model="upData.DrivingAgeScore" label="C" style="margin-right: 10px">C</el-radio>
+                        </template>
+                    </el-form-item>
+                </div>
+                <el-form-item>
+                    <div style="margin-left: 60%;">
+                        <el-button type="primary" @click="editBtn">保 存</el-button>
+                        <router-link to='/home/CarData'>
+                            <el-button>取 消</el-button>
+                        </router-link>
+                    </div>
+                </el-form-item>
+            </el-form>
+        </template>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        var isnumber = (rule, value, callback) => {
+            debugger
+            var reg = /^1[3456789]\d{9}$/;//小数点左边最高16位,小数点右边最多4位
+            if (reg.test(value)) {
+                callback();
+            } else
+                callback(new Error("请输入正确的手机号"));
+        };
+        return {
+            clientWidth: document.body.clientWidth,
+            rules: {
+                UnitArea: [
+                    { required: true, message: '请输入单位地区', trigger: 'blur' },
+                    { required: true, message: '请输入单位地区', trigger: 'change' },
+                ],
+                UnitName: [
+                    { required: true, message: '请输入单位名称', trigger: 'blur' },
+                ],
+                Contact: [
+                    { required: true, message: '请输入单位联系人', trigger: 'blur' },
+                ],
+                ContactTel: [
+                    { required: true, message: '请输入单位联系人电话', trigger: 'blur' },
+                    { validator: isnumber, message: '请输入正确的手机号', trigger: 'change' }
+                ],
+            },
+            loading: false,
+            CarDataEdit: {},
+            currentPage: 1, // 当前页码
+            pageSize: 15,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            upData: {
+                Id: 0,
+                UnitArea: '',
+                UnitName: '',
+                Address: '',
+                Contact: '',
+                ContactTel: '',
+                ContactEmail: '',
+                ContactFax: '',
+                CarDes: '',
+                CarPicPaths: '',
+                OtherInfo: '',
+                Score: '5',
+                QualificationScore: 'A',
+                CarAgeScore: 'A',
+                CleanImgScore: 'A',
+                SmellScore: 'A',
+                WaterPaperScore: 'A',
+                HardwareScore: 'A',
+                TimeScore: 'A',
+                SafetyScore: 'A',
+                DrivingAgeScore: 'A',
+                Remark: ''
+            },
+            unitAreas: [],
+            restaurants: [],
+
+        }
+    },
+    watch: {
+        clientWidth(newVal, oldVal) {
+            console.log(newVal);//浏览器窗口变化时,打印宽度。
+        }
+    },
+    methods: {
+
+        carData() {
+            var url = "/api/Resource/QuerCarData"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    debugger
+                    that.tableData = res.data.data;
+                    that.tableData.forEach(function (item, index) {
+                        that.unitAreas.push({
+                            value: item.unitArea,
+                        });
+                    });
+                }
+            })
+        },
+        handleSelect(item) {
+            console.log(item);
+        },
+        editBtn() {
+            const that = this;
+            debugger
+            this.upData.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+            this.upData.Remark = this.upData.OtherInfo
+            that.$refs.upData.validate((valid) => {
+                if (valid) {
+                    var url = "/api/Resource/AddCarData"
+
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.upData
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            that.loading = true;
+                            setTimeout(() => {
+                                that.$router.push('/home/CarData')
+                            }, 3000);
+                        } else {
+                            that.$message.error('修改失败!');
+                        }
+                    }).catch(function (error) {
+                        that.$message.error("网络错误,请稍后重试");
+                    });
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            })
+        },
+        querySearch(queryString, cb) {
+            var arr = this.unitAreas;
+            for (var i = 0; i < arr.length - 1; i++) {
+                for (var j = i + 1; j < arr.length; j++) {
+                    if (arr[i].value == arr[j].value) {
+                        arr.splice(j, 1);
+                        //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
+                        j--;
+                    }
+                }
+            }
+            var restaurants = arr;
+            var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+        },
+        createFilter(queryString) {
+            return (restaurant) => {
+                return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+            };
+        },
+        editData() {
+            this.upData.Id = this.CarDataEdit.id;
+            this.upData.UnitArea = this.CarDataEdit.unitArea;
+            this.upData.UnitName = this.CarDataEdit.unitName;
+            this.upData.Address = this.CarDataEdit.address;
+            this.upData.Contact = this.CarDataEdit.contact;
+            this.upData.ContactTel = this.CarDataEdit.contactTel;
+            this.upData.ContactEmail = this.CarDataEdit.contactEmail;
+            this.upData.ContactFax = this.CarDataEdit.contactFax;
+            this.upData.CarDes = this.CarDataEdit.carDes;
+            this.upData.CarPicPaths = this.CarDataEdit.carPicPaths;
+            this.upData.OtherInfo = this.CarDataEdit.otherInfo;
+            this.upData.Score = this.CarDataEdit.score;
+            this.upData.QualificationScore = this.CarDataEdit.qualificationScore;
+            this.upData.CarAgeScore = this.CarDataEdit.carAgeScore;
+            this.upData.CleanImgScore = this.CarDataEdit.cleanImgScore;
+            this.upData.SmellScore = this.CarDataEdit.smellScore;
+            this.upData.WaterPaperScore = this.CarDataEdit.waterPaperScore;
+            this.upData.HardwareScore = this.CarDataEdit.hardwareScore;
+            this.upData.TimeScore = this.CarDataEdit.timeScore;
+            this.upData.SafetyScore = this.CarDataEdit.safetyScore;
+            this.upData.DrivingAgeScore = this.CarDataEdit.drivingAgeScore;
+            this.upData.Remark = this.CarDataEdit.otherInfo;
+        },
+    },
+
+    mounted() {
+        debugger
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        debugger
+        this.CarDataEdit = JSON.parse(localStorage.getItem('CarDataEdit'));
+        this.carData();
+        this.editData();
+        // let that = this;
+        // window.onresize =() =>{
+        //     return (()=>{
+        //         window.clientWidth = document.body.clientWidth;
+        //         that.clientWidth = window.clientWidth;
+        //     })()
+        // }
+    }
+}
+</script>
+<style>
+.car-edit {
+    background-color: #fff;
+    padding: 20px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.car-edit .communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-bottom: 20px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+
+.appraise-box {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+    margin: 50px 0;
+}
+
+.appraise-box>div {
+    width: 30%;
+}
+
+@media screen and (max-width: 1700px) {
+    .appraise-box>div {
+        width: 48%;
+    }
+
+    .appraise-box>div el-form-item__content {
+        width: 260px !important;
+    }
+}
+</style>

+ 153 - 187
src/components/child/index.vue

@@ -4,78 +4,41 @@
             <div class="communal-title">
                 <div>员工列表</div>
                 <div class="communal-box">
-                    <el-input
-                        @input="Inquireclick()"
-                        placeholder="请输入内容"
-                        v-model="input"
-                        clearable>
+                    <el-input @input="Inquireclick()" placeholder="请输入内容" v-model="input" clearable>
                     </el-input>
                     <el-button @click="Inquireclick()" type="primary"><i class="icon-sousuo"></i></el-button>
                 </div>
             </div>
             <template>
-                <el-table
-                :data="tableDatas.slice((currentPage-1)*pageSize,currentPage*pageSize)"
-                border
-                style="width: 100%">
-                    <el-table-column
-                        prop="num"
-                        label="序 号"
-                        width="55">
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
+                    style="width: 100%">
+                    <el-table-column prop="num" label="序 号" width="55">
                         <template slot-scope="scope">
-                            {{(currentPage - 1) * pageSize + scope.$index + 1}}
+                            {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
                         </template>
                     </el-table-column>
-                    <el-table-column
-                        prop="number"
-                        width="100"
-                        label="员工号">
+                    <el-table-column prop="number" width="100" label="员工号">
                     </el-table-column>
-                    <el-table-column
-                        width="100" 
-                        prop="cnName"
-                        label="姓 名">
+                    <el-table-column width="100" prop="cnName" label="姓 名">
                     </el-table-column>
-                    <el-table-column
-                        prop="companyName"
-                        label="分属公司"
-                        width="220">
+                    <el-table-column prop="companyName" label="分属公司" width="220">
                     </el-table-column>
-                    <el-table-column
-                        prop="jobName"
-                        label="职 位"
-                        width="200">
+                    <el-table-column prop="jobName" label="职 位" width="200">
                     </el-table-column>
-                    <el-table-column
-                        prop="ext"
-                        label="分机号"
-                        width="100">
+                    <el-table-column prop="ext" label="分机号" width="100">
                     </el-table-column>
-                    <el-table-column
-                        prop="phone"
-                        label="手机号"
-                        width="200">
+                    <el-table-column prop="phone" label="手机号" width="200">
                     </el-table-column>
-                    <el-table-column
-                        prop="urgentPhone"
-                        label="紧急联络电话"
-                        width="200">
+                    <el-table-column prop="urgentPhone" label="紧急联络电话" width="200">
                     </el-table-column>
-                    <el-table-column
-                        prop="email"
-                        label="电子邮箱">
+                    <el-table-column prop="email" label="电子邮箱">
                     </el-table-column>
                 </el-table>
             </template>
             <div class="block">
-                <el-pagination align='center' 
-                    @size-change="handleSizeChange" 
-                    @current-change="handleCurrentChange"
-                    :current-page="currentPage" 
-                    :page-sizes="[10,15,20]" 
-                    :page-size="pageSize" 
-                    layout="total, sizes, prev, pager, next" 
-                    :total="tableDatas.length">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
                 </el-pagination>
             </div>
         </div>
@@ -86,137 +49,137 @@ import { co, el } from '@fullcalendar/core/internal-common';
 export default {
     data() {
         return {
-            tableDatas:[],
+            tableDatas: [],
             tableData: [
                 {
-                    num:'1',
+                    num: '1',
                     date: '2016-05-03',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'2',
+                    num: '2',
                     date: '2016-05-02',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'3',
+                    num: '3',
                     date: '2016-05-04',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'4',
+                    num: '4',
                     date: '2016-05-01',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'5',
+                    num: '5',
                     date: '2016-05-08',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'6',
+                    num: '6',
                     date: '2016-05-06',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'7',
+                    num: '7',
                     date: '2016-05-07',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'8',
+                    num: '8',
                     date: '2016-05-06',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'9',
+                    num: '9',
                     date: '2016-05-07',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'10',
+                    num: '10',
                     date: '2016-05-06',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'11',
+                    num: '11',
                     date: '2016-05-07',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'12',
+                    num: '12',
                     date: '2016-05-06',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'13',
+                    num: '13',
                     date: '2016-05-07',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'14',
+                    num: '14',
                     date: '2016-05-06',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'15',
+                    num: '15',
                     date: '2016-05-07',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'16',
+                    num: '16',
                     date: '2016-05-06',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
-                }, 
+                },
                 {
-                    num:'17',
+                    num: '17',
                     date: '2016-05-07',
                     name: '王小虎',
-                    pnum:'15896358421',
+                    pnum: '15896358421',
                     address: '上海市普陀区金沙江路 1518 弄'
                 }
             ],
             currentPage: 1, // 当前页码
-            pageSize: 15 ,// 每页的数据条数
-            input:'',
-            token:''
+            pageSize: 15,// 每页的数据条数
+            input: '',
+            token: ''
         }
     },
-    methods:{
-         //每页条数改变时触发 选择一页显示多少行
-         handleSizeChange(val) {
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
             this.currentPage = 1;
             this.pageSize = val;
         },
@@ -224,132 +187,135 @@ export default {
         handleCurrentChange(val) {
             this.currentPage = val;
         },
-        Inquireclick(){
-            var newarr=[];
-            if(this.input==""){
-                newarr=this.tableData;
-            }else{
-                for(var i=0;i<this.tableData.length;i++){
-                    if(this.tableData[i].number.indexOf(this.input)!=-1){
+        Inquireclick() {
+            var newarr = [];
+            if (this.input == "") {
+                newarr = this.tableData;
+            } else {
+                for (var i = 0; i < this.tableData.length; i++) {
+                    if (this.tableData[i].number.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
-                    else if(this.tableData[i].cnName.indexOf(this.input)!=-1){
+                    else if (this.tableData[i].cnName.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
-                    else if(this.tableData[i].jobName.indexOf(this.input)!=-1){
+                    else if (this.tableData[i].jobName.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
-                    else if(this.tableData[i].companyName.indexOf(this.input)!=-1){
+                    else if (this.tableData[i].companyName.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
-                    else if(this.tableData[i].ext.indexOf(this.input)!=-1){
+                    else if (this.tableData[i].ext.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
-                    else if(this.tableData[i].phone.indexOf(this.input)!=-1){
+                    else if (this.tableData[i].phone.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
-                    else if(this.tableData[i].urgentPhone.indexOf(this.input)!=-1){
+                    else if (this.tableData[i].urgentPhone.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
-                    else if(this.tableData[i].email.indexOf(this.input)!=-1){
+                    else if (this.tableData[i].email.indexOf(this.input) != -1) {
                         newarr.push(this.tableData[i]);
                     }
                 }
             }
-            this.tableDatas=newarr;
+            this.tableDatas = newarr;
         },
-        Getemployees(){
-            var url="/api/System/GetUserList"
-            var that=this
+        Getemployees() {
+            var url = "/api/System/GetUserList"
+            var that = this
             this.$axios({
                 method: 'post',
-                url:url,
-                headers:{
-                    Authorization:'Bearer '+this.token
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
                 },
-                data:{
+                data: {
                     portType: 1,
                 }
-            }).then(function(res){
+            }).then(function (res) {
                 console.log(res)
-                if(res.data.code==200){
-                    that.tableData=res.data.data
-                    that.tableData.forEach(item=>{
-                        if(item.cnName==null){
+                if (res.data.code == 200) {
+                    that.tableData = res.data.data
+                    that.tableData.forEach(item => {
+                        if (item.cnName == null) {
                             item.cnName = ''
-                        } 
-                        if(item.companyId==null){
+                        }
+                        if (item.companyId == null) {
                             item.companyId = ''
-                        } 
-                        if(item.companyName==null){
+                        }
+                        if (item.companyName == null) {
                             item.companyName = ''
-                        } 
-                        if(item.depId==null){
+                        }
+                        if (item.depId == null) {
                             item.depId = ''
-                        } 
-                        if(item.depName==null){
+                        }
+                        if (item.depName == null) {
                             item.depName = ''
-                        } 
-                        if(item.email==null){
+                        }
+                        if (item.email == null) {
                             item.email = ''
-                        } 
-                        if(item.ext==null){
+                        }
+                        if (item.ext == null) {
                             item.ext = ''
-                        } 
-                        if(item.id==null){
+                        }
+                        if (item.id == null) {
                             item.id = ''
-                        } 
-                        if(item.jobName==null){
+                        }
+                        if (item.jobName == null) {
                             item.jobName = ''
-                        } 
-                        if(item.jobPostId==null){
+                        }
+                        if (item.jobPostId == null) {
                             item.jobPostId = ''
-                        } 
-                        if(item.number==null){
+                        }
+                        if (item.number == null) {
                             item.number = ''
-                        } 
-                        if(item.phone==null){
+                        }
+                        if (item.phone == null) {
                             item.phone = ''
-                        } 
-                        if(item.urgentPhone==null){
+                        }
+                        if (item.urgentPhone == null) {
                             item.urgentPhone = ''
                         }
                     })
-                    that.tableDatas=that.tableData;
+                    that.tableDatas = that.tableData;
                     console.log(that.tableDatas)
                 }
             })
         }
     },
-    mounted(){
-        this.token=JSON.parse(localStorage.getItem('userinif')).token;
+    mounted() {
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
         console.log(this.token)
         this.Getemployees();
     }
 }
 </script>
 <style>
-    .communal-list{
-        background-color: #fff;
-        padding: 10px;
-        box-shadow: 0 0 5px #0005;
-        border-radius: 10px;
-    }
-    .communal-title{
-        display: flex;
-        font-size: 17px;
-        font-weight:600 ;
-        color: #555;
-        margin-top: 8px;
-        margin-bottom: 2px;
-        justify-content: space-between;
-        align-items: center;
-    }
-    .communal-box{
-        display: flex;
-    }
-    .communal-box>button{
-        margin-left: 10px;
-        padding: 8px 20px;
-    }
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 2px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
 </style>

+ 3 - 2
src/components/home.vue

@@ -26,8 +26,9 @@
                   <img src="../assets/avatar.jpg" alt="" />
                 </div>
                 <div v-if="panduan" class="avatar-text">
-                  <div class="avatar-name">姓名: {{userinif.userInfo.cnName}} 部门: {{userinif.userInfo.depName}}</div>
+                  <div class="avatar-name">员工: {{userinif.userInfo.cnName}}</div>
                   <div class="avatar-division">职位: {{userinif.userInfo.jobName}}</div>
+                  <div>部门: {{userinif.userInfo.depName}}</div>
                 </div>
               </div>
             </div>
@@ -511,7 +512,7 @@
       text-align: left;
     }
     .avatar-text > div {
-      line-height: 28px;
+      line-height: 24px;
     }
     .avatar-img {
       width: 50px;

+ 404 - 0
src/components/materials/Customerdata.vue

@@ -0,0 +1,404 @@
+<template>
+    <div v-loading="fullscreenLoading">
+        <div class="group-list">
+            <div class="group-title">
+                <div>团组列表</div>
+                <div class="group-box">
+                    <el-select v-model="value" clearable placeholder="请选择" @change="filterStatus(value)">
+                        <el-option
+                        v-for="item in options"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value">
+                        </el-option>
+                    </el-select>
+                    <el-input
+                    style="width:200px;"
+                    @input="Inquireclick()"
+                    placeholder="请输入查询内容"
+                    v-model="input"
+                    clearable>
+                    </el-input>
+                    <el-button @click="addgroup()" type="primary">新增团组</el-button>
+                </div>
+            </div>
+            <template>
+                <el-table
+                :data="groupDatas.slice((currentPage-1)*pageSize,currentPage*pageSize)"
+                border
+                style="width: 100%">
+                    <el-table-column
+                        prop="num"
+                        label="序 号"
+                        width="55">
+                        <template slot-scope="scope">
+                            {{(currentPage - 1) * pageSize + scope.$index + 1}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        prop="tourCode"
+                        width="100"
+                        label="团 号">
+                    </el-table-column>
+                    <!-- <el-table-column
+                        width="100" 
+                        prop="salesQuoteNo"
+                        label="销售报价号">
+                    </el-table-column> -->
+                    <el-table-column
+                        prop="teamType"
+                        label="团组类型"
+                        width="150">
+                    </el-table-column>
+                    <!-- <el-table-column
+                        prop="teamLev"
+                        label="级 别"
+                        width="80">
+                    </el-table-column> -->
+                    <el-table-column
+                        prop="teamName"
+                        label="团队名称"
+                        >
+                    </el-table-column>
+                    <el-table-column
+                        prop="clientName"
+                        label="客户名称"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column
+                        prop="clientUnit"
+                        label="客户单位">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitDate"
+                        :formatter="filteryear"
+                        label="出访时间"
+                        width="100">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitDays"
+                        label="出访天数"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="visitPNumber"
+                        label="出访人数"
+                        width="80">
+                    </el-table-column>
+                    <el-table-column
+                        prop="jietuanOperator"
+                        label="接团操作人"
+                        width="110">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                          <el-button
+                            size="mini"
+                            @click="handleEdit(scope.$index, scope.row)"><i class="el-icon-edit"></i></el-button>
+                          <el-button
+                            size="mini"
+                            type="danger"
+                            @click="handleDelete(scope.$index, scope.row,groupDatas)"><i class="el-icon-delete"></i></el-button>
+                        </template>
+                      </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' 
+                    @size-change="handleSizeChange" 
+                    @current-change="handleCurrentChange"
+                    :current-page="currentPage" 
+                    :page-sizes="[10,12,15,20]" 
+                    :page-size="pageSize" 
+                    layout="total, sizes, prev, pager, next" 
+                    :total="groupDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import { co, el } from '@fullcalendar/core/internal-common';
+export default {
+    data() {
+        return {
+            options: [
+                {
+                    value: '0',
+                    label: '全部'
+                }, {
+                    value: '1',
+                    label: '已完成'
+                }, {
+                    value: '2',
+                    label: '未完成'
+                }
+            ],
+            value: '0',
+            groupDatas:[],
+            groupData: [
+                
+            ],
+            groupDatass:[],
+            currentPage: 1, // 当前页码
+            pageSize: 12 ,// 每页的数据条数
+            input:'',
+            token:'',
+            fullscreenLoading:false,
+            userid:''
+        }
+    },
+    methods:{
+         //每页条数改变时触发 选择一页显示多少行
+         handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        Inquireclick(){
+            console.log(this.groupDatass)
+            var newarr=[];
+            if(this.input==""){
+                if(this.value=="0"){
+                    console.log(123)
+                    newarr=this.groupData;
+                }else{
+                    newarr=this.groupDatass;
+                }
+            }else{
+                for(var i=0;i<this.groupDatas.length;i++){
+                    if(this.groupDatas[i].clientName.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].clientUnit.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].jietuanOperator.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].salesQuoteNo.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].teamLev.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].teamName.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].teamType.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                    else if(this.groupDatas[i].tourCode.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }else if(this.groupDatas[i].visitDate.indexOf(this.input)!=-1){
+                        newarr.push(this.groupDatas[i]);
+                    }
+                }
+            }
+            this.groupDatas=newarr;
+        },
+        addgroup(){
+            this.$router.push({path: '/home/Groupedit'});
+        },
+        //
+        Grouplist(){
+            var url="/api/Groups/GetGroupList"
+            var that=this
+            that.fullscreenLoading = true;
+            this.$axios({
+                method: 'post',
+                url:url,
+                headers:{
+                    Authorization:'Bearer '+this.token
+                },
+                data:{
+                    portType: 1,
+                }
+            }).then(function(res){
+                if(res.data.code==200){
+                    that.groupData=res.data.data
+                    that.groupData.forEach(item=>{
+                        if(item.clientName==null){
+                            item.clientName = ''
+                        } 
+                        if(item.clientUnit==null){
+                            item.clientUnit = ''
+                        } 
+                        if(item.id==null){
+                            item.id = ''
+                        } 
+                        if(item.isSure==null){
+                            item.isSure = ''
+                        } 
+                        if(item.jietuanOperator==null){
+                            item.jietuanOperator = ''
+                        } 
+                        if(item.salesQuoteNo==null){
+                            item.salesQuoteNo = ''
+                        } 
+                        if(item.teamName==null){
+                            item.teamName = ''
+                        } 
+                        if(item.teamType==null){
+                            item.teamType = ''
+                        } 
+                        if(item.tourCode==null){
+                            item.tourCode = ''
+                        } 
+                        if(item.visitDate==null){
+                            item.visitDate = ''
+                        } 
+                        if(item.visitDays==null){
+                            item.visitDays = ''
+                        } 
+                        if(item.visitPNumber==null){
+                            item.visitPNumber = ''
+                        } 
+                    })
+                    that.groupDatas=that.groupData;
+                    console.log(that.groupData)
+                    that.fullscreenLoading = false;
+                }
+            })
+        },
+        filteryear(val){
+            let gstime=val.visitDate.split(' ')[0]
+            return gstime;
+        },
+        //筛选状态
+        filterStatus(val){
+            console.log(val)
+            var newgroup=[];
+            if(this.input==""){
+                if(val=="0"||val==""){
+                    newgroup=this.groupData;
+                }else if(val=="1"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==1){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }else if(val=="2"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==0){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }
+                this.groupDatas=newgroup
+                this.groupDatass=newgroup 
+            }else{
+                if(val=="0"||val==""){
+                    newgroup=this.groupData
+                }else if(val=="1"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==1){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }else if(val=="2"){
+                    for(var j=0;j<this.groupData.length;j++){
+                        if(this.groupData[j].isSure==0){
+                            newgroup.push(this.groupData[j])
+                        }
+                    }
+                }
+                this.groupDatas=newgroup
+                this.groupDatass=newgroup 
+                this.Inquireclick()
+            }
+        },
+        //编辑
+        handleEdit(index, row,rows) {
+            console.log(index, row.id);
+            this.$router.push({path: '/home/Groupedit?id=' + row.id +''});
+        },
+        //删除
+        handleDelete(index, row,rows) {
+            this.$confirm('此操作将删除该条信息, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+            }).then(() => {
+                var url="/api/Groups/GroupDel"
+                var that=this
+                console.log(that.userid+'----'+row.id)
+                this.$axios({
+                    method: 'post',
+                    url:url,
+                    headers:{
+                        Authorization:'Bearer '+this.token
+                    },
+                    data:{
+                        portType: 1,
+                        id:row.id,
+                        userId:that.userid
+                    }
+                }).then(function(res){
+                    console.log(res);
+                    if(res.data.code==200){
+                        that.$message({
+                            message:res.data.msg ,
+                            type: 'success',
+                            offset:50
+                        });
+                        rows.splice(index, 1);
+                    }else{
+                        that.$message({
+                            message:res.data.msg ,
+                            type: 'warning',
+                            offset:50
+                        });
+                    }
+                })
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消删除'
+                });          
+            });
+            
+        }
+    },
+    mounted(){
+        this.token=JSON.parse(localStorage.getItem('userinif')).token;
+        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+        console.log(this.token)
+        this.Grouplist();
+    }
+}
+</script>
+<style>
+    .group-list{
+        background-color: #fff;
+        padding: 10px;
+        box-shadow: 0 0 5px #0005;
+        border-radius: 10px;
+    }
+    .group-title{
+        display: flex;
+        font-size: 17px;
+        font-weight:600 ;
+        color: #555;
+        margin-top: 8px;
+        margin-bottom: 2px;
+        justify-content: space-between;
+        align-items: center;
+    }
+    .group-box{
+        display: flex;
+    }
+    .group-box>button{
+        margin-left: 10px;
+        padding: 8px 20px;
+    }
+    .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
+        text-align: center;
+    }
+    .group-box>.el-input{
+        margin-left: 10px;
+    }
+</style>

+ 228 - 172
src/components/system/Company.vue

@@ -33,7 +33,7 @@
                     </el-table-column>
                     <!-- <el-table-column prop="remark" label="备注" width="200">
                     </el-table-column> -->
-                    <el-table-column label="操作" width="200">
+                    <el-table-column label="操作">
                         <template slot-scope="scope">
                             <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
                             <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
@@ -51,41 +51,43 @@
             <el-dialog title="修改公司信息" :visible.sync="upDataVisible" width="50%" :before-close="handleClose">
                 <div>
                     <div>
-                        <el-input placeholder="请输入内容" v-model="updata.CompanyName" style="width: 50%;">
-                            <template slot="prepend">公司名称:</template>
-                        </el-input>
-                        <el-input placeholder="请输入内容" v-model="updata.CompanyCode" style="width: 40%;">
-                            <template slot="prepend">公司Codel:</template>
-                        </el-input>
+                        <el-form :model="updata" :rules="rules" ref="updata" label-width="100px" class="demo-ruleForm">
+                            <el-form-item label="公司名称" prop="CompanyName">
+                                <el-input placeholder="请输入内容" v-model="updata.CompanyName">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="公司Codel" prop="CompanyCode">
+                                <el-input placeholder="请输入内容" v-model="updata.CompanyCode">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="公司地址" prop="Address">
+                                <el-input placeholder="请输入内容" v-model="updata.Address">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="公司负责人" prop="ParentDepId">
+                                <el-select v-model="valueUserValue" placeholder="请选择负责人">
+                                    <el-option v-for="item in optionsUsers" :key="item.value" :label="item.label"
+                                        :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="负责人电话" prop="Tel">
+                                <el-input placeholder="请输入内容" v-model="updata.Tel">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="上级公司" prop="ParentDepId">
+                                <el-select v-model="valueCompanyValue" placeholder="请选择负责人">
+                                    <el-option v-for="item in optionsCompanys" :key="item.value" :label="item.label"
+                                        :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="备注" prop="Remark">
+                                <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="updata.Remark"
+                                    style="width: 80%;"></el-input>
+                            </el-form-item>
+                        </el-form>
                     </div>
-                    <div style="margin-top: 5px;">
-                        <el-input placeholder="请输入内容" v-model="updata.Address" style="width: 91%;">
-                            <template slot="prepend">公司地址:</template>
-                        </el-input>
-                    </div>
-                    <div style="margin-top: 5px;">
-                        <el-select v-model="valueUserValue" filterable placeholder="请选择负责人">
-                            <el-option v-for="item in optionsUsers" :key="item.value" :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                        <el-input placeholder="请输入内容" v-model="updata.Tel" style="width: 40%;">
-                            <template slot="prepend">负责人联系方式:</template>
-                        </el-input>
-                    </div>
-                    <div style="margin-top: 5px;">
-                        <el-select v-model="valueCompanyValue" filterable placeholder="请选择上级公司">
-                            <el-option v-for="item in optionsCompanys" :key="item.value" :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                    </div>
-                    <div style="margin-top: 5px;">
-                        <div>备注:</div>
-                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="updata.Remark"
-                            style="width: 80%;"></el-input>
-                    </div>
-
                 </div>
                 <span slot="footer" class="dialog-footer">
                     <el-button @click="upDataVisible = false">取 消</el-button>
@@ -96,41 +98,43 @@
             <el-dialog title="添加公司" :visible.sync="addDataVisible" width="50%" :before-close="handleClose">
                 <div>
                     <div>
-                        <el-input placeholder="请输入内容" v-model="adddata.CompanyName" style="width: 50%;">
-                            <template slot="prepend">公司名称:</template>
-                        </el-input>
-                        <el-input placeholder="请输入内容" v-model="adddata.CompanyCode" style="width: 40%;">
-                            <template slot="prepend">公司Codel:</template>
-                        </el-input>
-                    </div>
-                    <div style="margin-top: 5px;">
-                        <el-input placeholder="请输入内容" v-model="adddata.Address" style="width: 91%;">
-                            <template slot="prepend">公司地址:</template>
-                        </el-input>
-                    </div>
-                    <div style="margin-top: 5px;">
-                        <el-select v-model="valueUserValue" filterable placeholder="请选择负责人">
-                            <el-option v-for="item in optionsUsers" :key="item.value" :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                        <el-input placeholder="请输入内容" v-model="adddata.Tel" style="width: 40%;">
-                            <template slot="prepend">负责人联系方式:</template>
-                        </el-input>
-                    </div>
-                    <div style="margin-top: 5px;">
-                        <el-select v-model="valueCompanyValue" filterable placeholder="请选择上级公司">
-                            <el-option v-for="item in optionsCompanys" :key="item.value" :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                    </div>
-                    <div style="margin-top: 5px;">
-                        <div>备注:</div>
-                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="adddata.Remark"
-                            style="width: 80%;"></el-input>
+                        <el-form :model="adddata" :rules="rules" ref="adddata" label-width="100px" class="demo-ruleForm">
+                            <el-form-item label="公司名称" prop="CompanyName">
+                                <el-input placeholder="请输入内容" v-model="adddata.CompanyName">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="公司Codel" prop="CompanyCode">
+                                <el-input placeholder="请输入内容" v-model="adddata.CompanyCode">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="公司地址" prop="Address">
+                                <el-input placeholder="请输入内容" v-model="adddata.Address">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="公司负责人" prop="ParentDepId">
+                                <el-select v-model="valueUserValue" placeholder="请选择负责人">
+                                    <el-option v-for="item in optionsUsers" :key="item.value" :label="item.label"
+                                        :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="负责人电话" prop="Tel">
+                                <el-input placeholder="请输入内容" v-model="adddata.Tel">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="上级公司" prop="ParentDepId">
+                                <el-select v-model="valueCompanyValue" placeholder="请选择负责人">
+                                    <el-option v-for="item in optionsCompanys" :key="item.value" :label="item.label"
+                                        :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="备注" prop="Remark">
+                                <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="adddata.Remark"
+                                    style="width: 80%;"></el-input>
+                            </el-form-item>
+                        </el-form>
                     </div>
-
                 </div>
                 <span slot="footer" class="dialog-footer">
                     <el-button @click="addDataVisible = false">取 消</el-button>
@@ -146,6 +150,16 @@ import { co, el } from '@fullcalendar/core/internal-common';
 import { del } from 'vue';
 export default {
     data() {
+        var isnumber = (rule, value, callback) => {
+            debugger
+            var reg = /^1[3456789]\d{9}$/;//小数点左边最高16位,小数点右边最多4位
+            if (reg.test(value)) {
+                callback();
+            } else
+                callback(new Error("请输入正确的手机号"));
+
+
+        };
         return {
 
             tableDatas: [],
@@ -186,7 +200,26 @@ export default {
                 value: 0,
                 label: '请选择上级公司'
             }],
-            valueCompanyValue: 0
+            valueCompanyValue: 0,
+            //验证
+
+            rules: {
+                CompanyName: [
+                    { required: true, message: '请输入公司名称', trigger: 'blur' },
+                ],
+                CompanyCode: [
+                    { required: true, message: '请输入公司Code', trigger: 'blur' },
+                ],
+                Address: [
+                    { required: true, message: '公司地址不能为空', trigger: 'change' }
+                ],
+                ContactUserId: [
+                    { required: true, message: '负责人不能为空', trigger: 'change' }
+                ],
+                Tel: [
+                    { validator: isnumber, message: '请输入正确的手机号', trigger: 'change' }
+                ],
+            },
         }
     },
     methods: {
@@ -225,7 +258,9 @@ export default {
                         });
                     });
                 }
-            })
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
         },
         Inquireclick() {
             var newarr = [];
@@ -260,49 +295,59 @@ export default {
         upDateBtn() {
             debugger
             var that = this
-            if (that.updata.Id != 0) {
-                if (that.updata.CompanyName == "" || that.updata.CompanyName == undefined) {
-                    that.$message.error("公司名称不能为空");
-                    return
-                }
-                if (that.updata.CompanyCode == "") {
-                    that.$message.error("公司code不能为空");
-                    return
-                }
-                if (that.updata.Address == "") {
-                    that.$message.error("公司地址不能为空");
-                    return
-                }
-                if (that.updata.ContactUserId == 0) {
-                    that.$message.error("请选择公司负责人");
-                    return
-                }
+            that.$refs.updata.validate((valid) => {
+                if (valid) {
 
-                debugger;
-                var url = "http://localhost:5256/api/System/EditCompany"
-                var that = this
-                that.$axios({
-                    method: 'post',
-                    url: url,
-                    headers: {
-                        Authorization: 'Bearer ' + that.token
-                    },
-                    data: that.updata
-                }).then(function (res) {
-                    console.log(res)
-                    debugger
-                    if (res.data.code == 200) {
-                        that.$message({
-                            message: '修改成功!',
-                            type: 'success'
-                        });
-                        that.upDataVisible = false
-                    } else {
-                        that.$message.error('保修改失败!');
-                    }
-                })
-            }
+                    if (that.updata.Id != 0) {
+                        if (that.updata.CompanyName == "" || that.updata.CompanyName == undefined) {
+                            that.$message.error("公司名称不能为空");
+                            return
+                        }
+                        if (that.updata.CompanyCode == "") {
+                            that.$message.error("公司code不能为空");
+                            return
+                        }
+                        if (that.updata.Address == "") {
+                            that.$message.error("公司地址不能为空");
+                            return
+                        }
+                        if (that.updata.ContactUserId == 0) {
+                            that.$message.error("请选择公司负责人");
+                            return
+                        }
 
+                        debugger;
+                        var url = "http://localhost:5256/api/System/EditCompany"
+                        var that = this
+                        that.$axios({
+                            method: 'post',
+                            url: url,
+                            headers: {
+                                Authorization: 'Bearer ' + that.token
+                            },
+                            data: that.updata
+                        }).then(function (res) {
+                            console.log(res)
+                            debugger
+                            if (res.data.code == 200) {
+                                that.$message({
+                                    message: '修改成功!',
+                                    type: 'success'
+                                });
+                                that.upDataVisible = false
+                                that.company();
+                            } else {
+                                that.$message.error('保修改失败!');
+                            }
+                        })
+                    }
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
         },
         //关闭修改框
         handleClose(done) {
@@ -354,72 +399,83 @@ export default {
             this.addDataVisible = true
 
         },
+
         addDateBtn() {
             debugger
-            var that = this
-            this.adddata.ContactUserId = this.valueUserValue
-            this.adddata.ParentCompanyId = this.valueCompanyValue
-            this.adddata.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
-            if (that.adddata.CompanyName == "" || that.updata.CompanyName == undefined) {
-                that.$message.error("公司名称不能为空");
-                return
-            }
-            if (that.adddata.CompanyCode == "") {
-                that.$message.error("公司code不能为空");
-                return
-            }
-            if (that.adddata.Address == "") {
-                that.$message.error("公司地址不能为空");
-                return
-            }
-            if (that.adddata.ContactUserId == 0) {
-                that.$message.error("请选择公司负责人");
-                return
-            }
-            if (that.adddata.Tel == "") {
-                that.$message.error("请输入手机号");
-                return
-            } else {
-                var reg = /^1[3456789]\d{9}$/;
-                if (!reg.test(that.adddata.Tel)) {
-                    that.$message.error("请输入有效的手机号");
-                    return
-                }
-            }
+            this.$refs.adddata.validate((valid) => {
+                if (valid) {
+                    var that = this
+                    this.adddata.ContactUserId = this.valueUserValue
+                    this.adddata.ParentCompanyId = this.valueCompanyValue
+                    this.adddata.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+                    if (that.adddata.CompanyName == "" || that.updata.CompanyName == undefined) {
+                        that.$message.error("公司名称不能为空");
+                        return
+                    }
+                    if (that.adddata.CompanyCode == "") {
+                        that.$message.error("公司code不能为空");
+                        return
+                    }
+                    if (that.adddata.Address == "") {
+                        that.$message.error("公司地址不能为空");
+                        return
+                    }
+                    if (that.adddata.ContactUserId == 0) {
+                        that.$message.error("请选择公司负责人");
+                        return
+                    }
+                    if (that.adddata.Tel == "") {
+                        that.$message.error("请输入手机号");
+                        return
+                    } else {
+                        var reg = /^1[3456789]\d{9}$/;
+                        if (!reg.test(that.adddata.Tel)) {
+                            that.$message.error("请输入有效的手机号");
+                            return
+                        }
+                    }
 
-            var url = "http://localhost:5256/api/System/AddCompany"
+                    var url = "http://localhost:5256/api/System/AddCompany"
 
-            that.$axios({
-                method: 'post',
-                url: url,
-                headers: {
-                    Authorization: 'Bearer ' + that.token
-                },
-                data: that.adddata
-            }).then(function (res) {
-                console.log(res)
-                debugger
-                if (res.data.code == 200) {
-                    that.$message({
-                        message: '添加成功!',
-                        type: 'success'
-                    });
-                    that.addDataVisible = false;
-                    this.adddata.CreateUserId = 0
-                    this.adddata.CompanyCode = ""
-                    this.adddata.CompanyName = ""
-                    this.adddata.Address = ""
-                    this.adddata.ContactUserId = 0
-                    this.adddata.Tel = ""
-                    this.adddata.ParentCompanyId = 0
-                    this.adddata.Remark = ""
-                    this.valueUserValue = 0
-                    this.valueCompanyValue = 0
-                    that.company();
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.adddata
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '添加成功!',
+                                type: 'success'
+                            });
+                            debugger
+                            that.addDataVisible = false;
+                            that.adddata.CreateUserId = 0
+                            that.adddata.CompanyCode = ""
+                            that.adddata.CompanyName = ""
+                            that.adddata.Address = ""
+                            that.adddata.ContactUserId = 0
+                            that.adddata.Tel = ""
+                            that.adddata.ParentCompanyId = 0
+                            that.adddata.Remark = ""
+                            that.valueUserValue = 0
+                            that.valueCompanyValue = 0
+                            that.company();
+                        } else {
+                            that.$message.error('添加失败!');
+                        }
+                    })
                 } else {
-                    that.$message.error('添加失败!');
+                    this.$message.error('请完善信息在保存!');
+                    return false;
                 }
-            })
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
         },
         //#endregion
         //绑定负责人下拉框

+ 488 - 0
src/components/system/Department.vue

@@ -0,0 +1,488 @@
+<template>
+    <div>
+
+        <div class="communal-list">
+            <div class="communal-title">
+                <div>部门列表</div>
+                <div class="communal-box">
+                    <el-input @input="Inquireclick()" placeholder="请输入内容" v-model="input" clearable>
+                    </el-input>
+                    <el-button @click="Inquireclick()" type="primary"><i class="icon-sousuo"></i></el-button>
+                    <el-button @click="addDepartment()" type="primary">新增</el-button>
+                </div>
+            </div>
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
+                    style="width: 100%">
+                    <el-table-column prop="num" label="序 号" width="55">
+                        <template slot-scope="scope">
+                            {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="depCode" label="部门Code" width="100">
+                    </el-table-column>
+                    <el-table-column prop="depName" label="部门名称" width="200">
+                    </el-table-column>
+                    <el-table-column prop="companyName" label="所属公司" width="220">
+                    </el-table-column>
+                    <el-table-column prop="parentDepName" label="上级部门" width="100">
+                    </el-table-column>
+                    <el-table-column prop="remark" label="备注" width="240">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+        <el-dialog title="添加部门" :visible.sync="addDepVisible" width="30%" :before-close="handleClose">
+            <div>
+                <el-form :model="addData" :rules="rules" ref="addData" label-width="100px" class="demo-ruleForm">
+                    <el-form-item label="部门code" prop="DepCode">
+                        <el-input placeholder="请输入内容" v-model="addData.DepCode">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="部门名称" prop="DepName">
+                        <el-input placeholder="请输入内容" v-model="addData.DepName">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="所属公司" prop="CompanyId">
+                        <el-select v-model="addData.CompanyId" filterable placeholder="请选择所属公司" @change="handleChange">
+                            <el-option v-for="item in optionsCompanys" :key="item.value" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="上级部门" prop="ParentDepId">
+                        <el-select v-model="addData.ParentDepId" placeholder="请选择上级部门">
+                            <el-option v-for="item in optionsDepartment" :key="item.value" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+
+                    <el-form-item label="备 注" prop="Remark">
+                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="addData.Remark"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="addDepVisible = false">取 消</el-button>
+                <el-button type="primary" @click="Addbtn">确 定</el-button>
+            </span>
+        </el-dialog>
+        <el-dialog title="修改部门" :visible.sync="upDepVisible" width="30%" :before-close="handleClose">
+            <div>
+                <el-form :model="upData" :rules="rules" ref="upData" label-width="100px" class="demo-ruleForm">
+                    <el-form-item label="部门code" prop="DepCode">
+                        <el-input placeholder="请输入内容" v-model="upData.DepCode">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="部门名称" prop="DepName">
+                        <el-input placeholder="请输入内容" v-model="upData.DepName">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="所属公司" prop="CompanyId">
+                        <el-select v-model="upData.CompanyId" filterable placeholder="请选择所属公司" @change="handleChange">
+                            <el-option v-for="item in optionsCompanys" :key="item.value" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="上级部门" prop="ParentDepId">
+                        <el-select v-model="upData.ParentDepId" placeholder="请选择上级部门">
+                            <el-option v-for="item in optionsDepartment" :key="item.value" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="备 注" prop="Remark">
+                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="upData.Remark"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="upDepVisible = false">取 消</el-button>
+                <el-button type="primary" @click="upDateBtn">确 定</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+<script>
+import { co, el } from '@fullcalendar/core/internal-common';
+import { del } from 'vue';
+export default {
+    data() {
+        return {
+
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 15,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            addDepVisible: false,
+            upDepVisible: false,
+            upData: {
+                Id: 0,
+                CompanyId: '',
+                DepCode: "",
+                DepName: "",
+                ParentDepId: 0,
+                Remark: ""
+            },
+            //添加参数
+            addData: {
+                CompanyId: '',
+                DepCode: "",
+                DepName: "",
+                ParentDepId: 0,
+                CreateUserId: this.userId,
+                Remark: ""
+            },
+
+            rules: {
+                DepCode: [
+                    { required: true, message: '请输入部门Code', trigger: 'blur' },
+                ],
+                DepName: [
+                    { required: true, message: '请输入部门名称', trigger: 'blur' },
+                ],
+                CompanyId: [
+                    { required: true, message: '请选择所属公司', trigger: 'change' }
+                ],
+            },
+            optionsDepartment: [],
+            ParentDepId: '',
+            optionsCompanys: [],
+            CompanyId: ''
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+
+        },
+        Department() {
+            var url = "http://localhost:5256/api/System/QueryDepartmentList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    CompanyId: 0
+                }
+            }).then(function (res) {
+                debugger
+                console.log(res)
+
+                if (res.data.code == 200) {
+                    debugger
+                    debugger
+                    that.tableDatas = res.data.data;
+                    that.tableData = that.tableDatas
+                    that.tableDatas.forEach(function (item, index) {
+                        that.optionsDepartment.push({
+                            value: item.id,
+                            label: item.depName
+                        });
+                    });
+                }
+            })
+        },
+        //公司下拉框绑定
+        company() {
+            var url = "http://localhost:5256/api/System/getCompanyList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    debugger
+                    res.data.data.forEach(function (item, index) {
+                        that.optionsCompanys.push({
+                            value: item.id,
+                            label: item.companyName
+                        });
+                    });
+
+                }
+            })
+        },
+        handleChange(event) {
+            debugger
+            var comId = event;
+            const that = this;
+            that.optionsDepartment = [{
+                value: 0,
+                label: '请选择上级部门'
+            }]
+
+            that.tableDatas.forEach(function (item, index) {
+                if (item.companyId == comId && comId != 0) {
+                    that.optionsDepartment.push({
+                        value: item.id,
+                        label: item.depName
+                    });
+                } else if (comId == 0) {
+                    that.optionsDepartment.push({
+                        value: item.id,
+                        label: item.depName
+                    });
+                }
+            });
+
+
+        },
+        Inquireclick() {
+            var newarr = [];
+            if (this.input == "") {
+                newarr = this.tableData;
+            } else {
+                for (var i = 0; i < this.tableData.length; i++) {
+                    if (this.tableData[i].depName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].companyName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    }
+                }
+            }
+            this.tableDatas = newarr;
+        },
+        //#region  修改操作
+        upDate(index, row) {
+            debugger
+            this.upDepVisible = true;
+            this.upData.Id = row.id
+            this.upData.CompanyId = row.companyId
+            this.upData.DepCode = row.depCode
+            this.upData.DepName = row.depName
+            this.upData.ParentDepId = row.parentDepId
+            this.upData.Remark = row.remark
+        },
+        upDateBtn() {
+            debugger
+            var that = this
+            this.$refs.upData.validate((valid) => {
+                if (valid) {
+                    that.upData.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+                    if (that.upData.DepName == "" || that.upData.DepName == undefined) {
+                        that.$message.error("部门名称不能为空");
+                        return
+                    }
+                    if (that.upData.DepCode == "") {
+                        that.$message.error("部门code不能为空");
+                        return
+                    }
+                    if (that.upData.CompanyId == 0) {
+                        that.$message.error("请选择所属公司");
+                        return
+                    }
+                    var url = "http://localhost:5256/api/System/EditDepartment"
+
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.upData
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            that.upDepVisible = false;
+                            that.Department();
+                        } else {
+                            that.$message.error('修改失败!');
+                        }
+                    })
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        //关闭修改框
+        handleClose(done) {
+            done();
+        },
+        //#endregion
+        del(index, row) {
+            debugger
+            this.$confirm('此操作将取消订单, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "http://localhost:5256/api/System/DelDepartment"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    debugger
+                    if (res.data.code == 200) {
+                        that.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        that.Department();
+                    } else {
+                        that.$message.error("删除失败,请稍后重试");
+                    }
+                }).catch(function (error) {
+                    that.$message.error("网络错误,请稍后重试");
+                });
+
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+
+        },
+        //#region 添加
+        addDepartment() {
+            this.addDepVisible = true
+
+        },
+        Addbtn() {
+            debugger
+            this.$refs.addData.validate((valid) => {
+                if (valid) {
+                    var that = this
+                    that.addData.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+                    if (that.addData.DepName == "" || that.addData.DepName == undefined) {
+                        that.$message.error("部门名称不能为空");
+                        return
+                    }
+                    if (that.addData.DepCode == "") {
+                        that.$message.error("部门code不能为空");
+                        return
+                    }
+                    if (that.addData.CompanyId == 0) {
+                        that.$message.error("请选择所属公司");
+                        return
+                    }
+                    var url = "http://localhost:5256/api/System/AddDepartment"
+
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.addData
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '添加成功!',
+                                type: 'success'
+                            });
+                            that.addDepVisible = false;
+                            that.Department();
+                            that.addData.CompanyId = 0;
+                            that.addData.DepCode = "";
+                            that.addData.DepName = "";
+                            that.addData.ParentDepId = 0;
+                            that.addData.CreateUserId = this.userId;
+                            that.addData.Remark = "";
+                        } else {
+                            that.$message.error('添加失败!');
+                        }
+                    })
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        //#endregion
+
+    },
+    mounted() {
+        debugger
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        console.log(this.token)
+        this.Department();
+        this.company();
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 2px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 448 - 0
src/components/system/JobPost.vue

@@ -0,0 +1,448 @@
+<template>
+    <div>
+
+        <div class="communal-list">
+            <div class="communal-title">
+                <div>岗位列表</div>
+                <div class="communal-box">
+                    <el-input @input="Inquireclick()" placeholder="公司/部门/岗位" v-model="input" clearable>
+                    </el-input>
+                    <el-button @click="Inquireclick()" type="primary"><i class="icon-sousuo"></i></el-button>
+                    <el-button @click="addDepartment()" type="primary">新增</el-button>
+                </div>
+            </div>
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
+                    style="width: 100%">
+                    <el-table-column prop="num" label="序 号" width="55">
+                        <template slot-scope="scope">
+                            {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="jobName" label="岗位名称" width="240">
+                    </el-table-column>
+                    <el-table-column prop="companyName" label="所属公司" width="200">
+                    </el-table-column>
+                    <el-table-column prop="depName" label="所属所属部门" width="220">
+                    </el-table-column>
+                    <el-table-column prop="remark" label="备注" width="300">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+        <el-dialog title="添加岗位" :visible.sync="addJobVisible" width="30%" :before-close="handleClose">
+            <div>
+                <el-form :model="addData" :rules="rules" ref="addData" label-width="100px" class="demo-ruleForm">
+                    <el-form-item label="岗位名称" prop="JobName">
+                        <el-input placeholder="请输入内容" v-model="addData.JobName">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="所属公司" prop="CompanyId">
+                        <el-select v-model="addData.CompanyId" filterable placeholder="请选择所属公司" @change="handleChange">
+                            <el-option v-for="item in companyData" :key="item.id" :label="item.companyName"
+                                :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="上级部门" prop="ParentDepId">
+                        <el-select v-model="addData.DepId" placeholder="所属部门">
+                            <el-option v-for="item in depData" :key="item.id" :label="item.depName" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+
+                    <el-form-item label="备 注" prop="Remark">
+                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="addData.Remark"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="addJobVisible = false">取 消</el-button>
+                <el-button type="primary" @click="Addbtn">确 定</el-button>
+            </span>
+        </el-dialog>
+        <el-dialog title="修改部门" :visible.sync="upJobVisible" width="30%" :before-close="handleClose">
+            <div>
+                <el-form :model="upData" :rules="rules" ref="upData" label-width="100px" class="demo-ruleForm">
+                    <el-form-item label="岗位名称" prop="JobName">
+                        <el-input placeholder="请输入内容" v-model="upData.JobName">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="所属公司" prop="CompanyId">
+                        <el-select v-model="upData.CompanyId" filterable placeholder="请选择所属公司" @change="handleChange">
+                            <el-option v-for="item in companyData" :key="item.id" :label="item.companyName"
+                                :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="上级部门" prop="DepId">
+                        <el-select v-model="upData.DepId" placeholder="所属部门">
+                            <el-option v-for="item in depData" :key="item.id" :label="item.depName" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+
+                    <el-form-item label="备 注" prop="Remark">
+                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="upData.Remark"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="upJobVisible = false">取 消</el-button>
+                <el-button type="primary" @click="upDateBtn">确 定</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+<script>
+import { co, el } from '@fullcalendar/core/internal-common';
+import { del } from 'vue';
+export default {
+    data() {
+
+        return {
+
+            tableDatas: [],
+            tableData: [],
+            companyData: [],//公司数据
+            depData: [],//部门数据
+            currentPage: 1, // 当前页码
+            pageSize: 15,// 每页的数据条数
+            addJobVisible: false,
+            upJobVisible: false,
+            addData: {
+                CompanyId: '',
+                DepId: '',
+                JobName: '',
+                CreateUserId: 0,
+                Remark: ''
+            },
+            upData: {
+                Id: 0,
+                CompanyId: '',
+                DepId: '',
+                JobName: '',
+                Remark: ''
+            },
+            input: '',
+            token: '',
+            userId: 0,
+            rules: {
+                JobName: [
+                    { required: true, message: '请输入岗位名称', trigger: 'blur' },
+                ],
+                CompanyId: [
+                    { required: true, message: '请选择所属公司', trigger: 'blur' },
+                ],
+                DepId: [
+                    { required: true, message: '请选择所属部门', trigger: 'blur' },
+                ],
+            },
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+
+        },
+        Department(compId) {
+            var url = "http://localhost:5256/api/System/QueryDepartmentList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    CompanyId: compId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    debugger
+                    that.depData = res.data.data;
+                }
+            })
+        },
+        //公司下拉框绑定
+        company() {
+            var url = "http://localhost:5256/api/System/getCompanyList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    debugger
+                    that.companyData = res.data.data
+
+                }
+            })
+        },
+        jobPost() {
+            var url = "http://localhost:5256/api/System/QueryJobPost"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    CompanyId: 0,
+                    DepId: 0,
+                }
+            }).then(function (res) {
+                debugger
+                console.log(res)
+
+                if (res.data.code == 200) {
+                    debugger
+                    debugger
+                    that.tableDatas = res.data.data;
+                    that.tableData = that.tableDatas
+
+                }
+            })
+        },
+        handleChange(event) {
+            debugger
+            var comId = event;
+            const that = this;
+            that.upData.DepId = ''
+            that.Department(event);
+        },
+        Inquireclick() {
+            var newarr = [];
+            if (this.input == "") {
+                newarr = this.tableData;
+            } else {
+                for (var i = 0; i < this.tableData.length; i++) {
+                    if (this.tableData[i].depName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].companyName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].jobName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    }
+                }
+            }
+            this.tableDatas = newarr;
+        },
+        //#region  修改操作
+        upDate(index, row) {
+            debugger
+            this.upJobVisible = true;
+            this.upData.Id = row.id
+            this.upData.CompanyId = row.companyId
+            this.upData.DepId = row.depId
+            this.upData.JobName = row.jobName
+            this.upData.Remark = row.remark
+        },
+        upDateBtn() {
+            debugger
+            this.$refs.upData.validate((valid) => {
+                if (valid) {
+                    var that = this
+                    that.upData.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+
+                    if (that.upData.JobName == "" || that.upData.JobName == undefined) {
+                        that.$message.error("部门名称不能为空");
+                        return
+                    }
+                    if (that.upData.Remark == null || that.upData.Remark == undefined) that.upData.Remark = ''
+
+                    var url = "http://localhost:5256/api/System/EditJobPost"
+
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.upData
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            that.upJobVisible = false;
+                            that.jobPost();
+                        } else {
+                            that.$message.error('修改失败!');
+                        }
+                    })
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            })
+        },
+        //关闭修改框
+        handleClose(done) {
+            done();
+        },
+        //#endregion
+        del(index, row) {
+            debugger
+            this.$confirm('此操作将取消订单, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "http://localhost:5256/api/System/DelJobPost"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    debugger
+                    if (res.data.code == 200) {
+                        that.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        that.Department();
+                    } else {
+                        that.$message.error("删除失败,请稍后重试");
+                    }
+                })
+
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+
+        },
+        //#region 添加
+        addDepartment() {
+            this.addJobVisible = true
+
+        },
+        Addbtn() {
+            debugger
+            this.$refs.addData.validate((valid) => {
+                if (valid) {
+                    var that = this
+                    that.addData.CreateUserId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+                    if (that.addData.JobName == "" || that.addData.JobName == undefined) {
+                        that.$message.error("岗位名称不能为空");
+                        return
+                    }
+                    if (that.addData.Remark == null) that.addData.Remark = '';
+                    var url = "http://localhost:5256/api/System/AddJobPost"
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.addData
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '添加成功!',
+                                type: 'success'
+                            });
+                            that.addJobVisible = false;
+                            that.Department();
+                            that.addData.CompanyId = '';
+                            that.addData.DepId = '';
+                            that.addData.JobName = ''
+                            that.addData.CreateUserId = this.userId;
+                            that.addData.Remark = "";
+                            that.jobPost();
+                        } else {
+                            that.$message.error('添加失败!');
+                        }
+                    })
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            })
+        },
+        //#endregion
+
+    },
+    mounted() {
+        debugger
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        console.log(this.token)
+        this.company();
+        this.jobPost();
+        this.Department('0');
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 2px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 451 - 0
src/components/system/User.vue

@@ -0,0 +1,451 @@
+<template>
+    <div>
+
+        <div class="communal-list">
+            <div class="communal-title">
+                <div>员工列表</div>
+                <div class="communal-box">
+                    <el-input @input="Inquireclick()" placeholder="公司/部门/岗位/姓名" v-model="input" clearable>
+                    </el-input>
+                    <el-button @click="Inquireclick()" type="primary"><i class="icon-sousuo"></i></el-button>
+                </div>
+            </div>
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
+                    style="width: 100%">
+                    <el-table-column prop="num" label="序 号" width="55">
+                        <template slot-scope="scope">
+                            {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="number" label="工号" width="80">
+                    </el-table-column>
+                    <el-table-column prop="cnName" label="姓名" width="200">
+                    </el-table-column>
+                    <el-table-column prop="companyName" label="公司名称" width="220">
+                    </el-table-column>
+                    <el-table-column prop="depName" label="部门名称" width="100">
+                    </el-table-column>
+                    <el-table-column prop="jobName" label="职位" width="140">
+                    </el-table-column>
+                    <el-table-column prop="ext" label="分机号" width="60">
+                    </el-table-column>
+                    <el-table-column prop="phone" label="手机号" width="180">
+                    </el-table-column>
+                    <el-table-column label="认识审核" prop="hrAudit" width="200">
+                        <template slot-scope="hrAudit">
+                            <span>{{ hrAudit.row.hrAudit == 1 ? "审核通过(正常使用)" : "未通过/未审核(不可用)" }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+        <el-dialog title="修改员工" :visible.sync="upUserVisible" width="30%" :before-close="handleClose">
+            <div>
+                <el-form :model="upData" :rules="rules" ref="upData" label-width="100px" class="demo-ruleForm">
+                    <el-form-item label="姓名" prop="cnName">
+                        <el-input placeholder="" v-model="upData.cnName" :disabled="true">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="工号" prop="Number">
+                        <el-input placeholder="请输入内容" v-model="upData.Number">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="分机号" prop="Ext">
+                        <el-input placeholder="请输入内容" v-model="upData.Ext">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="公司" prop="CompanyId">
+                        <el-select v-model="upData.CompanyId" filterable placeholder="请选择公司" @change="companyChange">
+                            <el-option v-for="item in companyData" :key="item.id" :label="item.companyName"
+                                :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="部门" prop="DepId">
+                        <el-select v-model="upData.DepId" filterable placeholder="请选择部门" @change="depChange">
+                            <el-option v-for="item in depData" :key="item.id" :label="item.depName" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="职位" prop="JobPostId">
+                        <el-select v-model="upData.JobPostId" filterable placeholder="请选择职位">
+                            <el-option v-for="item in JobData" :key="item.id" :label="item.jobName" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="试用期" prop="UsePeriod">
+                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="upData.UsePeriod"></el-input>
+                    </el-form-item>
+                    <el-form-item label="人事审核" prop="HrAudit">
+                        <el-select v-model="upData.HrAudit" filterable placeholder="请选择状态">
+                            <el-option v-for="item in HrAuditSelect" :key="item.value" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="upUserVisible = false">取 消</el-button>
+                <el-button type="primary" @click="upBtn">确 定</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+<script>
+import { co, el } from '@fullcalendar/core/internal-common';
+import { del } from 'vue';
+export default {
+    data() {
+        return {
+            rules: {
+                Number: [
+                    { required: true, message: '请输入工号', trigger: 'blur' },
+                ],
+                CompanyId: [
+                    { required: true, message: '请选择所属公司', trigger: 'blur' },
+                ],
+                DepId: [
+                    { required: true, message: '请选择所属部门', trigger: 'change' }
+                ],
+                JobPostId: [
+                    { required: true, message: '请选择所属职位', trigger: 'change' }
+                ],
+            },
+            tableDatas: [],
+            tableData: [],
+            companyData: [],
+            depData: [],
+            JobData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 15,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            upUserVisible: false,
+            upData: {
+                Id: 0,
+                Number: '',
+                CompanyId: 0,
+                DepId: 0,
+                JobPostId: 0,
+                Ext: '',
+                UsePeriod: '',
+                HrAudit: 0
+            },
+            HrAuditSelect: [{
+                value: 0,
+                label: '未审核'
+            },
+            {
+                value: 1,
+                label: '已通过'
+            },
+            {
+                value: 2,
+                label: '已拒绝'
+            },]
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+
+        },
+        //部门数据查询
+        Department(companyId) {
+            var url = "http://localhost:5256/api/System/QueryDepartmentList"
+            var that = this
+            that.depData = [];
+            that.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    CompanyId: companyId
+                }
+            }).then(function (res) {
+                debugger
+                console.log(res)
+
+                if (res.data.code == 200) {
+                    that.depData = res.data.data;
+                }
+            })
+        },
+        //公司数据查询
+        company() {
+            var url = "http://localhost:5256/api/System/getCompanyList"
+            var that = this
+            that.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    that.companyData = res.data.data;
+                }
+            })
+        },
+        companyChange(event) {
+            this.upData.DepId = null;
+            this.upData.JobPostId = null;
+            this.Department(event)
+            this.Job(event, 0)
+        },
+        depChange(event) {
+            this.upData.JobPostId = null;
+            this.Job(this.upData.CompanyId, event)
+
+        },
+        //职位数据查询
+        Job(companyId, depId) {
+            var url = "http://localhost:5256/api/System/QueryJobPost"
+            var that = this
+            that.JobData = [];
+            that.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    CompanyId: companyId,
+                    DepId: depId
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    that.JobData = res.data.data;
+                }
+            })
+        },
+        user() {
+            var url = "http://localhost:5256/api/System/QueryUserList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                }
+            }).then(function (res) {
+                console.log(res)
+                debugger
+                if (res.data.code == 200) {
+                    that.tableDatas = res.data.data;
+                    that.tableData = that.tableDatas
+                }
+            })
+        },
+        Inquireclick() {
+            var newarr = [];
+            if (this.input == "") {
+                newarr = this.tableData;
+            } else {
+                for (var i = 0; i < this.tableData.length; i++) {
+                    if (this.tableData[i].cnName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].companyName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].depName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    } else if (this.tableData[i].jobName.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    }
+                }
+            }
+            this.tableDatas = newarr;
+        },
+        //#region  修改操作
+        upDate(index, row) {
+
+            this.upUserVisible = true;
+            this.upData.cnName = row.cnName;
+            this.upData.Id = row.id;
+            this.upData.Number = row.number;
+            this.upData.CompanyId = row.companyId;
+            this.upData.DepId = row.depId;
+            this.upData.JobPostId = row.jobPostId;
+            this.upData.Ext = row.ext;
+            this.upData.UsePeriod = row.usePeriod;
+            this.upData.HrAudit = row.hrAudit;
+            this.Job(row.companyId, row.depId)
+        },
+        upBtn() {
+            debugger
+            this.$refs.upData.validate((valid) => {
+                if (valid) {
+                    var that = this
+                    if (that.upData.DepId == "" || that.upData.DepId == undefined) {
+                        that.$message.error("部门不能为空");
+                        return
+                    }
+                    if (that.upData.CompanyId == "") {
+                        that.$message.error("公司不能为空");
+                        return
+                    }
+                    if (that.upData.JobPostId == "") {
+                        that.$message.error("岗位不能为空");
+                        return
+                    }
+                    if (that.upData.Number == "") {
+                        that.$message.error("工号不能为空");
+                        return
+                    }
+                    console.log(that.upData.Ext)
+                    if (that.upData.Ext == null || that.upData.Ext == undefined) that.upData.Ext = ""
+                    if (that.upData.UsePeriod == null || that.upData.UsePeriod == undefined) that.upData.UsePeriod = ""
+                    var url = "http://localhost:5256/api/System/EditUser"
+
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.upData
+                    }).then(function (res) {
+                        console.log(res)
+                        debugger
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            that.upUserVisible = false;
+                            that.user();
+                        } else {
+                            that.$message.error('修改失败!');
+                        }
+                    })
+                } else {
+                    this.$message.error('请完善信息在保存!');
+                    return false;
+                }
+            })
+        },
+        //关闭修改框
+        handleClose(done) {
+            done();
+        },
+        //#endregion
+        del(index, row) {
+            debugger
+            this.$confirm('此操作将取消订单, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "http://localhost:5256/api/System/DelDepartment"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                    }
+                }).then(function (res) {
+                    console.log(res)
+                    debugger
+                    if (res.data.code == 200) {
+                        that.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        that.Department();
+                    } else {
+                        that.$message.error("删除失败,请稍后重试");
+                    }
+                })
+
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+
+        },
+        //#region 添加
+
+        //#endregion
+
+    },
+    mounted() {
+        debugger
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        console.log(this.token)
+        this.Department(0);
+        this.company();
+        //this.Job();
+        this.user();
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 2px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 2 - 0
src/main.js

@@ -10,6 +10,8 @@ import store from './store/index.js';
 
 import axios from 'axios';
 
+import { Message } from "element-ui";
+Vue.prototype.$message = Message 
 Vue.prototype.$axios=axios;
 
 Vue.config.productionTip = false

+ 59 - 1
src/router/index.js

@@ -16,7 +16,17 @@ import Controltree from '@/components/child/Controltree'
 import Company from '@/components/system/Company'
 import AuthorityUser from '@/components/child/AuthorityUser'
 import PageConfig from '@/components/child/PageConfig'
-
+import Carguide from '@/components/OP/Carguide'
+import Groupedit from '@/components/OP/Groupedit'
+import OPgroup from '@/components/OP/OPgroup'
+import Tourguide from '@/components/OP/Tourguide'
+import Department from '@/components/system/Department'
+import User from '@/components/system/User'
+import JobPost from '@/components/system/JobPost'
+import CarData from '@/components/Resource/CarData'
+import CarDataAdd from '@/components/Resource/CarDataAdd';
+import CarDataEdit from '@/components/Resource/CarDataEdit';
+import Customerdata from '@/components/materials/Customerdata';
 
 Vue.use(Router)
 
@@ -77,6 +87,11 @@ export default new Router({
           name: 'AuthorityUser',
           component: AuthorityUser
         },
+        {
+          path: '/home/Carguide',
+          name: 'Carguide',
+          component: Carguide
+        },
         {
           path: '/home/Controltree',
           name: 'Controltree',
@@ -92,6 +107,49 @@ export default new Router({
           name: 'PageConfig',
           component: PageConfig
         },
+        {
+          path: '/home/Department',
+          name: 'Department',
+          component: Department
+        },
+        {
+          path: '/home/Groupedit',
+          name: 'Groupedit',
+          component: Groupedit
+        }, {
+          path: '/home/OPgroup',
+          name: 'OPgroup',
+          component: OPgroup
+        }, {
+          path: '/home/Tourguide',
+          name: 'Tourguide',
+          component: Tourguide
+        }, {
+          path: '/home/User',
+          name: 'User',
+          component: User
+        }, {
+          path: '/home/JobPost',
+          name: 'JobPost',
+          component: JobPost
+        }, {
+          path: '/home/CarData',
+          name: 'CarData',
+          component: CarData
+        }, {
+          path: '/home/CarDataAdd',
+          name: 'CarDataAdd',
+          component: CarDataAdd
+        }, {
+          path: '/home/CarDataEdit',
+          name: 'CarDataEdit',
+          component: CarDataEdit
+        },
+        {
+          path: '/home/Customerdata',
+          name: 'Customerdata',
+          component: Customerdata
+        },
       ]
     },
     {