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

Merge remote-tracking branch 'origin/master'

parents 6560ff65 0aace81a
......@@ -8,15 +8,15 @@ export default {
methods: {
// 渲染前置处理
beforeRender(data) {
return data
},
// 渲染后置处理
afterRender(data) {
console.log(data);
return data;
},
// 渲染后置处理
afterRender(data) {},
// 提交表单的前置处理
beforeSubmit(data) {
return data
return data;
},
// 提交表单的后置处理, 会阻断默认的回退行为
afterSubmit(data) {
......@@ -49,16 +49,16 @@ export default {
this.afterRender(res);
})
.catch(error => {
this.$message.error(error.message)
throw error
.catch((error) => {
this.$message.error(error.message);
throw error;
})
.then(data => {
.then((data) => {
clearTimeout(this.loadingTimer);
this.loadingTimer = setTimeout(() => {
this.loading = false;
}, 300);
})
});
},
// 提交表单
submitForm(ref) {
......@@ -67,70 +67,83 @@ export default {
el.validate((valid) => {
if (!valid) return;
this.loading = true;
this.$post(this.urls.saveUrl || this.pageInfo.saveUrl, this.beforeSubmit(this.form))
.then(res => {
this.$post(
this.urls.saveUrl || this.pageInfo.saveUrl,
this.beforeSubmit(this.form)
)
.then((res) => {
this.$message.success(res.msg);
this.afterSubmit(res);
})
.catch(error => {
.catch((error) => {
this.$message.error(error.message);
})
.then(data => {
.then((data) => {
clearTimeout(this.loadingTimer);
this.loadingTimer = setTimeout(() => {
this.loading = false;
}, 200);
})
});
});
},
// 复制一个数组或对象
util_copy(data) {
return JSON.parse(JSON.stringify(data))
return JSON.parse(JSON.stringify(data));
},
// 工具方法,把数字转化为字符串
util_toString(data, array) {
//原始数据
const dataCopy = Object.assign({}, data);
array.forEach(item => {
array.forEach((item) => {
//如果相等做操作
dataCopy[item] = dataCopy[item] === undefined ? '' : dataCopy[item] + '';
})
dataCopy[item] =
dataCopy[item] === undefined ? "" : dataCopy[item] + "";
});
return dataCopy;
},
// 工具方法,把字符串转化为数组
util_toArrays(data, array) {
const dataCopy = Object.assign({}, data);
array.forEach(item => {
dataCopy[item] = dataCopy[item] === undefined ? [] : dataCopy[item].split(",");
})
array.forEach((item) => {
dataCopy[item] =
dataCopy[item] === undefined || dataCopy[item] === ""
? []
: dataCopy[item].split(",");
});
return dataCopy;
},
// 工具方法,把字符串转化为格式化日期
util_toDateStr(data, array) {
const dataCopy = Object.assign({}, data);
array.forEach(item => {
dataCopy[item] = dataCopy[item] === undefined ? '' : this.util_formatterDate(dataCopy[item]);
})
array.forEach((item) => {
dataCopy[item] =
dataCopy[item] === undefined
? ""
: this.util_formatterDate(dataCopy[item]);
});
return dataCopy;
},
util_formatterDate(time) {
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 = this.panLeft(date.getDate()) + ' ';
let h = this.panLeft(date.getHours()) + ':';
let m = this.panLeft(date.getMinutes()) + ':';
let Y = date.getFullYear() + "-";
let M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
let D = this.panLeft(date.getDate()) + " ";
let h = this.panLeft(date.getHours()) + ":";
let m = this.panLeft(date.getMinutes()) + ":";
let s = this.panLeft(date.getSeconds());
return Y + M + D + h + m + s;
},
panLeft(num) {
return num < 10 ? '0' + num : num;
return num < 10 ? "0" + num : num;
},
// 从dict字段暴力取值,取不到则返回原值
util_formatter(key, val) {
try {
return this.dict[key][val]
return this.dict[key][val];
} catch (error) {
return val;
}
......@@ -143,24 +156,24 @@ export default {
}
});
}, 0);
}
},
},
computed: {
pageInfo() {
let currUrl = this.$route.path;
let urlArray = currUrl.split('/');
let urlArray = currUrl.split("/");
let type = urlArray.pop();
urlArray.push('save');
let saveUrl = urlArray.join('/');
urlArray.push("save");
let saveUrl = urlArray.join("/");
urlArray.pop();
urlArray.push('edit');
let editUrl = urlArray.join('/');
urlArray.push("edit");
let editUrl = urlArray.join("/");
urlArray.pop();
urlArray.push('add');
let addUrl = urlArray.join('/');
urlArray.push("add");
let addUrl = urlArray.join("/");
urlArray.pop();
urlArray.push('view');
let viewUrl = urlArray.join('/');
urlArray.push("view");
let viewUrl = urlArray.join("/");
return {
type,
currUrl,
......@@ -184,9 +197,6 @@ export default {
toString: [], // 需要把number转化为string的表单字段name数组
toArrays: [], // 需要把number转化为arrays的表单字段name数组
toDate: [], // 需要把number转化为date的表单字段name数组
}
}
}
};
},
};
......@@ -49,6 +49,7 @@
:file-list="imgList"
accept=".jpeg,.png,.jpg,.bmp,.gif"
:headers="headers"
:limit="limit"
v-else
>
<i class="el-icon-plus"></i>
......@@ -98,6 +99,10 @@ export default {
type: Boolean,
default: false,
},
limit: {
type: Number,
default: undefined,
},
},
mounted() {
// 判断是否为多图上传
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notDel>
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig" notDel> </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: "CompanyList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
......@@ -33,11 +30,9 @@
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
{
......@@ -48,30 +43,49 @@
},
],
columns: [
{type: "index",label: "序号",width: 50},
{ type: "index", label: "序号", width: 50 },
{label: "公司名称", prop: "companyName"},
{ label: "公司名称", prop: "companyName" },
{label: "联系电话", prop: "contactPhone"},
{ label: "联系电话", prop: "contactPhone" },
{label: "经营地址", prop: "businessAdress",formatter: this.formatters},
{
label: "经营地址",
prop: "businessAdress",
formatter: this.formatters,
},
{label: "描述", prop: "companyIntroduction",formatter: this.formatters},
{
label: "描述",
prop: "companyIntroduction",
formatter: this.formatters,
},
{label: "更新时间", prop: "createTime", formatter: this.formatterDate},
{
label: "更新时间",
prop: "updateTime",
formatter: this.formatterDate,
},
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
return (
<table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</script>
......@@ -3,23 +3,21 @@
<LayoutTable :data="tableData" notAdd notDel :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: "FavoritesProductList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,34 +31,42 @@
toView(row) {
this.$refs.drawerform.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: "用户", prop: "userId", formatter: this.formatter},
{ label: "用户", prop: "userId", formatter: this.formatter },
{label: "产品", prop: "productId", formatter: this.formatter},
{ label: "产品", prop: "productId", formatter: this.formatter },
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{
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>
......@@ -64,6 +64,7 @@
prop="deptId"
v-model="form.deptId"
placeholder="请输入所属部门"
:enum-data="dict.deptId"
/>
</el-row>
<!-- <el-row>
......@@ -271,6 +272,11 @@ export default {
cancel() {
this.open = false;
},
/**获取数据前弹框 */
beforeRender(data) {
data.entity.deptId = String(data.entity.deptId);
return data;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
......
......@@ -169,17 +169,38 @@ export default {
width: 240,
formatter: (row) => {
return (
<el-button
type="text"
icon="el-icon-edit"
size="mini"
onClick={() => {
this.toEdit(row);
}}
title="详情"
>
详情
</el-button>
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
// <div>
// <el-button
// type="text"
// icon="el-icon-edit"
// size="mini"
// onClick={() => {
// this.toEdit(row);
// }}
// title="详情"
// >
// 详情
// </el-button>
// <el-button
// type="text"
// icon="el-icon-edit"
// size="mini"
// onClick={() => {
// this.toEdit(row);
// }}
// title="详情"
// >
// 删除
// </el-button>
// </div>
);
},
},
......
<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: "LabelsList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,29 +30,29 @@
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
{
name: "labelName",
type: "text",
label: "标签名称"
}
label: "标签名称",
},
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "标签名称", prop: "labelName"},
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "标签描述", prop: "labelDesc",formatter: this.formatters},
{ label: "标签名称", prop: "labelName" },
// { label: "标签描述", prop: "labelDesc", formatter: this.formatters },
{label: "标签图标", prop: "labelLogoPath",formatter: (row) => {
{
label: "标签图标",
prop: "labelLogoPath",
formatter: (row) => {
return row.labelLogoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
......@@ -65,22 +62,32 @@
) : (
"--"
);
},},
},
},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate},
{
label: "创建时间",
prop: "createTime",
formatter: this.formatterDate,
},
{
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>
......@@ -5,7 +5,7 @@
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="100%"
size="70%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<div class="form">
......@@ -37,6 +37,7 @@
v-model="form.titleLogoPath"
prePath="/file/preview"
:isList="true"
:limit="9"
ref="imgList"
/>
</Field>
......@@ -174,13 +175,17 @@ export default {
cancel() {
this.open = false;
},
/**获取数据前弹框 */
beforeRender(data) {
data.entity.deptId = String(data.entity.deptId);
return data;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
// 提交前数据处理
beforeSubmit(data) {
console.log(data, "123");
let arr = [];
arr = this.$refs.imgList.imgList.map((v) => {
return v.response ? v.response.url : v.url.substr(v.url.indexOf("f"));
......
......@@ -138,7 +138,7 @@ export default {
{
label: "创建时间",
prop: "createDateTime",
prop: "createTime",
formatter: this.formatterDate,
},
......
<template>
<div class="page">
<LayoutTable :data="tableData" notDel :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" notDel :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: "StaffList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -34,28 +31,39 @@
this.$refs.drawerform.view(row);
},
// 离职操作
toDimission(row){
toDimission(row) {
console.log(row);
// 先弹窗提问
this.$confirm('此操作将'+row.name+'作离职处理,离职后,该员工在之前发送的名片将不做展示,客户点击名片消息后跳转至之前绑定的企业详情(若该员工有多张企业名片,以第一个为准),是否继续?', '系统提示', {
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(() => {
this.$confirm(
"此操作将" +
row.name +
"作离职处理,离职后,该员工在之前发送的名片将不做展示,客户点击名片消息后跳转至之前绑定的企业详情(若该员工有多张企业名片,以第一个为准),是否继续?",
"系统提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
}
)
.then(() => {
// 先修改状态在修改
let query = JSON.parse(JSON.stringify(row))
query.staffStatus=3
let query = JSON.parse(JSON.stringify(row));
query.staffStatus = 3;
console.log(this.$refs.drawerform.urls.saveUrl);
this.$post('staff/leave',{id:query.id})
.then(res => {
this.$post("staff/leave", { id: query.id }).then((res) => {
this.$message.success(res.msg);
this.getData()
this.getData();
});
})
}).catch(() => {});
.catch(() => {});
},
// 重写getData
async getData() {
this.query = Object.assign({staffStatus:1}, this.query, this.$route.query);
this.query = Object.assign(
{ staffStatus: 1 },
this.query,
this.$route.query
);
try {
await this.beforeFecth();
} catch (error) {
......@@ -63,7 +71,7 @@
}
this.tableData.loading = true;
this.$post(this.pageInfo.list, this.query, {
cancelToken: this.source.token
cancelToken: this.source.token,
})
.then(({ data }) => {
this.tableData = this.beforeRender(
......@@ -71,47 +79,45 @@
);
this.afterRender(this.tableData);
})
.catch(error => {
if (error.message == '自动取消ajax操作') return
.catch((error) => {
if (error.message == "自动取消ajax操作") return;
this.$message.error(error.message);
})
.then(data => {
.then((data) => {
clearTimeout(this.loadingTimer);
this.loadingTimer = setTimeout(() => {
this.tableData.loading = false;
}, 300);
})
});
},
},
data() {
return {
config: {
search: [
{
name: "companyId",
type: "select",
placeholder:"请选择所属企业",
label: "所属企业"
placeholder: "请选择所属企业",
label: "所属企业",
},
{
name: "name",
type: "text",
placeholder:"请输入员工姓名",
label: "员工姓名"
placeholder: "请输入员工姓名",
label: "员工姓名",
},
],
columns: [
{type: "index",label: "序号",width: 50},
{ type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "name"},
{ label: "员工姓名", prop: "name" },
{label: "头像", prop: "photoPath",formatter: (row) => {
{
label: "头像",
prop: "photoPath",
formatter: (row) => {
return row.photoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
......@@ -121,37 +127,59 @@
) : (
"--"
);
},},
{label: "联系电话", prop: "phoneNumber"},
},
},
{label: "邮件地址", prop: "email",formatter: this.formatters},
{ label: "联系电话", prop: "phoneNumber" },
{label: "所属公司", prop: "companyIds",formatter: this.formatters},
{ label: "邮件地址", prop: "email", formatter: this.formatters },
{ label: "所属公司", prop: "companyIds", formatter: this.formatters },
{label: "职位", prop: "positionId",formatter:this.formatter},
{label: "发送名片次数", prop: "sendBusinessCardTimes"},
{label: "累计查看次数", prop: "sumViews"},
{ label: "职位", prop: "positionId", formatter: this.formatter },
{ label: "发送名片次数", prop: "sendBusinessCardTimes" },
{ label: "累计查看次数", prop: "sumViews" },
{label: "最近更新时间", prop: "updateTime", formatter: this.formatterDate},
{label: "更新人员", prop: "updateUserId", formatter: this.formatter},
{
label: "最近更新时间",
prop: "updateTime",
formatter: this.formatterDate,
},
{
label: "更新人员",
prop: "updateUserId",
formatter: this.formatter,
},
// {label: "员工状态", prop: "staffStatus",formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
return (
<div>
<table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<span onClick={ ()=>{this.toDimission(row)}} style="color:#409EFF;margin-left:20px">离职</span>
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
<span
onClick={() => {
this.toDimission(row);
}}
style="color:#409EFF;margin-left:20px"
>
离职
</span>
</div>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</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