Commit 22d813a8 authored by 姬鋆屾's avatar 姬鋆屾

feated:修改测试bug及系统优化项

parent 0aace81a
......@@ -8,7 +8,7 @@
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
@row-click="handleRowClick"
height="520"
height="600"
:row-class-name="tableRowClassName"
:empty-text="emptyText"
border
......
......@@ -192,6 +192,11 @@ export default {
type: String,
default: "",
},
rows: {
type: Number,
default: 5,
},
},
methods: {
emit() {
......
......@@ -73,7 +73,7 @@ export default {
<style lang="less">
.pagination-wapper{
background: #fff;
margin-top: 10px;
margin-top: 20px;
.el-pagination{
margin-left: auto;
}
......
......@@ -30,7 +30,9 @@
<el-select
v-model="form[item.name]"
:placeholder=" item.placeholder ? item.placeholder : '请输入' + item.label"
:placeholder="
item.placeholder ? item.placeholder : '请选择' + item.label
"
:filterable="item.filterable"
:multiple="item.multiple"
clearable="true"
......@@ -58,7 +60,7 @@
filterable
remote
v-if="item.type === 'remoteSelect'"
placeholder="请输入关键词"
placeholder="请输入或选择关键词"
searchType="item.searchType"
:remote-method="
(query) => {
......@@ -326,13 +328,12 @@ export default {
) {
//支持模糊查询,收尾增加百分号
val = val.trim();
if(val.charAt(0)!='%'){
val = "%" + val
if (val.charAt(0) != "%") {
val = "%" + val;
}
if(val.charAt(val.length-1)!='%'){
val =val + "%";
if (val.charAt(val.length - 1) != "%") {
val = val + "%";
}
}
});
newData[item] = this.decodeVal(val);
......
import Vue from 'vue'
import Router from 'vue-router'
import Store from './store'
import Layout from './views/Layout.vue'
import fileNotFound from './views/errors/fileNotFound.vue'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })
import Vue from "vue";
import Router from "vue-router";
import Store from "./store";
import Layout from "./views/Layout.vue";
import fileNotFound from "./views/errors/fileNotFound.vue";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
NProgress.configure({ showSpinner: false });
Vue.use(Router);
const originalPush = VueRouter.prototype.push
const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = function push(location, onResolve, onReject) {
if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
return originalPush.call(this, location).catch(err => err)
}
if (onResolve || onReject)
return originalPush.call(this, location, onResolve, onReject);
return originalPush.call(this, location).catch((err) => err);
};
const router = new Router({
routes: [
builder('/authentication', 'login/authentication'),
builder('/login', 'login/login'),
builder('/go', 'codeGen/index'),
builder('/sso', 'SSO'),
{
path: '/',
name: 'layout',
component: Layout,
meta: {
requiresAuth: true
},
children: [
...restBuilder('oper/log', 'system/log'), // 系统管理-操作日志
...restBuilder('validcode', 'system/validcode'), // 接入管理-接入信息
...restBuilder('menu', 'system/menu'), // 系统管理--菜单管理
...restBuilder('resource', 'system/resource'), // 系统管理--资源管理
...restBuilder('role', 'system/role'), // 系统管理--角色管理
...restBuilder('user', 'system/user'), // 用户管理 -- 管理用户
...restBuilder('param', 'system/param'), // 系统管理--参数管理
...restBuilder('task', 'system/task'), // 系统管理--任务管理
...restBuilder('product', 'product'),//产品
...restBuilder('product/question', 'product/question'),//产品常见问题
...restBuilder('company', 'company'),//公司
...restBuilder('labels', 'labels'),//标注
...restBuilder('company/labels', 'company/labels'),//公司标注
...restBuilder('category', 'category'),//分类
...restBuilder('product/category', 'product/category'),//产品分类
...restBuilder('position', 'position'),//职位信息
...restBuilder('news', 'news'),//新闻
...restBuilder('feedback', 'feedback'),//反馈信息
...restBuilder('staff', 'staff'),//员工基本信息
...restBuilder('staff/leave', 'staff/leave'),//员工离职信息
...restBuilder('bussinesscard', 'bussinesscard'),//名片基本信息
...restBuilder('staff/record', 'staff/record'),//客户访问记录信息
...restBuilder('news/category', 'news/category'),//新闻频道分类
...restBuilder('news/category', 'news/category'),//新闻频道分类
...restBuilder("dept", "dept"), //部门
...restBuilder('page', 'page'),//页面
...restBuilder('favorites/pages', 'favorites/pages'),//收藏页面
...restBuilder('favorites/product', 'favorites/product'),//收藏产品
...restBuilder('favorites/news', 'favorites/news'),//收藏新闻
...restBuilder('favorites/businesscard', 'favorites/businesscard'),//收藏名片
//以下为基础路由配置
builder('/', 'Home'),
builder('/home', 'Home'),
builder('index', 'Home'),
builder('login/updatePwd', 'login/updatePwd'),
builder('403', 'errors/403'),
builder('*', 'errors/404'),
]
},
]
})
routes: [
builder("/authentication", "login/authentication"),
builder("/login", "login/login"),
builder("/go", "codeGen/index"),
builder("/sso", "SSO"),
{
path: "/",
name: "layout",
component: Layout,
meta: {
requiresAuth: true,
},
children: [
...restBuilder("oper/log", "system/log"), // 系统管理-操作日志
...restBuilder("validcode", "system/validcode"), // 接入管理-接入信息
...restBuilder("menu", "system/menu"), // 系统管理--菜单管理
...restBuilder("resource", "system/resource"), // 系统管理--资源管理
...restBuilder("role", "system/role"), // 系统管理--角色管理
...restBuilder("user", "system/user"), // 用户管理 -- 管理用户
...restBuilder("param", "system/param"), // 系统管理--参数管理
...restBuilder("task", "system/task"), // 系统管理--任务管理
...restBuilder("product", "product"), //产品
...restBuilder("product/question", "product/question"), //产品常见问题
...restBuilder("company", "company"), //公司
...restBuilder("labels", "labels"), //标注
...restBuilder("company/labels", "company/labels"), //公司标注
...restBuilder("category", "category"), //分类
...restBuilder("product/category", "product/category"), //产品分类
...restBuilder("position", "position"), //职位信息
...restBuilder("news", "news"), //新闻
...restBuilder("feedback", "feedback"), //反馈信息
...restBuilder("bussinesscard/record", "bussinesscard/record"), //流量管理
...restBuilder("staff", "staff"), //员工基本信息
...restBuilder("staff/leave", "staff/leave"), //员工离职信息
...restBuilder("bussinesscard", "bussinesscard"), //名片基本信息
...restBuilder("staff/record", "staff/record"), //客户访问记录信息
...restBuilder("news/category", "news/category"), //新闻频道分类
...restBuilder("news/category", "news/category"), //新闻频道分类
...restBuilder("dept", "dept"), //部门
...restBuilder("page", "page"), //页面
...restBuilder("favorites/pages", "favorites/pages"), //收藏页面
...restBuilder("favorites/product", "favorites/product"), //收藏产品
...restBuilder("favorites/news", "favorites/news"), //收藏新闻
...restBuilder("favorites/businesscard", "favorites/businesscard"), //收藏名片
//以下为基础路由配置
builder("/", "Home"),
builder("/home", "Home"),
builder("index", "Home"),
builder("login/updatePwd", "login/updatePwd"),
builder("403", "errors/403"),
builder("*", "errors/404"),
],
},
],
});
/**
* rest路由生成器
......@@ -88,12 +86,12 @@ const router = new Router({
* @returns {array} [] reset路由数组,包含list/edit/add/view
*/
function restBuilder(path, component = path) {
let arr = [];
arr.push(builder(`${path}/list`, `${component}/list`));
arr.push(builder(`${path}/edit`, `${component}/show`));
arr.push(builder(`${path}/add`, `${component}/show`));
arr.push(builder(`${path}/view`, `${component}/show`));
return arr;
let arr = [];
arr.push(builder(`${path}/list`, `${component}/list`));
arr.push(builder(`${path}/edit`, `${component}/show`));
arr.push(builder(`${path}/add`, `${component}/show`));
arr.push(builder(`${path}/view`, `${component}/show`));
return arr;
}
/**
......@@ -105,60 +103,66 @@ function restBuilder(path, component = path) {
* @returns {any} {} 路由对象
*/
function builder(path, component = path, requiresAuth = false) {
return {
path: path,
name: path || 'homepage',
component: getComponent(component),
meta: {
requiresAuth: requiresAuth
}
}
return {
path: path,
name: path || "homepage",
component: getComponent(component),
meta: {
requiresAuth: requiresAuth,
},
};
}
function getComponent(fileName) {
try {
return require('./views/' + fileName).default
} catch (error) {
return fileNotFound;
}
try {
return require("./views/" + fileName).default;
} catch (error) {
return fileNotFound;
}
}
//检查是否跳转到sso地址
function ssoCheck(to, from, next) {
let redirect = (to.path === '/login/updatePwd') ? '/#/updatePwd' : ''
redirect = (redirect === '' && to.path === '/login') ? (location.protocol + '//' + location.host + '/#' + from.fullPath) : redirect
if (redirect != '') {
next(false)
window.location.href = '//' + location.host + '/m/login/logout?redirect=' + encodeURIComponent(redirect)
return true;
}
return false;
let redirect = to.path === "/login/updatePwd" ? "/#/updatePwd" : "";
redirect =
redirect === "" && to.path === "/login"
? location.protocol + "//" + location.host + "/#" + from.fullPath
: redirect;
if (redirect != "") {
next(false);
window.location.href =
"//" +
location.host +
"/m/login/logout?redirect=" +
encodeURIComponent(redirect);
return true;
}
return false;
}
router.afterEach(() => {
document.body.scrollTop = 0
document.documentElement.scrollTop = 0
})
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
});
// 路由鉴权
router.beforeEach((to, from, next) => {
// if (ssoCheck(to, from, next)) { //sso鉴权检查
// return
// }
if (to.matched.some(record => record.meta.requiresAuth)) {
if (Store.state.isLogin) {
next();
} else {
next({
path: '/authentication',
query: {
redirect: to.fullPath
}
})
}
// if (ssoCheck(to, from, next)) { //sso鉴权检查
// return
// }
if (to.matched.some((record) => record.meta.requiresAuth)) {
if (Store.state.isLogin) {
next();
} else {
next();
next({
path: "/authentication",
query: {
redirect: to.fullPath,
},
});
}
})
} else {
next();
}
});
export default router;
<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: "BussinesscardList",
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);
},
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "BussinesscardList",
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: "name",
type: "text",
label: "名片姓名",
fuzzy: true,
},
],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
},
data() {
return {
config: {
search: [
{
name: "name",
type: "text",
label: "名片姓名",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{ label: "员工姓名", prop: "staffName" },
{label: "员工姓名", prop: "staffName"},
{ label: "名片姓名", prop: "name" },
{label: "名片姓名", prop: "name"},
{ label: "性别", prop: "gender", formatter: this.formatter },
{label: "性别", prop: "gender",formatter: this.formatter},
{label: "照片", prop: "photoPath",formatter: (row) => {
return row.photoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
src={row.photoPath}
preview-src-list={[row.photoPath]}
></el-image>
) : (
"--"
);
},},
{
label: "照片",
prop: "photoPath",
formatter: (row) => {
return row.photoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
src={row.photoPath}
preview-src-list={[row.photoPath]}
></el-image>
) : (
"--"
);
},
},
{label: "邮件地址", prop: "email"},
{ label: "邮件地址", prop: "email" },
{label: "联系电话", prop: "phoneNumber"},
{ label: "联系电话", prop: "phoneNumber" },
{label: "职位名称", prop: "positionName"},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
{ label: "职位名称", prop: "positionName" },
{
label: "操作",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
};
},
};
</script>
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
:span="20"
label="备注:"
prop="remark"
v-model="form.remark"
type="textarea"
:rows="10"
placeholder="请输入备注"
/>
</el-row>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "StaffDetail",
mixins: [form],
components: {},
created() {
this.changePath("staff");
},
data() {
var checkEmail = (rule, value, callback) => {
let mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
if (!value) {
//如果输入为空直接返回
callback();
} else {
//如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
if (mailReg.test(value)) {
//匹配成功返回
callback();
} else {
//匹配不成功返回错误显示
callback(
new Error("邮箱格式:xx@xx.xx,只含数字、大小写字母、下划线、横杠")
);
}
}
};
var checkPhone = (rule, value, callback) => {
let phoneReg = /^1[3|4|5|7|8][0-9]{9}$/;
if (!value) {
callback();
} else {
if (phoneReg.test(value)) {
callback();
} else {
callback(new Error("电话格式:13、14、15、17、18开头+9位阿拉伯数字"));
}
}
};
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "备注",
// 是否显示弹出层
open: false,
direction: "rtl",
// 表单校验
rules: {},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "bussinesscard/record/edit";
this.getData();
this.pageInfo.type = "edit";
this.title = "备注";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
beforeSubmit(data) {
data.companyIds = data.companyIds.join(",");
return data;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
id: null,
createUserId: null,
createTime: null,
realName: "",
nickName: "",
mobile: "",
email: "",
companyName: "",
bussinesscardId: null,
viewId: null,
viewName: "",
sumViews: null,
remark: "",
viewTime: null,
photoPath: "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable
ref="layouttable"
:data="tableData"
:config="tableConfig"
notDel
notAdd
>
<div slot="table-search-left" class="daterange">
<el-date-picker
v-model="daterange"
type="daterange"
@change="handleDateChange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</div>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "recordList",
components: {
drawerShow,
},
mixins: [table],
created() {},
mounted() {
// 重写搜索清除
this.$refs.layouttable.$refs.searchform.cleanForm = this.cleanForm;
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
// 日期范围选择事件
handleDateChange() {
this.daterange && this.daterange.length > 0
? (this.$refs.layouttable.$refs.searchform.form.viewTimeStart =
this.daterange[0])
: (this.$refs.layouttable.$refs.searchform.form.viewTimeStart = "");
this.daterange && this.daterange.length > 0
? (this.$refs.layouttable.$refs.searchform.form.viewTimeEnd =
this.daterange[1])
: (this.$refs.layouttable.$refs.searchform.form.viewTimeEnd = "");
},
// 重写搜索清除
cleanForm() {
this.daterange = "";
this.$refs.layouttable.$refs.searchform.form.viewTimeStart = undefined;
this.$refs.layouttable.$refs.searchform.form.viewTimeEnd = undefined;
this.$forceUpdate();
this.$refs.layouttable.$refs.searchform.clean();
this.$refs.layouttable.$refs.searchform.onSubmit();
},
},
data() {
return {
daterange: "",
isreply: false,
config: {
search: [
{
name: "query",
type: "text",
label: "姓名或手机号",
fuzzy: true,
},
],
columns: [
{ type: "index", label: "序号", width: 50 },
{ label: "昵称", prop: "nickName", formatter: this.formatters },
{
label: "头像",
prop: "photoPath",
formatter: (row) => {
return row.photoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
src={row.photoPath}
preview-src-list={[row.photoPath]}
></el-image>
) : (
"--"
);
},
width: 100,
},
{
label: "第一次打开时间",
prop: "createTime",
formatter: this.formatterDate,
width: 140,
},
{
label: "真实姓名",
prop: "realName",
formatter: this.formatters,
width: 120,
},
{
label: "联系电话",
prop: "mobile",
formatter: this.formatters,
width: 140,
},
{
label: "邮箱地址",
prop: "email",
formatter: this.formatters,
width: 150,
},
{
label: "单位名称",
prop: "companyName",
formatter: this.formatters,
},
{
label: "最近一次打开时间",
prop: "viewTime",
formatter: this.formatterDate,
width: 150,
},
{
label: "备注",
prop: "remark",
formatter: this.formatters,
},
{
label: "操作",
width: 100,
formatter: (row) => {
return (
<div>
<span
onClick={() => {
this.toEdit(row);
}}
style="color:#409EFF;"
>
备注
</span>
</div>
);
},
},
],
},
};
},
};
</script>
<style lang="less" scoped>
.daterange {
height: 32px;
/deep/.el-range-editor.el-input__inner {
height: 100%;
margin-top: 1px;
margin-right: 10px;
}
}
/deep/.el-date-editor .el-range-separator {
width: 10%;
line-height: 25px;
}
</style>
......@@ -31,6 +31,17 @@ export default {
this.$refs.drawerform.view(row);
},
},
filters: {
//当渲染的文字超出150字后显示省略号
ellipsis(value) {
if (!value) return "";
if (value.length > 200) {
return value.slice(0, 200) + "...";
} else {
return value;
}
},
},
data() {
return {
config: {
......@@ -45,31 +56,41 @@ export default {
columns: [
{ type: "index", label: "序号", width: 50 },
{ label: "公司名称", prop: "companyName" },
{ label: "公司名称", prop: "companyName", width: 250 },
{ label: "联系电话", prop: "contactPhone" },
{ label: "联系电话", prop: "contactPhone", width: 120 },
{
label: "经营地址",
prop: "businessAdress",
formatter: this.formatters,
width: 240,
},
{
label: "描述",
prop: "companyIntroduction",
formatter: this.formatters,
formatter: (val) => {
return (
<div
domPropsInnerHTML={this.$options.filters.ellipsis(
val.companyIntroduction
)}
></div>
);
},
},
{
label: "更新时间",
prop: "updateTime",
width: 150,
formatter: this.formatterDate,
},
{
label: "操作",
width: 240,
width: 140,
formatter: (row) => {
return (
<table-buttons
......
......@@ -376,4 +376,7 @@ export default {
padding: 20px;
}
}
/deep/.el-form-item__error{
font-size: 14px;
}
</style>
\ No newline at end of file
......@@ -122,28 +122,59 @@ export default {
// {type: "selection", width: 60},
{ type: "index", label: "序号", width: 50 },
{ label: "内容", prop: "content", formatter: this.formatter },
{
label: "内容",
prop: "content",
formatter: this.formatter,
},
{
label: "真实姓名",
prop: "feedbackName",
formatter: this.formatter,
width: 120,
},
{
label: "联系电话",
prop: "contactInfo",
formatter: this.formatter,
width: 120,
},
{ label: "联系电话", prop: "contactInfo", formatter: this.formatter },
{ label: "单位名称", prop: "companyName", formatter: this.formatter },
{
label: "单位名称",
prop: "companyName",
formatter: this.formatter,
width: 240,
},
{ label: "邮箱地址", prop: "email", formatter: this.formatter },
{
label: "邮箱地址",
prop: "email",
formatter: this.formatter,
width: 160,
},
{
label: "提交时间",
prop: "createTime",
formatter: this.formatterDate,
width: 140,
},
{ label: "是否回复 ", prop: "reply", formatter: this.formatter },
{
label: "是否回复 ",
prop: "reply",
formatter: this.formatter,
width: 100,
},
{ label: "回复人", prop: "replyPerson", formatter: this.formatter },
{
label: "回复人",
prop: "replyPerson",
formatter: this.formatter,
width: 120,
},
// {label: "反馈类型 ", prop: "feedbackType",formatter: this.formatter},
......@@ -161,12 +192,13 @@ export default {
label: "回复时间",
prop: "processTime",
formatter: this.formatterDate,
width: 140,
},
// {label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
width: 140,
formatter: (row) => {
return (
<table-buttons
......
......@@ -177,7 +177,9 @@ export default {
},
/**获取数据前弹框 */
beforeRender(data) {
data.entity.deptId = String(data.entity.deptId);
data.entity.deptId && data.entity.deptId != ""
? (data.entity.deptId = String(data.entity.deptId))
: "";
return data;
},
/**获取数据后弹框 */
......@@ -207,6 +209,7 @@ export default {
titleLogoPath: "",
content: "",
top: 0,
deptId: "",
viewNums: 0,
publishTime: null,
};
......
......@@ -134,12 +134,18 @@ export default {
{ label: "新闻标题", prop: "title" },
{ label: "新闻类型", prop: "categoryId", formatter: this.formatter },
{
label: "新闻类型",
prop: "categoryId",
formatter: this.formatter,
width: 140,
},
{
label: "创建时间",
prop: "createTime",
formatter: this.formatterDate,
width: 140,
},
{
......@@ -171,12 +177,14 @@ export default {
</div>
);
},
width: 140,
},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
width: 140,
},
{
label: "操作",
......
......@@ -135,9 +135,19 @@ export default {
{ label: "产品名称", prop: "productName" },
{ label: "产品分类", prop: "categoryId", formatter: this.formatters },
{
label: "产品分类",
prop: "categoryId",
formatter: this.formatters,
width: 140,
},
{ label: "所属企业", prop: "companyId", formatter: this.formatters },
{
label: "所属企业",
prop: "companyId",
formatter: this.formatters,
width: 300,
},
{
label: "产品介绍",
......@@ -150,24 +160,26 @@ export default {
label: "发布时间",
prop: "publishTime",
formatter: this.formatterDate,
width: 150,
},
{
label: "热门",
prop: "hot",
formatter: this.formatterYES,
width: 50,
width: 60,
},
{
label: "最近更新时间",
prop: "updateTime",
formatter: this.formatterDate,
width: 150,
},
{
label: "操作",
width: 240,
width: 140,
formatter: (row) => {
return (
<table-buttons
......
<template>
<div class="page">
<LayoutTable notAdd notDel :data="tableData" :config="tableConfig">
</LayoutTable>
<div class="page">
<LayoutTable notAdd notDel :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: "StaffLeaveList",
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);
},
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffLeaveList",
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: "companyIds",
type: "select",
label: "所属公司",
fuzzy: true,
},
{
name: "name",
type: "text",
label: "员工姓名",
fuzzy: true,
},
],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
},
data() {
return {
config: {
search: [
{
name: "companyIds",
type: "select",
label: "所属公司",
fuzzy: true
},
{
name: "name",
type: "text",
label: "员工姓名",
fuzzy: true
},
{ label: "员工姓名", prop: "name" },
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "name"},
{label: "照片", prop: "photoPath"},
{label: "邮件地址", prop: "email"},
{
label: "照片",
prop: "photoPath",
formatter: (row) => {
return row.photoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
src={row.photoPath}
preview-src-list={[row.photoPath]}
></el-image>
) : (
"--"
);
},
width: 110,
},
{label: "联系电话", prop: "phoneNumber"},
{ label: "邮件地址", prop: "email" },
{label: "所属公司", prop: "companyIds",formatter: this.formatters},
{ label: "联系电话", prop: "phoneNumber" },
{label: "职位名称", prop: "positionName"},
{ label: "所属公司", prop: "companyIds", formatter: this.formatters },
{label: "离职时间", prop: "leaveDate", formatter: this.formatterDate},
{ label: "职位名称", prop: "positionName" },
{label: "操作用户", prop: "createUserId", formatter: this.formatter},
{
label: "离职时间",
prop: "leaveDate",
formatter: this.formatterDate,
},
]
}
};
}
{
label: "操作用户",
prop: "createUserId",
formatter: this.formatter,
},
],
},
};
},
};
</script>
......@@ -112,7 +112,7 @@ export default {
columns: [
{ type: "index", label: "序号", width: 50 },
{ label: "员工姓名", prop: "name" },
{ label: "员工姓名", prop: "name", width: 110 },
{
label: "头像",
......@@ -128,32 +128,45 @@ export default {
"--"
);
},
width: 110,
},
{ label: "联系电话", prop: "phoneNumber" },
{ label: "联系电话", prop: "phoneNumber", width: 110 },
{ label: "邮件地址", prop: "email", formatter: this.formatters },
{
label: "邮件地址",
prop: "email",
formatter: this.formatters,
width: 160,
},
{ label: "所属公司", prop: "companyIds", formatter: this.formatters },
{ label: "职位", prop: "positionId", formatter: this.formatter },
{ label: "发送名片次数", prop: "sendBusinessCardTimes" },
{ label: "累计查看次数", prop: "sumViews" },
{
label: "职位",
prop: "positionId",
formatter: this.formatter,
width: 120,
},
{ label: "发送名片次数", prop: "sendBusinessCardTimes", width: 100 },
{ label: "累计查看次数", prop: "sumViews", width: 100 },
{
label: "最近更新时间",
prop: "updateTime",
formatter: this.formatterDate,
width: 140,
},
{
label: "更新人员",
prop: "updateUserId",
formatter: this.formatter,
width: 100,
},
// {label: "员工状态", prop: "staffStatus",formatter: this.formatter},
{
label: "操作",
width: 240,
width: 180,
formatter: (row) => {
return (
<div>
......@@ -169,8 +182,9 @@ export default {
onClick={() => {
this.toDimission(row);
}}
style="color:#409EFF;margin-left:20px"
style="color:#409EFF;margin-left:10px;cursor:pointer"
>
<i class="el-icon-document-delete"></i>
离职
</span>
</div>
......
......@@ -179,12 +179,12 @@ export default {
align: "center",
},
// {
// prop: "userType",
// label: "用户类型",
// width: 130,
// formatter: this.formatter,
// },
{
prop: "userType",
label: "用户类型",
width: 130,
formatter: this.formatter,
},
{
prop: "status",
label: "状态",
......@@ -219,6 +219,11 @@ export default {
},
],
search: [
{
name: "userType",
type: "select",
label: "用户类型",
},
{
name: "loginName",
type: "text",
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "UserList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "UserList",
components: {
dialogShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "用户所属部门id", prop: "deptId", formatter: this.formatter},
{
label: "用户所属部门id",
prop: "deptId",
formatter: this.formatter,
},
{label: "所属部门名称", prop: "deptName"},
{ label: "所属部门名称", prop: "deptName" },
{label: "所属站点id,多个逗号分隔", prop: "siteIds"},
{ label: "所属站点id,多个逗号分隔", prop: "siteIds" },
{label: "所属区域code,多个逗号分隔", prop: "areaCodes"},
{ label: "所属区域code,多个逗号分隔", prop: "areaCodes" },
{label: "员工Id,关联用户员工表", prop: "staffId", formatter: this.formatter},
{
label: "员工Id,关联用户员工表",
prop: "staffId",
formatter: this.formatter,
},
{label: "微信openId", prop: "openId"},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
{ label: "微信openId", prop: "openId" },
{
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
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