Commit a182e17e authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 7297488f dddd0bca
...@@ -30,12 +30,15 @@ export default { ...@@ -30,12 +30,15 @@ export default {
<span> <span>
<i style="font-size:16px;color:#409EFF" class={data.icon}></i> <i style="font-size:16px;color:#409EFF" class={data.icon}></i>
<span style="padding-left: 2px;font-size:14px">{node.label}</span> <span style="padding-left: 2px;font-size:14px">{node.label}</span>
<span style="padding-left: 2px;font-size:14px;margin-left:20px">
({data.children.length})
</span>
</span> </span>
); );
}, },
async loadNode(node, resolve) { async loadNode(node, resolve) {
console.log(node)
if (node.level === 0) { if (node.level === 0) {
return; return;
} }
...@@ -52,7 +55,7 @@ export default { ...@@ -52,7 +55,7 @@ export default {
let node = this.$refs.areaTree.getNode(this.currentNode.id); // 通过节点id找到对应树节点对象 let node = this.$refs.areaTree.getNode(this.currentNode.id); // 通过节点id找到对应树节点对象
node.loaded = false; node.loaded = false;
node.expand(); // 主动调用展开节点方法,重新查询该节点下的所有子节点 node.expand(); // 主动调用展开节点方法,重新查询该节点下的所有子节点
this.toView(this.currentNode); this.toView(this.currentNode);
}, },
}, },
......
export const timestampToTime = (timestamp) => { export const timestampToTime = (timestamp) => {
// 时间戳为10位需*1000,时间戳为13位不需乘1000 // 时间戳为10位需*1000,时间戳为13位不需乘1000
var date = new Date(timestamp * 1000); var date = null
if(timestamp.length<13){
date= new Date(timestamp * 1000);
}else{
date= new Date(timestamp);
}
var Y = date.getFullYear() + "-"; var Y = date.getFullYear() + "-";
var M = var M =
(date.getMonth() + 1 < 10 (date.getMonth() + 1 < 10
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
<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>
<el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" :rows='rows' @input="emit" v-if='type === "textarea"' type='textarea' :autosize="textareaSize" :class="inputClass"></el-input> <el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" :rows='rows' @input="emit" v-if='type === "textarea"' type='textarea' :autosize="textareaSize" :class="inputClass"></el-input>
<el-select :disabled='disabled' v-model="field" @change="emit" :multiple='multiple' :filterable='filterable' :clearable='clearable' v-if='type === "select"'> <el-select :disabled='disabled' v-model="field" @change="emit" :multiple='multiple' :filterable='filterable' :clearable='clearable' v-if='type === "select"'>
...@@ -125,7 +124,7 @@ export default { ...@@ -125,7 +124,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('') this.$emit('focus')
} }
}, },
computed: { computed: {
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
clearable="true" clearable="true"
@change="item.change" @change="item.change"
@clear="item.clear" @clear="item.clear"
:placeholder="item.label?item.label:'请选择'"
v-if="item.type === 'select'" v-if="item.type === 'select'"
> >
<el-option <el-option
...@@ -110,7 +111,7 @@ ...@@ -110,7 +111,7 @@
v-if="item.type === 'date' && !item.valueFormat" v-if="item.type === 'date' && !item.valueFormat"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择日期" :placeholder="item.label?item.label:'选择日期'"
> >
</el-date-picker> </el-date-picker>
...@@ -119,7 +120,7 @@ ...@@ -119,7 +120,7 @@
v-if="item.type === 'date' && item.valueFormat" v-if="item.type === 'date' && item.valueFormat"
type="date" type="date"
:value-format="item.valueFormat" :value-format="item.valueFormat"
placeholder="选择日期" :placeholder="item.label?item.label:'选择日期'"
> >
</el-date-picker> </el-date-picker>
...@@ -128,7 +129,7 @@ ...@@ -128,7 +129,7 @@
v-if="item.type === 'month' && !item.valueFormat" v-if="item.type === 'month' && !item.valueFormat"
type="month" type="month"
value-format="yyyy-MM" value-format="yyyy-MM"
placeholder="选择月份" :placeholder="item.label?item.label:'选择月份'"
> >
</el-date-picker> </el-date-picker>
...@@ -137,7 +138,7 @@ ...@@ -137,7 +138,7 @@
v-if="item.type === 'month' && item.valueFormat" v-if="item.type === 'month' && item.valueFormat"
type="month" type="month"
:value-format="item.valueFormat" :value-format="item.valueFormat"
placeholder="选择月份" :placeholder="item.label?item.label:'选择月份'"
> >
</el-date-picker> </el-date-picker>
......
<template>
<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>
</template>
<script>
export default {
props:{
type:Object,
default:{}
},
methods:{
submitFileForm(){
this.$refs.upload.submit();
this.$emit('submitFileForm',true)
}
}
}
</script>
<style>
</style>
\ No newline at end of file
...@@ -22,6 +22,9 @@ export default { ...@@ -22,6 +22,9 @@ export default {
handleClick(key, keyPath){ handleClick(key, keyPath){
this.$emit('handleClick',key) this.$emit('handleClick',key)
} }
},
mounted(){
console.log(this.activeName,';ss')
} }
} }
</script> </script>
......
...@@ -45,14 +45,12 @@ const router = new Router({ ...@@ -45,14 +45,12 @@ const router = new Router({
...restBuilder('care/template', 'care/template'),// 关怀问候信息 ...restBuilder('care/template', 'care/template'),// 关怀问候信息
...restBuilder('staff/black', 'staff/black'),// 员工黑名单信息 ...restBuilder('staff/black', 'staff/black'),// 员工黑名单信息
...restBuilder('job', 'job'),// 职位信息 ...restBuilder('job', 'job'),// 职位信息
...restBuilder('staff/adjust/log', 'staff/adjust/log'),// 员工调岗信息 ...restBuilder('staff/adjust/log', 'staff/adjust/log'),// 员工调岗信息
...restBuilder('staff/regular', 'staff/regular'),// 员工转正信息 ...restBuilder('staff/regular', 'staff/regular'),// 员工转正信息
...restBuilder('staff/leave', 'staff/leave'),// 员工离职信息 ...restBuilder('staff/leave', 'staff/leave'),// 员工离职信息
...restBuilder('staff/contract', 'staff/contract'),// 员工合同信息 ...restBuilder('staff/contract', 'staff/contract'),// 员工合同信息
...restBuilder('attendance/record/hik', 'attendance/record/hik'),// 海康考勤 ...restBuilder('attendance/record/hik', 'attendance/record/hik'),// 海康考勤
...restBuilder('attendance/record/error', 'attendance/record/error'),// 考勤打卡记录异常信息 ...restBuilder('attendance/record/error', 'attendance/record/error'),// 考勤打卡记录异常信息
...restBuilder('attendance/stat', 'attendance/stat'),// 考勤汇总信息 ...restBuilder('attendance/stat', 'attendance/stat'),// 考勤汇总信息
......
...@@ -119,7 +119,8 @@ export default { ...@@ -119,7 +119,8 @@ export default {
this.$store.commit('setHeadBar',[]) this.$store.commit('setHeadBar',[])
this.$store.commit("setCurrentParentName",'') this.$store.commit("setCurrentParentName",'')
this.$store.commit('setCurrentThirdArr',[]) this.$store.commit('setCurrentThirdArr',[])
console.log(this.menu,'菜单') this.$store.commit('setCurrentSecondPath','')
this.$store.commit('setThirdPath','')
}, },
methods:{ methods:{
tabChildren(name){ tabChildren(name){
...@@ -128,9 +129,10 @@ export default { ...@@ -128,9 +129,10 @@ export default {
this.$store.commit('setHeadBar',result) this.$store.commit('setHeadBar',result)
// 路由跳转 // 路由跳转
if(result.children.length>0){ if(result.children.length>0){
this.$router.push({path:result.children[0].path})
this.$store.commit('CurrentSecondPath',result.children[0].path)
this.$store.commit('setCurrentThirdArr',result.children[0].children) this.$store.commit('setCurrentThirdArr',result.children[0].children)
this.$store.commit('setCurrentSecondPath',result.children[0].path)
this.$store.commit('setThirdPath',result.children[0].path)
this.$router.push({path:result.children[0].path})
}else{ }else{
this.$message.error('暂未完成添加'); this.$message.error('暂未完成添加');
} }
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable> <LayoutTable :data="tableData" notDel :config="tableConfig"></LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -72,6 +72,12 @@ ...@@ -72,6 +72,12 @@
config: { config: {
isshowTabPane:true, isshowTabPane:true,
search: [ search: [
{
name: "staffName",
type: "text",
label: "考勤组名称",
fuzzy: true
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
...@@ -113,7 +119,7 @@ ...@@ -113,7 +119,7 @@
width: 240, width: 240,
formatter: row => { formatter: row => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
); );
} }
} }
......
<template> <template>
<div class="container"> <div class="container">
<el-card style="min-height:80vh;padding:15px"> <el-card style="min-height:80vh;padding:15px">
<div class="flex flex_end">
<el-button type="primary" size="mini" @click="$router.back()">返回上一级</el-button>
</div>
<tab-pane :activeName="activeName" :thirdList="thirdList"></tab-pane> <tab-pane :activeName="activeName" :thirdList="thirdList"></tab-pane>
<div class="mt20"> <div class="mt20">
<div>考勤组名称</div> <div>考勤组名称</div>
<el-input placeholder="请输入考勤组名称" style="width:220px" class="mt10"></el-input> <el-input placeholder="请输入考勤组名称" style="width:220px" class="mt10"></el-input>
...@@ -80,26 +82,26 @@ ...@@ -80,26 +82,26 @@
direction="rtl" direction="rtl"
:before-close="handleClose"> :before-close="handleClose">
<!-- 考勤人员 --> <!-- 考勤人员 -->
<div>参与考勤人员(0)</div> <div>
<div>无需考勤人员(0)</div> <div>参与考勤人员(0)</div>
<el-input @focus="selectGroup()" size="mini" placeholder="请选择"></el-input>
</div>
<div>
<div>无需考勤人员(0)</div>
<el-input @focus="selectGroup()" size="mini" placeholder="请选择"></el-input>
</div>
<!-- 考勤组 --> <!-- 考勤组 -->
<div> <div>
<span>考勤组负责人:</span> <span>考勤组负责人:</span>
<el-select> <el-select></el-select>
<el-option></el-option>
</el-select>
</div> </div>
<div> <div>
<span>主负责人:</span> <span>主负责人:</span>
<el-select> <el-select></el-select>
<el-option></el-option>
</el-select>
</div> </div>
<div> <div>
<span>子负责人:</span> <span>子负责人:</span>
<el-select> <el-select></el-select>
<el-option></el-option>
</el-select>
</div> </div>
<div> <div>
<span>子负责人权限:</span> <span>子负责人权限:</span>
...@@ -138,11 +140,53 @@ ...@@ -138,11 +140,53 @@
<div> <div>
<div>特殊日期</div> <div>特殊日期</div>
</div> </div>
<div class="mt10">
<el-button>+新增必须打卡的日期</el-button>
</div>
<div class="mt10">
<el-button>+新增无需打卡的日期</el-button>
</div>
<div>
<div>考勤方式</div>
<el-checkbox-group v-model="type">
<el-checkbox label="地点打卡"></el-checkbox>
<el-checkbox label="Wi-Fi打卡"></el-checkbox>
<el-checkbox label="蓝牙打卡"></el-checkbox>
<el-checkbox label="考勤机打卡"></el-checkbox>
</el-checkbox-group>
</div>
</div> </div>
</el-drawer> </el-drawer>
<!-- 选择成员 -->
<!-- 选择biao --> <el-dialog :visible.sync="isshowgroup" title="选择人员">
<div>
<div class="titles">选择部门</div>
<el-scrollbar style="height: 100%">
<el-tree
size="mini"
ref="siteTree"
:data="areaData"
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>
</div>
</el-dialog>
<!-- 选择班次 -->
<el-dialog :visible.sync="isshowBanci" title="选择班次">
<div>
选择班次
</div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -156,6 +200,9 @@ ...@@ -156,6 +200,9 @@
changeBanci(row){ changeBanci(row){
console.log(row) console.log(row)
this.isshowBanci = true this.isshowBanci = true
},
selectGroup(){
this.isshowgroup = true
} }
}, },
data() { data() {
...@@ -192,22 +239,39 @@ ...@@ -192,22 +239,39 @@
}, },
drawer:true, drawer:true,
weekList:[], weekList:[],
isshowBanci:false//班次展示 isshowBanci:false,//班次展示
isshowgroup:false,
areaData:[],
type:[]
} }
} }
} }
</script> </script>
<style lang="less"> <style lang="less">
.labelClass{ .labelClass{
width: 200px; width: 200px;
} }
.el-descriptions__body{ .el-descriptions__body{
margin-left: 5px; margin-left: 5px;
margin-right: 5px; margin-right: 5px;
color: #606266; color: #606266;
background-color: #FFF; background-color: #FFF;
} }
.contentClass{ .contentClass{
width: 600px; width: 600px;
} }
.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
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig" notDel notAdd>
</LayoutTable> <el-button
slot="table-head-left2"
style="margin-left: 10px"
size="mini"
type="primary"
@click="morehandle"
>批量处理</el-button>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -33,28 +38,69 @@ ...@@ -33,28 +38,69 @@
toView(row) { toView(row) {
this.$refs.dialogform.view(row); this.$refs.dialogform.view(row);
}, },
morehandle(){
console.log(this.selection)
}
}, },
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "staffName", name: "deptId",
type: "text", type: "select",
label: "员工姓名", label: "全部部门",
fuzzy: true fuzzy: true
}, },
{ {
name: "deptId", name: "deptId",
type: "text", type: "select",
label: "所属部门", label: "全部考勤组",
fuzzy: true
},
{
name: "deptId",
type: "select",
label: "全部班次",
fuzzy: true
},
{
name: "errorStatus",
type: "select",
label: "全部异常状态",
fuzzy: true fuzzy: true
}, },
{ {
name: "errorStatus", name: "errorStatus",
type: "select", type: "select",
label: "异常状态", label: "全部处理状态",
fuzzy: true
},
{
name:'startTime',
type: "date",
valueFormat:'YYYY-dd-MM',
label: "考勤开始时间",
fuzzy: true
},
{
name:'endTime',
type: "date",
valueFormat:'YYYY-dd-MM',
label: "考勤结束时间",
fuzzy: true
},
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
},
{
name: "phoneNumber",
type: "text",
label: "手机号",
fuzzy: true fuzzy: true
}, },
], ],
...@@ -63,26 +109,21 @@ ...@@ -63,26 +109,21 @@
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{label: "异常状态", prop: "errorStatus",formatter: this.formatter},
{label: "上下班时间", prop: "goOffDateTime", formatter: this.formatterDate},
{label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate}, {label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate},
{label: "处理结果", prop: "errorDateTime", formatter: this.formatterDate},
{label: "上下班时间", prop: "goOffDateTime", formatter: this.formatterDate},
{label: "实际打卡时间", prop: "actualAttendanceDateTime", formatter: this.formatterDate}, {label: "实际打卡时间", prop: "actualAttendanceDateTime", formatter: this.formatterDate},
{label: "处理时间", prop: "operDateTime", formatter: this.formatterDate}, {label: "处理时间", prop: "operDateTime", formatter: this.formatterDate},
{label: "异常状态", prop: "errorStatus",formatter: this.formatter},
{label: "处理状态", prop: "processStatus",formatter: this.formatter}, {label: "处理状态", prop: "processStatus",formatter: this.formatter},
{label: "处理人", prop: "processStatus",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, {label: "备注", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: row => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons noAdd noEdit noView noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
); );
} }
} }
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
</div> </div>
...@@ -38,6 +36,7 @@ ...@@ -38,6 +36,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "staffName", name: "staffName",
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable> <LayoutTable :data="tableData" :config="tableConfig" notSearch></LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -54,9 +54,7 @@ ...@@ -54,9 +54,7 @@
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
// {label: "祖级列表", prop: "ancestors"}, // {label: "祖级列表", prop: "ancestors"},
{label: "部门名称", prop: "deptName"}, {label: "部门名称", prop: "deptName"},
{label: "成员数量", prop: "deptName"}, {label: "成员数量", prop: "deptName"},
{label: "负责人", prop: "deptName"}, {label: "负责人", prop: "deptName"},
......
...@@ -29,7 +29,10 @@ ...@@ -29,7 +29,10 @@
</el-scrollbar> </el-scrollbar>
</el-col> </el-col>
<el-col :span="18" :xs="12" class="mytree"> <el-col :span="18" :xs="12" class="mytree">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable> <LayoutTable :data="tableData" :config="tableConfig" notSearch>
<el-button type="primary" @click="doExport" :disabled="isExport"
size="mini" slot="table-head-left2">导出</el-button>
</LayoutTable>
</el-col> </el-col>
</el-row> </el-row>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
...@@ -50,7 +53,7 @@ ...@@ -50,7 +53,7 @@
}, },
mixins: [table,tree], mixins: [table,tree],
created() { created() {
this.getpositions() console.log(this.activeName,'ssss')
}, },
computed:{ computed:{
thirdList(){ thirdList(){
...@@ -62,6 +65,34 @@ ...@@ -62,6 +65,34 @@
} }
}, },
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>
<i style="font-size:16px;color:#409EFF" class='el-icon-edit-outline'></i>
<i style="font-size:16px;color:#409EFF" class='el-icon-delete'></i>
</span>
</span>
)
},
async loadNode(node, resolve) {
if (node.level === 0) {
return;
}
resolve(data.result);
},
doExport(){
this.isExport = true;
this.$download("/job/exportExcel", {
"idList": this.selection,
'name': this.$route.query['name'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => {
this.isExport = false;
this.$message.error(error.message);
})
},
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); this.$refs.drawerform.add(row);
...@@ -91,24 +122,24 @@ ...@@ -91,24 +122,24 @@
return { return {
config: { config: {
search: [ search: [
{ // {
name: "groupName", // name: "groupName",
type: "text", // type: "text",
label: "分组名称", // label: "分组名称",
fuzzy: true // fuzzy: true
}, // },
{ // {
name: "jobCode", // name: "jobCode",
type: "text", // type: "text",
label: "职位编码", // label: "职位编码",
fuzzy: true // fuzzy: true
}, // },
{ // {
name: "jobName", // name: "jobName",
type: "text", // type: "text",
label: "职位名称", // label: "职位名称",
fuzzy: true // fuzzy: true
}, // },
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
...@@ -134,7 +165,8 @@ ...@@ -134,7 +165,8 @@
} }
} }
] ]
} },
isExport:false
} }
} }
}; };
......
...@@ -24,8 +24,12 @@ ...@@ -24,8 +24,12 @@
<Field label="所属部门" prop="deptName" v-model="form.deptName" placeholder="请选择所属部门" @focus="ishowBumen = true"/> <Field label="所属部门" prop="deptName" v-model="form.deptName" placeholder="请选择所属部门" @focus="ishowBumen = true"/>
<Field label="职位" prop="positionId" v-model="form.positionId" :enumData="dict.politicalstatus" type="select" placeholder="请选择职位" /> <!-- <Field label="职位" prop="positionId" v-model="form.positionId" :enumData="dict.politicalstatus" type="select" placeholder="请选择职位" /> -->
<el-form-item label="职位" prop="positionId">
<el-select v-model="form.positionId" placeholder="请选择职位">
<el-option></el-option>
</el-select>
</el-form-item>
<Field label="工号" prop="workNum" v-model="form.workNum" 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"/> -->
......
...@@ -3,18 +3,20 @@ ...@@ -3,18 +3,20 @@
<div style="margin:10px 0"> <div style="margin:10px 0">
<tab-pane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick"></tab-pane> <tab-pane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick"></tab-pane>
</div> </div>
<div class="totalNum flex"> <div class="totalNum flex" v-if="tableData.staff">
<div class="item">在职员工 <span class="num">66</span></div> <div class="item">在职员工 <span class="num">{{tableData.staff.inWorkStaff}}</span></div>
<div class="item flex"> <div class="item flex">
<div>全职 <span class="num">66</span></div> <div>全职 <span class="num">{{tableData.staff.fullStaff}}</span></div>
<div>实习 <span class="num">66</span></div> <div>实习 <span class="num">{{tableData.staff.pricateStaff}}</span></div>
<div>兼职 <span class="num">66</span></div>
<!-- 兼职未对 -->
<div>兼职 <span class="num">{{tableData.staff.concurrentlyStaff}}</span></div>
</div> </div>
<div class="item flex"> <div class="item flex">
<div>试用 <span class="num">66</span></div> <div>试用 <span class="num">{{tableData.staff.onTrialStaff}}</span></div>
<div>正式 <span class="num">66</span></div> <div>正式 <span class="num">{{tableData.staff.formalStaff}}</span></div>
<div>待离职 <span class="num">66</span></div> <div>待离职 <span class="num">{{tableData.staff.resignationStaff}}</span></div>
</div> </div>
</div> </div>
<el-row :gutter="20"> <el-row :gutter="20">
...@@ -27,7 +29,6 @@ ...@@ -27,7 +29,6 @@
:data="areaData" :data="areaData"
id="el-tree" id="el-tree"
node-key="id" node-key="id"
indent="4"
:props="treeProps" :props="treeProps"
:load="loadNode" :load="loadNode"
highlight-current highlight-current
...@@ -131,7 +132,7 @@ ...@@ -131,7 +132,7 @@
methods: { methods: {
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
this.upload.title = "员工关怀信息导入"; this.upload.title = "员工导入";
this.upload.open = true; this.upload.open = true;
}, },
handleClick(key){ handleClick(key){
...@@ -170,7 +171,7 @@ ...@@ -170,7 +171,7 @@
}, },
doExport(){ doExport(){
this.isExport = true; this.isExport = true;
this.$download("/staff/list/exportExcel", { this.$download("/staff/exportExcel", {
"idList": this.selection, "idList": this.selection,
'name': this.$route.query['name'], 'name': this.$route.query['name'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { }, { type: "excel" }).then(() => this.isExport = false).catch(error => {
...@@ -232,10 +233,10 @@ ...@@ -232,10 +233,10 @@
], ],
isshowTabPane:false isshowTabPane:false
}, },
activeName:'first',
isshowHome:false, isshowHome:false,
personData:[], personData:[],
isExport:false isExport:false,
staffInfo:{}
} }
}, },
computed:{ computed:{
......
...@@ -6,19 +6,21 @@ ...@@ -6,19 +6,21 @@
<el-button type="primary" @click="$router.back()" size="small">返回上级</el-button> <el-button type="primary" @click="$router.back()" size="small">返回上级</el-button>
</div> </div>
<div class="persons"> <div class="persons">
<div class="cell1 flex flex-pack-justify"> <div class="cell1 flex">
<div class="avator"></div> <el-image
<div class="content"> style="width: 120px; height: 150px"
:src="allinfo.photoPath"
:preview-src-list="allinfo.photoPath">
</el-image>
<div class="content ml20">
<div class="c1"> <div class="c1">
<span>{{info.name}}</span> <span>{{info.workName}}</span>
<span class="tags" v-if="info.status == 1">正式</span> <span class="tags">{{info.workStatus}}</span>
<span class="tags" v-if="info.status == 2">试用</span>
<span class="tags" v-if="info.status == 3">离职</span>
</div> </div>
<div class="c2"> <div class="c2">
<span>{{info.positionName}}</span> <span>{{allinfo.deptName}} - {{allinfo.positionName}}</span>
<span style="margin:0 10px">|</span> <span style="margin:0 10px">|</span>
<span>1512</span> <span>{{info.workLimit}}</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -26,11 +28,11 @@ ...@@ -26,11 +28,11 @@
<div class="title">成长记录</div> <div class="title">成长记录</div>
<div class="flex"> <div class="flex">
<div class="history"> <div class="history">
<div class="times">{{info.entryDate}}</div> <div class="times">{{info.workBeginDay}}</div>
<div>入职时间</div> <div>入职时间</div>
</div> </div>
<div class="history"> <div class="history">
<div class="times">{{info.regularDate}}</div> <div class="times">{{info.workFormalDay}}</div>
<div>转正时间</div> <div>转正时间</div>
</div> </div>
</div> </div>
...@@ -43,31 +45,31 @@ ...@@ -43,31 +45,31 @@
<div class="flex flex-pack-justify" style="margin-top:10px"> <div class="flex flex-pack-justify" style="margin-top:10px">
<div class="flex"> <div class="flex">
<div>实际出勤天数</div> <div>实际出勤天数</div>
<div class="times">2020</div> <div class="times ml20">{{info.attendanceCount}}</div>
</div> </div>
<div class="flex"> <div class="flex">
<div>请假天数</div> <div>请假天数</div>
<div class="times">2020</div> <div class="times ml20">{{info.leaveCount}}</div>
</div> </div>
</div> </div>
<div class="flex flex-pack-justify" style="margin-top:10px"> <div class="flex flex-pack-justify" style="margin-top:10px">
<div class="flex"> <div class="flex">
<div>迟到早退次数</div> <div>迟到早退次数</div>
<div class="times">2020</div> <div class="times ml20">{{info.lateCount}}</div>
</div> </div>
<div class="flex"> <div class="flex">
<div>旷工天数</div> <div>旷工天数</div>
<div class="times">2020</div> <div class="times ml20">{{info.minerCount}}</div>
</div> </div>
</div> </div>
<div class="flex flex-pack-justify" style="margin-top:10px"> <div class="flex flex-pack-justify" style="margin-top:10px">
<div class="flex"> <div class="flex">
<div>缺卡次数</div> <div>缺卡次数</div>
<div class="times">2020天</div> <div class="times ml20">{{info.lackCardCount}}</div>
</div> </div>
<div class="flex"> <div class="flex">
<div>加班天数</div> <div>加班天数</div>
<div class="times">2020</div> <div class="times ml20">{{info.workOverDay}}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -76,21 +78,21 @@ ...@@ -76,21 +78,21 @@
<div class="flex flex-pack-justify" style="margin-top:10px"> <div class="flex flex-pack-justify" style="margin-top:10px">
<div class="flex"> <div class="flex">
<div>调休</div> <div>调休</div>
<div class="times">2020</div> <div class="times ml20">{{info.compensatoryDay}}</div>
</div> </div>
<div class="flex"> <div class="flex">
<div>婚假</div> <div>婚假</div>
<div class="times">2020</div> <div class="times ml20">{{info.marriageHoliday}}</div>
</div> </div>
</div> </div>
<div class="flex flex-pack-justify" style="margin-top:10px"> <div class="flex flex-pack-justify" style="margin-top:10px">
<div class="flex"> <div class="flex">
<div>年假</div> <div>年假</div>
<div class="times">2020</div> <div class="times ml20">{{info.winterHoliday}}</div>
</div> </div>
<div class="flex"> <div class="flex">
<div>陪产假</div> <div>陪产假</div>
<div class="times">2020</div> <div class="times ml20">{{info.paternityLeaveDay}}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -108,9 +110,10 @@ ...@@ -108,9 +110,10 @@
getdata(id){ getdata(id){
this.$get('/staff/info',{id}).then(res => { this.$get('/staff/info',{id}).then(res => {
if(res.code == 1){ if(res.code == 1){
this.info = res.data this.info = res.data.holidayLists[0]
this.info.entryDate = timestampToTime(this.info.entryDate) this.allinfo = res.data//总
this.info.regularDate = timestampToTime(this.info.regularDate) this.info.workBeginDay = timestampToTime(Number(this.info.workBeginDay))
this.info.workFormalDay = timestampToTime(Number(this.info.workFormalDay))
} }
}) })
.catch(err => { .catch(err => {
...@@ -120,7 +123,8 @@ ...@@ -120,7 +123,8 @@
}, },
data() { data() {
return { return {
info:{} info:{},
allinfo:{}
} }
}, },
created(){ created(){
...@@ -136,11 +140,11 @@ ...@@ -136,11 +140,11 @@
font-weight: bold; font-weight: bold;
} }
.cell1{ .cell1{
.avator{ // .avator{
width: 120px; // width: 120px;
height: 150px; // height: 150px;
background-color: aliceblue; // background-color: aliceblue;
} // }
.c2{ .c2{
color: #999; color: #999;
font-size: 12px; font-size: 12px;
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!--<Field label="ID" prop="id" v-model="form.id" v-if='pageInfo.type !== "add"' disabled />--> <!--<Field label="ID" prop="id" v-model="form.id" v-if='pageInfo.type !== "add"' disabled />-->
<Field label="名称" prop="name" v-model="form.name"/> <Field label="名称" prop="name" v-model="form.name"/>
<Field label="权限类型" prop="authType" v-model="form.authType" :enumData='dict.authType' type='select' /> <Field label="权限类型" prop="authType" v-model="form.authType" :enumData='dict.authType' type='select' />
......
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