Commit dc4dba71 authored by 姬鋆屾's avatar 姬鋆屾

推,修改无数据的统一格式并修改表格样式问题

parent 916521e1
// table-list 所需的一系列操作方法
/**
* formatter
*
......@@ -10,8 +9,10 @@
*/
const formatter = (tableData, column, val) => {
const key = column.property;
if(tableData.dict && tableData.dict[key]){
const dict = tableData.dict[key]
console.log(val);
val = val ? val : "--";
if (tableData.dict && tableData.dict[key]) {
const dict = tableData.dict[key];
return dict[val] || val;
}
return val;
......@@ -27,11 +28,11 @@ const formatter = (tableData, column, val) => {
const formatterAmount = (row, column) => {
const property = column.property;
const amount = row[property];
if(!amount){
return '0.00';
if (!amount) {
return "0.00";
}
if(amount == 0){
return '0.00';
if (amount == 0) {
return "0.00";
}
return amount;
};
......@@ -46,15 +47,18 @@ const formatterAmount = (row, column) => {
const formatterDate = (row, column) => {
const property = column.property;
const time = row[property];
if(!time) return '';
if (!time) return "";
let date = new Date(Number(time));
let Y = date.getFullYear() + '-';
let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
let D = panLeft(date.getDate()) + ' ';
let h = panLeft(date.getHours()) + ':';
let m = panLeft(date.getMinutes()) + ':';
let Y = date.getFullYear() + "-";
let M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
let D = panLeft(date.getDate()) + " ";
let h = panLeft(date.getHours()) + ":";
let m = panLeft(date.getMinutes()) + ":";
let s = panLeft(date.getSeconds());
return Y+M+D+h+m+s;
return Y + M + D + h + m + s;
};
/**
......@@ -67,16 +71,19 @@ const formatterDate = (row, column) => {
const formatterDateOnly = (row, column) => {
const property = column.property;
const time = row[property];
if(!time) return '';
if (!time) return "";
let date = new Date(Number(time));
let Y = date.getFullYear() + '-';
let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
let D = panLeft(date.getDate()) + ' ';
return Y+M+D;
let Y = date.getFullYear() + "-";
let M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
let D = panLeft(date.getDate()) + " ";
return Y + M + D;
};
function panLeft(num){
return num < 10 ? '0'+num : num;
function panLeft(num) {
return num < 10 ? "0" + num : num;
}
/**
......@@ -90,18 +97,18 @@ function panLeft(num){
const find = (list, key, val) => {
let index = -1;
let data = null;
list.forEach((item, i)=>{
if(item[key] === val){
list.forEach((item, i) => {
if (item[key] === val) {
index = i;
data = JSON.parse(JSON.stringify(item));
return;
}
})
});
return {
index,
data,
}
}
};
};
/**
* 构造树型结构数据
......@@ -112,24 +119,32 @@ const find = (list, key, val) => {
* @param {*} rootId 根Id 默认 0
*/
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
id = id || "id";
parentId = parentId || "parentId";
children = children || "children";
rootId =
rootId ||
Math.min.apply(
Math,
data.map((item) => {
return item[parentId];
})
) ||
0;
//对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
const cloneData = JSON.parse(JSON.stringify(data));
//循环所有项
const treeData = cloneData.filter(father => {
let branchArr = cloneData.filter(child => {
const treeData = cloneData.filter((father) => {
let branchArr = cloneData.filter((child) => {
//返回每一项的子级数组
return father[id] === child[parentId]
return father[id] === child[parentId];
});
branchArr.length > 0 ? father.children = branchArr : '';
branchArr.length > 0 ? (father.children = branchArr) : "";
//返回第一层
return father[parentId] === rootId;
});
return treeData != '' ? treeData : data;
};
return treeData != "" ? treeData : data;
}
export {
formatter,
......@@ -137,5 +152,5 @@ export {
formatterDate,
formatterDateOnly,
find,
handleTree
handleTree,
};
<template>
<el-table
size='small'
size="small"
:data="tableData"
:row-key="handleRowKeyMethod"
:span-method="handleSpanMethod"
......@@ -8,114 +8,112 @@
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
@row-click="handleRowClick"
height="560"
:row-class-name="tableRowClassName"
:empty-text='emptyText'
:empty-text="emptyText"
border
style="width: 100%">
style="width: 100%"
>
<el-table-column
v-for="column in columns"
:key="column.prop"
:type="column.type"
:index="handleIndexMethod"
:selectable="handleSelectableMethod"
:prop="column.prop"
:label="column.label"
:width="column.width"
:sortable="column.sortable"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:formatter="column.formatter"
:reserve-selection="column.reserveSelection"
:subColumns="column.subColumns"
>
<el-table-column
v-for='column in columns'
:key='column.prop'
:type="column.type"
:index="handleIndexMethod"
:selectable="handleSelectableMethod"
:prop="column.prop"
:label="column.label"
:width="column.width"
:sortable="column.sortable"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:formatter='column.formatter'
:reserve-selection='column.reserveSelection'
:subColumns='column.subColumns'
>
<el-table-column
v-for='sunColumn in column.subColumns'
:key='sunColumn.prop'
:type="sunColumn.type"
:prop="sunColumn.prop"
:label="sunColumn.label"
:width="sunColumn.width"
:sortable="sunColumn.sortable"
:align="sunColumn.align || 'left'"
:formatter='sunColumn.formatter'
/>
</el-table-column>
v-for="sunColumn in column.subColumns"
:key="sunColumn.prop"
:type="sunColumn.type"
:prop="sunColumn.prop"
:label="sunColumn.label"
:width="sunColumn.width"
:sortable="sunColumn.sortable"
:align="sunColumn.align || 'left'"
:formatter="sunColumn.formatter"
/>
</el-table-column>
</el-table>
</template>
<script>
export default {
props: {
handleRowKeyMethod: {
type: Function,
required: false,
default: row => { return row.id }
default: (row) => {
return row.id;
},
},
handleSelectableMethod: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleIndexMethod: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleSpanMethod: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleSelectionChange: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleRowClick: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleSortChange: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
tableRowClassName: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
loading: {
type: Boolean,
required: false,
default: true
default: true,
},
tableData: {
type: Array,
required: false,
default: () => []
default: () => [],
},
columns: {
type: Array,
required: false,
default: ()=> [],
}
default: () => [],
},
},
computed: {
emptyText() {
return (!this.loading && !this.tableData.length) ? '暂无数据' : '加载中...'
return !this.loading && !this.tableData.length ? "暂无数据" : "加载中...";
},
},
methods:{
},
methods: {},
data() {
return {}
}
}
return {};
},
};
</script>
<template>
<el-table
v-loading="loading"
:data="tableData"
row-key="id"
border
@row-click="handleRowClick"
:row-class-name="tableRowClassName"
:default-expand-all="expand"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
<el-table
v-loading="loading"
:data="tableData"
row-key="id"
border
@row-click="handleRowClick"
:row-class-name="tableRowClassName"
:default-expand-all="expand"
height="560"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column
v-for="column in columns"
:key="column.prop"
:type="column.type"
:prop="column.prop"
:label="column.label"
:width="column.width"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:formatter="column.formatter"
>
<el-table-column
v-for='column in columns'
:key='column.prop'
:type="column.type"
:prop="column.prop"
:label="column.label"
:width="column.width"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:formatter='column.formatter'
>
</el-table-column>
</el-table>
</el-table-column>
</el-table>
</template>
<script>
export default {
props: {
handleSpanMethod: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleRowClick: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
tableRowClassName: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
loading: {
type: Boolean,
required: false,
default: true
default: true,
},
expand: {
type: Boolean,
required: false,
default: true
default: true,
},
tableData: {
type: Array,
required: false,
default: () => []
default: () => [],
},
columns: {
type: Array,
required: false,
default: ()=> [],
}
default: () => [],
},
},
computed: {
emptyText() {
return (!this.loading && !this.tableData.length) ? '暂无数据' : '加载中...'
return !this.loading && !this.tableData.length ? "暂无数据" : "加载中...";
},
},
data() {
return {}
}
}
return {};
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "GocomeRecordList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "userName",
type: "text",
label: "用户名称",
fuzzy: true
},
{
name: "afterStatus",
type: "text",
label: "状态"
},
{
name: "createTimeStart",
type: "date",
label: "创建时间"
},{
name: "createTimeEnd",
type: "date",
label: "结束时间"
}
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "用户名称", prop: "userName"},
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "GocomeRecordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "userName",
type: "text",
label: "用户名称",
fuzzy: true,
},
{
name: "afterStatus",
type: "text",
label: "状态",
},
{
name: "createTimeStart",
type: "date",
label: "创建时间",
},
{
name: "createTimeEnd",
type: "date",
label: "结束时间",
},
],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "电话", prop: "phone"},
{
label: "用户名称",
prop: "userName",
formatter: (row) => (row.userName ? row.userName : "--"),
},
{label: "所属部门", prop: "deptName"},
{
label: "电话",
prop: "phone",
formatter: (row) => (row.phone ? row.phone : "--"),
},
{label: "所属房间名称", prop: "roomName"},
{
label: "所属部门",
prop: "deptName",
formatter: (row) => (row.deptName ? row.deptName : "--"),
},
{label: "修改前状态", prop: "beforeStatus"},
{
label: "所属房间名称",
prop: "roomName",
formatter: (row) => (row.roomName ? row.roomName : "--"),
},
{label: "修改后状态", prop: "afterStatus"},
{
label: "修改前状态",
prop: "beforeStatus",
formatter: (row) => (row.beforeStatus ? row.beforeStatus : "--"),
},
{label: "修改时间", prop: "createTime", formatter: this.formatterDate},
{
label: "修改后状态",
prop: "afterStatus",
formatter: (row) => (row.afterStatus ? row.afterStatus : "--"),
},
]
}
};
}
{
label: "修改时间",
prop: "createTime",
formatter: this.formatterDate,
},
],
},
};
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData"/>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
......@@ -17,11 +15,10 @@ import moment from "moment/moment";
export default {
name: "MettingRecordList",
components: {
drawerShow
drawerShow,
},
mixins: [table],
created() {
},
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -43,158 +40,177 @@ export default {
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
that
.$post("/metting/record/delete?id=" + id, {})
.then((res) => {
// 更新数据
if (res && res.code == 1) {
that.getData();
that.afterDel(id);
}
})
.catch((error) => {
that.$message.error(error.message);
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
.then(() => {
that
.$post("/metting/record/delete?id=" + id, {})
.then((res) => {
// 更新数据
if (res && res.code == 1) {
that.getData();
that.afterDel(id);
}
})
.catch((error) => {
that.$message.error(error.message);
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
}
});
},
,
toFinish(row) {
this.loading = true;
this.$post("/metting/record/save", {
id: row.id, meetStatus: 2,
id: row.id,
meetStatus: 2,
})
.then((res) => {
if (res && res.code === 1) {
this.$message.success("结束成功!");
this.getData();
this.loading = false;
}
})
.catch((error) => {
this.$message.error(error.message);
});
}
.then((res) => {
if (res && res.code === 1) {
this.$message.success("结束成功!");
this.getData();
this.loading = false;
}
})
.catch((error) => {
this.$message.error(error.message);
});
},
},
data() {
return {
config: {
search: [ {
name: "meetName",
type: "text",
label: "会议名称",
fuzzy: true
},
search: [
{
name: "meetName",
type: "text",
label: "会议名称",
fuzzy: true,
},
{
name: "meetStatus",
type: "select",
label: "会议状态"
label: "会议状态",
},
{
name: "meetDateStart",
type: "date",
label: "会议开始日期"
},{
label: "会议开始日期",
},
{
name: "meetDateEnd",
type: "date",
label: "会议结束日期"
}
],
label: "会议结束日期",
},
],
columns: [
{type: "selection", width: 60},
{type: "index", label: "序号", width: 50},
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "会议名称", prop: "meetName"},
{label: "开会房间", prop: "roomName"},
{
label: "会议名称",
prop: "meetName",
formatter: (row) => (row.meetName ? row.meetName : "--"),
},
{
label: "开会房间",
prop: "roomName",
formatter: (row) => (row.roomName ? row.roomName : "--"),
},
{
label: "开会日期", prop: "meetDate",
label: "开会日期",
prop: "meetDate",
formatter: (row) => {
let meetDate = moment(row.meetDate).format('YYYY-MM-DD');
return (
<span>{meetDate}</span>
);
let meetDate = moment(row.meetDate).format("YYYY-MM-DD");
return <span>{meetDate}</span>;
},
},
{
label: "开始时间", prop: "meetTimeStart",
label: "开始时间",
prop: "meetTimeStart",
formatter: (row) => {
let meetTimeStart = moment(row.meetTimeStart).format('HH:mm');
let meetTimeEnd = moment(row.meetTimeEnd).format('HH:mm');
let meetTimeStart = moment(row.meetTimeStart).format("HH:mm");
let meetTimeEnd = moment(row.meetTimeEnd).format("HH:mm");
return (
<span>{meetTimeStart}~{meetTimeEnd}</span>
<span>
{meetTimeStart}~{meetTimeEnd}
</span>
);
}
},
},
{
label: "开会部门",
prop: "meetDeptName",
formatter: (row) => (row.meetDeptName ? row.meetDeptName : "--"),
},
{label: "开会部门", prop: "meetDeptName"},
{label: "结束方式", prop: "finishMethod", formatter: this.formatter},
{
label: "结束方式",
prop: "finishMethod",
formatter: this.formatter,
},
{label: "会议状态", prop: "meetStatus", formatter: this.formatter},
{ label: "会议状态", prop: "meetStatus", formatter: this.formatter },
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
let editButton = (
<el-button
size="small"
type="text"
icon="el-icon-edit"
onClick={() => {
this.toEdit(row);
}}
>
编辑
</el-button>
<el-button
size="small"
type="text"
icon="el-icon-edit"
onClick={() => {
this.toEdit(row);
}}
>
编辑
</el-button>
);
let viewButton = (
<el-button
size="small"
type="text"
icon="el-icon-view"
onClick={() => {
this.toView(row);
}}
>
查看
</el-button>
<el-button
size="small"
type="text"
icon="el-icon-view"
onClick={() => {
this.toView(row);
}}
>
查看
</el-button>
);
let delButton = (
<el-button
size="small"
type="text"
icon="el-icon-delete"
onClick={() => {
this.toDel(row.id);
}}
>
删除
</el-button>
<el-button
size="small"
type="text"
icon="el-icon-delete"
onClick={() => {
this.toDel(row.id);
}}
>
删除
</el-button>
);
let finishButton = (
<el-button
size="small"
type="text"
icon="el-icon-document"
onClick={() => {
this.toFinish(row);
}}
>
结束
</el-button>
<el-button
size="small"
type="text"
icon="el-icon-document"
onClick={() => {
this.toFinish(row);
}}
>
结束
</el-button>
);
let listButtons = [];
if (row.meetStatus === 0) {
......@@ -208,11 +224,11 @@ export default {
listButtons.push(viewButton);
}
return <div>{listButtons}</div>;
}
}
]
}
},
},
],
},
};
}
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "RoomList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
formatter={options.formatter}
>
</el-table-column>
);
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "RoomList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
formatter={options.formatter}
></el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet: [
{ label: "设备编码", prop: "deviceCode", width: 150 },
{ label: "设备名称", prop: "deviceName", width: 150 },
],
config: {
search: [
{
name: "userName",
type: "text",
label: "房间名称",
fuzzy: true,
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet:[
{label: "设备编码", prop: "deviceCode", width: 150},
{label: "设备名称", prop: "deviceName", width: 150}
],
config: {
search: [
{
name: "userName",
type: "text",
label: "房间名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "房间名称", prop: "roomName"},
{
label: "房间名称",
prop: "roomName",
formatter: (row) => (row.roomName ? row.roomName : "--"),
},
{label: "房间编码", prop: "roomCode"},
{
label: "房间编码",
prop: "roomCode",
formatter: (row) => (row.roomCode ? row.roomCode : "--"),
},
{label: "房间类型", prop: "roomType",formatter: this.formatter},
{ label: "房间类型", prop: "roomType", formatter: this.formatter },
{label: "绑定设备",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.roomDeviceList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
{
label: "绑定设备",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.roomDeviceList)}
<el-button type="text" slot="reference">
详细
</el-button>
</el-popover>
);
},
},
{label: "员工人数", prop: "countPerson", formatter: this.formatter},
{ label: "员工人数", prop: "countPerson", formatter: this.formatter },
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
{
label: "操作",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
};
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "RoomWorkmanList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "RoomWorkmanList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "房间名称", prop: "roomName"},
{
label: "房间名称",
prop: "roomName",
formatter: (row) => (row.roomName ? row.roomName : "--"),
},
{label: "工作人员名称", prop: "workmanName"},
{
label: "工作人员名称",
prop: "workmanName",
formatter: (row) => (row.workmanName ? row.workmanName : "--"),
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
};
</script>
\ No newline at end of file
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig" />
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig" />
</div>
</template>
......@@ -26,36 +25,41 @@ export default {
},
],
columns: [
{ type: "index", label: "序号",align:"center", width: 50 },
{ type: "index", label: "序号", align: "center", width: 50 },
{
prop: "userName",
label: "用户名称",
align: "center",
formatter: (row) => (row.userName ? row.userName : "--"),
},
{
prop: "loginName",
label: "用户登录名",
align: "center",
formatter: (row) => (row.loginName ? row.loginName : "--"),
},
{
prop: "requestUrl",
label: "请求地址",
align: "center",
formatter: (row) => (row.requestUrl ? row.requestUrl : "--"),
},
{
prop: "content",
label: "操作内容",
align: "center",
formatter: (row) => (row.content ? row.content : "--"),
},
{
prop: "ip",
label: "操作IP地址",
align: "center",
formatter: (row) => (row.ip ? row.ip : "--"),
},
{
......
<template>
<div className="page">
<el-card>
<LayoutTable notPagination ref="layoutTable" :data="tableData" :config="tableConfig"/>
<LayoutTable
notPagination
ref="layoutTable"
:data="tableData"
:config="tableConfig"
/>
</el-card>
<dialog-show ref="dialogform" @ok="getData"/>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
import {handleTree} from "@/assets/utils/table";
import { handleTree } from "@/assets/utils/table";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import table from "@/assets/mixins/table";
......@@ -17,15 +22,15 @@ import dialogShow from "./dialogshow";
export default {
name: "Menu",
mixins: [table],
components: {Treeselect, dialogShow},
components: { Treeselect, dialogShow },
created() {
this.query={"page":1,"size":-1}
this.query = { page: 1, size: -1 };
},
methods: {
afterRender(data) {
data.data = handleTree(data.data, "id", "parentId");
this.menuOptions = data.data;
this.$refs.layoutTable.showType = "treetable"
this.$refs.layoutTable.showType = "treetable";
},
handleUp(data) {
......@@ -46,17 +51,17 @@ export default {
id: id,
type: type,
})
.then((res) => {
if (res && res.code && res.code == 1) {
this.getData()
this.loading = false;
this.$message.success("更新排序成功!");
}
})
.catch((error) => {
.then((res) => {
if (res && res.code && res.code == 1) {
this.getData();
this.loading = false;
this.$message.error(error.message);
});
this.$message.success("更新排序成功!");
}
})
.catch((error) => {
this.loading = false;
this.$message.error(error.message);
});
},
handleAdd(row) {
......@@ -70,17 +75,17 @@ export default {
/** 重写编辑方法 */
toEdit(row) {
this.loading = true;
this.$post(this.pageInfo.exclude, {id: row.id})
.then((res) => {
if (res && res.code && res.code == 1) {
this.menuOptions = handleTree(res.data.data);
this.$refs.dialogform.edit(row, this.menuOptions);
this.loading = false;
}
})
.catch((error) => {
this.$message.error(error.message);
})
this.$post(this.pageInfo.exclude, { id: row.id })
.then((res) => {
if (res && res.code && res.code == 1) {
this.menuOptions = handleTree(res.data.data);
this.$refs.dialogform.edit(row, this.menuOptions);
this.loading = false;
}
})
.catch((error) => {
this.$message.error(error.message);
});
},
/** 重写查看方法 */
toView(row) {
......@@ -89,145 +94,146 @@ export default {
// 展示菜单图标
showIcon(row, column) {
return <i class={'el-icon-'+row.imgPath}></i>
return <i class={"el-icon-" + row.imgPath}></i>;
},
handleStatus(row){
if(row.status==1){
this.$post("/menu/change/status", {id:row.id,status:0})
.then(res => {
if(res.code==1){
row.status=0;
}
})
.catch(error => {
this.$message.error(error.message);
})
}else{
this.$post("/menu/change/status", {id:row.id,status:1})
.then(res => {
if(res.code==1){
row.status=1;
}
})
.catch(error => {
this.$message.error(error.message);
})
handleStatus(row) {
if (row.status == 1) {
this.$post("/menu/change/status", { id: row.id, status: 0 })
.then((res) => {
if (res.code == 1) {
row.status = 0;
}
})
.catch((error) => {
this.$message.error(error.message);
});
} else {
this.$post("/menu/change/status", { id: row.id, status: 1 })
.then((res) => {
if (res.code == 1) {
row.status = 1;
}
})
.catch((error) => {
this.$message.error(error.message);
});
}
},
},
data() {
return {
value: '1',
value: "1",
config: {
isshowTabPane:true,
isshowTabPane: true,
/** 树表是否默认展开 */
expand: false,
showType: "treetable",
search: [],
columns: [
{
type: 'selection',
type: "selection",
width: 60,
},
{
prop: 'id',
label: 'ID',
prop: "id",
label: "ID",
width: 120,
formatter: (row) => (row.id ? row.id : "--"),
},
{
prop: 'name',
label: '名称',
prop: "name",
label: "名称",
width: 160,
formatter: (row) => (row.name ? row.name : "--"),
},
{
prop: 'imgPath',
label: '图标',
prop: "imgPath",
label: "图标",
width: 50,
formatter: this.showIcon,
},
{
prop: 'authType',
label: '权限类型',
prop: "authType",
label: "权限类型",
formatter: this.formatter,
},
{
prop: 'parentId',
label: '父ID',
prop: "parentId",
label: "父ID",
formatter: (row) => (row.parentId ? row.parentId : "--"),
},
{
prop: 'url',
label: '地址',
prop: "url",
label: "地址",
formatter: (row) => (row.url ? row.url : "--"),
},
{
prop: 'status',
label: '状态',
prop: "status",
label: "状态",
width: 100,
formatter: row => {
formatter: (row) => {
return (
<el-switch
value={row.status+""}
active-color="#13ce66"
inactive-color="#ff4949"
active-value='1'
inactive-value='0'
onChange={() => {
this.handleStatus(row);
}}
>
</el-switch>
<el-switch
value={row.status + ""}
active-color="#13ce66"
inactive-color="#ff4949"
active-value="1"
inactive-value="0"
onChange={() => {
this.handleStatus(row);
}}
></el-switch>
);
}
},
},
{
label: "操作",
width: 280,
formatter: row => {
formatter: (row) => {
return (
<div>
<el-link
style="margin-right:5px;margin-left:5px"
icon="el-icon-top"
onClick={() => {
this.handleUp(row);
}}
></el-link>
<div>
<el-link
style="margin-right:5px;margin-left:5px"
icon="el-icon-top"
onClick={() => {
this.handleUp(row);
}}
></el-link>
<el-link
style="margin-right:5px;margin-left:5px"
icon="el-icon-bottom"
onClick={() => {
this.handleDown(row);
}}
<el-link
style="margin-right:5px;margin-left:5px"
icon="el-icon-bottom"
onClick={() => {
this.handleDown(row);
}}
></el-link>
></el-link>
<el-button
size="mini"
type="text"
icon="el-icon-edit-outline"
onClick={() => {
this.handleAdd(row);
}}
>
新增
</el-button>
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
</div>
<el-button
size="mini"
type="text"
icon="el-icon-edit-outline"
onClick={() => {
this.handleAdd(row);
}}
>
新增
</el-button>
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
</div>
);
}
}
]
}
},
},
],
},
};
}
},
};
</script>
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
<LayoutTable :data="tableData" :config="tableConfig" />
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
import table from '@/assets/mixins/table';
import table from "@/assets/mixins/table";
import dialogShow from "./dialogshow";
export default {
mixins: [table],
components: {dialogShow },
components: { dialogShow },
methods: {
// 新增
toAdd(row) {
......@@ -21,92 +21,102 @@ export default {
this.$refs.dialogform.edit(row);
},
// 查看
toView(row,) {
this.$refs.dialogform.view(row);
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: 'name',
type: 'text',
label: '参数名称',
name: "name",
type: "text",
label: "参数名称",
},
],
columns: [
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{ type: "selection", reserveSelection: true, width: 60 },
{ type: "index", label: "序号", align: "center", width: 50 },
{
prop: 'name',
label: '参数名称',
prop: "name",
label: "参数名称",
formatter: (row) => (row.name ? row.name : "--"),
},
{
prop: 'firstOrganize',
label: '一级组织',
prop: "firstOrganize",
label: "一级组织",
formatter: (row) => (row.firstOrganize ? row.firstOrganize : "--"),
},
{
prop: 'secondOrganize',
label: '二级组织',
prop: "secondOrganize",
label: "二级组织",
formatter: (row) =>
row.secondOrganize ? row.secondOrganize : "--",
},
{
prop: 'paramKey',
label: '参数键',
prop: "paramKey",
label: "参数键",
formatter: (row) => (row.paramKey ? row.paramKey : "--"),
},
{
prop: 'paramValue',
label: '参数值',
prop: "paramValue",
label: "参数值",
formatter: (row) => (row.paramValue ? row.paramValue : "--"),
// formatter: this.util_short('paramValue', 20)
},
{
prop: 'validStatus',
label: '有效状态',
prop: "validStatus",
label: "有效状态",
width: 70,
formatter: this.formatter
formatter: this.formatter,
},
{
prop: 'modStatus',
label: '修改状态',
prop: "modStatus",
label: "修改状态",
width: 100,
formatter: this.formatter
formatter: this.formatter,
},
{
prop: 'displayType',
label: '展现类型',
prop: "displayType",
label: "展现类型",
width: 100,
formatter: this.formatter
formatter: this.formatter,
},
{
prop: 'remark',
label: '备注',
prop: "remark",
label: "备注",
formatter: (row) => (row.remark ? row.remark : "--"),
},
{
label: '操作',
label: "操作",
width: 260,
formatter: (row)=> {
formatter: (row) => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
)
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
}
}
}
};
},
};
</script>
<style lang="css">
.el-tooltip__popper{
.el-tooltip__popper {
display: inline-block;
max-width: 80%;
overflow: hidden;
text-overflow: ellipsis;
white-space: normal ;
white-space: normal;
line-height: 18px;
cursor: pointer;
}
</style>
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' />
<dialog-show ref="dialogform" @ok="getData" />
<LayoutTable :data="tableData" :config="tableConfig" />
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
import table from '@/assets/mixins/table';
import table from "@/assets/mixins/table";
import dialogShow from "./dialogshow";
export default {
mixins: [table],
components: {
components: {
dialogShow,
},
methods: {
......@@ -32,56 +32,62 @@ export default {
config: {
search: [
{
name: 'name',
type: 'text',
label: '资源名称',
name: "name",
type: "text",
label: "资源名称",
},
{
name: 'authType',
type: 'select',
label: '权限类型',
name: "authType",
type: "select",
label: "权限类型",
},
],
columns: [
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{ type: "selection", reserveSelection: true, width: 60 },
{ type: "index", label: "序号", align: "center", width: 50 },
// {
// prop: 'id',
// label: 'ID',
// },
{
prop: 'name',
label: '名称',
prop: "name",
label: "名称",
formatter: (row) => (row.name ? row.name : "--"),
},
{
prop: 'url',
label: '资源',
prop: "url",
label: "资源",
formatter: (row) => (row.url ? row.url : "--"),
},
{
prop: 'authType',
label: '认证类型',
prop: "authType",
label: "认证类型",
formatter: this.formatter,
},
},
// {
// prop: 'userType',
// label: '用户类型',
// width: 100,
// formatter: this.formatter,
// },
// },
{
label: '操作',
label: "操作",
witdh: 120,
formatter: (row)=> {
formatter: (row) => {
return (
<table-buttons noView row={row} onEdit={this.toEdit} onDel={this.toDel} />
)
<table-buttons
noView
row={row}
onEdit={this.toEdit}
onDel={this.toDel}
/>
);
},
},
],
},
}
}
}
};
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" />
<LayoutTable :data="tableData" :config="tableConfig" />
<dialog-show ref="dialogform" @ok="getData" />
<el-dialog title="分配权限" :visible.sync="auth.visible">
<el-form :model="auth.form">
......@@ -158,7 +158,7 @@ import table from "@/assets/mixins/table";
import dialogShow from "./dialogshow";
export default {
mixins: [table],
components: { dialogShow },
components: { dialogShow },
created() {},
methods: {
beforeRender(data) {
......@@ -186,7 +186,7 @@ export default {
return this.allResources;
}
return new Promise((resolve, reject) => {
this.$post("/resource/list", {size: -1})
this.$post("/resource/list", { size: -1 })
.then(({ data }) => {
resolve(this.groupByAuth(data.data));
})
......@@ -224,8 +224,8 @@ export default {
getRoleAuths(id) {
return new Promise((resolve, reject) => {
this.$post("/role/auth/list", {
"roleId": id,
"size": -1,
roleId: id,
size: -1,
})
.then(({ data }) => {
const result = data.data.map((i) => i.resourceId);
......@@ -240,7 +240,7 @@ export default {
this.auth.form.resourceIdList = this.auth.checkList
.filter((i) => typeof i === "number")
.join(",");
await this.$post("/role/auth/distributionSource", this.auth.form);
await this.$post("/role/auth/distributionSource", this.auth.form);
this.auth.visible = false;
this.auth.form = this.initForm();
this.$message.success("操作成功");
......@@ -255,7 +255,7 @@ export default {
// return this.allUsers;
// }
return new Promise((resolve, reject) => {
this.$post("/user/list", { size: -1 })
this.$post("/user/list", { size: -1 })
.then(({ data }) => {
resolve(data.data);
})
......@@ -281,10 +281,10 @@ export default {
async getUsersoo(userTypeIdVal, loginNameVal, realNameVal) {
const query = {
"size": -1,
"userType": userTypeIdVal,
"loginName": loginNameVal,
"realName": realNameVal,
size: -1,
userType: userTypeIdVal,
loginName: loginNameVal,
realName: realNameVal,
};
return new Promise((resolve, reject) => {
this.$post("/user/list", query)
......@@ -336,8 +336,8 @@ export default {
getRoleUsers(id) {
return new Promise((resolve, reject) => {
this.$post("/role/user/list", {
"roleId": id,
"size": -1,
roleId: id,
size: -1,
})
.then(({ data }) => {
const result = data.data
......@@ -380,8 +380,8 @@ export default {
async saveUser() {
try {
//this.user.form.userIdList = this.user.checkList.join(",");
this.user.form.userIdList = this.user.checkList
await this.$post("/role/user/distributionUser", this.user.form,);
this.user.form.userIdList = this.user.checkList;
await this.$post("/role/user/distributionUser", this.user.form);
this.user.visible = false;
this.user.form = this.initForm();
this.$message.success("操作成功");
......@@ -445,19 +445,20 @@ export default {
type: "text",
label: "角色名",
},
],
columns: [
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{ type: "selection", reserveSelection: true, width: 60 },
{ type: "index", label: "序号", align: "center", width: 50 },
{
prop: "name",
label: "角色名",
formatter: (row) => (row.name ? row.name : "--"),
},
{
{
prop: "remark",
label: "备注",
formatter: (row) => (row.remark ? row.remark : "--"),
},
// {
// prop: "roleType",
......@@ -470,7 +471,7 @@ export default {
label: "创建时间",
formatter: this.formatterDate,
},
{
label: "操作",
witdh: 120,
......@@ -483,16 +484,15 @@ export default {
onEdit={this.toEdit}
onDel={this.toDel}
/>{" "}
<el-button
icon="el-icon-share"
size="mini"
type="text"
onClick={() => this.setAuth(row)}
>
分配权限
</el-button>
{/*
<el-button
icon="el-icon-share"
size="mini"
type="text"
onClick={() => this.setAuth(row)}
>
分配权限
</el-button>
{/*
<el-button
icon="el-icon-goods"
size="mini"
......@@ -547,5 +547,3 @@ export default {
margin-top: 20px;
}
</style>
......@@ -41,23 +41,26 @@ export default {
},
],
columns: [
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{ type: "selection", reserveSelection: true, width: 60 },
{ type: "index", label: "序号", align: "center", width: 50 },
{
prop: "name",
label: "任务名称",
align: "center",
formatter: (row) => (row.name ? row.name : "--"),
},
{
prop: "excuteHost",
label: "执行主机",
align: "center",
formatter: (row) => (row.excuteHost ? row.excuteHost : "--"),
},
{
prop: "excuteContainer",
label: "执行容器",
align: "center",
formatter: (row) =>
row.excuteContainer ? row.excuteContainer : "--",
},
{
prop: "excuteStrategy",
......@@ -69,6 +72,8 @@ export default {
prop: "lastExcuteHost",
label: "最后执行主机",
align: "center",
formatter: (row) =>
row.lastExcuteHost ? row.lastExcuteHost : "--",
},
{
prop: "lastExcuteTime",
......@@ -103,5 +108,3 @@ export default {
},
};
</script>
......@@ -110,8 +110,8 @@ export default {
getRoleUsers(id) {
return new Promise((resolve, reject) => {
this.$post("/role/user/list", {
"userId": id,
"size": -1,
userId: id,
size: -1,
})
.then(({ data }) => {
const result = data.data
......@@ -152,22 +152,25 @@ export default {
},
config: {
columns: [
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{ type: "selection", reserveSelection: true, width: 60 },
{ type: "index", label: "序号", align: "center", width: 50 },
{
prop: "loginName",
label: "登录名称",
align: "center",
formatter: (row) => (row.loginName ? row.loginName : "--"),
},
{
prop: "realName",
label: "用户名称",
align: "center",
formatter: (row) => (row.realName ? row.realName : "--"),
},
{
prop: "mobile",
label: "手机号码",
align: "center",
formatter: (row) => (row.mobile ? row.mobile : "--"),
},
{
prop: "roleIds",
......@@ -237,5 +240,3 @@ export default {
},
};
</script>
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' notAdd notDel />
<LayoutTable :data="tableData" :config="tableConfig" notAdd notDel />
</div>
</template>
<script>
import table from '@/assets/mixins/table';
import table from "@/assets/mixins/table";
export default {
mixins: [table],
methods: {
},
methods: {},
data() {
return {
config: {
columns: [
{
type: 'selection',
type: "selection",
width: 60,
},
{
prop: 'id',
label: 'ID',
prop: "id",
label: "ID",
width: 60,
formatter: (row) => (row.id ? row.id : "--"),
},
{
prop: 'code',
label: '验证码',
prop: "code",
label: "验证码",
formatter: (row) => (row.code ? row.code : "--"),
},
{
prop: 'url',
label: '校验地址',
prop: "url",
label: "校验地址",
formatter: (row) => (row.url ? row.url : "--"),
},
{
prop: 'mobile',
label: '手机号码',
prop: "mobile",
label: "手机号码",
formatter: (row) => (row.mobile ? row.mobile : "--"),
},
{
prop: 'email',
label: '校验邮箱',
prop: "email",
label: "校验邮箱",
formatter: (row) => (row.email ? row.email : "--"),
},
{
prop: 'type',
label: '校验方式',
prop: "type",
label: "校验方式",
width: 130,
formatter: this.formatter,
},
{
prop: 'sessionId',
label: '会话ID'
prop: "sessionId",
label: "会话ID",
formatter: (row) => (row.sessionId ? row.sessionId : "--"),
},
{
prop: 'ip',
label: 'IP地址'
prop: "ip",
label: "IP地址",
formatter: (row) => (row.ip ? row.ip : "--"),
},
{
prop: 'createTime',
label: '创建时间'
prop: "createTime",
label: "创建时间",
formatter: (row) => (row.createTime ? row.createTime : "--"),
},
{
prop: 'lapseTime',
label: '失效时间'
prop: "lapseTime",
label: "失效时间",
formatter: (row) => (row.lapseTime ? row.lapseTime : "--"),
},
{
label: '操作',
formatter: (row)=> {
label: "操作",
formatter: (row) => {
return (
<table-buttons row={row} onEdit={this.toEdit} onDel={this.toDel} />
)
<table-buttons
row={row}
onEdit={this.toEdit}
onDel={this.toDel}
/>
);
},
},
],
search: [
{
name: 'mobile',
type: 'text',
label: '手机号码',
name: "mobile",
type: "text",
label: "手机号码",
},
]
],
},
}
}
}
};
},
};
</script>
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