Commit 6aa5c7c8 authored by dll's avatar dll

提交

parent 78659b91
#开发环境
NODE_ENV = "development"
VUE_APP_API_BASE_URL=http://192.168.0.98:11039
\ No newline at end of file
...@@ -6,3 +6,4 @@ VUE_APP_API_BASE_URL=/basics_api ...@@ -6,3 +6,4 @@ VUE_APP_API_BASE_URL=/basics_api
VUE_APP_PORTAL_URL = /portal_home VUE_APP_PORTAL_URL = /portal_home
VUE_APP_PORTAL_PORT = 11039 VUE_APP_PORTAL_PORT = 11039
VUE_APP_API_BASE_URL = http://192.168.0.98:11039
...@@ -36,6 +36,7 @@ export default { ...@@ -36,6 +36,7 @@ export default {
res.entity = this.util_toDateStr(res.entity, this.toDate); res.entity = this.util_toDateStr(res.entity, this.toDate);
this.form = Object.assign({}, this.form, res.entity); this.form = Object.assign({}, this.form, res.entity);
this.dict = Object.assign({}, this.dict, res.dict); this.dict = Object.assign({}, this.dict, res.dict);
// 部门格式化处理
this.afterRender(res); this.afterRender(res);
}) })
.catch(error => { .catch(error => {
......
...@@ -7,7 +7,7 @@ const tagsMap = { ...@@ -7,7 +7,7 @@ const tagsMap = {
1: 'danger', 1: 'danger',
0: 'success' 0: 'success'
}; };
const baseUrl= process.env.VUE_APP_API_BASE_URL+'/'
export default { export default {
mounted() { mounted() {
this.getData(); this.getData();
...@@ -58,7 +58,7 @@ export default { ...@@ -58,7 +58,7 @@ export default {
this.tableData = this.beforeRender( this.tableData = this.beforeRender(
Object.assign({}, this.tableData, data) Object.assign({}, this.tableData, data)
) )
console.log(this.tableData,'') console.log(this.tableData,'fffff')
this.afterRender(this.tableData); this.afterRender(this.tableData);
}) })
.catch(error => { .catch(error => {
...@@ -280,6 +280,65 @@ export default { ...@@ -280,6 +280,65 @@ export default {
return val return val
} }
}, },
// 格式化处理异常状态
formattereErrorStatus(row,column,val){
const content = formatter(this.tableData, column, val)
if (content) {
return <el-tag size="mini" type="danger">{this.util_formatter('errorStatus', val)}</el-tag>
} else {
return val
}
},
// 格式化处理状态
formattereDealStatus(row,column,val){
const content = formatter(this.tableData, column, val)
if (content) {
return <el-tag size="mini">{this.util_formatter('processStatus', val)}</el-tag>
} else {
return val
}
},
// 考勤组人数
formatterGroupPerson(row,column,val){
const content = formatter(this.tableData, column, val)
if (content) {
return Number(row.personNum) + Number(row.personNumNo)
} else {
return val
}
},
// 考勤类型
formatterattendType(row,column,val){
const content = formatter(this.tableData, column, val)
if (content) {
return <el-tag size="mini">{this.util_formatter('type', val)}</el-tag>
} else {
return val
}
},
// 请假类型
formatterLeaveType(row,column,val){
const content = formatter(this.tableData, column, val)
if (content) {
return <el-tag size="mini">{this.util_formatter('leaveType', val)}</el-tag>
} else {
return val
}
},
// 格式化图片展示
formatterPic(row, column, val){
const content = formatter(this.tableData, column, val)
if (content) {
return <el-image
src={val.indexOf('http') == -1?baseUrl+val:val}
preview-src-list={val.indexOf('http') == -1?baseUrl+val:val}
style="width: 100px"></el-image>
} else {
return val
}
},
// 多选表格行 // 多选表格行
handleSelectionChange(val) { handleSelectionChange(val) {
this.selection = val.map(i => i.id); this.selection = val.map(i => i.id);
......
...@@ -32,11 +32,13 @@ instance.interceptors.request.use(config => { ...@@ -32,11 +32,13 @@ instance.interceptors.request.use(config => {
// 测试用 // 测试用
//http://192.168.0.98:11039/ //http://192.168.0.98:11039/
const hostname = '192.168.0.98' // 温
const port = '11039' // http://192.168.0.116/17500
const hostname = '192.168.0.116'
const port = '17500'
// 动态修改请求地址 // 动态修改请求地址
console.log(hostname,baseURL,port)
if (config.url.startsWith('/')) { if (config.url.startsWith('/')) {
// 字符串以 / 开头 // 字符串以 / 开头
config.url = `http://${hostname}:${port}${baseURL}${config.url}`; config.url = `http://${hostname}:${port}${baseURL}${config.url}`;
......
...@@ -174,4 +174,39 @@ export const getTreeIds = (tree, nodeId, config) => { ...@@ -174,4 +174,39 @@ export const getTreeIds = (tree, nodeId, config) => {
} }
/**
* 根据树子节点ID查找所有父节点ID
* @param {array} dataSource 树形结构数据源
* @param {number} nodeId 子节点ID
* @returns {array} 包含所有父节点ID的数组,按照从根节点到直接父节点的顺序排序
*/
export const findParentIds = (dataSource, nodeId) => {
const parentIds = []; // 用于存储所有父节点ID的数组
// 定义一个递归函数,用于遍历整棵树并查找子节点的所有父节点
function traverse(node, nodeId) {
if (node.id === nodeId) { // 如果当前节点的ID等于子节点的ID,则表示已经找到了子节点,可以开始向上查找父节点
return true; // 返回true表示已经找到了子节点
}
if (node.children) { // 如果当前节点有子节点,则继续遍历子节点
for (const childNode of node.children) {
if (traverse(childNode, nodeId)) { // 如果在子节点中找到了子节点的父节点,则将当前节点的ID添加到父节点ID数组中,并返回true表示已经找到了子节点
parentIds.push(node.id);
return true;
}
}
}
return false; // 如果当前节点不是子节点的父节点,则返回false
}
// 从根节点开始遍历整棵树,并调用递归函数查找子节点的所有父节点
for (const node of dataSource) {
if (traverse(node, nodeId)) { // 如果在当前节点的子树中找到了子节点的父节点,则直接退出循环
break;
}else{
if(node.children && node.children.length>0){
traverse(node.children, nodeId)
}
}
}
return parentIds; // 返回所有父节点ID的数组
}
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<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"'>
<el-option <el-option
v-for="($label, $value) in enumData" v-for="($label, $value) in enumData"
...@@ -20,6 +21,16 @@ ...@@ -20,6 +21,16 @@
></el-option> ></el-option>
</el-select> </el-select>
<!-- 多级 -->
<el-cascader :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable'
:props="{label:'label',value:'id',multiple:multiple}"
v-if='type === "cascader"'>
</el-cascader>
<!-- 联级选择 -->
<el-cascader-panel :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable'
:props="{label:'label',value:'id',multiple:multiple}" v-if='type === "cascaderpanel"'></el-cascader-panel>
<el-radio-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "radio"'> <el-radio-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "radio"'>
<el-radio <el-radio
v-for='($label, $value) in enumData' v-for='($label, $value) in enumData'
...@@ -81,6 +92,10 @@ export default { ...@@ -81,6 +92,10 @@ export default {
type: String, type: String,
default: '', default: '',
}, },
multiple:{
type: Boolean,
default: false,
},
// 字段所需的枚举类型 // 字段所需的枚举类型
enumData: { enumData: {
type: Object, type: Object,
...@@ -125,6 +140,7 @@ export default { ...@@ -125,6 +140,7 @@ export default {
this.$emit('input', this.newVal) this.$emit('input', this.newVal)
this.$emit('change', this.newVal) this.$emit('change', this.newVal)
this.$emit('focus') this.$emit('focus')
this.$emit('cascaderChange',this.newVal)
} }
}, },
computed: { computed: {
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
</div> </div>
</el-image> </el-image>
<div v-else class="image"> <div v-else class="image">
<el-image :src="value" :style="`width:150px;height:150px;`" fit="fill"/> <el-image :src="value.indexOf('http') == -1?baseUrl+value:value"
:style="`width:150px;height:150px;`" fit="fill"/>
<div class="mask"> <div class="mask">
<div class="actions"> <div class="actions">
<span title="预览" @click.stop="dialogVisible = true"> <span title="预览" @click.stop="dialogVisible = true">
...@@ -32,7 +33,7 @@ ...@@ -32,7 +33,7 @@
</div> </div>
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body> <el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body>
<img :src="value" style="display: block; max-width: 100%; margin: 0 auto;"> <img :src="value.indexOf('http') == -1?baseUrl+value:value" style="display: block; max-width: 100%; margin: 0 auto;">
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -41,8 +42,9 @@ ...@@ -41,8 +42,9 @@
export default { export default {
data() { data() {
return { return {
baseUrl:process.env.VUE_APP_API_BASE_URL+'/',
dialogVisible: false, dialogVisible: false,
uploadImgUrl: "/m/file/commonupload", // 上传的图片服务器地址 uploadImgUrl: process.env.VUE_APP_API_BASE_URL+"/attendance/file/commonupload", // 上传的图片服务器地址
}; };
}, },
props: { props: {
...@@ -55,6 +57,9 @@ export default { ...@@ -55,6 +57,9 @@ export default {
type: String, type: String,
default: '', default: '',
} }
},
mounted(){
}, },
methods: { methods: {
removeImage() { removeImage() {
......
...@@ -37,6 +37,8 @@ const router = new Router({ ...@@ -37,6 +37,8 @@ const router = new Router({
...restBuilder('user', 'system/user'), // 用户管理 -- 管理用户 ...restBuilder('user', 'system/user'), // 用户管理 -- 管理用户
...restBuilder('param', 'system/param'), // 系统管理--参数管理 ...restBuilder('param', 'system/param'), // 系统管理--参数管理
// ...restBuilder('task', 'system/task'), // 系统管理--任务管理 // ...restBuilder('task', 'system/task'), // 系统管理--任务管理
// 绩效负责人
...restBuilder('workman','workman'),
//部门 //部门
...restBuilder('dept', 'dept'),//部门 ...restBuilder('dept', 'dept'),//部门
...@@ -63,9 +65,7 @@ const router = new Router({ ...@@ -63,9 +65,7 @@ const router = new Router({
...restBuilder('attendance/class', 'attendance/class'),// 考勤班次信息 ...restBuilder('attendance/class', 'attendance/class'),// 考勤班次信息
...restBuilder('attendance/leave/record', 'attendance/leave/record'),// 请假记录信息 ...restBuilder('attendance/leave/record', 'attendance/leave/record'),// 请假记录信息
...restBuilder('attendance/vacation/balance', 'attendance/vacation/balance'),// 员工假期余额信息 ...restBuilder('attendance/vacation/balance', 'attendance/vacation/balance'),// 员工假期余额信息
// 绩效负责人
...restBuilder('attendance/group/responsible','attendance/group/responsible'),
//以下为基础路由配置 //以下为基础路由配置
builder('blank', 'blank'), builder('blank', 'blank'),
......
...@@ -77,22 +77,22 @@ ...@@ -77,22 +77,22 @@
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "班次名称", prop: "className"}, {label: "班次名称", prop: "className"},
{label: "考勤时间", prop: "className"}, // {label: "考勤时间", prop: "className"},
// {label: "考勤班次详细信息", {label: "考勤班次详细信息",
// width: 120, width: 120,
// prop: "subColumns", prop: "subColumns",
// formatter: (row) => { formatter: (row) => {
// let widthsize = this.columnSet.reduce((pre, cur) => { let widthsize = this.columnSet.reduce((pre, cur) => {
// return pre + Number(cur.width); return pre + Number(cur.width);
// }, 50); }, 50);
// return ( return (
// <el-popover placement="right" width={widthsize} trigger="click"> <el-popover placement="right" width={widthsize} trigger="click">
// {this.renderTable(row.attendanceClassDetailList)} {this.renderTable(row.attendanceClassDetailList)}
// <el-button type="text" slot="reference">详细</el-button> <el-button type="text" slot="reference">详细</el-button>
// </el-popover> </el-popover>
// ); );
// }, },
// }, },
{ {
label: "操作", label: "操作",
width: 240, width: 240,
......
...@@ -83,13 +83,13 @@ ...@@ -83,13 +83,13 @@
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "考勤组名称", prop: "personNum",formatter: this.formatter}, {label: "考勤组名称", prop: "groupName"},
{label: "人数", prop: "personNum",formatter: this.formatter}, {label: "人数", prop: "personNum",formatter: this.formatterGroupPerson},
{label: "负责人", prop: "personNum",formatter: this.formatter}, {label: "负责人", prop: "personNum"},//未
{label: "类型", prop: "type",formatter: this.formatter}, {label: "类型", prop: "type",formatter: this.formatterattendType},
// {label: "创建用户", prop: "createUserId", formatter: this.formatter}, // {label: "创建用户", prop: "createUserId", formatter: this.formatter},
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
// {label: "考勤方式", prop: "attendanceType"}, // {label: "考勤方式", prop: "attendanceType"},
{label: "考勤时间", prop: "attendanceType"}, {label: "考勤时间", prop: "attendanceType"},//未
// {label: "考勤组人员信息", // {label: "考勤组人员信息",
// width: 120, // width: 120,
......
...@@ -4,15 +4,27 @@ ...@@ -4,15 +4,27 @@
<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="responsibleName" v-model="form.responsibleName" placeholder="请输入负责人名称"/> <Field label="姓名" prop="responsibleName" v-model="form.responsibleName" placeholder="请输入负责人名称"/>
<Field label="电话号码" prop="responsibleName" v-model="form.responsibleName" placeholder="请输入电话号码"/> <Field label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/>
<Field label="考勤组" prop="groupId" v-model="form.groupId" placeholder="请输入考勤组"/> <Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/> <Field label="所属部门" prop="deptId" v-model="form.deptId" type="select"/>
<Field label="负责人ID" prop="responsibleId" v-model="form.responsibleId" placeholder="请输入负责人ID"/> <!-- <Field label="考勤组" prop="groupId" v-model="form.groupId" placeholder="请输入考勤组"/> -->
<Field label="负责人类型" prop="responsibleType" v-model="form.responsibleType" type="select" :enumData="dict.responsibleType" placeholder="请选择负责人类型"/> <!-- <Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/> -->
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <!-- <Field label="负责人ID" prop="responsibleId" v-model="form.responsibleId" placeholder="请输入负责人ID"/> -->
<!-- <Field label="负责人类型" prop="responsibleType" v-model="form.responsibleType" type="select" :enumData="dict.responsibleType" placeholder="请选择负责人类型"/> -->
<!-- <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> -->
</el-row> </el-row>
<el-form-item label="上传图片" prop="photoPath">
<el-upload
class="avatar-uploader"
action="https://jsonplaceholder.typicode.com/posts/"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="form.photoPath" :src="form.photoPath" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button> <el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
...@@ -27,7 +39,7 @@ ...@@ -27,7 +39,7 @@
export default { export default {
mixins: [form], mixins: [form],
components: { components: {
dialogShow , dialogShow
}, },
data() { data() {
return { return {
...@@ -40,14 +52,15 @@ ...@@ -40,14 +52,15 @@
toString:[ toString:[
"responsibleType", "responsibleType",
], ],
imageUrl:'',
// 表单校验 // 表单校验
rules: { rules: {
responsibleName: [ responsibleName: [
{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"},
], ],
} }
}; };
...@@ -111,6 +124,41 @@ ...@@ -111,6 +124,41 @@
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, },
uploadFn(val){
console.log(val)
},
handleAvatarSuccess(file){
},
beforeAvatarUpload(file){
}
}, },
}; }
</script> </script>
<style scoped lang='less'>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 150px;
height: 150px;
line-height: 150px;
text-align: center;
border: 1px dashed #d9d9d9;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
...@@ -46,23 +46,37 @@ ...@@ -46,23 +46,37 @@
label: "负责人名称", label: "负责人名称",
fuzzy: true fuzzy: true
}, },
{
name: "deptId",
type: "select",
label: "请选择部门",
fuzzy: true
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "照片", prop: "photoPath"},
{label: "负责人名称", prop: "responsibleName"}, {label: "负责人名称", prop: "responsibleName"},
{label: "负责人类型", prop: "responsibleType",formatter: this.formatter}, {label: "工号", prop: "workNum"},
{label: "所属部门", prop: "deptName"},
{label: "电话号码", prop: "phoneNumber"},
// {label: "负责人类型", prop: "responsibleType",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 noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
); )
} }
} }
] ]
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
<Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" /> <Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" />
<Field label="时长,单位秒" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/> <Field label="时长,单位秒" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/>
<Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/> <Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/>
<Field label="审批负责人Id" prop="approverId" v-model="form.approverId" placeholder="请输入审批负责人Id"/> <!-- <Field label="审批负责人Id" prop="approverId" v-model="form.approverId" placeholder="请输入审批负责人Id"/> -->
<Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> <Field label="审批负责人" prop="approver" v-model="form.approver" type="select" placeholder="请选择审批负责人"/>
<Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/>
<Field label="附件路径" prop="attachmentPath" v-model="form.attachmentPath" type="textarea" placeholder="请输入附件路径"/> <Field label="附件路径" prop="attachmentPath" v-model="form.attachmentPath" type="textarea" placeholder="请输入附件路径"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
......
...@@ -4,31 +4,31 @@ ...@@ -4,31 +4,31 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="60%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <div style="padding:15px">
<el-row> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<Field label="请假人" prop="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人id"/> <el-row>
<!-- <Field label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/> --> <!-- <Field label="请假人" prop="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人"/> -->
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门id"/> <Field label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/>
<!-- <Field label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/> --> <Field label="所属部门" prop="deptId" v-model="form.deptId" type="select" placeholder="请选择所属部门"/>
<Field label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/> <!-- <Field label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/> -->
<Field label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/> <Field label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/>
<Field label="开始时间" prop="startTime" v-model="form.startTime" type="date" /> <Field label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/>
<Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" /> <Field label="开始时间" prop="startTime" v-model="form.startTime" type="date" />
<Field label="时长" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/> <Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" />
<Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/> <Field label="时长" prop="duration" v-model="form.duration" placeholder="请输入时长"/>
<Field label="审批负责人" prop="approverId" v-model="form.approverId" placeholder="请输入审批负责人Id"/> <Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/>
<!-- <Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> --> <Field label="审批负责人" prop="approverId" type="select" v-model="form.approverId" placeholder="请选择审批负责人"/>
<!-- <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> --> <!-- <Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> -->
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <!-- <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> -->
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row> </el-row>
<el-form-item label="附件路径" prop="attachmentPath"> <el-form-item label="附件路径" prop="attachmentPath">
<FileUpload @input="uploadFn" /> <FileUpload @input="uploadFn" />
</el-form-item> </el-form-item>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit='submitForm' noCancelBtn />
</el-form> </el-form>
</div>
</el-drawer> </el-drawer>
</template> </template>
......
...@@ -91,25 +91,25 @@ ...@@ -91,25 +91,25 @@
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "请假人id", prop: "leavePersonId", formatter: this.formatter}, // {label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
{label: "请假人", prop: "leavePerson"}, {label: "请假人", prop: "leavePerson"},
{label: "所属部门id", prop: "deptId", formatter: this.formatter}, // {label: "所属部门id", prop: "deptId", formatter: this.formatter},
{label: "所属部门", prop: "deptName"}, {label: "所属部门", prop: "deptName"},
{label: "电话号码", prop: "phoneNumber"}, {label: "电话号码", prop: "phoneNumber"},
{label: "请假类型", prop: "leaveType",formatter: this.formatter}, {label: "请假类型", prop: "leaveType",formatter: this.formatterLeaveType},
{label: "开始时间", prop: "startTime", formatter: this.formatterDate}, {label: "开始时间", prop: "startTime", formatter: this.formatterDate},
{label: "结束时间", prop: "endTime", formatter: this.formatterDate}, {label: "结束时间", prop: "endTime", formatter: this.formatterDate},
{label: "时长,单位秒", prop: "duration",formatter: this.formatter}, {label: "时长", prop: "duration",formatter: this.formatter},
{label: "审批负责人Id", prop: "approverId", formatter: this.formatter}, // {label: "审批负责人Id", prop: "approverId", formatter: this.formatter},
{label: "审批负责人", prop: "approver"}, {label: "审批负责人", prop: "approver"},
......
...@@ -117,19 +117,19 @@ ...@@ -117,19 +117,19 @@
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{label: "工号", prop: "staffName"}, {label: "工号", prop: "workNum"},
{label: "部门", prop: "staffName"}, {label: "部门", prop: "staffName"},
{label: "考勤组", prop: "staffName"}, {label: "考勤组", prop: "deptName"},
{label: "班次", prop: "staffName"}, {label: "班次", prop: "shiftsName"},
{label: "异常状态", prop: "errorStatus",formatter: this.formatter}, {label: "异常状态", prop: "errorStatus",formatter: this.formattereErrorStatus},
{label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate}, {label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate},
{label: "处理结果", prop: "errorDateTime", formatter: this.formatterDate}, {label: "处理结果", prop: "processResult", formatter: this.formatterDate},
{label: "上下班时间", prop: "goOffDateTime", 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: "processStatus",formatter: this.formatter}, {label: "处理状态", prop: "processStatus",formatter: this.formattereDealStatus},
{label: "处理人", prop: "processStatus",formatter: this.formatter}, {label: "处理人", prop: "opertor"},
{label: "备注", prop: "createUserId", formatter: this.formatter}, {label: "备注", prop: "remark"},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
......
...@@ -226,14 +226,14 @@ ...@@ -226,14 +226,14 @@
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{label: "工号", prop: "staffName"}, {label: "工号", prop: "workNum"},
{label: "部门", prop: "staffName"}, {label: "部门", prop: "deptName"},
{label: "考勤组", prop: "staffName"}, {label: "考勤组", prop: "attendanceGroupName"},
{label: "职位", prop: "staffName"}, {label: "职位", prop: "positionName"},
{label: "班次", prop: "staffName"}, {label: "班次", prop: "shiftsName"},
{label: "考勤时间", prop: "attendanceDate",formatter: this.formatterDate}, {label: "考勤时间", prop: "attendanceDate",formatter: this.formatterDate},
{label: "考勤点名称", prop: "staffName"}, {label: "考勤点名称", prop: "attendanceAddress"},
{label: "事件源", prop: "staffName"}, {label: "事件源", prop: "eventSource"},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
......
...@@ -309,10 +309,10 @@ ...@@ -309,10 +309,10 @@
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "打卡日期", prop: "attendanceDate", formatter: this.formatterDate}, {label: "打卡日期", prop: "attendanceDate", formatter: this.formatterDate},
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{label: "考勤组", prop: "staffName"}, {label: "考勤组", prop: "attendanceGroupName"},
{label: "部门", prop: "staffName"}, {label: "部门", prop: "deptName"},
{label: "职位", prop: "staffName"}, {label: "职位", prop: "positionName"},
{label: "班次", prop: "staffName"}, {label: "班次", prop: "shiftsName"},
{label: "考勤打卡记录详细信息", {label: "考勤打卡记录详细信息",
width: 120, width: 120,
prop: "subColumns", prop: "subColumns",
......
...@@ -158,7 +158,7 @@ ...@@ -158,7 +158,7 @@
{label: "窗口类别", prop: "windowCategory"}, {label: "窗口类别", prop: "windowCategory"},
{label:"部门",prop:"bumentId"}, {label:"部门",prop:"deptName"},
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
...@@ -232,7 +232,11 @@ ...@@ -232,7 +232,11 @@
setcolum:[], setcolum:[],
isdialog:false, isdialog:false,
checkList:[], checkList:[],
drawerhistory:false drawerhistory:false,
// 动态新增列表
addColumn:[
]
}; };
} }
}; };
......
...@@ -7,28 +7,9 @@ ...@@ -7,28 +7,9 @@
size="50%"> size="50%">
<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="父id" prop="parentId" v-model="form.parentId" placeholder="请输入父id"/> --> <Field label="部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入部门名称"/>
<!-- <Field label="祖级列表" prop="ancestors" v-model="form.ancestors" type="textarea" placeholder="请输入祖级列表"/> --> <Field label="上级部门" prop="parentId" v-model="form.parentId" type="select" :enumData="dict.deptName" placeholder="请选择上级部门"/>
<!-- <Field label="部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入部门名称"/> --> <Field label="负责人" prop="workId" v-model="form.workId" type="select" :enumData="dict.workName" placeholder="请选择员工"/>
<!-- <Field label="上级部门" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择上级部门"/> -->
<!-- <Field label="负责人" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择员工"/> -->
<!-- <Field label="部门状态" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择部门状态"/> -->
<!-- <Field label="顺序" prop="orderNum" v-model="form.orderNum" placeholder="请输入顺序"/> -->
<!-- <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> -->
<el-form-item label="部门名称" prop="deptName">
<el-input placeholder="请输入部门名称" clearable v-model="form.deptName"></el-input>
</el-form-item>
<el-form-item label="上级部门">
<el-select placeholder="请选择上级部门" clearable v-model="form">
<el-option></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人">
<el-select placeholder="请选择员工" clearable>
<el-option></el-option>
</el-select>
</el-form-item>
</el-row> </el-row>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit='submitForm' noCancelBtn />
...@@ -64,23 +45,13 @@ ...@@ -64,23 +45,13 @@
], ],
// 表单校验 // 表单校验
rules: { rules: {
ancestors: [
{required: true,message: "请输入祖级列表", trigger: "blur" },
{max: 256,message: "最多只能录入256个字符",trigger: "blur",},
],
deptName: [ deptName: [
{required: true,message: "请输入部门名称", trigger: "blur" }, {required: true,message: "请输入部门名称", trigger: "blur" },
{max: 256,message: "最多只能录入256个字符",trigger: "blur",}, {max: 256,message: "最多只能录入256个字符",trigger: "blur",},
], ],
deptStatus: [ parentId: [
{required: true,message: "请输入部门状态", trigger: "blur" }, {required: true,message: "请输入部门", trigger: "change" },
], ]
orderNum: [
{required: true,message: "请输入顺序", trigger: "blur" },
],
createTime: [
{required: true,message: "请选择创建时间" },
],
} }
}; };
}, },
......
<template> <template>
<div class="page"> <div className="page">
<LayoutTable :data="tableData" :config="tableConfig" notSearch></LayoutTable> <el-card style="height:80vh">
<LayoutTable notPagination :data="tableData" ref="layoutTable" :config="tableConfig" notSearch></LayoutTable>
</el-card>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import {handleTree} from "@/assets/utils/table";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "DeptList", name: "DeptList",
components: { components: {
drawerShow drawerShow,
}, Treeselect
},
mixins: [table], mixins: [table],
created() { created() {
this.query={"page":1,"size":-1}
}, },
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); this.$refs.drawerform.add(row,this.menuOptions);
}, },
/** 重写编辑方法 */ /** 重写编辑方法 */
toEdit(row) { toEdit(row) {
this.$refs.drawerform.edit(row); this.$refs.drawerform.edit(row,this.menuOptions);
}, },
/** 重写查看方法 */ /** 重写查看方法 */
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row, this.menuOptions);
},
afterRender(data) {
data.data = handleTree(data.data, "id", "parentId");
console.log("tree data:",data.data)
this.menuOptions = data.data;
this.$refs.layoutTable.showType = "treetable"
}, },
}, },
data() { data() {
return { return {
config: { config: {
// search: [
// {
// name: "orderNum",
// type: "text",
// label: "顺序",
// fuzzy: true
// },
// {
// name: "createUserId",
// type: "text",
// label: "创建用户",
// fuzzy: true
// },
// ],
showType:'treetable', showType:'treetable',
isshowTabPane:true, isshowTabPane:true,
/** 树表是否默认展开 */
expand: false,
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
......
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
size="50%"> size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px" style="padding:20px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px" style="padding:20px">
<el-row> <el-row>
<Field label="分组" prop="groupId" v-model="form.groupId" type="select" placeholder="请选择分组"/> <Field v-if="title == '新增职位信息'" label="分组" prop="groupId" v-model="form.groupId" type="select" placeholder="请选择分组"/>
<Field label="分组名称" prop="groupName" v-model="form.groupName" placeholder="请输入分组名称"/> <Field label="分组名称" prop="groupName" v-model="form.groupName" placeholder="请输入分组名称"/>
<Field label="职位编码" prop="jobCode" v-model="form.jobCode" placeholder="请输入职位编码"/> <Field label="职位编码" prop="jobCode" v-model="form.jobCode" placeholder="请输入职位编码"/>
<Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/> <Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/>
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6" :xs="12" class="mytree"> <el-col :span="6" :xs="12" class="mytree">
<div class="titles">选择部门</div> <div class="titles">选择部门</div>
<!-- default-expand-all -->
<el-scrollbar style="height: 100%"> <el-scrollbar style="height: 100%">
<el-tree <el-tree
size="mini" size="mini"
...@@ -30,7 +31,6 @@ ...@@ -30,7 +31,6 @@
:props="treeProps" :props="treeProps"
:load="loadNode" :load="loadNode"
highlight-current highlight-current
default-expand-all
:expand-on-click-node="false" :expand-on-click-node="false"
:render-content="renderContent" :render-content="renderContent"
@node-click="handleNodeClick" @node-click="handleNodeClick"
......
...@@ -15,10 +15,12 @@ ...@@ -15,10 +15,12 @@
<div class="content ml20"> <div class="content ml20">
<div class="c1"> <div class="c1">
<span>{{info.workName}}</span> <span>{{info.workName}}</span>
<span class="tags">{{info.workStatus}}</span> <!-- 格式 -->
<span class="tags">{{dict.status[allinfo.status]}}</span>
</div> </div>
<div class="c2"> <div class="c2">
<span>{{allinfo.deptName}} - {{allinfo.positionName}}</span> <!-- - {{allinfo.positionName}} -->
<span>{{allinfo.deptName}}</span>
<span style="margin:0 10px">|</span> <span style="margin:0 10px">|</span>
<span>{{info.workLimit}}</span> <span>{{info.workLimit}}</span>
</div> </div>
...@@ -111,9 +113,10 @@ ...@@ -111,9 +113,10 @@
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.holidayLists[0] this.info = res.data.holidayLists[0]
this.dict = res.dict
this.allinfo = res.data//总 this.allinfo = res.data//总
this.info.workBeginDay = timestampToTime(Number(this.info.workBeginDay)) this.info.workBeginDay = this.info.workBeginDay?timestampToTime(Number(this.info.workBeginDay)):'-'
this.info.workFormalDay = timestampToTime(Number(this.info.workFormalDay)) this.info.workFormalDay = this.info.workFormalDay?timestampToTime(Number(this.info.workFormalDay)):'-'
} }
}) })
.catch(err => { .catch(err => {
...@@ -124,7 +127,8 @@ ...@@ -124,7 +127,8 @@
data() { data() {
return { return {
info:{}, info:{},
allinfo:{} allinfo:{},
dict:[]
} }
}, },
created(){ created(){
......
...@@ -23,7 +23,6 @@ export default { ...@@ -23,7 +23,6 @@ export default {
}, },
methods: { methods: {
afterRender(data) { afterRender(data) {
console.log(data)
data.data = handleTree(data.data, "id", "parentId"); data.data = handleTree(data.data, "id", "parentId");
console.log("tree data:",data.data) console.log("tree data:",data.data)
this.menuOptions = data.data; this.menuOptions = data.data;
...@@ -82,7 +81,7 @@ export default { ...@@ -82,7 +81,7 @@ export default {
}) })
.catch((error) => { .catch((error) => {
this.$message.error(error.message); this.$message.error(error.message);
}); })
}, },
/** 重写查看方法 */ /** 重写查看方法 */
toView(row) { toView(row) {
......
...@@ -3,15 +3,21 @@ ...@@ -3,15 +3,21 @@
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<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="部门id号" prop="deptId" v-model="form.deptId" placeholder="请输入部门id号"/> <Field label="姓名" prop="name" v-model="form.name" placeholder="请输入姓名"/>
<Field label="部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入部门名称"/> <Field label="电话号码" prop="phone" v-model="form.phone" placeholder="请输入电话号码"/>
<Field label="姓名" prop="name" v-model="form.name" placeholder="请输入姓名"/> <Field label="工号" prop="number" v-model="form.number" placeholder="请输入工号"/>
<Field label="工号" prop="number" v-model="form.number" placeholder="请输入工号"/>
<Field label="电话号码" prop="phone" v-model="form.phone" placeholder="请输入电话号码"/>
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/>
</el-row> </el-row>
<el-form-item label="所属部门" prop="deptId">
<el-cascader v-model="deptList" style="width:50%" @change="cascaderChange" :options="dict.deptId" clearable
:props="{label:'label',value:'id'}">
</el-cascader>
</el-form-item>
<el-form-item label="照片" prop="photoPath">
<ImageUpload :value="form.photoPath"
@input="replaceImage"></ImageUpload>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button> <el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
...@@ -23,6 +29,7 @@ ...@@ -23,6 +29,7 @@
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
import {findParentIds} from "@/assets/utils/common.js"
export default { export default {
mixins: [form], mixins: [form],
components: { components: {
...@@ -40,11 +47,33 @@ ...@@ -40,11 +47,33 @@
], ],
// 表单校验 // 表单校验
rules: { rules: {
} name: [
}; {required: true,message: "请输入姓名", trigger: "blur" },
{max: 20,message: "最多只能录入20个字符",trigger: "blur",},
],
phone: [
{required: true,message: "请输入电话号码", trigger: "blur" },
{max: 11,message: "最多只能录入个字符",trigger: "blur",},
]
},
deptList:[]
}
}, },
methods: { methods: {
// formSelect(){
// let treeId = getTreeIds(this.dict.deptId,this.form.deptId)
// },
cascaderChange(val){
if(this.deptList.length > 0){
this.form.deptId = this.deptList[this.deptList.length - 1]
}else{
this.form.deptId = ''
}
console.log(this.form.deptId,'当前选择')
},
replaceImage(val){
this.form.photoPath = val
},
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset()
...@@ -52,7 +81,7 @@ ...@@ -52,7 +81,7 @@
this.urls.currUrl ="workman/edit"; this.urls.currUrl ="workman/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type="edit"
this.title = "修改工作人员"; this.title = "编辑";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
...@@ -60,7 +89,8 @@ ...@@ -60,7 +89,8 @@
this.urls.currUrl = "workman/add"; this.urls.currUrl = "workman/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type="add"
this.title = "新增工作人员"; this.title = "新增";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
...@@ -74,14 +104,21 @@ ...@@ -74,14 +104,21 @@
/**取消按钮 */ /**取消按钮 */
cancel() { cancel() {
this.open = false; this.open = false;
this.deptList = []
}, },
/**获取数据后弹框 */ /**获取数据后弹框 */
afterRender(data) { afterRender(data) {
this.open = true; this.open = true;
this.deptList = findParentIds(this.dict.deptId,this.form.deptId).reverse()
this.deptList = this.deptList.concat(this.form.deptId)
console.log(this.deptList,'ddd')
}, },
afterSubmit(data) { afterSubmit(data) {
this.open = false; this.open = false;
this.reset()
this.deptList = []
this.$emit("ok"); this.$emit("ok");
}, },
...@@ -89,7 +126,6 @@ ...@@ -89,7 +126,6 @@
reset() { reset() {
this.form = { this.form = {
deptId : 0, deptId : 0,
deptName : "",
name : "", name : "",
number : "", number : "",
phone : "", phone : "",
...@@ -101,7 +137,32 @@ ...@@ -101,7 +137,32 @@
if (this.$refs[refName]) { if (this.$refs[refName]) {
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, }
}, }
}; }
</script> </script>
<style scoped>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
<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>
</template> </template>
...@@ -38,6 +35,7 @@ ...@@ -38,6 +35,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "name", name: "name",
...@@ -58,7 +56,7 @@ ...@@ -58,7 +56,7 @@
{label: "电话号码", prop: "phone"}, {label: "电话号码", prop: "phone"},
{label: "照片", prop: "photoPath"}, {label: "照片", prop: "photoPath",formatter:this.formatterPic},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate}, {label: "创建时间", prop: "createTime", formatter: this.formatterDate},
{ {
...@@ -66,7 +64,7 @@ ...@@ -66,7 +64,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} />
); );
} }
} }
......
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