|
@@ -27,66 +27,76 @@
|
|
|
<template v-if="step===1">
|
|
|
<el-form ref="programRef" :model="programForm" :rules="programRules" label-width="140px" style="width: 90%;margin: 0 auto;">
|
|
|
<div class="f_title">创建新项目</div>
|
|
|
- <el-form-item label="企业名称" prop="aaa">
|
|
|
- <el-input v-model="programForm.aaa" placeholder="请输入企业名称" />
|
|
|
+ <el-form-item label="企业名称" prop="enterpriseName">
|
|
|
+ <el-input v-model="programForm.enterpriseName" placeholder="请输入企业名称" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="统一社会信用代码" prop="bbb">
|
|
|
- <el-input v-model="programForm.bbb" placeholder="请输入统一社会信用代码" />
|
|
|
+ <el-form-item label="统一社会信用代码" prop="creditCode">
|
|
|
+ <el-input v-model="programForm.creditCode" placeholder="请输入统一社会信用代码" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所在地区" prop="ccc">
|
|
|
- <el-select v-model="programForm.ccc" placeholder="请选择所在地区" style="width: 100%;">
|
|
|
- <el-option label="区域一" value="shanghai"></el-option>
|
|
|
+ <el-form-item label="所在地区" prop="area">
|
|
|
+ <el-select v-model="programForm.province" :placeholder="disabled ? '' : '省'" clearable style="width: 32%"
|
|
|
+ @change="(val) => { regionChange(val, 'province'); }">
|
|
|
+ <el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="programForm.city" :placeholder="disabled ? '' : '市'" clearable style="width: 32%;margin: 0 2%"
|
|
|
+ @change="(val) => { regionChange(val, 'city'); }">
|
|
|
+ <el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="programForm.area" :placeholder="disabled ? '' : '区'" clearable style="width: 32%;"
|
|
|
+ @change="(val) => { regionChange(val, 'area'); }">
|
|
|
+ <el-option v-for="item in areaOptions" :key="item.id" :label="item.name" :value="item.id">
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所在行业" prop="ddd">
|
|
|
- <el-select v-model="programForm.ddd" placeholder="请选择所在行业" style="width: 100%;">
|
|
|
- <el-option label="行业一" value="shanghai"></el-option>
|
|
|
+ <el-form-item label="所在行业" prop="industryCode">
|
|
|
+ <el-select v-model="programForm.industryCode" placeholder="请选择所在行业" style="width: 100%;">
|
|
|
+ <el-option v-for="item in companyIndustry" :label="item.label" :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="人员规模" prop="eee">
|
|
|
- <el-select v-model="programForm.eee" placeholder="请选择人员规模" style="width: 100%;">
|
|
|
- <el-option label="规模一" value="shanghai"></el-option>
|
|
|
+ <el-form-item label="人员规模" prop="staffSizeCode">
|
|
|
+ <el-select v-model="programForm.staffSizeCode" placeholder="请选择人员规模" style="width: 100%;">
|
|
|
+ <el-option v-for="item in staffSize" :label="item.label" :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="项目教练" prop="eee">
|
|
|
- <div class="f_s adfacjb" @click="hangleSelectCoach">
|
|
|
+ <el-form-item label="项目教练" prop="">
|
|
|
+ <div class="f_s adfacjb" @click="hangleSelectCoach" v-if="programForm.coachList.length===0">
|
|
|
<div class="fs_text" :class="{'active':coachs!=='请选择'}">{{ coachs }}</div>
|
|
|
<i class="el-icon-arrow-down" style="color: #C0C4CC;"></i>
|
|
|
</div>
|
|
|
+ <div class="f_s adfac" @click="hangleSelectCoach" v-else>
|
|
|
+ <p>{{ cocahNames }}</p>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
- <el-form :model="teamDto" :rules="rules" ref="teamDtoRef" label-width="130px">
|
|
|
+ <el-form :model="programForm.team" :rules="rules" ref="teamDtoRef" label-width="130px">
|
|
|
<div class="f_title">添加团队</div>
|
|
|
<el-row style="width: 100%;">
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="所属项目" prop="aaa">
|
|
|
- <el-select v-model="teamDto.aaa" placeholder="请选择所属项目" style="width: 100%;"></el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="团队名称" prop="bbb">
|
|
|
- <el-input v-model="teamDto.bbb" clearable placeholder="请输入团队名称"></el-input>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="团队名称" prop="teamName">
|
|
|
+ <el-input v-model="programForm.team.teamName" clearable placeholder="请输入团队名称"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="工作任务" prop="ccc">
|
|
|
- <el-input v-model="teamDto.ccc" clearable placeholder="请输入工作任务"></el-input>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="工作任务" prop="workTasks">
|
|
|
+ <el-input v-model="programForm.team.workTasks" clearable placeholder="请输入工作任务"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="width: 100%;">
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="团队介绍" prop="ddd">
|
|
|
- <el-input type="textarea" v-model="teamDto.ddd" clearable placeholder="请输入团队介绍"></el-input>
|
|
|
+ <el-form-item label="团队介绍" prop="introduce">
|
|
|
+ <el-input type="textarea" v-model="programForm.team.introduce" clearable placeholder="请输入团队介绍"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="width: 100%;">
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="团队项目情况" prop="eee">
|
|
|
- <el-input type="textarea" v-model="teamDto.eee" clearable placeholder="请输入团队项目情况"></el-input>
|
|
|
+ <el-form-item label="团队项目情况" prop="projectSituation">
|
|
|
+ <el-input type="textarea" v-model="programForm.team.projectSituation" clearable placeholder="请输入团队项目情况"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -104,15 +114,22 @@
|
|
|
<div class="f_pldr">
|
|
|
<div class="fp_box">
|
|
|
<div class="fpb_pre">
|
|
|
- <div class="fpbp_btn">下载Excel示例文件</div>
|
|
|
+ <div class="fpbp_btn" @click="handleDownloadExcel" v-hasPermi="['core:project:downloadExcel']">下载Excel示例文件</div>
|
|
|
</div>
|
|
|
<img src="@/assets/images/agent/arrow_right_two.png">
|
|
|
<div class="fpb_pre sc">
|
|
|
- <div class="fpbp_btn">上传Excel文件</div>
|
|
|
+ <el-upload
|
|
|
+ :action="uploadUrl"
|
|
|
+ :headers="uploadHeaders"
|
|
|
+ :on-success="uploadFileSuccess"
|
|
|
+ :before-upload="beforeAvatarUpload"
|
|
|
+ :limit="1">
|
|
|
+ <div class="fpbp_btn" v-hasPermi="['core:project:uploadExcel']">上传Excel文件</div>
|
|
|
+ </el-upload>
|
|
|
</div>
|
|
|
</div>
|
|
|
<p>
|
|
|
- 1、Excel文件后缀名为xls或者xlsx,文件中所含烈数请勿超过20列<br>
|
|
|
+ 1、Excel文件后缀名为xls或者xlsx,文件中所含列数请勿超过20列<br>
|
|
|
2、模版中用户姓名为必填,其他为选填,且不能对已有字段进行删除、修改<br>
|
|
|
3、部门:上下级部门间用“/”符号隔开,且从最上级部门开始,例如“产品部门/设计”。若存在属于多个部门的情况,不同部门之间用 ; 隔开。
|
|
|
</p>
|
|
@@ -120,65 +137,64 @@
|
|
|
</template>
|
|
|
<template v-else-if="addType===2">
|
|
|
<div class="f_sdlr">
|
|
|
- <div class="fs_item" v-for="(item,index) in teamDto.userList" :key="index">
|
|
|
- <el-form :model="teamDto.userList[index]" label-width="100px">
|
|
|
+ <div class="fs_item" v-for="(item,index) in programForm.team.users" :key="index">
|
|
|
+ <el-form :model="programForm.team.users[index]" label-width="100px">
|
|
|
<el-row style="width: 100%;">
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="姓名" prop="aa">
|
|
|
- <el-input v-model="teamDto.userList[index].aa" clearable placeholder="请输入"></el-input>
|
|
|
+ <el-form-item label="姓名" prop="realName">
|
|
|
+ <el-input v-model="programForm.team.users[index].realName" clearable placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="性别" prop="bb">
|
|
|
- <el-select v-model="teamDto.userList[index].bb" placeholder="请选择" style="width: 100%;"></el-select>
|
|
|
+ <el-form-item label="性别" prop="gender">
|
|
|
+ <el-select v-model="programForm.team.users[index].gender" placeholder="请选择" style="width: 100%;">
|
|
|
+ <el-option label="男" :value="0"></el-option>
|
|
|
+ <el-option label="女" :value="1"></el-option>
|
|
|
+ <el-option label="保密" :value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="出生日期" prop="cc">
|
|
|
- <el-select v-model="teamDto.userList[index].cc" placeholder="请选择" style="width: 100%;"></el-select>
|
|
|
+ <el-form-item label="出生日期" prop="birthdate">
|
|
|
+ <el-date-picker v-model="programForm.team.users[index].birthdate" type="date" placeholder="请选择" style="width: 100%;"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="width: 100%;">
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="手机号码" prop="dd">
|
|
|
- <el-input v-model="teamDto.userList[index].dd" clearable placeholder="请输入"></el-input>
|
|
|
+ <el-form-item label="手机号码" prop="mobile">
|
|
|
+ <el-input type="number" v-model="programForm.team.users[index].mobile" clearable placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="所属部门" prop="ee">
|
|
|
- <el-input v-model="teamDto.userList[index].ee" clearable placeholder="请输入"></el-input>
|
|
|
+ <el-form-item label="所属部门" prop="dept">
|
|
|
+ <el-input v-model="programForm.team.users[index].dept" clearable placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="职位" prop="ff">
|
|
|
- <el-select v-model="teamDto.userList[index].ff" placeholder="请选择" style="width: 100%;"></el-select>
|
|
|
+ <el-form-item label="职位" prop="post">
|
|
|
+ <el-input v-model="programForm.team.users[index].post" clearable placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="width: 100%;">
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="分工" prop="gg">
|
|
|
- <el-input v-model="teamDto.userList[index].gg" clearable placeholder="请输入"></el-input>
|
|
|
+ <el-form-item label="分工" prop="divisionOfLabour">
|
|
|
+ <el-input v-model="programForm.team.users[index].divisionOfLabour" clearable placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="上级" prop="hh">
|
|
|
- <el-input v-model="teamDto.userList[index].hh" clearable placeholder="请输入"></el-input>
|
|
|
+ <el-form-item label="教育程度" prop="education">
|
|
|
+ <el-input v-model="programForm.team.users[index].education" clearable placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="教育程度" prop="ii">
|
|
|
- <el-select v-model="teamDto.userList[index].ii" placeholder="请选择" style="width: 100%;"></el-select>
|
|
|
+ <el-form-item label="级别" prop="level">
|
|
|
+ <el-input v-model="programForm.team.users[index].level" clearable placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="width: 100%;">
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="级别" prop="jj">
|
|
|
- <el-select v-model="teamDto.userList[index].jj" placeholder="请选择" style="width: 100%;"></el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="" prop="">
|
|
|
<div class="fs_add del" @click="handleDeleteItem(item,index)">x 删除</div>
|
|
@@ -199,24 +215,24 @@
|
|
|
<div class="btns">
|
|
|
<el-button type="primary" @click="handleNext" v-if="step===1" style="margin-left: 20px;">下一步</el-button>
|
|
|
<el-button type="primary" @click="handlePrevious" v-if="step===2" style="margin-left: 20px;">上一步</el-button>
|
|
|
- <el-button type="primary" @click="handleConfirm" v-if="step===2" style="margin-left: 20px;">确认</el-button>
|
|
|
+ <el-button type="primary" @click="handleConfirm" v-if="step===2" style="margin-left: 20px;" v-hasPermi="['core:project:save']">确认</el-button>
|
|
|
<el-button type="default" @click="handleCancel" style="margin-left: 20px;">取消</el-button>
|
|
|
</div>
|
|
|
|
|
|
<el-dialog width="790px" :visible.sync="coachShow" title="选择教练" @close="coachShow=false">
|
|
|
<div class="ed_coach adf">
|
|
|
<div class="ec_l">
|
|
|
- <el-input placeholder="请输入教练名搜索" suffix-icon="el-icon-search" v-model="coachName" style="width: 100%;"></el-input>
|
|
|
+ <el-input placeholder="请输入教练名搜索" suffix-icon="el-icon-search" v-model="coachName" style="width: 100%;" @keyup.enter.native="handleQueryCoach"></el-input>
|
|
|
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange" style="margin-top: 65px;">全选</el-checkbox>
|
|
|
<div class="ecl_cbs">
|
|
|
- <el-checkbox v-model="coach.checked" v-for="(coach,index) in coachList" :key="coach.id" @change="handleChangeCoach" style="margin-top: 24px;display: block;">{{ coach.name }}</el-checkbox>
|
|
|
+ <el-checkbox v-model="coach.checked" v-for="(coach,index) in coachList" :key="coach.id" @change="handleChangeCoach" style="margin-top: 24px;display: block;">{{ coach.realName }}</el-checkbox>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="ec_r">
|
|
|
<div class="ecr_text">已选择({{ coachSelecteds.length }}/<span>{{ coachList.length }}</span>)</div>
|
|
|
<div class="ecr_names">
|
|
|
<div class="en_pre adfacjc" v-for="(item,index) in coachSelecteds" :key="index">
|
|
|
- <span>{{ item.name }}</span>
|
|
|
+ <span>{{ item.realName }}</span>
|
|
|
<img src="@/assets/images/agent/delete_mini.png" @click="handleDeleteCoach(item,index)">
|
|
|
</div>
|
|
|
</div>
|
|
@@ -232,8 +248,22 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup name="">
|
|
|
+ import Cookies from "js-cookie";
|
|
|
import { ref, getCurrentInstance } from 'vue'
|
|
|
+ import { getCoachList,addCoachProgram } from "@/api/agent/index";
|
|
|
+ import { useRegion } from "@/mixins/region-module";
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
+ const { companyIndustry, staffSize} = proxy.useDict("companyIndustry", "staffSize");
|
|
|
+ const {
|
|
|
+ provinceOptions,
|
|
|
+ cityOptions,
|
|
|
+ areaOptions,
|
|
|
+ provincAreaDetailInfoList,
|
|
|
+ regionChange
|
|
|
+ } = useRegion();
|
|
|
+ provincAreaDetailInfoList();
|
|
|
+ const uploadUrl = `${window.SITE_CONFIG["apiURL"]}/sys/oss/uploadFile`
|
|
|
+ const uploadHeaders = {token:Cookies.get("token")};
|
|
|
|
|
|
const topname = ref('创建项目')
|
|
|
const step = ref(1)
|
|
@@ -241,65 +271,63 @@
|
|
|
const coachName = ref('')
|
|
|
const coachShow = ref(false)
|
|
|
const coachSelecteds = ref([])
|
|
|
- const coachList = ref([
|
|
|
- {id:1,name:'张三',checked:false},
|
|
|
- {id:2,name:'李四',checked:false},
|
|
|
- {id:3,name:'王五',checked:false},
|
|
|
- {id:4,name:'赵六',checked:false},
|
|
|
- {id:5,name:'田七',checked:false}
|
|
|
- ])
|
|
|
+ const coachList = ref([])
|
|
|
const isIndeterminate = ref(false)
|
|
|
const checkAll = ref(false)
|
|
|
+ const cocahNames = ref('')
|
|
|
|
|
|
const programForm = ref({
|
|
|
- aaa: '',
|
|
|
- bbb: '',
|
|
|
- ccc: '',
|
|
|
- ddd: '',
|
|
|
- eee: ''
|
|
|
+ enterpriseName: '',
|
|
|
+ creditCode: '',
|
|
|
+ areaCode: '',
|
|
|
+ industryCode: '',
|
|
|
+ staffSizeCode: '',
|
|
|
+ province:'',
|
|
|
+ city:'',
|
|
|
+ area:'',
|
|
|
+ areaCode:'',
|
|
|
+ coachList:[],
|
|
|
+ team:{
|
|
|
+ id:'',
|
|
|
+ teamName:'',
|
|
|
+ workTasks:'',
|
|
|
+ introduce:'',
|
|
|
+ projectSituation:'',
|
|
|
+ file:'',
|
|
|
+ users:[]
|
|
|
+ }
|
|
|
});
|
|
|
const programRules = ref({
|
|
|
- aaa: [
|
|
|
+ enterpriseName: [
|
|
|
{ required: true, message: '请输入企业名称', trigger: 'blur' }
|
|
|
],
|
|
|
- bbb: [
|
|
|
+ creditCode: [
|
|
|
{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }
|
|
|
],
|
|
|
- ccc: [
|
|
|
- { required: true, message: '请选择所在地区', trigger: 'change' }
|
|
|
- ],
|
|
|
- ddd: [
|
|
|
+ industryCode: [
|
|
|
{ required: true, message: '请选择所在行业', trigger: 'change' }
|
|
|
],
|
|
|
- eee: [
|
|
|
+ staffSizeCode: [
|
|
|
{ required: true, message: '请选择人员规模', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ area: [
|
|
|
+ { required: true, message: '请选择所在地区', trigger: 'change' }
|
|
|
]
|
|
|
});
|
|
|
- const teamDto = ref({
|
|
|
- aaa: '',
|
|
|
- bbb: '',
|
|
|
- ccc: '',
|
|
|
- ddd: '',
|
|
|
- eee: '',
|
|
|
- userList:[]
|
|
|
- })
|
|
|
const addType = ref(1)
|
|
|
const programRef = ref(null)
|
|
|
const teamDtoRef = ref(null)
|
|
|
const rules = ref({
|
|
|
- aaa: [
|
|
|
- { required: true, message: '请选择所属项目', trigger: 'change' }
|
|
|
- ],
|
|
|
- bbb: [
|
|
|
+ teamName: [
|
|
|
{ required: true, message: '请输入团队名称', trigger: 'blur' }
|
|
|
],
|
|
|
- ccc: [
|
|
|
+ workTasks: [
|
|
|
{ required: true, message: '请输入工作任务', trigger: 'blur' }
|
|
|
],
|
|
|
- ddd: [
|
|
|
+ introduce: [
|
|
|
{ required: true, message: '请输入团队介绍', trigger: 'blur' }
|
|
|
],
|
|
|
- eee: [
|
|
|
+ projectSituation: [
|
|
|
{ required: true, message: '请输入团队项目情况', trigger: 'blur' }
|
|
|
]
|
|
|
})
|
|
@@ -307,29 +335,45 @@
|
|
|
const handleBack = () => {
|
|
|
proxy.$router.back()
|
|
|
}
|
|
|
+
|
|
|
+ const uploadFileSuccess = e =>{
|
|
|
+ programForm.value.team.file = e.data;
|
|
|
+ }
|
|
|
+
|
|
|
+ const beforeAvatarUpload = (e) => {
|
|
|
+ let type = e.name.split('.')[e.name.split('.').length-1];
|
|
|
+ let isExcel = e.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
|
|
+ if(type.toLowerCase() !== 'xlsx' && type.toLowerCase() !== 'xls' && !isExcel){
|
|
|
+ proxy?.$modal.msgError('请上传xlsx或xls格式的Excel文件!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
const handleAddItem = () => {
|
|
|
- teamDto.value.userList.push({
|
|
|
- aa: '',
|
|
|
- bb: '',
|
|
|
- cc: '',
|
|
|
- dd: '',
|
|
|
- ee: '',
|
|
|
- ff: '',
|
|
|
- gg: '',
|
|
|
- hh: '',
|
|
|
- ii: '',
|
|
|
- jj: ''
|
|
|
+ programForm.value.team.users.push({
|
|
|
+ id:'',
|
|
|
+ realName:'',
|
|
|
+ gender:'',
|
|
|
+ birthdate:'',
|
|
|
+ mobile:'',
|
|
|
+ dept:'',
|
|
|
+ post:'',
|
|
|
+ divisionOfLabour:'',
|
|
|
+ education:'',
|
|
|
+ level:'',
|
|
|
})
|
|
|
}
|
|
|
|
|
|
const handleDeleteItem = (item,index) => {
|
|
|
- teamDto.value.userList.splice(index,1)
|
|
|
+ programForm.value.team.users.splice(index,1)
|
|
|
}
|
|
|
|
|
|
const handleNext = () => {
|
|
|
proxy.$refs.programRef.validate((valid) => {
|
|
|
if (valid) {
|
|
|
+ programForm.value.areaCode = `${programForm.value.province}-${programForm.value.city}-${programForm.value.area}`;
|
|
|
+ if(programForm.value.coachList.length===0) return proxy.$message.warning('请至少选择一位教练');
|
|
|
+ console.log(programForm.value,'programForm')
|
|
|
step.value = 2;
|
|
|
topname.value = '添加团队及其成员';
|
|
|
} else {
|
|
@@ -344,8 +388,11 @@
|
|
|
const handleConfirm = () => {
|
|
|
proxy.$refs.teamDtoRef.validate((valid) => {
|
|
|
if (valid) {
|
|
|
- console.log(programForm.value);
|
|
|
- console.log(teamDto.value);
|
|
|
+ addCoachProgram(programForm.value).then(res => {
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg);
|
|
|
+ proxy.$message.success('创建成功,即将返回');
|
|
|
+ settimeout(()=>{proxy.$router.back();},1500)
|
|
|
+ })
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
@@ -356,10 +403,30 @@
|
|
|
}
|
|
|
|
|
|
const hangleSelectCoach = () => {
|
|
|
- coachShow.value = true;
|
|
|
+ getCoachList({page:1,limit:-1,realName:coachName.value}).then(res => {
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg);
|
|
|
+ coachList.value = res.data.list;
|
|
|
+ coachList.value.forEach(item => {
|
|
|
+ item.checked = false;
|
|
|
+ })
|
|
|
+ coachShow.value = true;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ const handleQueryCoach = () => {
|
|
|
+ checkAll.value = false;
|
|
|
+ isIndeterminate.value = false;
|
|
|
+ coachSelecteds.value = [];
|
|
|
+ hangleSelectCoach();
|
|
|
}
|
|
|
|
|
|
const submitForm = () => {
|
|
|
+ if(coachSelecteds.value.length===0) return proxy.$message.warning('请至少选择一位教练')
|
|
|
+ programForm.value.coachList = JSON.parse(JSON.stringify(coachSelecteds.value)).map(c=>{return {coachId:c.id,coachName:c.realName}});
|
|
|
+ cocahNames.value = programForm.value.coachList.map(c=>c.coachName).join(';');
|
|
|
+ checkAll.value = false;
|
|
|
+ isIndeterminate.value = false;
|
|
|
+ coachSelecteds.value = [];
|
|
|
+ coachList.value = [];
|
|
|
coachShow.value = false;
|
|
|
}
|
|
|
const cancel = () => {
|
|
@@ -391,6 +458,10 @@
|
|
|
if(trues===coachList.value.length) checkAll.value = true;
|
|
|
else checkAll.value = false;
|
|
|
}
|
|
|
+
|
|
|
+ const handleDownloadExcel = () => {
|
|
|
+ window.location.href = `${window.SITE_CONFIG["apiURL"]}/sys/user/download?token=${Cookies.get("token")}`;
|
|
|
+ }
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
@@ -537,7 +608,7 @@
|
|
|
font-family: PingFangSC, PingFang SC;
|
|
|
font-weight: 400;
|
|
|
font-size: 12px;
|
|
|
- color: #833478;
|
|
|
+ color: #761E6A;
|
|
|
line-height: 32px;
|
|
|
text-align: center;
|
|
|
cursor: pointer;
|
|
@@ -545,8 +616,8 @@
|
|
|
&.sc{
|
|
|
border-left: 1px solid #EDEEF0;
|
|
|
.fpbp_btn{
|
|
|
- background: #833478;
|
|
|
- border: 1px solid #833478;
|
|
|
+ background: #761E6A;
|
|
|
+ border: 1px solid #761E6A;
|
|
|
color: #FFFFFF;
|
|
|
}
|
|
|
}
|
|
@@ -578,7 +649,7 @@
|
|
|
.fs_add{
|
|
|
width: 80px;
|
|
|
height: 32px;
|
|
|
- background: #833478;
|
|
|
+ background: #761E6A;
|
|
|
border-radius: 6px;
|
|
|
font-family: PingFangSC, PingFang SC;
|
|
|
font-weight: 400;
|
|
@@ -614,6 +685,9 @@
|
|
|
color: #606266;
|
|
|
}
|
|
|
}
|
|
|
+ p{
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.ed_coach{
|