|
|
@@ -2,16 +2,16 @@
|
|
|
<div>
|
|
|
<el-button type="primary" size="small" icon="el-icon-plus" @click="onShow">新建员工</el-button>
|
|
|
<el-drawer title="新建员工" direction="rtl" append-to-body :visible.sync="dialogFormVisible" size="800px" @close="onClose" :show-close="false">
|
|
|
- <div class="drawer__panel">
|
|
|
+ <div class="drawer__panel" style="margin-bottom: 0 !important;">
|
|
|
<el-row :gutter="20">
|
|
|
<el-form :model="form" size="small" :rules="rules" ref="form" label-position="right" label-width="100px">
|
|
|
<el-row>
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="编号:" prop="hrcode">
|
|
|
<el-input v-model="form.hrcode" placeholder="输入人员编号" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="性别">
|
|
|
<el-select v-model="form.sex" style="width:100%" placeholder="请选择">
|
|
|
<el-option
|
|
|
@@ -23,27 +23,27 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="姓名:" prop="name">
|
|
|
<el-input v-model="form.name" placeholder="输入姓名" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="电子邮箱:" prop="email">
|
|
|
<el-input v-model="form.email" placeholder="输入电子邮箱" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- <el-col class="mb-30" :span="12">
|
|
|
+ <!-- <el-col :span="12">
|
|
|
<el-form-item label="手机号码:" prop="phonenumber">
|
|
|
<el-input v-model="form.phonenumber" placeholder="输入手机号码" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>-->
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="身份证号:">
|
|
|
<el-input v-model="form.idcard" placeholder="输入身份证号" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="部门:" prop="depname">
|
|
|
<el-popover
|
|
|
placement="bottom"
|
|
|
@@ -70,23 +70,23 @@
|
|
|
</el-popover>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="办公电话:">
|
|
|
<el-input v-model="form.officetelephone" placeholder="输入办公电话" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="职位:">
|
|
|
<el-input v-model="form.position" placeholder="输入职位" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="汇报对象:">
|
|
|
<selectMenber @selectMenber="selectMenber"></selectMenber>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12" >
|
|
|
+ <el-col :span="24" >
|
|
|
<el-form-item label="状态:">
|
|
|
<el-radio-group v-model="form.status">
|
|
|
<el-radio :label="0">在职</el-radio>
|
|
|
@@ -94,47 +94,81 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="报备领域" prop="tradefield">
|
|
|
+ <el-select v-model="form.tradefield" style="width:100%" placeholder="请选择报备领域" multiple clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in tradefields"
|
|
|
+ :key="item.index"
|
|
|
+ :label="item.value"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-col class="mb-30" :span="5" style="height:51px">
|
|
|
+ <el-col :span="5" style="height:51px">
|
|
|
<el-form-item>
|
|
|
<el-checkbox v-model="form.isleader" :false-label="0" :true-label="1">是否部门负责人</el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="5">
|
|
|
+ <el-col :span="5">
|
|
|
<el-form-item>
|
|
|
<el-checkbox v-model="form.isworker" :false-label="0" :true-label="1">是否服务人员</el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col class="mb-30" :span="5">
|
|
|
+ <el-col :span="5">
|
|
|
<el-form-item>
|
|
|
<el-checkbox v-model="form.isuppictured" :false-label="0" :true-label="1">是否上图员</el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="5">
|
|
|
+ <el-col :span="5">
|
|
|
<el-form-item>
|
|
|
<el-checkbox v-model="form.issalehr" :false-label="0" :true-label="1" @change="salerChange">是否业务员</el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-row>
|
|
|
- <el-col class="mb-30" :span="12" v-if="form.issalehr == '1'">
|
|
|
+ <el-row v-if="form.issalehr == '1'">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="业务员" style="font-weight: bold">
|
|
|
+ <addSalers :name="form.name" @salerInfo="salerInfo"></addSalers>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row v-if="form.issalehr == '1'">
|
|
|
+ <el-col :span="23" :offset="1">
|
|
|
+ <tableNewLayout :layout="tablecols" :data="salerList" :opwidth="200" height="calc(100vh - 820px)" :width="true" :custom="true" fixedName="operation">
|
|
|
+ <template v-slot:customcol="scope">
|
|
|
+ <p v-if="scope.column.columnname == 'iseditprice '">
|
|
|
+ {{scope.column.data.iseditprice == '1' ? '是':'否' }}
|
|
|
+ </p>
|
|
|
+ <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
|
|
|
+ </template>
|
|
|
+ <template v-slot:opreation="scope">
|
|
|
+ <el-button type="text" @click="delArea(scope.data)">删 除</el-button>
|
|
|
+ </template>
|
|
|
+ </tableNewLayout>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+<!-- <el-row>
|
|
|
+ <el-col :span="24" v-if="form.issalehr == '1'">
|
|
|
<el-form-item label="营销区域:">
|
|
|
<areaList :areaname="form.areaname" @selectArea="selectArea" @areaList="areaLists" ref="area"></areaList>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="12" v-if="form.issalehr == '1'">
|
|
|
+ <el-col :span="24" v-if="form.issalehr == '1'">
|
|
|
<el-form-item label="最低授权折扣(%):" prop="discountrate" label-width="132px">
|
|
|
<el-input v-model="form.discountrate" placeholder="输入最低授权折扣" autocomplete="off" @change="discountrateChange(form.discountrate)"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col class="mb-30" :span="5" v-if="form.issalehr == '1'">
|
|
|
+ <el-col :span="5" v-if="form.issalehr == '1'">
|
|
|
<el-form-item>
|
|
|
<el-checkbox v-model="form.iseditprice" :false-label="0" :true-label="1">是否可编辑订单价格</el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- </el-row>
|
|
|
+ </el-row>-->
|
|
|
</el-form>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
@@ -143,36 +177,6 @@
|
|
|
<el-button size="small" type="primary" @click="onSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
|
|
|
</div>
|
|
|
</el-drawer>
|
|
|
-<!-- <el-dialog
|
|
|
- title="授权角色"
|
|
|
- :visible.sync="drawer"
|
|
|
- width="564px"
|
|
|
- append-to-body
|
|
|
- :show-close="false"
|
|
|
- @close="onClose">
|
|
|
- <div>
|
|
|
- <el-row :gutter="50">
|
|
|
- <el-form :model="roleForm" :rules="roleRules" ref="roleForm" size="mini" label-position="right">
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="授权角色" label-width="100px" prop="roleids">
|
|
|
- <el-select v-model="roleForm.roleids" style="width:100%" placeholder="请选择" multiple>
|
|
|
- <el-option
|
|
|
- v-for="item in options"
|
|
|
- :key="item.index"
|
|
|
- :label="item.rolename"
|
|
|
- :value="item.roleid">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-form>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- <div class="dialog-footer">
|
|
|
-<!– <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>–>
|
|
|
- <el-button size="small" type="warning" @click="createUser" class="normal-btn-width btn-warning">确 定</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>-->
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -180,11 +184,13 @@
|
|
|
import {mapGetters} from 'vuex'
|
|
|
import selectMenber from '@/components/selectMenber/index.vue'
|
|
|
import areaList from "@/HManagement/marketing2/saler/area/modules/areaList";
|
|
|
+import addSalers from "@/HManagement/department/staff/list/modules/addSalers";
|
|
|
export default {
|
|
|
props:['depInfo'],
|
|
|
components:{
|
|
|
selectMenber,
|
|
|
- areaList
|
|
|
+ areaList,
|
|
|
+ addSalers
|
|
|
},
|
|
|
computed:{
|
|
|
...mapGetters({
|
|
|
@@ -200,6 +206,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
data () {
|
|
|
+ var NumberSize = (rule, value, callback) => {
|
|
|
+ if (isNaN(parseFloat(value)) && value !== ''){
|
|
|
+ return callback(new Error('输入不合法,请输入数值'))
|
|
|
+ }else if (+value > 100 || +value < 0 ) {
|
|
|
+ return callback(new Error('折扣范围(0-100%)'));
|
|
|
+ }
|
|
|
+ callback()
|
|
|
+ }
|
|
|
return {
|
|
|
dialogFormVisible:false,
|
|
|
visible:false,
|
|
|
@@ -222,7 +236,11 @@ export default {
|
|
|
],
|
|
|
discountrate: [
|
|
|
{ required: true, message: '请输入最低授权折扣', trigger: 'blur' },
|
|
|
- { pattern:/^[0-9]+\.{0,1}[0-9]{0,2}$/,message: '只能输入数值',trigger: 'blur'}
|
|
|
+ { pattern:/^[0-9]+\.{0,1}[0-9]{0,2}$/,message: '只能输入数值',trigger: 'blur'},
|
|
|
+ { validator: NumberSize, trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ tradefield: [
|
|
|
+ { required: true, message: '请选择报备领域', trigger: 'blur,change' },
|
|
|
],
|
|
|
},
|
|
|
form:{
|
|
|
@@ -245,9 +263,9 @@ export default {
|
|
|
'status':0,
|
|
|
'isuppictured':'0',
|
|
|
'areaname':'',
|
|
|
- 'discountrate':'',
|
|
|
- 'iseditprice':'0',
|
|
|
- 'issalehr':'0'
|
|
|
+ 'issalehr':'0',
|
|
|
+ 'tradefield':'',
|
|
|
+ "salearea": []
|
|
|
},
|
|
|
value:[],
|
|
|
drawer:false,
|
|
|
@@ -266,13 +284,25 @@ export default {
|
|
|
"roleids":[]
|
|
|
},
|
|
|
options:[],
|
|
|
- pointValue:''
|
|
|
+ pointValue:'',
|
|
|
+ tradefields:[],
|
|
|
+ tablecols:[],
|
|
|
+ list:[],
|
|
|
+ salerList:[]
|
|
|
}
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+
|
|
|
},
|
|
|
methods:{
|
|
|
onShow () {
|
|
|
+ this.$store.dispatch('optiontypeselect','tradefield').then(res=>{
|
|
|
+ this.tradefields = res.data
|
|
|
+ })
|
|
|
this.dialogFormVisible = true
|
|
|
this.form.status = 0
|
|
|
+ this.list = []
|
|
|
+ this.salerList = []
|
|
|
// this.form.depname = this.depInfo.data.label
|
|
|
// this.form.departmentid = this.depInfo.data.departmentid
|
|
|
this.$store.dispatch('optiontypeselect','sex')
|
|
|
@@ -284,14 +314,15 @@ export default {
|
|
|
/* if (this.form.issalehr == 1){
|
|
|
console.log('22222')
|
|
|
this.$refs.area.onClick()
|
|
|
+ this.$refs.area.onClick()
|
|
|
}*/
|
|
|
},
|
|
|
- areaLists(val){
|
|
|
+ /*areaLists(val){
|
|
|
console.log(val,'123')
|
|
|
console.log(val[0].areaname)
|
|
|
this.form.areaname = val[0].areaname
|
|
|
this.form.sa_saleareaid = val[0].sa_saleareaid
|
|
|
- },
|
|
|
+ },*/
|
|
|
selectDep (data) {
|
|
|
let obj = {
|
|
|
depname:data.label,
|
|
|
@@ -304,7 +335,14 @@ export default {
|
|
|
this.$refs['form'].validate(async (valid) => {
|
|
|
if (!valid) return false;
|
|
|
this.$store.commit('setLoading',true)
|
|
|
- this.form.discountrate = (this.form.discountrate /100).toFixed(4)
|
|
|
+ /*this.form.discountrate = (this.form.discountrate /100).toFixed(4)*/
|
|
|
+ this.form.salearea = this.salerList.map(item=>{
|
|
|
+ return {
|
|
|
+ "sa_saleareaid": item.sa_saleareaid,
|
|
|
+ "discountrate": (item.discountrate/100).toFixed(4),
|
|
|
+ "iseditprice": item.iseditprice
|
|
|
+ }
|
|
|
+ })
|
|
|
const res = await this.$api.requested({
|
|
|
"classname": "webmanage.hr.hr",
|
|
|
"method": "insertormodify_hr",
|
|
|
@@ -404,10 +442,10 @@ export default {
|
|
|
nodeClick(val){
|
|
|
this.pointValue = val.departmentid
|
|
|
},
|
|
|
- selectArea(val){
|
|
|
+ /*selectArea(val){
|
|
|
this.form.areaname = val.label
|
|
|
this.form.sa_saleareaid = val.sa_saleareaid
|
|
|
- },
|
|
|
+ },*/
|
|
|
discountrateChange(val){
|
|
|
if (val < 0){
|
|
|
this.form.discountrate = 1
|
|
|
@@ -417,8 +455,32 @@ export default {
|
|
|
this.form.discountrate = Math.round(val * 100)/100
|
|
|
}
|
|
|
},
|
|
|
+ salerInfo(val){
|
|
|
+ /* this.list.push(newList)*/
|
|
|
+ this.list = this.salerList
|
|
|
+ /*this.list.splice(-1,0,val)*/
|
|
|
+ this.list.push(val)
|
|
|
+ this.salerList = []
|
|
|
+ this.salerList = this.list.map(item=>{
|
|
|
+ return {
|
|
|
+ "name":this.form.name,
|
|
|
+ "areaname":item.areaname,
|
|
|
+ "discountrate":item.discountrate,
|
|
|
+ "iseditprice":item.iseditprice,
|
|
|
+ "sa_saleareaid":item.sa_saleareaid
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ delArea(val){
|
|
|
+ this.salerList.forEach(item=>{
|
|
|
+ if (item.sa_saleareaid === val.sa_saleareaid){
|
|
|
+ this.salerList.splice(item.index,1)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
created() {
|
|
|
+ this.tablecols = this.tool.tabelCol(this.$route.name).salerTable.tablecols
|
|
|
}
|
|
|
}
|
|
|
|