Commit e09aef11 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 657e5327 1e802661
<template>
<div id="addressHorizontalSelect">
<el-row :gutter="10">
<el-col
:span="span">
<el-col :span="span">
<el-select
size="small"
v-model="provinceCode"
@focus="getProvinces"
@change="changeProvince"
placeholder="省"
filterable>
filterable
>
<el-option
v-for="item in provinceList"
:key="item.iid"
:label="item.name"
:value="item.iid">
:value="item.iid"
>
</el-option>
</el-select>
</el-col>
<el-col
:span="span"
v-if="!hideCity">
<el-col :span="span" v-if="!hideCity">
<el-select
size="small"
v-model="cityCode"
@focus="getCities"
@change="changeCity"
placeholder="市"
filterable>
filterable
>
<el-option
v-for="item in cityList"
:key="item.iid"
:label="item.name"
:value="item.iid">
:value="item.iid"
>
</el-option>
</el-select>
</el-col>
<el-col
:span="span"
v-if="!hideCity && !hideArea">
<el-col :span="span" v-if="!hideCity && !hideArea">
<el-select
size="small"
v-model="areaCode"
@focus="getAreas"
@change="changeArea"
placeholder="区/县"
filterable>
filterable
>
<el-option
v-for="item in areaList"
:key="item.iid"
:label="item.name"
:value="item.iid">
:value="item.iid"
>
</el-option>
</el-select>
</el-col>
<el-col
:span="span"
v-if="!hideCity && !hideArea&& !hideStreet">
<el-col :span="span" v-if="!hideCity && !hideArea && !hideStreet">
<el-select
size="small"
v-model="streetCode"
@focus="getStreet"
@change="changeStreet"
placeholder="街道"
filterable>
filterable
>
<el-option
v-for="item in streetList"
:key="item.iid"
:label="item.name"
:value="item.iid">
:value="item.iid"
>
</el-option>
</el-select>
</el-col>
<el-col
:span="span"
v-if="!hideCity && !hideArea&& !hideStreet&& !hideStreet">
v-if="!hideCity && !hideArea && !hideStreet && !hideStreet"
>
<el-select
size="small"
v-model="communityCode"
@focus="getCommunity"
@change="changeCommunity"
placeholder="社区"
filterable>
filterable
>
<el-option
v-for="item in communityList"
:key="item.iid"
:label="item.name"
:value="item.iid">
:value="item.iid"
>
</el-option>
</el-select>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
name: 'addressHorizontalSelect',
name: "addressHorizontalSelect",
components: {},
props: {
value: {
type: [String, Number, Array],
},
hideCity: { // 隐藏市
hideCity: {
// 隐藏市
type: Boolean,
default: false
default: false,
},
hideArea: { // 隐藏区/县
hideArea: {
// 隐藏区/县
type: Boolean,
default: false
default: false,
},
hideStreet: { // 隐藏街道
hideStreet: {
// 隐藏街道
type: Boolean,
default: false
default: false,
},
hideCommunity: { // 隐藏社区
hideCommunity: {
// 隐藏社区
type: Boolean,
default: false
default: false,
},
addressCode: null // 地址编码
addressCode: null, // 地址编码
},
model: {
prop: 'value',
event: 'addressSelect'
prop: "value",
event: "addressSelect",
},
data() {
......@@ -137,60 +144,60 @@ export default {
areaList: [], // 区/县列表
streetList: [], // 街道列表
communityList: [], // 社区列表
provinceCode: '', // 省份编码
cityCode: '', // 城市编码
areaCode: '', // 区/县编码
streetCode: '', // 街道编码
communityCode: '', // 社区编码
provinceCode: "", // 省份编码
cityCode: "", // 城市编码
areaCode: "", // 区/县编码
streetCode: "", // 街道编码
communityCode: "", // 社区编码
cityFlag: false, // 避免重复请求的标志
provinceFlag: false,
areaFlag: false,
streetFlag: false,
communityFlag: false,
provinceName:'',
cityName:'',
areaName:'',
streetName:'',
communityName:''
}
provinceName: "",
cityName: "",
areaName: "",
streetName: "",
communityName: "",
};
},
computed: {
span() {
if (this.hideCity) {
return 24
return 24;
}
if (this.hideArea) {
return 12
return 12;
}
if (this.hideStreet) {
return 8
return 8;
}
if (this.hideCommunity) {
return 6
}
return 3
return 6;
}
return 3;
},
},
created() {
this.getProvinces()
this.getProvinces();
},
methods: {
fetchData(array, code) {
var split = code.split("&");
let parms = {pid: split[0], size: -1}
this.$post("/base/area/list", parms).then((res) => {
let parms = { pid: split[0], size: -1 };
this.$post("/base/area/list", parms)
.then((res) => {
if (res.code == 1) {
array.splice(0, array.length);
res.data.data.map(i => {
let obj = {}
obj.name = i.name
obj.iid = i.iid + "&" + i.areaCode
array.push(obj)
res.data.data.map((i) => {
let obj = {};
obj.name = i.name;
obj.iid = i.iid + "&" + i.areaCode;
array.push(obj);
return obj;
})
});
}
})
.catch((error) => {
......@@ -200,179 +207,178 @@ export default {
// 根据国家编码获取省份列表
getProvinces() {
if (this.provinceFlag) {
return
return;
}
this.fetchData(this.provinceList, "0&510000000000")
this.provinceFlag = true
this.fetchData(this.provinceList, "0&510000000000");
this.provinceFlag = true;
},
// 省份修改,拉取对应城市列表
changeProvince(val) {
this.fetchData(this.cityList, this.provinceCode)
this.cityFlag = true
this.cityCode = ''
this.areaCode = ''
this.streetCode = ''
this.communityCode = ''
this.fetchData(this.cityList, this.provinceCode);
this.cityFlag = true;
this.cityCode = "";
this.areaCode = "";
this.streetCode = "";
this.communityCode = "";
this.cityName=''
this.areaName=''
this.streetName=''
this.communityName=''
this.cityName = "";
this.areaName = "";
this.streetName = "";
this.communityName = "";
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
this.$emit("addressSelect", split[1]);
},
// 根据省份编码获取城市列表
getCities() {
if (this.cityFlag) {
return
return;
}
if (this.provinceCode) {
this.fetchData(this.cityList, this.provinceCode)
this.cityFlag = true
this.fetchData(this.cityList, this.provinceCode);
this.cityFlag = true;
}
},
// 城市修改,拉取对应区域列表
changeCity(val) {
this.fetchData(this.areaList, this.cityCode)
this.areaFlag = true
this.areaCode = ''
this.streetCode = ''
this.communityCode = ''
this.fetchData(this.areaList, this.cityCode);
this.areaFlag = true;
this.areaCode = "";
this.streetCode = "";
this.communityCode = "";
this.areaName=''
this.streetName=''
this.communityName=''
this.areaName = "";
this.streetName = "";
this.communityName = "";
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
this.$emit("addressSelect", split[1]);
},
// 根据城市编码获取区域列表
getAreas() {
if (this.areaFlag) {
return
return;
}
if (this.cityCode) {
this.fetchData(this.areaList, this.cityCode)
this.fetchData(this.areaList, this.cityCode);
}
},
// 区域修改
changeArea(val) {
this.fetchData(this.streetList, this.areaCode)
this.areaFlag = true
this.streetCode = ''
this.communityCode = ''
this.fetchData(this.streetList, this.areaCode);
this.areaFlag = true;
this.streetCode = "";
this.communityCode = "";
this.streetName=''
this.communityName=''
this.streetName = "";
this.communityName = "";
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
this.$emit("addressSelect", split[1]);
},
// 根据区域编码获取街道列表
getStreet() {
if (this.streetFlag) {
return
return;
}
if (this.areaCode) {
this.fetchData(this.streetList, this.areaCode)
this.streetFlag = true
this.fetchData(this.streetList, this.areaCode);
this.streetFlag = true;
}
},
// 街道修改,拉取对应社区列表
changeStreet(val) {
this.fetchData(this.communityList, this.streetCode)
this.streetFlag = true
this.communityCode = ''
this.fetchData(this.communityList, this.streetCode);
this.streetFlag = true;
this.communityCode = "";
this.communityName=''
this.communityName = "";
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
this.$emit("addressSelect", split[1]);
},
// 根据区域编码获取街道列表
getCommunity() {
if (this.communityFlag) {
return
return;
}
if (this.streetCode) {
this.fetchData(this.communityList, this.streetCode)
this.communityFlag = true
this.fetchData(this.communityList, this.streetCode);
this.communityFlag = true;
}
},
// 社区修改,拉取社区列表
changeCommunity(val) {
this.fetchData(this.communityList, this.streetCode)
this.communityFlag = true
this.fetchData(this.communityList, this.streetCode);
this.communityFlag = true;
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
this.$emit("addressSelect", split[1]);
},
// 重置省市区/县编码
reset() {
this.provinceCode = '',
this.cityCode = '',
this.areaCode = '',
this.streetCode = '',
this.communityCode = ''
(this.provinceCode = ""),
(this.cityCode = ""),
(this.areaCode = ""),
(this.streetCode = ""),
(this.communityCode = "");
},
// 地址编码转换成省市区街道社区列表
addressCodeToList(addressCode) {
if (!addressCode) return false
let parms = {areaCode:addressCode}
this.$post("/base/area/list", parms).then((res) => {
if (!addressCode) return false;
let parms = { areaCode: addressCode };
this.$post("/base/area/list", parms)
.then((res) => {
if (res.code == 1) {
if(res.data.data.length>0){
if (res.data.data.length > 0) {
let area = res.data.data[0];
let pid = area.pid + "&" + area.areaCode
let pid = area.pid + "&" + area.areaCode;
if(area.areaLevel=='1'){
if (area.areaLevel == "1") {
//省
this.provinceCode = area.iid + "&" + area.areaCode
this.provinceName = area.name
this.fetchData(this.provinceList, pid)
return
}else if(area.areaLevel=='2'){
this.provinceCode = area.iid + "&" + area.areaCode;
this.provinceName = area.name;
this.fetchData(this.provinceList, pid);
return;
} else if (area.areaLevel == "2") {
//市
this.cityCode = area.iid + "&" + area.areaCode
this.cityName = area.name
this.fetchData(this.cityList, pid)
}else if(area.areaLevel=='3'){
this.cityCode = area.iid + "&" + area.areaCode;
this.cityName = area.name;
this.fetchData(this.cityList, pid);
} else if (area.areaLevel == "3") {
//区县
this.areaCode = area.iid + "&" + area.areaCode
this.areaName = area.name
this.fetchData(this.areaList, pid)
}else if(area.areaLevel=='4'){
this.areaCode = area.iid + "&" + area.areaCode;
this.areaName = area.name;
this.fetchData(this.areaList, pid);
} else if (area.areaLevel == "4") {
//街道
let pid = area.pid + "&" + area.areaCode
this.streetName = area.name
this.fetchData(this.streetList,pid)
this.streetCode = area.iid + "&" + area.areaCode
}else if(area.areaLevel=='5'){
let pid = area.pid + "&" + area.areaCode;
this.streetName = area.name;
this.fetchData(this.streetList, pid);
this.streetCode = area.iid + "&" + area.areaCode;
} else if (area.areaLevel == "5") {
//社区
this.fetchData(this.communityList, pid)
this.communityName = area.name
this.communityCode = area.iid + "&" + area.areaCode
this.fetchData(this.communityList, pid);
this.communityName = area.name;
this.communityCode = area.iid + "&" + area.areaCode;
}
this.$post("/base/area/list", {iid:area.pid}).then((res) => {
this.addressCodeToList(res.data.data[0].areaCode)
})
this.$post("/base/area/list", { iid: area.pid }).then((res) => {
this.addressCodeToList(res.data.data[0].areaCode);
});
}
}
}).catch((error) => {
})
.catch((error) => {
this.$message.error(error.message);
});
}
},
},
watch: {
......@@ -381,16 +387,16 @@ export default {
immediate: true,
handler(newVal) {
if (newVal) {
this.addressCodeToList(newVal)
this.addressCodeToList(newVal);
} else {
this.$nextTick(() => {
this.reset()
})
}
}
}
this.reset();
});
}
}
},
},
},
};
</script>
<style lang="less" scoped>
......
......@@ -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'),
builder("/authentication", "login/authentication"),
builder("/login", "login/login"),
builder("/go", "codeGen/index"),
builder("/sso", "SSO"),
{
path: '/',
name: 'layout',
path: "/",
name: "layout",
component: Layout,
meta: {
requiresAuth: true
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("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'),//收藏名片
...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'),
]
builder("/", "Home"),
builder("/home", "Home"),
builder("index", "Home"),
builder("login/updatePwd", "login/updatePwd"),
builder("403", "errors/403"),
builder("*", "errors/404"),
],
},
]
})
],
});
/**
* rest路由生成器
......@@ -107,58 +105,64 @@ function restBuilder(path, component = path) {
function builder(path, component = path, requiresAuth = false) {
return {
path: path,
name: path || 'homepage',
name: path || "homepage",
component: getComponent(component),
meta: {
requiresAuth: requiresAuth
}
}
requiresAuth: requiresAuth,
},
};
}
function getComponent(fileName) {
try {
return require('./views/' + fileName).default
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)
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 (to.matched.some((record) => record.meta.requiresAuth)) {
if (Store.state.isLogin) {
next();
} else {
next({
path: '/authentication',
path: "/authentication",
query: {
redirect: to.fullPath
}
})
redirect: to.fullPath,
},
});
}
} else {
next();
}
})
});
export default router;
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "BussinesscardList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,7 +30,6 @@
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
......@@ -43,20 +39,23 @@
name: "name",
type: "text",
label: "名片姓名",
fuzzy: true
fuzzy: true,
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{ 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) => {
{
label: "照片",
prop: "photoPath",
formatter: (row) => {
return row.photoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
......@@ -66,25 +65,32 @@
) : (
"--"
);
},},
},
},
{label: "邮件地址", prop: "email"},
{ label: "邮件地址", prop: "email" },
{label: "联系电话", prop: "phoneNumber"},
{ label: "联系电话", prop: "phoneNumber" },
{label: "职位名称", prop: "positionName"},
{ label: "职位名称", prop: "positionName" },
{
label: "操作",
width: 240,
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>
<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>
......@@ -62,6 +62,24 @@
placeholder="请输入详细地址"
/>
</el-row>
<el-row>
<!-- <Field label="所在地" prop="location" v-model="form.location" placeholder="请输入所在地"/> -->
<Field
label="经度"
prop="lon"
v-model="form.lon"
placeholder="请输入经度"
/>
</el-row>
<el-row>
<!-- <Field label="所在地" prop="location" v-model="form.location" placeholder="请输入所在地"/> -->
<Field
label="纬度"
prop="lati"
v-model="form.lati"
placeholder="请输入纬度"
/>
</el-row>
<!-- <Field label="电子邮件地址" prop="email" v-model="form.email" placeholder="请输入电子邮件地址"/>
<Field label="公司网站" prop="website" v-model="form.website" placeholder="请输入公司网站"/>
<Field label="税务登记号" prop="taxRegistrationNumber" v-model="form.taxRegistrationNumber" placeholder="请输入税务登记号"/>
......
......@@ -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
......
......@@ -3,23 +3,21 @@
<LayoutTable notAdd notDel :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "StaffLeaveList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,7 +31,6 @@
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
......@@ -43,39 +40,60 @@
name: "companyIds",
type: "select",
label: "所属公司",
fuzzy: true
fuzzy: true,
},
{
name: "name",
type: "text",
label: "员工姓名",
fuzzy: true
fuzzy: true,
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "name"},
{ 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>
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "UserList",
components: {
dialogShow
},
mixins: [table],
created() {
dialogShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,40 +30,52 @@
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
],
search: [],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{ 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: "微信openId", prop: "openId" },
{
label: "操作",
width: 240,
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>
\ 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