Commit 959b666f authored by dll's avatar dll

提交

parent 2a384aa2
...@@ -85,7 +85,15 @@ sup { ...@@ -85,7 +85,15 @@ sup {
sub { sub {
bottom: -.25em bottom: -.25em
} }
.mt20{
margin-top: 20px;
}
.mt10{
margin-top: 10px;
}
.ml20{
margin-left: 20px;
}
ins,a { ins,a {
text-decoration: none; text-decoration: none;
cursor: pointer; cursor: pointer;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-form-item :label="label" :prop="prop" class='my-form-field'> <el-form-item :label="label" :prop="prop" class='my-form-field'>
<slot> <slot>
<el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" v-if='type === "text"' :class="inputClass" :clearable='clearable'></el-input> <el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" @focus="emit" v-if='type === "text"' :class="inputClass" :clearable='clearable'></el-input>
<el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" type='password' v-if='type === "password"'></el-input> <el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" type='password' v-if='type === "password"'></el-input>
<el-input-number :disabled='disabled' v-model="field" size="small" :placeholder='placeholder' @change="emit" @input="emit" v-if='type === "num"'></el-input-number> <el-input-number :disabled='disabled' v-model="field" size="small" :placeholder='placeholder' @change="emit" @input="emit" v-if='type === "num"'></el-input-number>
...@@ -82,7 +82,6 @@ export default { ...@@ -82,7 +82,6 @@ export default {
type: String, type: String,
default: '', default: '',
}, },
// 字段所需的枚举类型 // 字段所需的枚举类型
enumData: { enumData: {
type: Object, type: Object,
...@@ -126,6 +125,7 @@ export default { ...@@ -126,6 +125,7 @@ export default {
emit() { emit() {
this.$emit('input', this.newVal) this.$emit('input', this.newVal)
this.$emit('change', this.newVal) this.$emit('change', this.newVal)
this.$emit('')
} }
}, },
computed: { computed: {
......
<template> <template>
<div class="container"> <div class="container">
<el-card style="min-height:80vh"> <el-card style="min-height:80vh;padding:15px">
<tab-pane :activeName="activeName" :thirdList="thirdList"></tab-pane> <tab-pane :activeName="activeName" :thirdList="thirdList"></tab-pane>
<div>
<div class="mt20">
<div>考勤组名称</div> <div>考勤组名称</div>
<el-input placeholder="请输入考勤组名称"></el-input> <el-input placeholder="请输入考勤组名称" style="width:220px" class="mt10"></el-input>
</div> </div>
<div>
<div class="flex flex-align-center mt20">
<div>考勤人员</div> <div>考勤人员</div>
<el-button type="text">设置</el-button> <el-button type="text" class="ml20" @click="drawer1= true">设置</el-button>
</div> </div>
<div>
<div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>参与考勤人员</div> <div>参与考勤人员</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div> </div>
<div>
<div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>无需考勤人员</div> <div>无需考勤人员</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div> </div>
<div style="height:20px"></div> <div style="height:20px"></div>
<div> <div class="flex flex-align-center mt20">
<div>考勤组负责人</div> <div>考勤组负责人</div>
<el-button type="text">设置</el-button> <el-button type="text" class="ml20" @click="drawer2= true">设置</el-button>
</div> </div>
<div>
<div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>主负责人</div> <div>主负责人</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div> </div>
<div> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>子负责人</div> <div>子负责人</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div> </div>
<div> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>子负责人权限</div> <div>子负责人权限</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div> </div>
<div style="height:20px"></div> <div style="height:20px"></div>
<div> <div class="flex flex-align-center mt20">
<div>考勤时间</div> <div>考勤时间</div>
<el-button type="text">设置</el-button> <el-button type="text" class="ml20" @click="drawer3= true">设置</el-button>
</div> </div>
<div> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>考勤类型</div> <div>考勤类型</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div> </div>
<div> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>工作日设置</div> <div>工作日设置</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div> </div>
<div style="height:20px"></div> <div style="height:20px"></div>
<div> <div class="flex flex-align-center mt20">
<div>打卡方式</div> <div>打卡方式</div>
<el-button type="text">设置</el-button> <el-button type="text" class="ml20" @click="drawer4= true">设置</el-button>
</div> </div>
<div> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>考勤方式</div> <div>考勤方式</div>
<el-button type="text">设置</el-button> <div class="ml20">未设置</div>
</div>
<div class="mt20">
<el-button type="primary">保存设置</el-button>
<el-button>全部重置</el-button>
</div> </div>
</el-card> </el-card>
<!-- 设置考勤人员 -->
<el-drawer
title="考勤人员"
:visible.sync="drawer"
direction="rtl"
:before-close="handleClose">
<!-- 考勤人员 -->
<div>参与考勤人员(0)</div>
<div>无需考勤人员(0)</div>
<!-- 考勤组 -->
<div>
<span>考勤组负责人:</span>
<el-select>
<el-option></el-option>
</el-select>
</div>
<div>
<span>主负责人:</span>
<el-select>
<el-option></el-option>
</el-select>
</div>
<div>
<span>子负责人:</span>
<el-select>
<el-option></el-option>
</el-select>
</div>
<div>
<span>子负责人权限:</span>
<el-select>
<el-option></el-option>
</el-select>
</div>
<!-- 考勤时间 -->
<div>
<el-radio-group>
<el-radio label="">固定班制(固定时间上下班)</el-radio>
<el-radio label="">排班制(按排班上下班)</el-radio>
<el-radio label="">自由工时(不固定时间上下班)</el-radio>
</el-radio-group>
</div>
<div>
<div>工作日设置:</div>
<div>
<el-tag type="primary">快捷设置班次</el-tag>
<span>班次名称:</span>
<el-button type="text">更改班次</el-button>
</div>
<!-- 班次表 -->
<el-table :data="weekList">
<el-table-column label="工作日"></el-table-column>
<el-table-column label="班次时间段"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" @click="changeBanci(scope.row)">更改班次</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-checkbox>法定节假日自动排休</el-checkbox>
</div>
<div>
<div>特殊日期</div>
</div>
</div>
</el-drawer>
<!-- 选择biao -->
</div> </div>
</template> </template>
...@@ -75,7 +153,10 @@ ...@@ -75,7 +153,10 @@
tabPane tabPane
}, },
methods: { methods: {
changeBanci(row){
console.log(row)
this.isshowBanci = true
}
}, },
data() { data() {
return { return {
...@@ -96,7 +177,22 @@ ...@@ -96,7 +177,22 @@
name:'新增考勤组', name:'新增考勤组',
path:'/attendance/group/view' path:'/attendance/group/view'
} }
] ],
drawer1:false,
drawer2:false,
drawer3:false,
drawer4:false,
setParams:{
groupName:'',
personNum:'',
responsiblePerson:'',
type:'',
attendanceTime:'',
remark:''
},
drawer:true,
weekList:[],
isshowBanci:false//班次展示
} }
} }
} }
......
...@@ -93,6 +93,7 @@ export default { ...@@ -93,6 +93,7 @@ export default {
}, },
isExport: false, isExport: false,
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "staffName", name: "staffName",
......
<template> <template>
<!-- 弹出框表单 --> <div>
<el-drawer <!-- 弹出框表单 -->
:title="title" <el-drawer
:visible.sync="open" :title="title"
:direction="direction" :visible.sync="open"
size="50%"> :direction="direction"
<div class="tips">此功能为快速添加员工入口,如需为员工办理完整的入职手续,请使用[员工关系-入职管理]功能</div> size="50%">
<div class="tips">此功能为快速添加员工入口,如需为员工办理完整的入职手续,请使用[员工关系-入职管理]功能</div>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<!-- <Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/> -->
<!-- <Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/> --> <!-- <Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" /> -->
<!-- <Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" /> --> <!-- <Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/> -->
<!-- <Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/> --> <!-- <Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/> -->
<!-- <Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/> --> <!-- <Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> -->
<!-- <Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> --> <!-- <Field label="政治面貌 " prop="politicalstatus" v-model="form.politicalstatus" type="select" :enumData="dict.politicalstatus" placeholder="请选择政治面貌 "/> -->
<!-- <Field label="政治面貌 " prop="politicalstatus" v-model="form.politicalstatus" type="select" :enumData="dict.politicalstatus" placeholder="请选择政治面貌 "/> --> <!-- <Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> -->
<!-- <Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> -->
<Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/> <Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/>
<Field label="手机号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/> <Field label="手机号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> <Field label="所属部门" prop="deptName" v-model="form.deptName" placeholder="请选择所属部门" @focus="ishowBumen = true"/>
<Field label="职位" prop="positionId" v-model="form.positionId" type="select" placeholder="请选择职位"/> <Field label="职位" prop="positionId" v-model="form.positionId" type="select" placeholder="请选择职位" />
<Field label="工号" prop="positionId" v-model="form.positionId" placeholder="请输入工号"/> <Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<Field label="是否在政务大厅" prop="positionId" v-model="form.positionId" placeholder="请选择" type="select"/> <!-- <Field label="是否在政务大厅" prop="positionId" v-model="form.positionId" placeholder="请选择" type="select"/> -->
<!-- <Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/> -->
<!-- <Field label="员工类型" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型"/> -->
<!-- <Field label="员工状态" prop="status" v-model="form.status" type="select" :enumData="dict.status" placeholder="请选择员工状态"/> -->
<!-- <Field label="入职登记表" prop="registerPath" v-model="form.registerPath" type="textarea" placeholder="请输入入职登记表"/> -->
<!-- <Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" /> -->
<!-- <Field label="转正时间" prop="regularDate" v-model="form.regularDate" type="date" /> -->
<!-- <Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" /> -->
<!-- <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> -->
</el-row>
<!-- <Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/> --> <form-buttons @submit='submitForm' noCancelBtn />
<!-- <Field label="员工类型" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型"/> --> </el-form>
<!-- <Field label="员工状态" prop="status" v-model="form.status" type="select" :enumData="dict.status" placeholder="请选择员工状态"/> --> </el-drawer>
<!-- <Field label="入职登记表" prop="registerPath" v-model="form.registerPath" type="textarea" placeholder="请输入入职登记表"/> --> <!-- 部门选择 -->
<!-- <Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" /> --> <el-dialog :visible.sync="ishowBumen" width="70%">
<!-- <Field label="转正时间" prop="regularDate" v-model="form.regularDate" type="date" /> --> <el-row type="flex" :gutter="20" style="height:40vh">
<!-- <Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" /> --> <el-col :span="12">
<!-- <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> --> <el-scrollbar style="height: 100%">
<el-tree
size="mini"
ref="siteTree"
:data="bumentree"
id="el-tree"
node-key="id"
indent="4"
:props="treeProps"
:load="loadNode"
highlight-current
default-expand-all
:expand-on-click-node="false"
:render-content="renderContent"
@node-click="handleNodeClick"
>
</el-tree>
</el-scrollbar>
</el-col>
<el-col :span="12">
<div class="titles">已选部门</div>
<div class="el-tag flex flex-pack-justify mt10" v-if="deptnode.label" style="max-width:80%">
<div>{{deptnode.label}}</div>
<div @click="cancledept()">
<i class="el-icon-close"></i>
</div>
</div>
</el-col>
</el-row> </el-row>
<div class="mt20">
<el-button type="primary" size="mini" @click="comfirmbument">确定</el-button>
<el-button size="mini" @click="ishowBumen = false">取消</el-button>
</div>
</el-dialog>
</div>
<form-buttons @submit='submitForm' noCancelBtn />
</el-form>
</el-drawer>
</template> </template>
<script> <script>
...@@ -51,11 +90,18 @@ ...@@ -51,11 +90,18 @@
export default { export default {
name: "StaffDetail", name: "StaffDetail",
mixins: [form], mixins: [form],
props:{
bumentree:{
type:Array,
default:[]
}
},
components: { components: {
}, },
created() { created() {
this.changePath("staff") this.changePath("staff")
this.getjobSelect()
}, },
data() { data() {
return { return {
...@@ -84,14 +130,61 @@ ...@@ -84,14 +130,61 @@
{required: true,message: "请输入员工姓名", trigger: "blur" }, {required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, {max: 64,message: "最多只能录入64个字符",trigger: "blur",},
], ],
// createTime: [ phoneNumber: [
// {required: true,message: "请选择创建时间" }, {required: true,message: "请输入员工手机号码", trigger: "blur" },
// ], {max: 11,message: "最多只能录入11个字符",trigger: "blur",},
} ],
}; deptName: [
{required: true,message: "请选择所属部门", trigger: "change" },
],
positionId: [
{required: true,message: "请选择职位", trigger: "blur" }
],
workNum: [
{required: true,message: "请输入工号" },
],
},
treeProps: {
id: "id",
label: "label",
areaCode:"areaCode",
type: "type",
isLeaf: "isLeaf",
children: "children",
icon: "icon",
},
ishowBumen:false,
deptnode:{}
}
}, },
methods: { methods: {
renderContent: function (h, { node, data, store }) {
return (
<span>
<i style="font-size:16px;color:#409EFF" class={data.icon}></i>
<span style="padding-left: 2px;font-size:14px">{node.label}</span>
</span>
)
},
async loadNode(node, resolve) {
if (node.level === 0) {
return;
}
resolve(data.result);
},
// 点击
handleNodeClick(node) {
if(node.children.length>0){
return
}
this.deptnode = node
},
comfirmbument(){
this.form.deptId = this.deptnode.id
this.form.deptName = this.deptnode.label
this.ishowBumen = false
},
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset()
...@@ -161,6 +254,14 @@ ...@@ -161,6 +254,14 @@
if (this.$refs[refName]) { if (this.$refs[refName]) {
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
},
cancledept(){
this.deptnode = {}
},
getjobSelect(){
this.$post('/job/list').then(res => {
console.log(res)
})
} }
} }
} }
...@@ -172,4 +273,18 @@ ...@@ -172,4 +273,18 @@
color: #999; color: #999;
font-size: 15px; font-size: 15px;
} }
.titles{
color: #409EFF;
font-size: 16px;
display: flex;
align-items: center;
}
.titles::before{
content: '';
width:6px;
height: 16px;
background-color: #409EFF;
display: inline-block;
margin-right: 10px;
}
</style> </style>
\ No newline at end of file
...@@ -42,19 +42,16 @@ ...@@ -42,19 +42,16 @@
<el-col :span="18" :xs="12"> <el-col :span="18" :xs="12">
<el-row> <el-row>
<div class="controllList">
</div>
<LayoutTable notDel :data="tableData" :config="tableConfig"> <LayoutTable notDel :data="tableData" :config="tableConfig">
<el-button type="primary" size="mini" slot="table-head-left2">导出</el-button> <el-button type="primary"
size="mini" slot="table-head-left2">导出</el-button>
<el-dropdown class="moreControll" slot="table-head-left2" style="margin-left:20px"> <el-dropdown class="moreControll" slot="table-head-left2" style="margin-left:20px">
<el-button type="primary" size="mini"> <el-button type="primary" size="mini">
更多操作<i class="el-icon-arrow-down el-icon--right"></i> 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item>同步数据</el-dropdown-item> <el-dropdown-item>同步数据</el-dropdown-item>
<el-dropdown-item>导入花名册</el-dropdown-item> <el-dropdown-item @click="handleImport">导入花名册</el-dropdown-item>
<el-dropdown-item>历史花名册</el-dropdown-item> <el-dropdown-item>历史花名册</el-dropdown-item>
<el-dropdown-item>自定义列表字段</el-dropdown-item> <el-dropdown-item>自定义列表字段</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
...@@ -67,9 +64,49 @@ ...@@ -67,9 +64,49 @@
</LayoutTable> </LayoutTable>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<drawer-show ref="drawerform" @ok="getData" /> <!-- 导入对话框 -->
<home-page v-if="isshowHome" :data="personData"></home-page> <el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip" slot="tip">
<el-checkbox
v-model="upload.updateSupport"
/>是否更新已经存在的数据
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate"
>下载模板</el-link
>
</div>
<div class="el-upload__tip" style="color: red" slot="tip">
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<drawer-show ref="drawerform" @ok="getData" :bumentree="areaData" />
</div> </div>
</template> </template>
...@@ -92,6 +129,11 @@ ...@@ -92,6 +129,11 @@
}) })
}, },
methods: { methods: {
/** 导入 */
handleImport() {
this.upload.title = "员工关怀信息导入";
this.upload.open = true;
},
handleClick(key){ handleClick(key){
console.log(key) console.log(key)
this.$store.commit('setThirdPath',key) this.$store.commit('setThirdPath',key)
...@@ -129,6 +171,19 @@ ...@@ -129,6 +171,19 @@
}, },
data() { data() {
return { return {
// 用户导入参数
upload: {
// 是否显示弹出层(员工关怀信息导入)
open: false,
// 弹出层标题(员工关怀信息导入)
title: "导入花名册数据",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的数据
updateSupport: 0,
// 上传的地址
url: "/attendance/staff/list/importData",
},
config: { config: {
search: [ search: [
{ {
......
...@@ -94,7 +94,7 @@ export default { ...@@ -94,7 +94,7 @@ export default {
menu[item.id + ""] = item.name; menu[item.id + ""] = item.name;
}); });
return menu; return menu;
}, }
}, },
methods: { methods: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment