File: /www/wwwroot/douyin.dsfnj.com/static/js/chunk-3e90.89ca51f3.js
(window.webpackJsonp = window.webpackJsonp || []).push([
["chunk-3e90", "chunk-e347", "chunk-e78f", "chunk-fd44", "chunk-3c8e", "chunk-2cf3"],
{
"+2MK": function(e, t, i) {},
"+9np": function(e, t, i) {
"use strict";
var a = i("Qf6f");
i.n(a).a
},
"+9th": function(e, t, i) {
"use strict";
i.d(t, "p", function() {
return s
}), i.d(t, "n", function() {
return n
}), i.d(t, "a", function() {
return l
}), i.d(t, "h", function() {
return o
}), i.d(t, "j", function() {
return c
}), i.d(t, "l", function() {
return r
}), i.d(t, "m", function() {
return d
}), i.d(t, "u", function() {
return u
}), i.d(t, "s", function() {
return m
}), i.d(t, "f", function() {
return h
}), i.d(t, "d", function() {
return p
}), i.d(t, "k", function() {
return f
}), i.d(t, "g", function() {
return v
}), i.d(t, "q", function() {
return g
}), i.d(t, "t", function() {
return b
}), i.d(t, "r", function() {
return _
}), i.d(t, "o", function() {
return y
}), i.d(t, "e", function() {
return w
}), i.d(t, "b", function() {
return C
}), i.d(t, "c", function() {
return k
}), i.d(t, "i", function() {
return I
});
var a = i("t3Un");
function s(e) {
return Object(a.a)({
url: "oa/task/subTaskList",
method: "post",
data: e
})
}
function n(e) {
return Object(a.a)({
url: "oa/task/myTask",
method: "post",
data: e
})
}
function l(e) {
return Object(a.a)({
url: "oa/task/save",
method: "post",
data: e
})
}
function o(e) {
return Object(a.a)({
url: "oa/task/delete",
method: "post",
data: e
})
}
function c(e) {
return Object(a.a)({
url: "oa/task/read",
method: "post",
data: e
})
}
function r(e) {
return Object(a.a)({
url: "oa/task/update",
method: "post",
data: e
})
}
function d(e) {
return Object(a.a)({
url: "oa/task/updateName",
method: "post",
data: e
})
}
function u(e) {
return Object(a.a)({
url: "oa/task/updateStoptime",
method: "post",
data: e
})
}
function m(e) {
return Object(a.a)({
url: "oa/task/updateOwner",
method: "post",
data: e
})
}
function h(e) {
return Object(a.a)({
url: "oa/task/updateLable",
method: "post",
data: e
})
}
function p(e) {
return Object(a.a)({
url: "oa/tasklable/save",
method: "post",
data: e
})
}
function f(e) {
return Object(a.a)({
url: "oa/tasklable/update",
method: "post",
data: e
})
}
function v(e) {
return Object(a.a)({
url: "oa/tasklable/delete",
method: "post",
data: e
})
}
function g(e) {
return Object(a.a)({
url: "oa/tasklable/index",
method: "post",
data: e
})
}
function b(e) {
return Object(a.a)({
url: "oa/task/updatePriority",
method: "post",
data: e
})
}
function _(e) {
return Object(a.a)({
url: "oa/task/taskOver",
method: "post",
data: e
})
}
function y(e) {
return Object(a.a)({
url: "oa/task/readLoglist",
method: "post",
data: e
})
}
function w(e) {
return Object(a.a)({
url: "oa/task/delOwnerById",
method: "post",
data: e
})
}
function C(e) {
return Object(a.a)({
url: "oa/taskcomment/save",
method: "post",
data: e
})
}
function k(e) {
return Object(a.a)({
url: "oa/taskcomment/delete",
method: "post",
data: e
})
}
function I(e) {
return Object(a.a)({
url: "oa/task/delrelation",
method: "post",
data: e
})
}
},
"+NTD": function(e, t, i) {
"use strict";
var a = i("mX3o"),
s = i("EgJF"),
n = i("ooHJ"),
l = i("7Qib"),
o = {
name: "RelativeReturnMoney",
components: {
CRMCreateView: s.
default,
CRMFullScreenDetail:
function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-f93a")]).then(i.bind(null, "uMjE"))
}
},
mixins: [a.a],
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
},
detail: {
type: Object,
default:
function() {
return {}
}
},
isSeas: {
type: Boolean,
default:
!1
}
},
data: function() {
return {
list: [],
fieldList: [],
tableHeight: "250px",
showFullDetail: !1,
showFullCrmType: "receivables",
showFullId: "",
createCrmType: "receivables_plan",
isCreate: !1,
palnList: [],
planFieldList: [],
createActionInfo: {}
}
},
computed: {},
watch: {
id: function(e) {
this.list = [], this.palnList = [], this.getList(), this.getPlanList()
}
},
mounted: function() {
this.planFieldList = [{
prop: "num",
width: "200",
label: "期数"
}, {
prop: "customer_id",
width: "200",
label: "客户名称"
}, {
prop: "contract_id",
width: "200",
label: "合同编号"
}, {
prop: "money",
width: "200",
label: "计划回款金额"
}, {
prop: "return_date",
width: "200",
label: "计划回款日期"
}, {
prop: "return_type",
width: "200",
label: "计划回款方式"
}, {
prop: "remind",
width: "200",
label: "提前几日提醒"
}, {
prop: "remark",
width: "200",
label: "备注"
}], this.getPlanList(), this.fieldList = [{
prop: "number",
width: "200",
label: "回款编号"
}, {
prop: "contract_id",
width: "200",
label: "合同名称"
}, {
prop: "contract_money",
width: "200",
label: "合同金额"
}, {
prop: "money",
width: "200",
label: "回款金额"
}, {
prop: "plan_id",
width: "200",
label: "期数"
}, {
prop: "owner_user_id",
width: "200",
label: "负责人"
}, {
prop: "check_status",
width: "200",
label: "状态"
}, {
prop: "return_time",
width: "200",
label: "回款日期"
}], this.getList()
},
methods: {
getPlanList: function() {
var e = this;
this.loading = !0, Object(n.e)(this.getParams()).then(function(t) {
e.loading = !1, e.palnList = t.data.list
}).
catch (function() {
e.loading = !1
})
},
getList: function() {
var e = this;
this.loading = !0, Object(n.c)(this.getParams()).then(function(t) {
e.loading = !1, e.list = t.data.list
}).
catch (function() {
e.loading = !1
})
},
getParams: function() {
return "customer" === this.crmType ? {
customer_id: this.id,
pageType: "all"
} : "contract" === this.crmType ? {
contract_id: this.id,
pageType: "all"
} : {}
},
handleRowClick: function(e, t, i) {
this.showFullId = e.receivables_id, this.showFullCrmType = "receivables", this.showFullDetail = !0
},
cellStyle: function(e) {
e.row, e.column, e.rowIndex;
return 1 == e.columnIndex ? {
color: "#3E84E9"
} : {
textAlign: "center"
}
},
createClick: function(e) {
this.createActionInfo = {
type: "relative",
crmType: this.crmType,
data: {}
}, "money" == e ? ("contract" === this.crmType ? (this.createActionInfo.data.customer = this.detail.customer_id_info, this.createActionInfo.data.contract = this.detail) : "customer" === this.crmType && (this.createActionInfo.data.customer = this.detail), this.createCrmType = "receivables", this.isCreate = !0) : "plan" == e && ("contract" === this.crmType ? (this.createActionInfo.data.customer = this.detail.customer_id_info, this.createActionInfo.data.contract = this.detail) : "customer" === this.crmType && (this.createActionInfo.data.customer = this.detail), this.createCrmType = "receivables_plan", this.isCreate = !0)
},
saveSuccess: function() {
"receivables" == this.createCrmType ? this.getList() : this.getPlanList()
},
handleFile: function(e, t) {
var i = this;
"edit" == e ? (this.createActionInfo = {
type: "update",
id: t.row.plan_id
}, this.createCrmType = "receivables_plan", this.isCreate = !0) : "delete" == e && this.$confirm("您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(n.d)({
id: t.row.plan_id
}).then(function(e) {
i.palnList.splice(t.$index, 1), i.$message.success(e.data)
}).
catch (function() {})
}).
catch (function() {
i.$message({
type: "info",
message: "已取消操作"
})
})
},
fieldFormatter: function(e, t, i) {
return "contract_id" === t.property ? e.contract_id_info.name : "customer_id" === t.property ? e.customer_id_info.name : "create_time" === t.property ? Object(l.n)(e.customer_id_info.create_time) : "owner_user_id" === t.property ? e.owner_user_id_info.realname : "plan_id" === t.property ? e.plan_id_info : "check_status" === t.property ? this.getStatusName(e.check_status) : ["contract_money", "money", ""].includes(t.property) ? Object(l.h)(i) : e[t.property]
},
getStatusName: function(e) {
return e > 5 ? "" : ["待审核", "审核中", "审核通过", "已拒绝", "已撤回", "未提交"][e]
},
headerRowStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
}
}
},
c = (i("GE8g"), i("KHd+")),
r = Object(c.a)(o, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "rc-cont"
}, [e.isSeas ? e._e() : i("flexbox", {
staticClass: "rc-head",
attrs: {
direction: "row-reverse"
}
}, [i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
e.createClick("plan")
}
}
}, [e._v("新建回款计划")])], 1), e._v(" "), i("el-table", {
staticStyle: {
width: "100%",
border: "1px solid #E6E6E6"
},
attrs: {
data: e.palnList,
height: e.tableHeight,
"header-cell-style": e.headerRowStyle,
"cell-style": e.cellStyle,
stripe: ""
}
}, [e._l(e.planFieldList, function(t, a) {
return i("el-table-column", {
key: a,
attrs: {
prop: t.prop,
formatter: e.fieldFormatter,
label: t.label,
"show-overflow-tooltip": ""
}
})
}), e._v(" "), i("el-table-column", {
attrs: {
label: "操作",
width: "100"
},
scopedSlots: e._u([{
key: "default",
fn: function(t) {
return [i("flexbox", {
attrs: {
justify: "center"
}
}, [i("el-button", {
attrs: {
type: "text"
},
nativeOn: {
click: function(i) {
e.handleFile("edit", t)
}
}
}, [e._v("编辑")]), e._v(" "), i("el-button", {
attrs: {
type: "text"
},
nativeOn: {
click: function(i) {
e.handleFile("delete", t)
}
}
}, [e._v("删除")])], 1)]
}
}])
})], 2), e._v(" "), i("flexbox", {
staticClass: "rc-head",
staticStyle: {
"margin-top": "15px"
},
attrs: {
direction: "row-reverse"
}
}, [e.isSeas ? e._e() : i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
e.createClick("money")
}
}
}, [e._v("新建回款")])], 1), e._v(" "), i("el-table", {
staticStyle: {
width: "100%",
border: "1px solid #E6E6E6"
},
attrs: {
data: e.list,
height: e.tableHeight,
"header-cell-style": e.headerRowStyle,
"cell-style": e.cellStyle,
stripe: ""
},
on: {
"row-click": e.handleRowClick
}
}, e._l(e.fieldList, function(t, a) {
return i("el-table-column", {
key: a,
attrs: {
prop: t.prop,
formatter: e.fieldFormatter,
label: t.label,
"show-overflow-tooltip": ""
}
})
})), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
"crm-type": e.showFullCrmType,
id: e.showFullId
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
}), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
"crm-type": e.createCrmType,
action: e.createActionInfo
},
on: {
"save-success": e.saveSuccess,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "387dc8e0", null);
r.options.__file = "RelativeReturnMoney.vue";
t.a = r.exports
},
"+xXq": function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJGMjBEQTUzNDE2NTExRTlBNTYyRkQzQzcyQzU1QTdEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJGMjBEQTU0NDE2NTExRTlBNTYyRkQzQzcyQzU1QTdEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkYyMERBNTE0MTY1MTFFOUE1NjJGRDNDNzJDNTVBN0QiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkYyMERBNTI0MTY1MTFFOUE1NjJGRDNDNzJDNTVBN0QiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7hCk5DAAACAElEQVR42qSV20tUURTGv33GxgtjD0beGtBw8tKLoE/2VxiakC8i5IsYaFAm9qykE/qgIPog2JNKOhH9F0aUPoiNYGJOIEEQNjbmnL7NrMOc2+DkLPjBOXvv9Z211157HXUx0gsfC5JOoYPUkhQ5Ih/JJnkrYw4r8hG7T6ZIxOcjzcJDEiejZMO+yLA9B8hLWRDB5abXvBGfgF+EE+QZ/t8sn1F7hN0eseISqMFxGM+jXBXIR7TbEtS5mXFmKwjj0VOoyF0gVA7cqMzCD+WwWe2pt/yAhO0zqm8YaGjOvJSFYIxFna4HX5COvQYO9+2jt0iPIaXhMFVVm305SwLJ0yx/z4H6OzAGXzCMerdrp2IdHvChzjFcHabDOLd7Heb2FszlGUc6VM8AVNs9mLufYC5O2T2/6girPdn4foT0wiRw+guqpRW4FszOpVIwN1cyO7nd5PasKZJqL/aIHh8i/YpRlpQC564LEZBqM0343ZQEKfc9t58/vGMVN6G6+jN6e9vu2YQW/Ewa3TPGxBKjK8tdecnfMN+vuUe3tGDMKsq87M8ZI9uh2CpwknDPxvQp64zvu2vxCvaNNBhyKE9QuI3o+K27vE6mCxCbFg1H+xojc1cQmxdfTz+8II/lgOJ5CMWlDwyJb86OrZvmO1msu3e7XHwr8R/kF7Du9wv4J8AAdbF+5wQ+l40AAAAASUVORK5CYII="
},
"/5jD": function(e, t, i) {
"use strict";
var a = i("uWiH");
i.n(a).a
},
"/U9q": function(e, t, i) {
"use strict";
var a = i("mX3o"),
s = i("EgJF"),
n = i("qbf4"),
l = i("mkuN"),
o = {
name: "RelativeContacts",
components: {
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-f93a")]).then(i.bind(null, "uMjE"))
},
CRMCreateView: s.
default,
CrmRelative:
l.a
},
mixins: [a.a],
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
},
detail: {
type: Object,
default:
function() {
return {}
}
}
},
data: function() {
return {
nopermission: !1,
list: [],
fieldList: [],
tableHeight: "400px",
showFullDetail: !1,
isCreate: !1,
contactsId: "",
createActionInfo: {
type: "relative",
crmType: this.crmType,
data: {}
},
showRelativeView: !1,
selectionList: []
}
},
computed: {
customer_id: function() {
return this.detail.customer_id
},
canRelation: function() {
return "business" == this.crmType
}
},
watch: {
id: function(e) {
this.list = [], this.getDetail()
}
},
mounted: function() {
this.getDetail()
},
activated: function() {},
deactivated: function() {},
methods: {
checkRelativeInfos: function(e) {
var t = this;
if (e.data.length > 0) {
var i = {
is_relation: 1
};
i[this.crmType + "_id"] = this.id, i.contacts_id = e.data.map(function(e) {
return e.contacts_id
}), Object(n.g)(i).then(function(e) {
t.getDetail(), t.$message.success(e.data)
}).
catch (function() {})
}
},
unRelevanceHandleClick: function() {
var e = this;
0 == this.selectionList.length ? this.$message.error("请先勾选数据") : this.$confirm("确认取消关联?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
var t = {
is_relation: 0
};
t[e.crmType + "_id"] = e.id, t.contacts_id = e.selectionList.map(function(e) {
return e.contacts_id
}), Object(n.g)(t).then(function(t) {
e.getDetail(), e.$message.success(t.data)
}).
catch (function() {})
}).
catch (function() {
e.$message.info("已取消操作")
})
},
getFieldList: function() {
this.fieldList.push({
prop: "name",
width: "200",
label: "姓名"
}), this.fieldList.push({
prop: "mobile",
width: "200",
label: "手机"
}), this.fieldList.push({
prop: "post",
width: "200",
label: "职务"
})
},
getDetail: function() {
var e = this;
this.loading = !0;
var t = {
pageType: "all"
};
t[this.crmType + "_id"] = this.id, Object(n.e)(t).then(function(t) {
0 == e.fieldList.length && e.getFieldList(), e.nopermission = !1, e.loading = !1, e.list = t.data.list
}).
catch (function(t) {
102 == t.code && (e.nopermission = !0), e.loading = !1
})
},
handleRowClick: function(e, t, i) {
this.contactsId = e.contacts_id, this.showFullDetail = !0
},
headerRowStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
cellStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
createClick: function() {
"customer" == this.crmType ? this.createActionInfo.data.customer = this.detail : "business" == this.crmType && (this.createActionInfo.data.customer = this.detail.customer_id_info), this.isCreate = !0
},
createSaveSuccess: function() {
this.canRelation ? this.$refs.crmrelative.refreshList() : this.getDetail()
}
}
},
c = (i("ixqQ"), i("KHd+")),
r = Object(c.a)(o, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: e.nopermission,
expression: "nopermission"
}],
staticClass: "rc-cont",
attrs: {
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
}
}, [e.isSeas ? e._e() : i("flexbox", {
staticClass: "rc-head",
attrs: {
direction: "row-reverse"
}
}, [i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.createClick(t)
}
}
}, [e._v("新建联系人")]), e._v(" "), e.canRelation ? i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.unRelevanceHandleClick(t)
}
}
}, [e._v("解除关联")]) : e._e(), e._v(" "), e.canRelation ? i("el-popover", {
staticStyle: {
"margin-right": "20px"
},
attrs: {
placement: "bottom",
width: "700",
"popper-class": "no-padding-popover",
trigger: "click"
},
model: {
value: e.showRelativeView,
callback: function(t) {
e.showRelativeView = t
},
expression: "showRelativeView"
}
}, [i("crm-relative", {
ref: "crmrelative",
attrs: {
show: e.showRelativeView,
radio: !1,
action: {
type: "condition",
data: {
form_type: "customer",
customer_id: e.customer_id
}
},
"selected-data": {
contacts: e.list
},
"crm-type": "contacts"
},
on: {
close: function(t) {
e.showRelativeView = !1
},
changeCheckout: e.checkRelativeInfos
},
model: {
value: e.showRelativeView,
callback: function(t) {
e.showRelativeView = t
},
expression: "showRelativeView"
}
}), e._v(" "), i("el-button", {
staticClass: "rc-head-item",
staticStyle: {
"margin-right": "0"
},
attrs: {
slot: "reference",
type: "primary"
},
nativeOn: {
click: function(t) {
e.showRelativeView = !0
}
},
slot: "reference"
}, [e._v("关联")])], 1) : e._e()], 1), e._v(" "), i("el-table", {
staticStyle: {
width: "100%",
border: "1px solid #E6E6E6"
},
attrs: {
data: e.list,
height: e.tableHeight,
"header-cell-style": e.headerRowStyle,
"cell-style": e.cellStyle,
stripe: ""
},
on: {
"row-click": e.handleRowClick,
"selection-change": function(t) {
e.selectionList = t
}
}
}, [e.canRelation && e.fieldList.length > 0 ? i("el-table-column", {
attrs: {
"show-overflow-tooltip": "",
type: "selection",
align: "center",
width: "55"
}
}) : e._e(), e._v(" "), e._l(e.fieldList, function(e, t) {
return i("el-table-column", {
key: t,
attrs: {
prop: e.prop,
label: e.label,
"show-overflow-tooltip": ""
}
})
})], 2), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
id: e.contactsId,
"crm-type": "contacts"
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
}), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
action: e.createActionInfo,
"crm-type": "contacts"
},
on: {
"save-success": e.createSaveSuccess,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "eb29b296", null);
r.options.__file = "RelativeContacts.vue";
t.a = r.exports
},
"1RnH": function(e, t, i) {
"use strict";
var a = i("QbLZ"),
s = i.n(a),
n = i("+9th"),
l = i("mkuN"),
o = i("Er7M"),
c = i("7Qib"),
r = i("L2JU"),
d = {
components: {
CrmRelative: l.a,
RelatedBusinessCell: o.a
},
props: {
marginLeft: {
type: String,
default:
"20px"
},
allData: {
type: Object,
default:
function() {
return {
contacts: [],
customer: [],
business: [],
contract: []
}
}
},
isTask: {
type: Boolean,
default:
!1
},
taskID: Number,
alterable: {
type: Boolean,
default:
!0
},
alterableColor: {
type: String,
default:
"#999"
}
},
data: function() {
return {
showTypes: ["customer", "contacts", "business", "contract"],
showPopover: !1,
relevanceAll: {
customer_ids: [],
contract_ids: [],
contacts_ids: [],
business_ids: []
},
relatedListData: {},
showRelative: !1,
showTaskRelative: !1
}
},
computed: s()({}, Object(r.b)(["crm"]), {
showCRMPermission: function() {
return this.crm
}
}),
watch: {
allData: function() {
this.relatedListData = this.allData
}
},
mounted: function() {
this.relatedListData = this.allData
},
methods: {
crmrelativeClose: function() {
this.showPopover = !1
},
checkInfos: function(e) {
var t = this;
this.showPopover = !1, this.relatedListData = e.data;
var i = function(i) {
var a = e.data[i];
t.relevanceAll[i + "_ids"] = a.map(function(e, t, a) {
return e[i + "_id"]
})
};
for (var a in e.data) i(a);
this.$emit("checkInfos", this.relevanceAll)
},
delRelevance: function(e, t, i) {
var a = this;
this.$confirm("确认取消关联?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
customClass: "is-particulars"
}).then(function() {
Object(n.i)({
task_id: a.taskID,
type: {
customer: 1,
contacts: 2,
business: 3,
contract: 4
}[e],
id: i[e + "_id"]
}).then(function(i) {
a.relatedListData[e].splice(t, 1), a.relatedListData = Object(c.i)(a.relatedListData), a.$message.success("关联取消成功")
}).
catch (function() {})
}).
catch (function() {
a.$message.info("已取消操作")
})
},
checkRelatedDetail: function(e, t) {
t.key = t[e + "_id"], this.$emit("checkRelatedDetail", e, t)
}
}
},
u = (i("GsUu"), i("KHd+")),
m = Object(u.a)(d, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
staticClass: "related-business",
style: {
"margin-left": e.marginLeft
}
}, [!e.isTask && e.alterable ? a("el-popover", {
attrs: {
placement: "bottom",
width: "800",
"popper-class": "no-padding-popover",
trigger: "click"
},
model: {
value: e.showPopover,
callback: function(t) {
e.showPopover = t
},
expression: "showPopover"
}
}, [e.showRelative ? a("crm-relative", {
ref: "crmrelative",
attrs: {
show: e.showPopover,
radio: !1,
"selected-data": e.relatedListData,
"show-types": e.showTypes
},
on: {
close: e.crmrelativeClose,
changeCheckout: e.checkInfos
}
}) : e._e(), e._v(" "), e.showCRMPermission ? a("p", {
staticClass: "add-file",
attrs: {
slot: "reference"
},
on: {
click: function(t) {
e.showRelative = !0
}
},
slot: "reference"
}, [a("img", {
attrs: {
src: i("AFlK"),
alt: ""
}
}), e._v("\n 关联业务\n ")]) : e._e()], 1) : e._e(), e._v(" "), e.alterable ? e._e() : a("p", {
staticClass: "alterable-p",
style: {
color: e.alterableColor
}
}, [e._v("关联业务")]), e._v(" "), e._l(e.relatedListData, function(t, i) {
return a("div", {
key: i
}, e._l(t, function(t, s) {
return a("related-business-cell", {
key: s,
attrs: {
data: t,
"cell-index": s,
type: i,
"show-foot": e.isTask
},
on: {
unbind: e.delRelevance,
detail: function(a) {
e.checkRelatedDetail(i, t)
}
}
})
}))
}), e._v(" "), e.isTask ? a("el-popover", {
attrs: {
placement: "bottom",
width: "800",
"popper-class": "no-padding-popover",
trigger: "click"
},
model: {
value: e.showPopover,
callback: function(t) {
e.showPopover = t
},
expression: "showPopover"
}
}, [e.showTaskRelative ? a("crm-relative", {
ref: "crmrelative",
attrs: {
radio: !1,
show: e.showPopover,
"selected-data": e.relatedListData,
"show-types": e.showTypes
},
on: {
close: e.crmrelativeClose,
changeCheckout: e.checkInfos
}
}) : e._e(), e._v(" "), e.showCRMPermission ? a("p", {
staticClass: "add-file",
attrs: {
slot: "reference"
},
on: {
click: function(t) {
e.showTaskRelative = !0
}
},
slot: "reference"
}, [a("img", {
attrs: {
src: i("AFlK"),
alt: ""
}
}), e._v("\n 关联业务\n ")]) : e._e()], 1) : e._e()], 2)
}, [], !1, null, "8253b738", null);
m.options.__file = "relatedBusiness.vue";
t.a = m.exports
},
"1Vnm": function(e, t, i) {
"use strict";
var a = i("ODyT");
i.n(a).a
},
"2NmU": function(e, t, i) {
"use strict";
var a = i("l7zd");
i.n(a).a
},
"2P4K": function(e, t, i) {
"use strict";
var a = i("zxr/");
i.n(a).a
},
"3biH": function(e, t, i) {
"use strict";
var a = i("KzkL"),
s = i("Ktth"),
n = i.n(s),
l = i("QhmF"),
o = {
name: "CheckFlow",
components: {},
filters: {
statusIcon: function(e) {
return 0 == e ? i("migV") : 1 == e ? i("y4JV") : 2 == e ? i("+xXq") : 3 == e ? i("wu/m") : 4 == e || 5 == e ? i("6pZM") : ""
},
detailName: function(e) {
return 2 == e.status ? e.user_id_info.length + "人或签" : 3 == e.status ? e.user_id_info.length + "人会签" : 1 == e.status ? "负责人主管" : 4 == e.status ? "上一级审批人主管" : void 0
},
stepName: function(e) {
return "第" + n.a.encodeS(e) + "级"
}
},
props: {
examineType: {
type: String,
default:
""
},
id: [String, Number]
},
data: function() {
return {
loading: !1,
list: []
}
},
computed: {},
watch: {
id: function(e) {
this.list = [], this.getDetail()
}
},
mounted: function() {
this.getDetail()
},
methods: {
getDetail: function() {
var e = this;
this.loading = !0, Object(a.b)({
types: this.examineType,
types_id: this.id
}).then(function(t) {
e.loading = !1, e.list = t.data, e.$emit("value-change", {
config: t.data.config,
value: []
})
}).
catch (function() {
e.loading = !1
})
},
getStatusName: function(e) {
return 0 == e ? "拒绝" : 1 == e ? "通过" : 2 == e ? "撤回" : 3 == e ? "创建" : 4 == e ? "待审核" : 5 == e ? "待提交" : ""
},
close: function() {
this.$emit("close")
}
}
},
c = (i("1Vnm"), i("KHd+")),
r = Object(c.a)(o, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}, {
name: "empty",
rawName: "v-empty",
value: e.list,
expression: "list"
}],
attrs: {
"xs-empty-icon": "none",
"xs-empty-text": "暂无记录"
}
}, [a("flexbox", {
staticClass: "flow-head"
}, [a("div", {
staticClass: "flow-head-name"
}, [e._v("审批流程")]), e._v(" "), a("img", {
staticClass: "flow-head-close",
attrs: {
src: i("cjwK")
},
on: {
click: e.close
}
})]), e._v(" "), a("div", {
staticClass: "flow-body"
}, e._l(e.list, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "cf-flow-item",
attrs: {
align: "stretch",
justify: "flex-start"
}
}, [a("img", {
staticClass: "cf-flow-item-img",
attrs: {
src: e._f("statusIcon")(t.status)
}
}), e._v(" "), a("div", [a("flexbox", {
staticClass: "cf-flow-item-head"
}, [a("div", {
staticClass: "cf-flow-item-des"
}, [e._v(e._s(e._f("stepName")(t.order_id)))]), e._v(" "), a("div", [e._v(e._s(e._f("filterTimestampToFormatTime")(t.check_time)))])]), e._v(" "), a("flexbox", {
staticClass: "cf-flow-item-info"
}, [a("div", {
staticClass: "cf-flow-item-name"
}, [e._v(e._s(t.check_user_id_info.realname))]), e._v(" "), a("div", [a("span", [e._v(e._s(e.getStatusName(t.status)))]), e._v("了此申请")])]), e._v(" "), t.content ? a("div", {
staticClass: "cf-flow-item-content"
}, [e._v(e._s(t.content) + "\n "), a("div", {
staticClass: "cf-flow-item-content-arrow"
})]) : e._e()], 1), e._v(" "), a("div", {
staticClass: "cf-flow-item-line"
})])
}))], 1)
}, [], !1, null, "4a3ada9c", null);
r.options.__file = "CheckFlow.vue";
var d = r.exports,
u = {
name: "ExamineInfo",
components: {
ExamineHandle: l.
default,
CheckFlow:
d
},
filters: {
statusIcon: function(e) {
return 0 == e ? i("migV") : 1 == e ? i("y4JV") : 2 == e ? i("+xXq") : 3 == e ? i("wu/m") : 4 == e || 5 == e ? i("6pZM") : ""
},
detailName: function(e) {
return 2 == e.status ? e.user_id_info.length + "人或签" : 3 == e.status ? e.user_id_info.length + "人会签" : 1 == e.status ? "负责人主管" : 4 == e.status ? "上一级审批人主管" : 3 == e.type ? "创建人" : void 0
},
stepName: function(e) {
return "第" + n.a.encodeS(e) + "级"
}
},
props: {
examineType: {
type: String,
default:
""
},
refresh: {
type: Boolean,
default:
!0
},
id: [String, Number],
flow_id: [String, Number]
},
data: function() {
return {
loading: !1,
examineInfo: {},
showFlowPopover: !1,
examineHandleInfo: {
status: 0
},
showExamineHandle: !1
}
},
computed: {},
watch: {
id: {
handler: function(e) {
e && (this.examineInfo = {}, this.getFlowStepList())
},
deep: !0,
immediate: !0
},
refresh: function() {
this.getFlowStepList()
},
flow_id: {
handler: function(e) {
e && (this.examineInfo = {}, this.getFlowStepList())
},
deep: !0,
immediate: !0
}
},
mounted: function() {},
methods: {
getFlowStepList: function() {
var e = this;
this.flow_id && this.id && (this.loading = !0, Object(a.c)({
types: this.examineType,
flow_id: this.flow_id,
types_id: this.id,
action: "view"
}).then(function(t) {
e.loading = !1, e.examineInfo = t.data, e.$emit("value-change", {
config: t.data.config,
value: []
})
}).
catch (function() {
e.loading = !1
}))
},
examineHandle: function(e) {
this.examineHandleInfo.status = e, this.showExamineHandle = !0
},
getStatusName: function(e) {
return 0 == e ? "拒绝" : 1 == e ? "通过" : 2 == e ? "撤回" : 3 == e ? "创建" : 4 == e ? "待审核" : 5 == e ? "待提交" : ""
},
getContentFilters: function(e) {
for (var t = "", i = 0; i < e.length; i++) {
var a = e[i];
t = i == e.length - 1 ? t + a.realname + ":" + this.getStatusName(a.check_type) : t + a.realname + ":" + this.getStatusName(a.check_type) + "、"
}
return t
},
examineHandleClick: function(e) {
this.getFlowStepList(), console.log(e, "==data=="), this.$emit("on-handle", e)
}
}
},
m = (i("LXjn"), Object(c.a)(u, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
staticClass: "contract-flow-box"
}, [a("flexbox", {
staticStyle: {
position: "relative"
},
attrs: {
direction: "row-reverse"
}
}, [a("el-popover", {
attrs: {
placement: "bottom",
width: "300",
trigger: "click"
},
model: {
value: e.showFlowPopover,
callback: function(t) {
e.showFlowPopover = t
},
expression: "showFlowPopover"
}
}, [a("check-flow", {
attrs: {
id: e.id,
"examine-type": e.examineType
},
on: {
close: function(t) {
e.showFlowPopover = !1
}
}
}), e._v(" "), a("el-button", {
staticClass: "check-flow-button",
attrs: {
slot: "reference",
type: "text"
},
slot: "reference"
}, [e._v("查看审批历史")])], 1), e._v(" "), a("div", {
staticStyle: {
"min-height": "40px"
}
}, [1 == e.examineInfo.is_recheck ? a("el-button", {
staticClass: "flow-button white",
on: {
click: function(t) {
e.examineHandle(2)
}
}
}, [e._v("撤回审批")]) : e._e(), e._v(" "), 1 == e.examineInfo.is_check ? a("el-button", {
staticClass: "flow-button red",
on: {
click: function(t) {
e.examineHandle(0)
}
}
}, [e._v("拒绝")]) : e._e(), e._v(" "), 1 == e.examineInfo.is_check ? a("el-button", {
staticClass: "flow-button blue",
on: {
click: function(t) {
e.examineHandle(1)
}
}
}, [e._v("通过")]) : e._e()], 1)], 1), e._v(" "), 0 == e.examineInfo.config ? a("flexbox", {
staticClass: "check-items"
}, e._l(e.examineInfo.stepList, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "check-item"
}, [a("div", [a("flexbox", {
staticClass: "check-item-user",
staticStyle: {
width: "auto"
}
}, [a("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: t.userInfo,
expression: "item.userInfo"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(t.userInfo.thumb_img),
expression: "$options.filters.filterUserLazyImg(item.userInfo.thumb_img)",
arg: "background-image"
}],
key: t.userInfo.thumb_img,
staticClass: "div-photo check-item-img"
}), e._v(" "), a("div", {
staticClass: "check-item-name"
}, [e._v(e._s(t.userInfo.realname))])]), e._v(" "), a("flexbox", {
staticClass: "check-item-info"
}, [a("img", {
staticClass: "check-item-img",
attrs: {
src: e._f("statusIcon")(t.type)
}
}), e._v(" "), a("div", {
staticClass: "check-item-name"
}, [e._v(e._s(e.getStatusName(t.type)))])])], 1), e._v(" "), e.examineInfo.stepList.length - 1 != i ? a("i", {
staticClass: "el-icon-arrow-right check-item-arrow"
}) : e._e()])
})) : 1 == e.examineInfo.config ? a("flexbox", {
staticClass: "check-items",
attrs: {
wrap: "wrap"
}
}, e._l(e.examineInfo.stepList, function(t, s) {
return a("el-popover", {
key: s,
attrs: {
disabled: 0 == t.user_id_info.length,
placement: "bottom",
trigger: "hover"
}
}, [a("div", {
staticClass: "popover-detail"
}, e._l(t.user_id_info, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "popover-detail-item",
attrs: {
align: "stretch"
}
}, [a("img", {
staticClass: "popover-detail-item-img",
attrs: {
src: e._f("statusIcon")(t.check_type)
}
}), e._v(" "), a("div", [a("div", {
staticClass: "popover-detail-item-time"
}, [e._v(e._s(e._f("filterTimestampToFormatTime")(t.check_time)))]), e._v(" "), a("flexbox", {
staticClass: "popover-detail-item-examine"
}, [a("div", {
staticClass: "examine-name"
}, [e._v(e._s(t.realname))]), e._v(" "), a("div", {
staticClass: "examine-info"
}, [e._v(e._s(e.getStatusName(t.check_type)) + "此申请")])])], 1)])
})), e._v(" "), a("flexbox", {
staticClass: "fixed-examine-item",
attrs: {
slot: "reference"
},
slot: "reference"
}, [a("div", {
staticClass: "fixed-examine-info"
}, [a("img", {
attrs: {
src: i("dZj0")
}
}), e._v(" "), a("div", {
staticClass: "detail"
}, [e._v(e._s(e._f("detailName")(t)))]), e._v(" "), a("flexbox", {
staticClass: "check-item-info"
}, [a("img", {
staticClass: "check-item-img",
attrs: {
src: e._f("statusIcon")(t.type)
}
}), e._v(" "), a("div", {
staticClass: "check-item-name"
}, [e._v(e._s(e.getStatusName(t.type)))])])], 1), e._v(" "), e.examineInfo.stepList.length - 1 != s ? a("i", {
staticClass: "el-icon-arrow-right check-item-arrow"
}) : e._e()])], 1)
})) : e._e(), e._v(" "), a("examine-handle", {
attrs: {
show: e.showExamineHandle,
id: e.id,
"examine-type": e.examineType,
detail: e.examineInfo,
status: e.examineHandleInfo.status
},
on: {
close: function(t) {
e.showExamineHandle = !1
},
save: e.examineHandleClick
}
})], 1)
}, [], !1, null, "3ee53ee0", null));
m.options.__file = "ExamineInfo.vue";
t.a = m.exports
},
"3gs7": function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxMEMyOTg1QzBBMzExRThCRjRERkU3Mzg5NDBDQTlCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxMEMyOTg2QzBBMzExRThCRjRERkU3Mzg5NDBDQTlCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzEwQzI5ODNDMEEzMTFFOEJGNERGRTczODk0MENBOUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzEwQzI5ODRDMEEzMTFFOEJGNERGRTczODk0MENBOUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4G5F1NAAAA5UlEQVR42mJctWpVAwMDQyUQszGQBn4CcRMLkKgC4j9AfJZEA7SBuAZkwEUgNgTiTCA+TaRmJyDeA8SHmIBEERCD6NlAzEKEZj4gng/EH4E4EaTxMBAvB2J9IC4hwoB+IJYD4lQgvs8EFSwD4i9AXAfEKng0+wBxEhDPAOI1DFCng8BTIG4FYk6oJCMWzUJQb4LCrBAmyITmtNtA7AzE8VgMmA7EvEAcAcQ/sBnwE8nkDjTNnUAcBsRZQHwDWYIJTeFWKC2OJl4GpRehO4uJgUIwDAzAlnQ3UWqA/4B7gYEUbwEEGAANECY5RBCuPwAAAABJRU5ErkJggg=="
},
"3hkp": function(e, t, i) {},
"3yi6": function(e, t, i) {
"use strict";
var a = i("7Qib"),
s = i("KzkL"),
n = {
name: "FollowRecordCell",
components: {
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-66f9"), i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-e78f"), i.e("chunk-f93ad")]).then(i.bind(null, "uMjE"))
}
},
props: {
item: {
type: Object,
default:
function() {
return {}
}
},
crmType: {
type: String,
default:
""
},
index: [String, Number]
},
data: function() {
return {
showFullDetail: !1,
relationID: "",
relationCrmType: ""
}
},
computed: {},
mounted: function() {},
methods: {
previewImg: function(e, t) {
this.$bus.emit("preview-image-bus", {
index: t,
data: e.map(function(e, t, i) {
return e.url = e.file_path, e
})
})
},
downloadFile: function(e) {
Object(a.a)({
path: e.file_path,
name: e.name
})
},
handleCommand: function(e) {
var t = this;
this.$confirm("确定删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(s.j)({
id: t.item.record_id
}).then(function(i) {
t.$emit("on-handle", {
type: e,
data: {
item: t.item,
index: t.index
}
}), t.$message.success(i.data)
}).
catch (function() {})
}).
catch (function() {
t.$message({
type: "info",
message: "已取消操作"
})
})
},
checkRelationDetail: function(e, t) {
this.relationID = t, this.relationCrmType = e, this.showFullDetail = !0
}
}
},
l = (i("+9np"), i("KHd+")),
o = Object(l.a)(n, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
staticClass: "fl-c"
}, [a("flexbox", {
staticClass: "fl-h"
}, [a("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: e.item.create_user_info,
expression: "item.create_user_info"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(e.item.create_user_info.thumb_img),
expression: "$options.filters.filterUserLazyImg(item.create_user_info.thumb_img)",
arg: "background-image"
}],
key: e.item.create_user_info.thumb_img,
staticClass: "div-photo fl-h-img"
}), e._v(" "), a("div", {
staticClass: "fl-h-b"
}, [a("div", {
staticClass: "fl-h-name"
}, [e._v(e._s(e.item.create_user_info.realname))]), e._v(" "), a("div", {
staticClass: "fl-h-time"
}, [e._v(e._s(e._f("filterTimestampToFormatTime")(e.item.create_time, "YYYY-MM-DD HH:mm")))])]), e._v(" "), a("flexbox", {
staticClass: "fl-h-mark"
}, [a("img", {
staticClass: "fl-h-mark-img",
attrs: {
src: i("N0PQ")
}
}), e._v(" "), a("div", {
staticClass: "fl-h-mark-name"
}, [e._v("跟进记录")])]), e._v(" "), a("el-dropdown", {
attrs: {
trigger: "click"
},
on: {
command: e.handleCommand
}
}, [a("i", {
staticClass: "el-icon-arrow-down el-icon-more",
staticStyle: {
color: "#CDCDCD",
"margin-left": "8px"
}
}), e._v(" "), a("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, [a("el-dropdown-item", {
attrs: {
command: "delete"
}
}, [e._v("删除")])], 1)], 1)], 1), e._v(" "), a("div", {
staticClass: "fl-b"
}, [a("div", {
staticClass: "fl-b-content"
}, [e._v(e._s(e.item.content))]), e._v(" "), e.item.dataInfo.imgList && e.item.dataInfo.imgList.length > 0 ? a("flexbox", {
staticClass: "fl-b-images",
attrs: {
wrap: "wrap"
}
}, e._l(e.item.dataInfo.imgList, function(t, i) {
return a("div", {
directives: [{
name: "lazy",
rawName: "v-lazy:background-image",
value: t.file_path_thumb,
expression: "file.file_path_thumb",
arg: "background-image"
}],
key: t.file_path_thumb,
staticClass: "fl-b-img-item",
on: {
click: function(t) {
e.previewImg(e.item.dataInfo.imgList, i)
}
}
})
})) : e._e(), e._v(" "), e.item.dataInfo.fileList && e.item.dataInfo.fileList.length > 0 ? a("div", {
staticClass: "fl-b-files"
}, e._l(e.item.dataInfo.fileList, function(t, s) {
return a("flexbox", {
key: s,
staticClass: "cell"
}, [a("img", {
staticClass: "cell-head",
attrs: {
src: i("6KEE")
}
}), e._v(" "), a("div", {
staticClass: "cell-body"
}, [e._v(e._s(t.name)), a("span", {
staticStyle: {
color: "#ccc"
}
}, [e._v("(" + e._s(t.size) + ")")])]), e._v(" "), a("el-button", {
attrs: {
type: "primary",
icon: "el-icon-download"
},
on: {
click: function(i) {
e.downloadFile(t)
}
}
}, [e._v("下载")])], 1)
})) : e._e(), e._v(" "), e.item.category || e.item.next_time ? a("div", {
staticClass: "follow"
}, [e.item.category ? a("span", {
staticClass: "follow-info"
}, [e._v(e._s(e.item.category))]) : e._e(), e._v(" "), e.item.next_time ? a("span", {
staticClass: "follow-info"
}, [e._v(e._s(e._f("filterTimestampToFormatTime")(e.item.next_time, "YYYY-MM-DD HH:mm:ss")))]) : e._e()]) : e._e(), e._v(" "), e.item.dataInfo.contactsList && e.item.dataInfo.contactsList.length > 0 ? a("div", {
staticClass: "fl-b-other"
}, [a("div", {
staticClass: "fl-b-other-name"
}, [e._v("关联联系人")]), e._v(" "), a("div", e._l(e.item.dataInfo.contactsList, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "cell",
nativeOn: {
click: function(i) {
e.checkRelationDetail("contacts", t.contacts_id)
}
}
}, [a("i", {
staticClass: "wukong wukong-contacts cell-head crm-type",
style: {
opacity: 0 == i ? 1 : 0
}
}), e._v(" "), a("div", {
staticClass: "cell-body",
staticStyle: {
color: "#6394E5",
cursor: "pointer"
}
}, [e._v(e._s(t.name))])])
}))]) : e._e(), e._v(" "), e.item.dataInfo.businessList && e.item.dataInfo.businessList.length > 0 ? a("div", {
staticClass: "fl-b-other"
}, [a("div", {
staticClass: "fl-b-other-name"
}, [e._v("关联商机")]), e._v(" "), a("div", e._l(e.item.dataInfo.businessList, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "cell",
nativeOn: {
click: function(i) {
e.checkRelationDetail("business", t.business_id)
}
}
}, [a("i", {
staticClass: "wukong wukong-business cell-head crm-type",
style: {
opacity: 0 == i ? 1 : 0
}
}), e._v(" "), a("div", {
staticClass: "cell-body",
staticStyle: {
color: "#6394E5",
cursor: "pointer"
}
}, [e._v(e._s(t.name))])])
}))]) : e._e(), e._v(" "), e._t("default")], 2), e._v(" "), a("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
"crm-type": e.relationCrmType,
id: e.relationID
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
})], 1)
}, [], !1, null, "e92cd6c6", null);
o.options.__file = "FollowRecordCell.vue";
t.a = o.exports
},
"5hU7": function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZDRTM3MDlBRUUzODExRTg4Njk3OTRBOTFDQjJDRjRCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZDRTM3MDlCRUUzODExRTg4Njk3OTRBOTFDQjJDRjRCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkNFMzcwOThFRTM4MTFFODg2OTc5NEE5MUNCMkNGNEIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkNFMzcwOTlFRTM4MTFFODg2OTc5NEE5MUNCMkNGNEIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz52FujQAAAAVklEQVR42mK0a3nJQC44WC3GwMRAISBkwBEgPoxPAQsBA6wpdQHD0DIAFGD/0TAMoIsfptQFjNhiwQaLwv/oGoZhLBBKiUcpNcCGYHT8//+fIi8ABBgA6ZAToBWLB7IAAAAASUVORK5CYII="
},
"5j45": function(e, t, i) {
"use strict";
var a = i("mX3o"),
s = i("EgJF"),
n = i("UcQx"),
l = i("qbf4"),
o = i("mkuN"),
c = i("7Qib"),
r = {
name: "RelativeBusiness",
components: {
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-f93a")]).then(i.bind(null, "uMjE"))
},
CRMCreateView: s.
default,
CrmRelative:
o.a
},
mixins: [a.a],
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
},
detail: {
type: Object,
default:
function() {
return {}
}
}
},
data: function() {
return {
nopermission: !1,
list: [],
fieldList: [],
tableHeight: "400px",
showFullDetail: !1,
isCreate: !1,
businessId: "",
formatterRules: {},
createActionInfo: {
type: "relative",
crmType: this.crmType,
data: {}
},
showRelativeView: !1,
selectionList: []
}
},
computed: {
customer_id: function() {
return this.detail.customer_id
},
canRelation: function() {
return "contacts" == this.crmType
}
},
watch: {
id: function(e) {
this.list = [], this.getDetail()
}
},
mounted: function() {
this.getDetail()
},
activated: function() {},
deactivated: function() {},
methods: {
checkRelativeInfos: function(e) {
var t = this;
if (e.data.length > 0) {
var i = {
is_relation: 1
};
i[this.crmType + "_id"] = this.id, i.business_id = e.data.map(function(e) {
return e.business_id
}), Object(l.g)(i).then(function(e) {
t.getDetail(), t.$message.success(e.data)
}).
catch (function() {})
}
},
unRelevanceHandleClick: function() {
var e = this;
0 == this.selectionList.length ? this.$message.error("请先勾选数据") : this.$confirm("确认取消关联?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
var t = {
is_relation: 0
};
t[e.crmType + "_id"] = e.id, t.business_id = e.selectionList.map(function(e) {
return e.business_id
}), Object(l.g)(t).then(function(t) {
e.getDetail(), e.$message.success(t.data)
}).
catch (function() {})
}).
catch (function() {
e.$message.info("已取消操作")
})
},
getFieldList: function() {
function e(e) {
return e || ""
}
this.fieldList.push({
prop: "name",
width: "200",
label: "商机名称"
}), this.fieldList.push({
prop: "money",
width: "200",
label: "商机金额"
}), this.fieldList.push({
prop: "customer_id",
width: "200",
label: "客户名称"
}), this.fieldList.push({
prop: "type_id",
width: "200",
label: "商机状态组"
}), this.fieldList.push({
prop: "status_id",
width: "200",
label: "状态"
}), this.formatterRules.customer_id = {
type: "crm",
formatter: function(e) {
return e ? e.name : ""
}
}, this.formatterRules.type_id = {
type: "crm",
formatter: e
}, this.formatterRules.status_id = {
type: "crm",
formatter: e
}
},
getDetail: function() {
var e = this;
this.loading = !0;
var t = {
pageType: "all"
};
t[this.crmType + "_id"] = this.id, Object(n.d)(t).then(function(t) {
0 == e.fieldList.length && e.getFieldList(), e.nopermission = !1, e.loading = !1, e.list = t.data.list
}).
catch (function(t) {
102 == t.code && (e.nopermission = !0), e.loading = !1
})
},
fieldFormatter: function(e, t, i) {
if (["money"].includes(t.property)) return Object(c.h)(i);
var a = this.formatterRules[t.property];
return a ? "crm" === a.type ? t.property ? a.formatter(e[t.property + "_info"]) : "" : a.formatter(e[t.property]) : e[t.property]
},
handleRowClick: function(e, t, i) {
this.businessId = e.business_id, this.showFullDetail = !0
},
headerRowStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
cellStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
createClick: function() {
"contacts" == this.crmType ? this.createActionInfo.data.customer = this.detail.customer_id_info : "customer" == this.crmType && (this.createActionInfo.data.customer = this.detail), this.isCreate = !0
},
createSaveSuccess: function() {
this.canRelation ? this.$refs.crmrelative.refreshList() : this.getDetail()
}
}
},
d = (i("toL5"), i("KHd+")),
u = Object(d.a)(r, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: e.nopermission,
expression: "nopermission"
}],
staticClass: "rc-cont",
attrs: {
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
}
}, [e.isSeas ? e._e() : i("flexbox", {
staticClass: "rc-head",
attrs: {
direction: "row-reverse"
}
}, [i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.createClick(t)
}
}
}, [e._v("新建商机")]), e._v(" "), e.canRelation ? i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.unRelevanceHandleClick(t)
}
}
}, [e._v("解除关联")]) : e._e(), e._v(" "), e.canRelation ? i("el-popover", {
staticStyle: {
"margin-right": "20px"
},
attrs: {
placement: "bottom",
width: "700",
"popper-class": "no-padding-popover",
trigger: "click"
},
model: {
value: e.showRelativeView,
callback: function(t) {
e.showRelativeView = t
},
expression: "showRelativeView"
}
}, [i("crm-relative", {
ref: "crmrelative",
attrs: {
show: e.showRelativeView,
radio: !1,
action: {
type: "condition",
data: {
form_type: "customer",
customer_id: e.customer_id
}
},
"selected-data": {
business: e.list
},
"crm-type": "business"
},
on: {
close: function(t) {
e.showRelativeView = !1
},
changeCheckout: e.checkRelativeInfos
},
model: {
value: e.showRelativeView,
callback: function(t) {
e.showRelativeView = t
},
expression: "showRelativeView"
}
}), e._v(" "), i("el-button", {
staticClass: "rc-head-item",
staticStyle: {
"margin-right": "0"
},
attrs: {
slot: "reference",
type: "primary"
},
nativeOn: {
click: function(t) {
e.showRelativeView = !0
}
},
slot: "reference"
}, [e._v("关联")])], 1) : e._e()], 1), e._v(" "), i("el-table", {
staticStyle: {
width: "100%",
border: "1px solid #E6E6E6"
},
attrs: {
data: e.list,
height: e.tableHeight,
"header-cell-style": e.headerRowStyle,
"cell-style": e.cellStyle,
stripe: ""
},
on: {
"row-click": e.handleRowClick,
"selection-change": function(t) {
e.selectionList = t
}
}
}, [e.canRelation && e.fieldList.length > 0 ? i("el-table-column", {
attrs: {
"show-overflow-tooltip": "",
type: "selection",
align: "center",
width: "55"
}
}) : e._e(), e._v(" "), e._l(e.fieldList, function(t, a) {
return i("el-table-column", {
key: a,
attrs: {
prop: t.prop,
formatter: e.fieldFormatter,
label: t.label,
"show-overflow-tooltip": ""
}
})
})], 2), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
id: e.businessId,
"crm-type": "business"
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
}), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
action: e.createActionInfo,
"crm-type": "business"
},
on: {
"save-success": e.createSaveSuccess,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "36adb30f", null);
u.options.__file = "RelativeBusiness.vue";
t.a = u.exports
},
"6ENb": function(e, t, i) {
"use strict";
var a = i("JHu1");
i.n(a).a
},
"6jE7": function(e, t, i) {
"use strict";
var a = i("p46I");
i.n(a).a
},
"6pZM": function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAyMzg4NTNCNDE2NjExRTk4MkE1QUI2Q0I2MDkxQ0RDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAyMzg4NTNDNDE2NjExRTk4MkE1QUI2Q0I2MDkxQ0RDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDIzODg1Mzk0MTY2MTFFOTgyQTVBQjZDQjYwOTFDREMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDIzODg1M0E0MTY2MTFFOTgyQTVBQjZDQjYwOTFDREMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7hsdBeAAABLklEQVR42mL8WxjFgAWwAXEAFFsCsRQQ/wLiJ0B8HojXA/FGqBgKYMFiWCAQdwGxChZLNKA4EojvAHE5EK9DVsSExGYG4k6oAhUGwgCkZi1UDzM2F7YBcRkD6QCmpxzZhSH4DGPKrQNjAoaGwAwEhU0/XjcoqkMwfjABZBbIwFAglmGgHEgDcRgTNGlQCwSADDSlooEmIAMlqGigJAs0tbMTo5qpbymm4P2bDP8mN6Ek7OcETQJqwg0YkTnPQS68BMRq+MxDdgEBcAbkwg1UDMMNIANXQ0sRSsFTkFlM0EgpooKBhUD8E5aXQa7spsCwbqgZKMVXJRBPIcOwqVC9GOXhXyDOhZYad4gw6A60HMiB6sVZYoMKzc1QxaDS2xia8WEBfxZaBazGVgUABBgAnqU8Wz9MmZkAAAAASUVORK5CYII="
},
"76cm": function(e, t, i) {
"use strict";
var a = i("NVhG");
i.n(a).a
},
"7FIu": function(e, t, i) {},
"8KPp": function(e, t, i) {
"use strict";
var a = i("FyfS"),
s = i.n(a),
n = i("Qldq"),
l = i("Iae0"),
o = i("KzkL"),
c = {
name: "JournalLog",
components: {
JournalCell: l.a,
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-f93a")]).then(i.bind(null, "uMjE"))
},
NewDialog: function() {
return i.e("chunk-39d7").then(i.bind(null, "kFvY"))
}
},
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
loading: !1,
loadMoreLoading: !0,
isPost: !1,
page: 1,
list: [],
rowID: "",
showFullDetail: !1,
detailCRMType: "",
showNewDialog: !1,
formData: {},
dialogTitle: "",
imgFileList: [],
accessoryFileList: [],
newLoading: !1
}
},
computed: {},
watch: {
id: function(e) {
this.refreshList()
}
},
mounted: function() {
var e = this,
t = document.getElementById("follow-log-content");
t.onscroll = function() {
var i = t.scrollTop + t.clientHeight - t.scrollHeight;
Math.abs(i) < 10 && 1 == e.loadMoreLoading && (e.isPost ? e.loadMoreLoading = !1 : (e.isPost = !0, e.page++, e.getList()))
}, this.getList()
},
activated: function() {},
deactivated: function() {},
methods: {
getList: function() {
var e = this;
this.loading = !0, Object(o.k)({
page: this.page,
limit: 10,
types: "crm_" + this.crmType,
types_id: this.id,
by: "log"
}).then(function(t) {
var i = !0,
a = !1,
n = void 0;
try {
for (var l, o = s()(t.data.list); !(i = (l = o.next()).done); i = !0) {
var c = l.value;
c.dataInfo.allData = {}, c.dataInfo.allData.business = c.dataInfo.businessList, c.dataInfo.allData.contacts = c.dataInfo.contactsList, c.dataInfo.allData.contract = c.dataInfo.contractList, c.dataInfo.allData.customer = c.dataInfo.customerList, 0 != c.dataInfo.businessList.length || 0 != c.dataInfo.contactsList.length || 0 != c.dataInfo.contractList.length || 0 != c.dataInfo.customerList.length ? c.dataInfo.allDataShow = !0 : c.dataInfo.allDataShow = !1
}
} catch (e) {
a = !0, n = e
} finally {
try {
!i && o.
return &&o.
return ()
} finally {
if (a) throw n
}
}
e.list = e.list.concat(t.data.list), t.data.list.length < 10 ? e.loadMoreLoading = !1 : e.loadMoreLoading = !0, e.loading = !1, e.isPost = !1
}).
catch (function() {
e.isPost = !1, e.loading = !1
})
},
refreshList: function() {
this.page = 1, this.list = [], this.getList()
},
jourecallCellHandle: function(e) {
var t = this;
if ("edit" == e.type) {
var i = e.data.item;
if (this.showNewDialog = !0, this.dialogTitle = "编辑日志", this.formData = i, this.imgFileList = [], i.imgList) {
var a = !0,
l = !1,
o = void 0;
try {
for (var c, r = s()(i.imgList); !(a = (c = r.next()).done); a = !0) {
var d = c.value;
d.url = d.file_path_thumb, this.imgFileList.push(d)
}
} catch (e) {
l = !0, o = e
} finally {
try {
!a && r.
return &&r.
return ()
} finally {
if (l) throw o
}
}
}
if (this.accessoryFileList = [], i.fileList) {
var u = !0,
m = !1,
h = void 0;
try {
for (var p, f = s()(i.fileList); !(u = (p = f.next()).done); u = !0) {
var v = p.value;
v.url = v.file_path_thumb, this.accessoryFileList.push(v)
}
} catch (e) {
m = !0, h = e
} finally {
try {
!u && f.
return &&f.
return ()
} finally {
if (m) throw h
}
}
}
this.formData.depData = i.sendStructList ? i.sendStructList : [], this.formData.sentWhoList = i.sendUserList ? i.sendUserList : []
} else "delete" == e.type ? this.$confirm("确定删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(n.d)({
log_id: e.data.item.log_id
}).then(function(i) {
for (var a in t.$message({
type: "success",
message: "删除成功!"
}), t.list) if (t.list[a].log_id == e.data.item.log_id) {
t.list.splice(a, 1);
break
}
})
}).
catch (function() {
t.$message({
type: "info",
message: "已取消删除"
})
}) : "related-detail" == e.type && (this.rowID = e.data.item.key, this.detailCRMType = e.data.type, this.showFullDetail = !0)
},
submitBtn: function(e, t, i, a) {
var l = this;
this.newLoading = !0;
var o = [],
c = [],
r = [];
if (this.formData.depData) {
var d = !0,
u = !1,
m = void 0;
try {
for (var h, p = s()(this.formData.depData); !(d = (h = p.next()).done); d = !0) {
var f = h.value;
r.push(f.id)
}
} catch (e) {
u = !0, m = e
} finally {
try {
!d && p.
return &&p.
return ()
} finally {
if (u) throw m
}
}
}
var v = [];
if (this.formData.sentWhoList) {
var g = !0,
b = !1,
_ = void 0;
try {
for (var y, w = s()(this.formData.sentWhoList); !(g = (y = w.next()).done); g = !0) {
var C = y.value;
v.push(C.id)
}
} catch (e) {
b = !0, _ = e
} finally {
try {
!g && w.
return &&w.
return ()
} finally {
if (b) throw _
}
}
}
var k = !0,
I = !1,
x = void 0;
try {
for (var A, D = s()(this.imgFileList); !(k = (A = D.next()).done); k = !0) {
var R = A.value;
o.push(R.file_id)
}
} catch (e) {
I = !0, x = e
} finally {
try {
!k && D.
return &&D.
return ()
} finally {
if (I) throw x
}
}
var T = !0,
E = !1,
L = void 0;
try {
for (var S, N = s()(this.accessoryFileList); !(T = (S = N.next()).done); T = !0) {
var M = S.value;
c.push(M.file_id)
}
} catch (e) {
E = !0, L = e
} finally {
try {
!T && N.
return &&N.
return ()
} finally {
if (E) throw L
}
}
var j = {
id: this.formData.log_id,
category_id: e,
content: this.formData.content,
tomorrow: this.formData.tomorrow,
question: this.formData.question,
file: c.concat(o),
send_user_ids: v,
send_structure_ids: r,
customer_ids: a.customer_ids,
contacts_ids: a.contacts_ids,
business_ids: a.business_ids,
contract_ids: a.contract_ids
};
Object(n.e)(j).then(function(e) {
l.refreshList(), l.showNewDialog = !1, l.$message.success("编辑成功"), l.newLoading = !1
}).
catch (function() {
l.newLoading = !1, l.$message.error("编辑失败")
})
}
}
},
r = (i("bmHb"), i("KHd+")),
d = Object(r.a)(c, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}]
}, [i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: 0 === e.list.length,
expression: "list.length === 0"
}]
}, [i("div", {
staticClass: "log-items"
}, [e._l(e.list, function(t, a) {
return i("journal-cell", {
key: a,
staticClass: "list-cell",
attrs: {
data: t.dataInfo
},
on: {
"on-handle": e.jourecallCellHandle
}
})
}), e._v(" "), i("div", {
staticClass: "load"
}, [i("el-button", {
attrs: {
loading: e.loadMoreLoading,
type: "text"
}
}, [e._v(e._s(e.loadMoreLoading ? "加载更多" : "没有更多了"))])], 1)], 2)]), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
"crm-type": e.detailCRMType,
id: e.rowID
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
}), e._v(" "), e.showNewDialog ? i("new-dialog", {
attrs: {
"form-data": e.formData,
"dialog-title": e.dialogTitle,
"img-file-list": e.imgFileList,
"accessory-file-list": e.accessoryFileList,
"new-loading": e.newLoading
},
on: {
close: function(t) {
e.showNewDialog = !1
},
submitBtn: e.submitBtn
}
}) : e._e()], 1)
}, [], !1, null, "7297ab6e", null);
d.options.__file = "JournalLog.vue";
t.a = d.exports
},
"8gwX": function(e, t, i) {
"use strict";
var a = i("YrMO"),
s = i("Ew9n"),
n = i("F03V"),
l = i("U05J"),
o = i("C+sD"),
c = i("8DbX"),
r = i("EgJF"),
d = i("4+0Q"),
u = {
name: "ProductDetail",
components: {
SlideView: s.a,
CRMDetailHead: n.a,
CRMBaseInfo: l.a,
RelativeFiles: o.a,
RelativeHandle: c.a,
CRMCreateView: r.
default
},
mixins: [d.a],
props: {
id: [String, Number],
listenerIDs: {
type: Array,
default:
function() {
return ["crm-main-container"]
}
},
noListenerIDs: {
type: Array,
default:
function() {
return []
}
},
noListenerClass: {
type: Array,
default:
function() {
return ["el-table__body"]
}
}
},
data: function() {
return {
loading: !1,
crmType: "product",
detailData: {},
headDetails: [{
title: "产品类别",
value: ""
}, {
title: "产品单位",
value: ""
}, {
title: "产品价格",
value: ""
}, {
title: "产品编码",
value: ""
}],
tabnames: [{
label: "基本信息",
name: "basicinfo"
}, {
label: "附件",
name: "file"
}, {
label: "操作记录",
name: "operationlog"
}],
tabCurrentName: "basicinfo",
isCreate: !1
}
},
computed: {
tabName: function() {
return "basicinfo" == this.tabCurrentName ? "c-r-m-base-info" : "file" == this.tabCurrentName ? "relative-files" : "operationlog" == this.tabCurrentName ? "relative-handle" : ""
}
},
mounted: function() {},
methods: {
getDetial: function() {
var e = this;
this.loading = !0, Object(a.f)({
id: this.id
}).then(function(t) {
e.loading = !1, e.detailData = t.data, e.headDetails[0].value = t.data.category_id_info, e.headDetails[1].value = t.data.unit, e.headDetails[2].value = e.moneyFormat(t.data.price), e.headDetails[3].value = t.data.num
}).
catch (function(t) {
t && 102 == t.code && (e.hasRequestAuth = !1), e.loading = !1
})
},
hideView: function() {
this.$emit("hide-view")
},
handleClick: function(e, t) {},
editSaveSuccess: function() {
this.$emit("handle", {
type: "save-success"
}), this.getDetial()
}
}
},
m = (i("2NmU"), i("KHd+")),
h = Object(m.a)(u, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("slide-view", {
directives: [{
name: "empty",
rawName: "v-empty",
value: !e.canShowDetail,
expression: "!canShowDetail"
}],
attrs: {
"listener-ids": e.listenerIDs,
"no-listener-ids": e.noListenerIDs,
"no-listener-class": e.noListenerClass,
"body-style": {
padding: 0,
height: "100%"
},
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
},
on: {
"side-close": e.hideView
}
}, [e.canShowDetail ? i("flexbox", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
staticClass: "d-container",
attrs: {
direction: "column",
align: "stretch"
}
}, [i("c-r-m-detail-head", {
attrs: {
detail: e.detailData,
"head-details": e.headDetails,
id: e.id,
"crm-type": "product"
},
on: {
handle: e.detailHeadHandle,
close: e.hideView
}
}), e._v(" "), i("div", {
staticClass: "tabs"
}, [i("el-tabs", {
on: {
"tab-click": e.handleClick
},
model: {
value: e.tabCurrentName,
callback: function(t) {
e.tabCurrentName = t
},
expression: "tabCurrentName"
}
}, e._l(e.tabnames, function(e, t) {
return i("el-tab-pane", {
key: t,
attrs: {
label: e.label,
name: e.name
}
})
}))], 1), e._v(" "), i("div", {
staticClass: "t-loading-content"
}, [i("keep-alive", [i(e.tabName, {
tag: "component",
attrs: {
id: e.id,
"crm-type": "product"
}
})], 1)], 1)], 1) : e._e(), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
action: {
type: "update",
id: e.id
},
"crm-type": "product"
},
on: {
"save-success": e.editSaveSuccess,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "c8bca8ee", null);
h.options.__file = "ProductDetail.vue";
t.a = h.exports
},
"9Aba": function(e, t, i) {
"use strict";
var a = i("N3zo");
i.n(a).a
},
AV3D: function(e, t, i) {
"use strict";
var a = i("QV+c");
i.n(a).a
},
AnnZ: function(e, t, i) {
"use strict";
var a = i("BirF");
i.n(a).a
},
BirF: function(e, t, i) {},
BoPK: function(e, t, i) {},
Bs8Y: function(e, t, i) {},
BuGm: function(e, t, i) {
"use strict";
i.r(t);
var a = i("gDS+"),
s = i.n(a),
n = i("FyfS"),
l = i.n(n),
o = i("Dh/N"),
c = i("1RnH"),
r = i("0hym"),
d = i("7Qib"),
u = {
components: {
relatedBusiness: c.a,
XhUser: r.a
},
props: {
formData: {
type: Object,
default:
function() {
return {
color: ""
}
}
},
text: {
type: String,
default:
"创建日程"
},
appendToBody: {
type: Boolean,
default:
!1
}
},
data: function() {
var e = this,
t = function(t, i, a) {
e.formData.start_time && e.formData.end_time && e.formData.start_time.getTime() >= e.formData.end_time.getTime() && a(new Error("开始时间必须小于结束时间")), a()
};
return {
zIndex: Object(d.g)(),
formList: [{
label: "主题",
field: "title",
type: "color"
}, {
label: "开始时间",
field: "start_time",
type: "time"
}, {
label: "结束时间",
field: "end_time",
type: "time"
}, {
label: "参与人",
field: "owner_user_ids",
type: "participant"
}, {
label: "备注",
field: "remark",
type: "textarea",
width: "100%"
}],
options: [{
value: 0,
label: "无"
}, {
value: 1,
label: "准时提醒"
}, {
value: 2,
label: "5分钟前"
}, {
value: 3,
label: "15分钟前"
}, {
value: 4,
label: "30分钟前"
}, {
value: 5,
label: "一个小时前"
}, {
value: 6,
label: "二个小时前"
}, {
value: 7,
label: "一天前"
}, {
value: 8,
label: "二天前"
}, {
value: 9,
label: "一周前"
}],
fileList: [],
loading: !1,
colorList: ["#3E8EF7", "#11C06C", "#0BB2D4", "#EB6709", "#FF4C52", "#526069", "#9262F4"],
rules: {
title: [{
required: !0,
message: "主题不能为空",
trigger: "blur"
}, {
max: 50,
message: "主题长度最多为50个字符",
trigger: "blur"
}],
start_time: [{
required: !0,
message: "开始时间不能为空",
trigger: "blur"
}, {
validator: t,
trigger: "blur"
}],
end_time: [{
required: !0,
message: "结束时间不能为空",
trigger: "blur"
}, {
validator: t,
trigger: "blur"
}]
},
relevanceAll: {},
allData: {},
colleaguesList: []
}
},
created: function() {},
mounted: function() {
this.appendToBody && document.body.appendChild(this.$el), this.allData.business = this.formData.businessList ? this.formData.businessList : [], this.allData.contacts = this.formData.contactsList ? this.formData.contactsList : [], this.allData.contract = this.formData.contractList ? this.formData.contractList : [], this.allData.customer = this.formData.customerList ? this.formData.customerList : [], this.formData.ownerList && (this.colleaguesList = [].concat(this.formData.ownerList)), "创建日程" == this.text && this.$set(this.formData, "color", "#3E8EF7")
},
beforeDestroy: function() {
this.appendToBody && this.$el && this.$el.parentNode && this.$el.parentNode.removeChild(this.$el)
},
methods: {
close: function() {
1 == this.$route.query.routerKey ? this.$router.go(-1) : this.$emit("closeDialog")
},
checkInfos: function(e) {
this.relevanceAll = e
},
onSubmit: function() {
var e = this;
this.$refs.form.validate(function(t) {
if (!t) return !1;
e.loading = !0;
var i = e.formData,
a = [],
n = !0,
c = !1,
r = void 0;
try {
for (var d, u = l()(e.colleaguesList); !(n = (d = u.next()).done); n = !0) {
var m = d.value;
a.push(m.id)
}
} catch (e) {
c = !0, r = e
} finally {
try {
!n && u.
return &&u.
return ()
} finally {
if (c) throw r
}
}
if ("创建日程" == e.text) Object(o.a)({
title: i.title,
start_time: i.start_time.getTime() / 1e3,
end_time: i.end_time.getTime() / 1e3,
owner_user_ids: a,
remark: i.remark,
color: i.color,
customer_ids: e.relevanceAll.customer_ids,
contacts_ids: e.relevanceAll.contacts_ids,
business_ids: e.relevanceAll.business_ids,
contract_ids: e.relevanceAll.contract_ids
}).then(function(t) {
1 == e.$route.query.routerKey ? e.$router.push("schedule") : e.$emit("onSubmit"), e.loading = !1
}).
catch (function() {
e.loading = !1
});
else {
var h = {
customer_ids: [],
contract_ids: [],
contacts_ids: [],
business_ids: []
};
if (e.allData.customer) {
var p = !0,
f = !1,
v = void 0;
try {
for (var g, b = l()(e.allData.customer); !(p = (g = b.next()).done); p = !0) {
var _ = g.value;
h.customer_ids.push(_.customer_id)
}
} catch (e) {
f = !0, v = e
} finally {
try {
!p && b.
return &&b.
return ()
} finally {
if (f) throw v
}
}
}
if (e.allData.contract) {
var y = !0,
w = !1,
C = void 0;
try {
for (var k, I = l()(e.allData.contract); !(y = (k = I.next()).done); y = !0) {
var x = k.value;
h.contract_ids.push(x.contract_id)
}
} catch (e) {
w = !0, C = e
} finally {
try {
!y && I.
return &&I.
return ()
} finally {
if (w) throw C
}
}
}
if (e.allData.contacts) {
var A = !0,
D = !1,
R = void 0;
try {
for (var T, E = l()(e.allData.contacts); !(A = (T = E.next()).done); A = !0) {
var L = T.value;
h.contacts_ids.push(L.contacts_id)
}
} catch (e) {
D = !0, R = e
} finally {
try {
!A && E.
return &&E.
return ()
} finally {
if (D) throw R
}
}
}
if (e.allData.business) {
var S = !0,
N = !1,
M = void 0;
try {
for (var j, O = l()(e.allData.business); !(S = (j = O.next()).done); S = !0) {
var F = j.value;
h.business_ids.push(F.business_id)
}
} catch (e) {
N = !0, M = e
} finally {
try {
!S && O.
return &&O.
return ()
} finally {
if (N) throw M
}
}
}
var B = "{}" == s()(e.relevanceAll) ? h : e.relevanceAll;
Object(o.c)({
event_id: i.event_id,
title: i.title,
start_time: new Date(i.start_time).getTime() / 1e3,
end_time: new Date(i.end_time).getTime() / 1e3,
owner_user_ids: a,
remark: i.remark,
color: i.color,
customer_ids: B.customer_ids,
contacts_ids: B.contacts_ids,
business_ids: B.business_ids,
contract_ids: B.contract_ids
}).then(function(t) {
e.$emit("onSubmit"), e.loading = !1
}).
catch (function() {
e.loading = !1
})
}
})
},
httpRequest: function(e) {
this.fileList.push(e.file)
},
onRemove: function(e) {
for (var t in this.fileList) this.fileList[t].uid == e.uid && this.fileList.splice(t, 1)
},
changeColor: function(e) {
this.$set(this.formData, "color", e)
},
changeCheckout: function(e) {
this.colleaguesList = e.data
},
selectDelect: function(e, t) {
this.$refs.xhuser[0].cancelCheckItem(e), this.colleaguesList.splice(t, 1)
}
}
},
m = (i("tgh5"), i("KHd+")),
h = Object(m.a)(u, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
staticClass: "create-schedule",
style: {
"z-index": e.zIndex
}
}, [a("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
staticClass: "add-schedule"
}, [a("div", {
staticClass: "header",
attrs: {
slot: "header"
},
slot: "header"
}, [a("span", {
staticClass: "text"
}, [e._v(e._s(e.text))]), e._v(" "), a("img", {
staticClass: "el-icon-close rt",
attrs: {
src: i("cjwK"),
alt: ""
},
on: {
click: e.close
}
})]), e._v(" "), a("div", {
staticClass: "content"
}, [a("el-form", {
ref: "form",
attrs: {
model: e.formData,
rules: e.rules
}
}, e._l(e.formList, function(t, i) {
return a("el-form-item", {
key: i,
class: "el-form-item-" + t.field,
style: {
width: t.width
},
attrs: {
prop: t.field,
label: t.label
}
}, ["time" == t.type ? [a("el-date-picker", {
attrs: {
type: "datetime",
format: "yyyy-MM-dd HH:mm:ss",
placeholder: "选择日期时间"
},
model: {
value: e.formData[t.field],
callback: function(i) {
e.$set(e.formData, t.field, i)
},
expression: "formData[item.field]"
}
})] : "textarea" == t.type ? [a("el-input", {
attrs: {
autosize: {
minRows: 6
},
type: "textarea",
placeholder: "请输入内容"
},
model: {
value: e.formData[t.field],
callback: function(i) {
e.$set(e.formData, t.field, i)
},
expression: "formData[item.field]"
}
})] : "participant" == t.type ? [a("el-popover", {
attrs: {
placement: "bottom-end",
width: "280",
trigger: "click"
}
}, [a("xh-user", {
ref: "xhuser",
refInFor: !0,
attrs: {
"selected-data": e.colleaguesList
},
on: {
changeCheckout: e.changeCheckout
}
}), e._v(" "), a("div", {
staticClass: "select-box",
attrs: {
slot: "reference"
},
slot: "reference"
}, [e._l(e.colleaguesList, function(t, i) {
return a("span", {
key: i,
staticClass: "select-box-span"
}, [e._v("\n " + e._s(t.realname) + "\n "), a("span", {
staticClass: "el-icon-close",
on: {
click: function(a) {
a.stopPropagation(), e.selectDelect(t, i)
}
}
})])
}), e._v(" "), a("span", {
staticClass: "el-icon-plus"
})], 2)], 1)] : "select" == t.type ? [a("el-select", {
attrs: {
placeholder: "请选择"
},
model: {
value: e.formData[t.field],
callback: function(i) {
e.$set(e.formData, t.field, i)
},
expression: "formData[item.field]"
}
}, e._l(e.options, function(e) {
return a("el-option", {
key: e.value,
attrs: {
label: e.label,
value: e.value
}
})
}))] : "color" == t.type ? [a("el-input", {
attrs: {
placeholder: "请输入内容"
},
model: {
value: e.formData[t.field],
callback: function(i) {
e.$set(e.formData, t.field, i)
},
expression: "formData[item.field]"
}
}, [a("i", {
staticClass: "el-input__icon",
attrs: {
slot: "prefix"
},
slot: "prefix"
}, [a("span", {
staticClass: "bg-color",
style: {
background: e.formData.color
}
})])]), e._v(" "), a("div", {
staticClass: "color-box"
}, e._l(e.colorList, function(t, i) {
return a("span", {
key: i,
style: {
background: t
},
on: {
click: function(i) {
e.changeColor(t)
}
}
})
}))] : a("el-input", {
model: {
value: e.formData[t.field],
callback: function(i) {
e.$set(e.formData, t.field, i)
},
expression: "formData[item.field]"
}
})], 2)
})), e._v(" "), a("related-business", {
attrs: {
"all-data": e.allData
},
on: {
checkInfos: e.checkInfos
}
})], 1), e._v(" "), a("div", {
staticClass: "footer"
}, [a("el-button", {
attrs: {
type: "primary"
},
on: {
click: e.onSubmit
}
}, [e._v("保存")]), e._v(" "), a("el-button", {
on: {
click: e.close
}
}, [e._v("取消")])], 1)])])
}, [], !1, null, "8e8c2aa8", null);
h.options.__file = "createSchedule.vue";
t.
default = h.exports
},
DUlf: function(e, t, i) {
"use strict";
var a = i("KzkL"),
s = i("mX3o"),
n = {
name: "RelativeTeam",
components: {
TeamsHandle: i("eOzp").a
},
mixins: [s.a],
props: {
id: [String, Number],
detail: {
type: Object,
default:
function() {
return {}
}
},
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
}
},
data: function() {
return {
list: [],
fieldList: [],
tableHeight: "400px",
teamsDialogShow: !1,
handleType: 1,
editPermissionShow: !1,
selectionList: []
}
},
computed: {},
watch: {
id: function(e) {
this.list = [], this.getDetail()
}
},
mounted: function() {
this.fieldList.push({
prop: "realname",
width: "200",
label: "姓名"
}), this.fieldList.push({
prop: "structure_name",
width: "200",
label: "职位"
}), this.fieldList.push({
prop: "group_name",
width: "200",
label: "团队角色"
}), this.fieldList.push({
prop: "authority",
width: "200",
label: "权限"
}), this.getDetail()
},
activated: function() {},
deactivated: function() {},
methods: {
getDetail: function() {
var e = this;
this.loading = !0, Object(a.t)({
types: "crm_" + this.crmType,
types_id: this.id
}).then(function(t) {
e.loading = !1, e.list = t.data
}).
catch (function() {
e.loading = !1
})
},
handleSelectionChange: function(e) {
this.selectionList = e
},
handleClick: function(e) {
var t = this;
"add" == e ? this.teamsDialogShow = !0 : 0 == this.selectionList.length ? this.$message.error("请勾选需要操作的团队成员") : "edit" == e ? this.editPermissionShow = !0 : "remove" == e && this.$confirm("此操作将移除这些团队成员是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
var e = t.selectionList.map(function(e, t, i) {
return e.id
}),
i = {
types: "crm_" + t.crmType,
types_id: [t.detail[t.crmType + "_id"]],
user_id: e,
is_del: 1
};
t.loading = !0, Object(a.u)(i).then(function(e) {
t.$message({
type: "success",
message: e.data
}), t.loading = !1, t.getDetail()
}).
catch (function() {
t.loading = !1
})
}).
catch (function() {
t.$message({
type: "info",
message: "已取消删除"
})
})
},
handleCallBack: function(e) {
this.getDetail()
},
handleEditConfirm: function() {
var e = this,
t = this.selectionList.map(function(e, t, i) {
return e.id
});
this.loading = !0, Object(a.u)({
types: "crm_" + this.crmType,
types_id: [this.detail[this.crmType + "_id"]],
user_id: t,
type: this.handleType
}).then(function(t) {
e.editPermissionShow = !1, e.$message({
type: "success",
message: t.data
}), e.loading = !1, e.getDetail()
}).
catch (function() {
e.loading = !1
})
},
handleSelectable: function(e, t) {
return 0 != e.type
},
handleRowClick: function(e, t, i) {},
headerRowStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
cellStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
}
}
},
l = (i("zBZy"), i("KHd+")),
o = Object(l.a)(n, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "rc-cont"
}, [e.isSeas ? e._e() : i("flexbox", {
staticClass: "rc-head",
attrs: {
direction: "row-reverse"
}
}, [i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
e.handleClick("remove")
}
}
}, [e._v("移除")]), e._v(" "), i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
e.handleClick("edit")
}
}
}, [e._v("编辑")]), e._v(" "), i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
e.handleClick("add")
}
}
}, [e._v("添加团队成员")])], 1), e._v(" "), i("el-table", {
staticStyle: {
width: "100%",
border: "1px solid #E6E6E6"
},
attrs: {
data: e.list,
height: e.tableHeight,
"header-cell-style": e.headerRowStyle,
"cell-style": e.cellStyle,
stripe: ""
},
on: {
"row-click": e.handleRowClick,
"selection-change": e.handleSelectionChange
}
}, [i("el-table-column", {
attrs: {
selectable: e.handleSelectable,
"show-overflow-tooltip": "",
type: "selection",
align: "center",
width: "55"
}
}), e._v(" "), e._l(e.fieldList, function(e, t) {
return i("el-table-column", {
key: t,
attrs: {
prop: e.prop,
label: e.label,
"show-overflow-tooltip": ""
}
})
})], 2), e._v(" "), i("teams-handle", {
attrs: {
"crm-type": e.crmType,
"selection-list": [e.detail],
"dialog-visible": e.teamsDialogShow,
title: "添加团队成员"
},
on: {
"update:dialogVisible": function(t) {
e.teamsDialogShow = t
},
handle: e.handleCallBack
}
}), e._v(" "), i("el-dialog", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
attrs: {
visible: e.editPermissionShow,
"append-to-body": !0,
title: "编辑权限",
width: "400px"
},
on: {
"update:visible": function(t) {
e.editPermissionShow = t
}
}
}, [i("div", {
staticClass: "handle-box"
}, [i("flexbox", {
staticClass: "handle-item"
}, [i("div", {
staticClass: "handle-item-name"
}, [e._v("权限:")]), e._v(" "), i("el-radio-group", {
model: {
value: e.handleType,
callback: function(t) {
e.handleType = t
},
expression: "handleType"
}
}, [i("el-radio", {
attrs: {
label: 1
}
}, [e._v("只读")]), e._v(" "), i("el-radio", {
attrs: {
label: 2
}
}, [e._v("读写")])], 1)], 1)], 1), e._v(" "), i("span", {
staticClass: "dialog-footer",
attrs: {
slot: "footer"
},
slot: "footer"
}, [i("el-button", {
nativeOn: {
click: function(t) {
e.editPermissionShow = !1
}
}
}, [e._v("取消")]), e._v(" "), i("el-button", {
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.handleEditConfirm(t)
}
}
}, [e._v("保存")])], 1)])], 1)
}, [], !1, null, "a8be9566", null);
o.options.__file = "RelativeTeam.vue";
t.a = o.exports
},
Dd9w: function(e, t, i) {},
"Dh/N": function(e, t, i) {
"use strict";
i.d(t, "d", function() {
return s
}), i.d(t, "a", function() {
return n
}), i.d(t, "b", function() {
return l
}), i.d(t, "c", function() {
return o
});
var a = i("t3Un");
function s(e) {
return Object(a.a)({
url: "oa/event/index",
method: "post",
data: e
})
}
function n(e) {
return Object(a.a)({
url: "oa/event/save",
method: "post",
data: e
})
}
function l(e) {
return Object(a.a)({
url: "oa/event/delete",
method: "post",
data: e
})
}
function o(e) {
return Object(a.a)({
url: "oa/event/update",
method: "post",
data: e
})
}
},
F1nN: function(e, t, i) {
"use strict";
var a = i("Dd9w");
i.n(a).a
},
FORx: function(e, t, i) {
"use strict";
i.r(t);
var a = i("QbLZ"),
s = i.n(a),
n = i("JXju"),
l = i("L2JU"),
o = i("UcQx"),
c = {
name: "BusinessCheck",
components: {},
props: {
show: Boolean,
data: {
type: Object,
default:
function() {
return {
row: {
name: ""
}
}
}
}
},
data: function() {
return {
loading: !1,
list: [],
fieldList: [],
formatterRules: {}
}
},
computed: s()({}, Object(l.b)(["crm"]), {
canShowIndex: function() {
return this.crm.business && this.crm.business.index
}
}),
watch: {
show: {
handler: function(e) {
this.canShowIndex && e && this.data.row && this.data.row.business_count > 0 && 0 == this.list.length && this.getDetail()
},
deep: !0,
immediate: !0
}
},
mounted: function() {
function e(e) {
return e || ""
}
this.fieldList.push({
prop: "name",
width: "200",
label: "商机名称"
}), this.fieldList.push({
prop: "money",
width: "200",
label: "商机金额"
}), this.fieldList.push({
prop: "customer_id",
width: "200",
label: "客户名称"
}), this.fieldList.push({
prop: "type_id",
width: "200",
label: "商机状态组"
}), this.fieldList.push({
prop: "status_id",
width: "200",
label: "状态"
}), this.formatterRules.customer_id = {
type: "crm",
formatter: function(e) {
return e ? e.name : ""
}
}, this.formatterRules.type_id = {
type: "crm",
formatter: e
}, this.formatterRules.status_id = {
type: "crm",
formatter: e
}
},
methods: {
getDetail: function() {
var e = this;
this.loading = !0, Object(o.d)({
pageType: "all",
customer_id: this.data.row.customer_id
}).then(function(t) {
e.loading = !1, e.list = t.data.list
}).
catch (function() {
e.loading = !1
})
},
fieldFormatter: function(e, t) {
var i = this.formatterRules[t.property];
return i ? "crm" === i.type ? t.property ? i.formatter(e[t.property + "_info"]) : "" : i.formatter(e[t.property]) : e[t.property]
},
hidenView: function() {
document.querySelector("#app").click(), this.$emit("close", this.$el, this.data)
},
handleRowClick: function(e, t, i) {
this.$emit("click", e)
},
cellStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
fontSize: "12px",
textAlign: "center",
cursor: "pointer"
}
},
headerCellStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
fontSize: "12px",
textAlign: "center"
}
}
}
},
r = (i("76cm"), i("KHd+")),
d = Object(r.a)(c, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: !e.canShowIndex,
expression: "!canShowIndex"
}],
staticClass: "container",
attrs: {
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
}
}, [a("flexbox", {
staticClass: "header"
}, [a("div", {
staticClass: "name"
}, [e._v(e._s(e.data.row.name))]), e._v(" "), a("div", {
staticClass: "detail"
}, [e._v("商机(" + e._s(e.list.length) + ")")]), e._v(" "), a("img", {
staticClass: "close",
attrs: {
src: i("cjwK")
},
on: {
click: e.hidenView
}
})]), e._v(" "), a("el-table", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
staticStyle: {
"margin-right": "3px"
},
attrs: {
data: e.list,
"cell-style": e.cellStyle,
"header-cell-style": e.headerCellStyle,
height: "250",
stripe: "",
"highlight-current-row": ""
},
on: {
"row-click": e.handleRowClick
}
}, e._l(e.fieldList, function(t, i) {
return a("el-table-column", {
key: i,
attrs: {
formatter: e.fieldFormatter,
prop: t.prop,
label: t.label,
align: "center",
"header-align": "center",
"show-overflow-tooltip": ""
}
})
}))], 1)
}, [], !1, null, "85404092", null);
d.options.__file = "BusinessCheck.vue";
var u = d.exports,
m = i("kegP"),
h = {
name: "CustomerIndex",
components: {
CRMAllDetail: n.a,
BusinessCheck: u
},
mixins: [m.a],
data: function() {
return {
crmType: "customer"
}
},
computed: s()({}, Object(l.b)(["CRMConfig"])),
mounted: function() {},
methods: {
relativeBusinessClick: function(e) {
this.rowID = e.business_id, this.rowType = "business", this.showDview = !0
},
cellStyle: function(e) {
e.row;
var t = e.column;
e.rowIndex, e.columnIndex;
return "name" === t.property || "business-check" === t.property ? {
color: "#3E84E9",
cursor: "pointer"
} : ""
},
businessCheckClick: function(e, t) {
0 != t.row.business_count && (this.$set(t.row, "show", !t.row.show), e.target.parentNode.__vue__.showPopper = !t.row.show)
},
businessClose: function(e, t) {
e.parentNode.__vue__.showPopper = !1, this.$set(t.row, "show", !1)
}
}
},
p = (i("wF9U"), Object(r.a)(h, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", [a("c-r-m-list-head", {
ref: "listHead",
attrs: {
"crm-type": e.crmType,
search: e.search,
scene_id: e.scene_id,
"filter-obj": e.filterObj,
title: "客户管理",
placeholder: "请输入客户名称/手机/电话",
"main-title": "新建客户"
},
on: {
listRefresh: e.getList,
"on-handle": e.listHeadHandle,
"on-search": e.crmSearch
}
}), e._v(" "), a("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: !e.crm.customer.index,
expression: "!crm.customer.index"
}],
staticClass: "crm-container",
attrs: {
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
}
}, [a("c-r-m-table-head", {
ref: "crmTableHead",
attrs: {
"crm-type": e.crmType
},
on: {
exportData: e.exportData,
filter: e.handleFilter,
handle: e.handleHandle,
scene: e.handleScene
}
}), e._v(" "), a("el-table", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
staticClass: "n-table--border",
staticStyle: {
width: "100%"
},
attrs: {
id: "crm-table",
data: e.list,
height: e.tableHeight,
"cell-style": e.cellStyle,
stripe: "",
border: "",
"highlight-current-row": ""
},
on: {
"row-click": e.handleRowClick,
"sort-change": e.sortChange,
"header-dragend": e.handleHeaderDragend,
"selection-change": e.handleSelectionChange
}
}, [a("el-table-column", {
attrs: {
"show-overflow-tooltip": "",
type: "selection",
align: "center",
width: "55"
}
}), e._v(" "), a("el-table-column", {
attrs: {
resizable: !1,
prop: "business-check",
fixed: "",
label: "",
width: "38"
},
scopedSlots: e._u([{
key: "default",
fn: function(t) {
return [a("el-popover", {
attrs: {
disabled: 0 == t.row.business_count,
offset: 250,
placement: "right",
"popper-class": "no-padding-popover",
width: "500",
trigger: "click"
}
}, [a("business-check", {
attrs: {
data: t,
show: t.row.show
},
on: {
click: e.relativeBusinessClick,
close: function(i) {
e.businessClose(i, t)
}
}
}), e._v(" "), a("i", {
staticClass: "wukong wukong-business",
staticStyle: {
color: "'#2486E4'"
},
style: {
opacity: t.row.business_count > 0 ? 1 : 0
},
attrs: {
slot: "reference"
},
on: {
click: function(i) {
e.businessCheckClick(i, t)
}
},
slot: "reference"
})], 1)]
}
}])
}, [a("template", {
slot: "header"
}, [a("i", {
staticClass: "wukong wukong-business",
staticStyle: {
cursor: "not-allowed",
opacity: "0.5"
},
style: {
color: "#2486E4"
}
})])], 2), e._v(" "), e._l(e.fieldList, function(t, i) {
return a("el-table-column", {
key: i,
attrs: {
fixed: 0 == i,
prop: t.prop,
label: t.label,
width: t.width,
formatter: e.fieldFormatter,
sortable: "custom",
"show-overflow-tooltip": ""
},
scopedSlots: e._u([{
key: "header",
fn: function(t) {
return [a("div", {
staticClass: "table-head-name"
}, [e._v(e._s(t.column.label))])]
}
}])
})
}), e._v(" "), 1 == e.CRMConfig.config ? a("el-table-column", {
attrs: {
resizable: !1,
prop: "pool_day",
"show-overflow-tooltip": "",
label: "距进入公海天数",
width: "120"
},
scopedSlots: e._u([{
key: "default",
fn: function(t) {
return [-1 != t.row.pool_day ? a("div", [e._v(e._s(t.row.pool_day))]) : a("i", {
staticClass: "wukong wukong-lock customer-lock"
})]
}
}])
}) : e._e(), e._v(" "), a("el-table-column"), e._v(" "), a("el-table-column", {
attrs: {
fixed: "right",
width: "36"
},
scopedSlots: e._u([{
key: "header",
fn: function(t) {
return [a("img", {
staticClass: "table-set",
attrs: {
src: i("zbTZ")
},
on: {
click: e.handleTableSet
}
})]
}
}])
})], 2), e._v(" "), a("div", {
staticClass: "p-contianer"
}, [a("el-pagination", {
staticClass: "p-bar",
attrs: {
"current-page": e.currentPage,
"page-sizes": e.pageSizes,
"page-size": e.pageSize,
total: e.total,
layout: "total, sizes, prev, pager, next, jumper"
},
on: {
"update:pageSize": function(t) {
e.pageSize = t
},
"size-change": e.handleSizeChange,
"current-change": e.handleCurrentChange
}
})], 1)], 1), e._v(" "), a("c-r-m-all-detail", {
staticClass: "d-view",
attrs: {
visible: e.showDview,
"crm-type": e.rowType,
id: e.rowID
},
on: {
"update:visible": function(t) {
e.showDview = t
},
handle: e.handleHandle
}
}), e._v(" "), a("fields-set", {
attrs: {
"crm-type": e.crmType,
"dialog-visible": e.showFieldSet
},
on: {
"update:dialogVisible": function(t) {
e.showFieldSet = t
},
"set-success": e.setSave
}
})], 1)
}, [], !1, null, "927cf27e", null));
p.options.__file = "CustomerIndex.vue";
t.
default = p.exports
},
Fpl1: function(e, t, i) {
"use strict";
var a = i("Er7M"),
s = i("O1Uw"),
n = {
name: "ExamineCell",
components: {
RelatedBusinessCell: a.a,
FileCell: s.a
},
mixins: [],
props: {
data: Object
},
data: function() {
return {}
},
computed: {
relatedListData: function() {
return {
contacts: this.data.contactsList || [],
customer: this.data.customerList || [],
business: this.data.businessList || [],
contract: this.data.contractList || []
}
}
},
watch: {},
mounted: function() {},
methods: {
getStatusName: function(e) {
return 0 == e ? "待审" : 1 == e ? "审批中" : 2 == e ? "通过" : 3 == e ? "拒绝" : 4 == e ? "撤回" : ""
},
getStatusColor: function(e) {
return 0 == e ? "#F3A633" : 1 == e ? "#F3A633" : 2 == e ? "#93E06D" : 3 == e ? "#FF0000" : 4 == e ? "#FF0000" : ""
},
imgZoom: function(e, t) {
this.$bus.emit("preview-image-bus", {
index: t,
data: e.map(function(e, t, i) {
return {
url: e.file_path,
name: e.name
}
})
})
},
handleCommand: function(e) {
this.$emit("on-handle", {
type: e,
data: {
item: this.data
}
})
},
checkDetail: function(e) {
this.$emit("on-handle", {
type: "view",
data: {
item: this.data
}
})
},
checkRelatedDetail: function(e, t) {
this.$emit("on-handle", {
type: "related-detail",
data: {
type: e,
item: t
}
})
}
}
},
l = (i("ZlMj"), i("KHd+")),
o = Object(l.a)(n, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "list"
}, [i("div", {
staticClass: "list-content"
}, [i("flexbox", {
staticClass: "header"
}, [i("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: e.data.create_user_info,
expression: "data.create_user_info"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(e.data.create_user_info.thumb_img),
expression: "$options.filters.filterUserLazyImg(data.create_user_info.thumb_img)",
arg: "background-image"
}],
key: e.data.create_user_info.thumb_img,
staticClass: "div-photo head-img"
}), e._v(" "), i("div", {
staticClass: "name-time"
}, [i("span", {
staticClass: "name"
}, [e._v(e._s(e.data.create_user_info.realname))]), e._v(" "), i("span", {
staticClass: "time"
}, [e._v(e._s(e._f("filterTimestampToFormatTime")(e.data.create_time)))])]), e._v(" "), i("div", {
staticClass: "rt-setting"
}, [i("span", {
staticClass: "bg-color",
style: {
"background-color": e.getStatusColor(e.data.check_status)
}
}), e._v(" "), i("span", {
staticClass: "dep"
}, [i("span", [e._v(e._s(e.data.category_name) + " - ")]), e._v(" "), i("span", [e._v(e._s(e.getStatusName(e.data.check_status)))])]), e._v(" "), e.data.permission && (e.data.permission.is_recheck || e.data.permission.is_update || e.data.permission.is_delete) ? i("el-dropdown", {
attrs: {
trigger: "click"
},
on: {
command: e.handleCommand
}
}, [i("i", {
staticClass: "el-icon-arrow-down el-icon-more",
staticStyle: {
color: "#CDCDCD",
cursor: "pointer"
}
}), e._v(" "), i("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, [e.data.permission && e.data.permission.is_recheck ? i("el-dropdown-item", {
attrs: {
command: "withdraw"
}
}, [e._v("撤回")]) : e._e(), e._v(" "), e.data.permission && e.data.permission.is_update ? i("el-dropdown-item", {
attrs: {
command: "edit"
}
}, [e._v("编辑")]) : e._e(), e._v(" "), e.data.permission && e.data.permission.is_delete ? i("el-dropdown-item", {
attrs: {
command: "delete"
}
}, [e._v("删除")]) : e._e()], 1)], 1) : e._e()], 1)]), e._v(" "), i("div", {
staticClass: "row",
on: {
click: function(t) {
e.checkDetail(e.data)
}
}
}, [e.data.content ? i("p", {
staticClass: "text"
}, [e._v(e._s(e.data.content))]) : e._e(), e._v(" "), e.data.causeTitle ? i("p", {
staticClass: "title"
}, [e._v(e._s(e.data.causeTitle))]) : e._e()]), e._v(" "), e.data.fileList.length > 0 || e.data.imgList.length > 0 ? i("div", {
staticClass: "accessory"
}, [i("div", {
staticClass: "upload-img-box"
}, e._l(e.data.imgList, function(t, a) {
return i("div", {
key: a,
staticClass: "img-list",
on: {
click: function(t) {
e.imgZoom(e.data.imgList, a)
}
}
}, [i("img", {
directives: [{
name: "lazy",
rawName: "v-lazy",
value: t.file_path_thumb,
expression: "imgItem.file_path_thumb"
}]
})])
})), e._v(" "), i("div", {
staticClass: "accessory-box"
}, e._l(e.data.fileList, function(e, t) {
return i("file-cell", {
key: t,
attrs: {
data: e,
"cell-index": t
}
})
}))]) : e._e(), e._v(" "), e.relatedListData.contacts.length > 0 || e.relatedListData.customer.length > 0 || e.relatedListData.business.length > 0 || e.relatedListData.contract.length > 0 ? i("div", {
staticClass: "related-business"
}, [i("div", {
staticClass: "label"
}, [e._v("关联业务")]), e._v(" "), e._l(e.relatedListData, function(t, a) {
return i("div", {
key: a
}, e._l(t, function(t, s) {
return i("related-business-cell", {
key: s,
attrs: {
data: t,
"cell-index": s,
type: a,
"show-foot": !1
},
nativeOn: {
click: function(i) {
e.checkRelatedDetail(a, t)
}
}
})
}))
})], 2) : e._e()], 1)])
}, [], !1, null, "ebcab814", null);
o.options.__file = "examineCell.vue";
t.a = o.exports
},
GE8g: function(e, t, i) {
"use strict";
var a = i("+2MK");
i.n(a).a
},
"GJP/": function(e, t, i) {},
GsUu: function(e, t, i) {
"use strict";
var a = i("SvQs");
i.n(a).a
},
GynS: function(e, t, i) {
"use strict";
var a = i("fmM0");
i.n(a).a
},
HfS2: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZBOTA3QjY4RUUzODExRTg5NkQyQzE5MENDMkUwODZEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZBOTA3QjY5RUUzODExRTg5NkQyQzE5MENDMkUwODZEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkE5MDdCNjZFRTM4MTFFODk2RDJDMTkwQ0MyRTA4NkQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkE5MDdCNjdFRTM4MTFFODk2RDJDMTkwQ0MyRTA4NkQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz77tjJFAAABTElEQVR42qTTzyvEQRjH8V0hbk6r/Ngc2CgnthC2Jc7KKsVfIOtGrbuNoiRaf4FSGzlL2oMD+XHSJvaEhJM9rRvvR5+tOXz3G5l61czOM8/OzDPfYGzlLfCfVuUzl8eX5P+aoBHNaBDrh7wCq53+NlpwizmkUdRcWrvYRTeeseDuIIpJ5FCPPuxgHINK3q+5nGKj7g4yWMeWxsM4RUHjdsxiUeOgkg6UExxiGfsoIYsZJbE2igNEtAuL3XR3sIYYelGHC2dxQP1zjOET11pTsQo1Hr/V+pUxpX+3zCfqx524EfRo7kbzKfcIdqureNV4Cnt40G7akFBZi4qdtmOUE8zjSK+uVfXuxJDmz9CEDTxhCRPuES5VibiqYJeYxLEkdYklxVjs1U89K3xM9pTvEdb4ER1493vKbrOsL/jQ+M5rsV8Ca12/+Zy/BRgAE3dJqM+BEpAAAAAASUVORK5CYII="
},
Iae0: function(e, t, i) {
"use strict";
var a = i("QbLZ"),
s = i.n(a),
n = i("S3Kq"),
l = i("Qldq"),
o = i("1RnH"),
c = i("Xjjk"),
r = i.n(c),
d = i("L2JU"),
u = i("O1Uw"),
m = {
name: "JournalCell",
components: {
emoji: n.a,
relatedBusiness: o.a,
FileCell: u.a
},
mixins: [],
props: {
data: Object,
logIndex: {
type: Number,
default:
0
},
showWorkbench: {
type: Boolean,
default:
!1
}
},
data: function() {
return {
commentsTextarea: "",
childCommentsTextarea: "",
commentsPopover: !1,
replyChildComment: null,
replyChildIndex: -1,
childCommentsPopover: !1,
blurIndex: 0,
contentLoading: !1,
parentTarget: null,
awaitMoment: !1
}
},
computed: s()({}, Object(d.b)(["userInfo"]), {
allData: function() {
var e = {};
return e.business = this.data.businessList || [], e.contacts = this.data.contactsList || [], e.contract = this.data.contractList || [], e.customer = this.data.customerList || [], e
},
allDataShow: function() {
return !this.showWorkbench && !! (this.data.businessList && 0 != this.data.businessList.length || this.data.contactsList && 0 != this.data.contactsList.length || this.data.contractList && 0 != this.data.contractList.length || this.data.customerList && 0 != this.data.customerList.length)
}
}),
watch: {},
mounted: function() {
var e = this;
0 != this.data.is_read || this.showWorkbench || (this.$bus.on("journal-list-box-scroll", function(t) {
e.observePreview(t)
}), this.observePreview(document.getElementById("journal-cell" + this.logIndex).parentNode))
},
beforeDestroy: function() {
this.$bus.off("journal-list-box-scroll")
},
methods: {
observePreview: function(e) {
var t = this;
if (0 == this.data.is_read) {
e && (this.parentTarget = e);
var i = this.whetherPreview();
!this.awaitMoment && i && (this.awaitMoment = !0, setTimeout(function() {
t.awaitMoment = !1, t.whetherPreview() && t.submiteIsRead()
}, 3e3))
}
},
whetherPreview: function() {
var e = this.parentTarget.children[this.logIndex];
if (this.parentTarget.getBoundingClientRect()) {
var t = this.parentTarget.getBoundingClientRect().top - e.getBoundingClientRect().top,
i = !1;
return t <= 0 && Math.abs(t) < this.parentTarget.clientHeight ? i = !0 : t > 0 && t < e.clientHeight && (i = !0), i
}
return !1
},
submiteIsRead: function() {
var e = this;
Object(l.g)({
log_id: this.showWorkbench ? this.data.action_id : this.data.log_id
}).then(function(t) {
e.data.is_read = 1, e.$store.dispatch("GetOAMessageNum", "log")
}).
catch (function() {})
},
verifyAwaitInfo: function() {},
handleCommand: function(e) {
this.$emit("on-handle", {
type: e,
data: {
item: this.data
}
})
},
checkRelatedDetail: function(e, t) {
this.$emit("on-handle", {
type: "related-detail",
data: {
type: e,
item: t
}
})
},
discussDelete: function(e, t, i) {
var a = this;
this.$confirm("确定删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(l.b)({
comment_id: e.comment_id,
log_id: e.type_id
}).then(function(e) {
a.$message({
type: "success",
message: "删除成功!"
}), t.splice(i, 1), a.$emit("on-handle", {
type: "discuss-delete",
data: {
item: a.data
}
})
})
}).
catch (function() {
a.$message({
type: "info",
message: "已取消删除"
})
})
},
discussBtn: function(e, t) {
e.show ? (this.$set(e, "show", !1), this.replyChildComment = null) : (this.$set(e, "show", !0), this.$set(e, "showComment", !1), this.replyChildComment = e, this.replyChildIndex = t)
},
childCommentSubmit: function() {
var e = this;
if (this.replyChildComment && this.childCommentsTextarea) {
var t = -1 == this.replyChildIndex ? this.replyChildComment : this.replyChildComment.replyList[this.replyChildIndex];
this.contentLoading = !0, Object(l.c)({
reply_fid: this.replyChildComment.comment_id,
log_id: t.type_id,
content: r()(this.childCommentsTextarea),
reply_content: t.content,
reply_comment_id: t.comment_id,
reply_user_id: t.userInfo.id,
reply_name: t.userInfo.realname
}).then(function(i) {
e.replyChildComment.replyList.push({
comment_id: i.data,
type_id: t.type_id,
userInfo: e.userInfo,
create_time: parseInt((new Date).getTime() / 1e3),
content: r()(e.childCommentsTextarea),
reply_content: t.content,
replyuserInfo: t.userInfo
}), e.$message.success("回复成功"), e.replyChildComment.show = !1, e.replyChildComment = null, e.contentLoading = !1, e.childCommentsTextarea = "", e.$emit("on-handle", {
type: "discuss-submit",
data: {
item: e.data
}
})
}).
catch (function() {
e.$message.error("回复失败"), e.contentLoading = !1
})
}
},
commentSubmit: function(e) {
var t = this;
this.commentsTextarea && (this.contentLoading = !0, Object(l.c)({
log_id: this.showWorkbench ? this.data.action_id : this.data.log_id,
content: r()(this.commentsTextarea)
}).then(function(i) {
e.showComment = !1, e.replyList.push({
comment_id: i.data,
type_id: t.showWorkbench ? t.data.action_id : t.data.log_id,
userInfo: t.userInfo,
create_time: parseInt((new Date).getTime() / 1e3),
content: r()(t.commentsTextarea),
replyList: [],
show: !1
}), t.commentsTextarea = "", t.$message.success("回复成功"), t.contentLoading = !1
}).
catch (function() {
t.$message.error("回复失败"), t.contentLoading = !1
}))
},
commentBtn: function(e) {
e.showComment ? this.$set(e, "showComment", !1) : (this.replyChildComment && (this.replyChildComment.show = !1), this.$set(e, "showComment", !0))
},
selectEmoji: function(e) {
var t = this.commentsTextarea.split("");
t.splice(this.blurIndex, 0, e), this.commentsTextarea = t.join(""), this.commentsPopover = !1
},
childSelectEmoji: function(e) {
var t = this.childCommentsTextarea.split("");
t.splice(this.blurIndex, 0, e), this.childCommentsTextarea = t.join(""), this.childCommentsPopover = !1
},
blurFun: function(e) {
this.blurIndex = e.target.selectionEnd
},
imgZoom: function(e, t) {
this.$bus.emit("preview-image-bus", {
index: t,
data: e.map(function(e, t, i) {
return {
url: e.file_path,
name: e.name
}
})
})
}
}
},
h = (i("F1nN"), i("KHd+")),
p = Object(h.a)(m, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
staticClass: "list",
attrs: {
id: "journal-cell" + e.logIndex
}
}, [a("div", {
staticClass: "list-content"
}, [a("div", {
staticClass: "header"
}, [a("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: e.data.create_user_info,
expression: "data.create_user_info"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(e.data.create_user_info.thumb_img),
expression: "$options.filters.filterUserLazyImg(data.create_user_info.thumb_img)",
arg: "background-image"
}],
key: e.data.create_user_info.thumb_img,
staticClass: "div-photo head-img header-circle"
}), e._v(" "), a("div", {
staticClass: "row"
}, [a("p", {
staticClass: "row-title"
}, [a("span", {
staticClass: "name"
}, [e._v(e._s(e.data.create_user_info.realname))]), e._v(" "), e.showWorkbench ? a("span", {
staticClass: "item-content"
}, [e._v(e._s(e.data.action_content))]) : a("span", {
staticClass: "read",
style: {
color: 0 == e.data.is_read ? "#3E84E9" : "#ccc"
}
}, [e._v(e._s(0 == e.data.is_read ? "未读" : "已读"))])]), e._v(" "), a("span", {
staticClass: "time"
}, [e._v(e._s(e._f("moment")(e.data.create_time, "YYYY-MM-DD HH:mm")))]), e._v(" "), a("el-tooltip", {
attrs: {
disabled: !(e.data.sendUserList.length > 0 || e.data.sendStructList.length > 0),
placement: "bottom",
effect: "light",
"popper-class": "tooltip-change-border"
}
}, [a("div", {
attrs: {
slot: "content"
},
slot: "content"
}, [a("div", {
staticClass: "members-dep-title"
}, [e.data.sendUserList ? a("span", e._l(e.data.sendUserList, function(t, i) {
return a("span", {
key: i
}, [e._v("\n " + e._s(0 == e.data.sendStructList.length && i == e.data.sendUserList.length - 1 ? t.realname : t.realname + ",") + "\n ")])
})) : e._e(), e._v(" "), 0 != e.data.sendStructList.legnth ? a("span", e._l(e.data.sendStructList, function(t, i) {
return a("span", {
key: i
}, [e._v("\n " + e._s(i == e.data.sendStructList.length - 1 ? t.name : t.name + ",") + "\n ")])
})) : e._e()])]), e._v(" "), a("p", {
staticClass: "row-title",
staticStyle: {
display: "inline-block"
}
}, [e.data.sendStructList ? a("span", [e._v(e._s(e.data.sendStructList.length) + " 个部门,")]) : e._e(), e._v(" "), e.data.sendUserList ? a("span", [e._v(e._s(e.data.sendUserList.length) + "个同事")]) : e._e()])])], 1), e._v(" "), !e.showWorkbench && e.data.permission && (e.data.permission.is_update || e.data.permission.is_delete) ? a("div", {
staticClass: "rt-setting"
}, [a("el-dropdown", {
attrs: {
trigger: "click"
},
on: {
command: e.handleCommand
}
}, [a("i", {
staticClass: "el-icon-arrow-down el-icon-more",
staticStyle: {
color: "#CDCDCD",
cursor: "pointer"
}
}), e._v(" "), a("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, [e.data.permission.is_update ? a("el-dropdown-item", {
attrs: {
command: "edit"
}
}, [e._v("编辑")]) : e._e(), e._v(" "), e.data.permission.is_delete ? a("el-dropdown-item", {
attrs: {
command: "delete"
}
}, [e._v("删除")]) : e._e()], 1)], 1)], 1) : e._e()]), e._v(" "), a("div", {
staticClass: "text"
}, [e.data.content ? a("p", {
staticClass: "row"
}, [a("span", {
staticClass: "title"
}, [e._v(e._s(1 == e.data.category_id ? "今日工作内容" : 2 == e.data.category_id ? "本周工作内容" : "本月工作内容") + ":")]), e._v(e._s(e.data.content))]) : e._e(), e._v(" "), e.data.tomorrow ? a("p", {
staticClass: "row"
}, [a("span", {
staticClass: "title"
}, [e._v(e._s(1 == e.data.category_id ? "明日工作内容" : 2 == e.data.category_id ? "下周工作内容" : "下月工作内容") + ":")]), e._v(e._s(e.data.tomorrow))]) : e._e(), e._v(" "), e.data.question ? a("p", {
staticClass: "row"
}, [a("span", {
staticClass: "title"
}, [e._v("遇到的问题:")]), e._v(e._s(e.data.question))]) : e._e()]), e._v(" "), a("div", {
staticClass: "accessory"
}, [0 != e.data.imgList.length ? a("div", {
staticClass: "upload-img-box"
}, e._l(e.data.imgList, function(t, i) {
return a("div", {
key: i,
staticClass: "img-list",
on: {
click: function(t) {
e.imgZoom(e.data.imgList, i)
}
}
}, [a("img", {
directives: [{
name: "lazy",
rawName: "v-lazy",
value: t.file_path,
expression: "imgItem.file_path"
}],
key: t.file_path
})])
})) : e._e(), e._v(" "), 0 != e.data.fileList.length ? a("div", {
staticClass: "accessory-box"
}, e._l(e.data.fileList, function(e, t) {
return a("file-cell", {
key: t,
attrs: {
data: e,
"cell-index": t
}
})
})) : e._e()]), e._v(" "), e.allDataShow ? a("related-business", {
attrs: {
"margin-left": "0",
alterable: !1,
"all-data": e.allData
},
on: {
checkRelatedDetail: e.checkRelatedDetail
}
}) : e._e(), e._v(" "), 0 != e.data.replyList.length ? a("div", {
staticClass: "discuss"
}, [a("div", {
staticClass: "border"
}), e._v(" "), e._l(e.data.replyList, function(t, s) {
return a("div", {
key: s,
staticClass: "discuss-list"
}, [a("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: t.userInfo,
expression: "discussItem.userInfo"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(t.userInfo.thumb_img),
expression: "$options.filters.filterUserLazyImg(discussItem.userInfo.thumb_img)",
arg: "background-image"
}],
key: t.userInfo.thumb_img,
staticClass: "div-photo head-img header-circle"
}), e._v(" "), a("span", {
staticClass: "name"
}, [e._v(e._s(t.userInfo.realname))]), e._v(" "), a("span", {
staticClass: "time"
}, [e._v(e._s(e._f("moment")(t.create_time, "YYYY-MM-DD HH:mm")))]), e._v(" "), a("p", {
staticClass: "reply-title"
}, [a("span", {
domProps: {
innerHTML: e._s(e.emoji(t.content))
}
}), e._v(" "), a("i", {
staticClass: "wukong wukong-log-reply log-handle",
on: {
click: function(i) {
e.discussBtn(t, -1)
}
}
}), e._v(" "), a("i", {
staticClass: "wukong wukong-log-delete log-handle",
on: {
click: function(i) {
e.discussDelete(t, e.data.replyList, s)
}
}
})]), e._v(" "), a("p", {
staticClass: "discuss-content",
domProps: {
innerHTML: e._s(e.emoji(t.reply_content))
}
}), e._v(" "), t.replyList && t.replyList.length > 0 ? a("div", {
staticClass: "children-reply"
}, e._l(t.replyList, function(i, s) {
return a("div", {
key: s,
staticClass: "discuss-list"
}, [a("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: i.userInfo,
expression: "childDiscussItem.userInfo"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(i.userInfo.thumb_img),
expression: "$options.filters.filterUserLazyImg(childDiscussItem.userInfo.thumb_img)",
arg: "background-image"
}],
key: i.userInfo.thumb_img,
staticClass: "div-photo head-img header-circle"
}), e._v(" "), a("span", {
staticClass: "name"
}, [e._v(e._s(i.userInfo.realname))]), e._v(" "), a("span", {
staticClass: "time"
}, [e._v(e._s(e._f("moment")(i.create_time, "YYYY-MM-DD HH:mm")))]), e._v(" "), a("p", {
staticClass: "reply-title"
}, [
[a("span", [e._v("回复")]), e._v(" "), a("span", {
staticClass: "reply"
}, [e._v("@" + e._s(i.replyuserInfo.realname) + ":")])], e._v(" "), a("span", {
domProps: {
innerHTML: e._s(e.emoji(i.content))
}
}), e._v(" "), a("i", {
staticClass: "wukong wukong-log-reply log-handle",
on: {
click: function(i) {
e.discussBtn(t, s)
}
}
}), e._v(" "), a("i", {
staticClass: "wukong wukong-log-delete log-handle",
on: {
click: function(a) {
e.discussDelete(i, t.replyList, s)
}
}
})], 2)])
})) : e._e(), e._v(" "), t.show ? a("div", {
staticClass: "comment-box"
}, [a("el-input", {
attrs: {
rows: 2,
type: "textarea",
placeholder: "请输入内容"
},
on: {
blur: e.blurFun
},
model: {
value: e.childCommentsTextarea,
callback: function(t) {
e.childCommentsTextarea = t
},
expression: "childCommentsTextarea"
}
}), e._v(" "), a("div", {
staticClass: "btn-group"
}, [a("el-popover", {
attrs: {
placement: "top",
width: "400",
trigger: "click"
},
model: {
value: e.childCommentsPopover,
callback: function(t) {
e.childCommentsPopover = t
},
expression: "childCommentsPopover"
}
}, [a("emoji", {
on: {
select: e.childSelectEmoji
}
}), e._v(" "), a("img", {
staticClass: "smiling-img",
attrs: {
slot: "reference",
src: i("woiz")
},
slot: "reference"
})], 1), e._v(" "), a("div", {
staticClass: "btn-box"
}, [a("el-button", {
attrs: {
loading: e.contentLoading,
type: "primary"
},
on: {
click: function(t) {
e.childCommentSubmit()
}
}
}, [e._v("回复")]), e._v(" "), a("el-button", {
on: {
click: function(e) {
t.show = !1
}
}
}, [e._v("取消")])], 1)], 1)], 1) : e._e(), e._v(" "), a("div", {
staticClass: "border"
})])
})], 2) : e._e()], 1), e._v(" "), a("div", {
staticClass: "footer"
}, [a("el-button", {
attrs: {
type: "primary",
icon: "el-icon-chat-line-round"
},
on: {
click: function(t) {
e.commentBtn(e.data)
}
}
}, [e._v("回复")])], 1), e._v(" "), e.data.showComment ? a("div", {
staticClass: "comment-box"
}, [a("el-input", {
attrs: {
rows: 3,
type: "textarea",
placeholder: "请输入内容"
},
on: {
blur: e.blurFun
},
model: {
value: e.commentsTextarea,
callback: function(t) {
e.commentsTextarea = t
},
expression: "commentsTextarea"
}
}), e._v(" "), a("div", {
staticClass: "btn-group"
}, [a("el-popover", {
attrs: {
placement: "top",
width: "400",
trigger: "click"
},
model: {
value: e.commentsPopover,
callback: function(t) {
e.commentsPopover = t
},
expression: "commentsPopover"
}
}, [a("emoji", {
on: {
select: e.selectEmoji
}
}), e._v(" "), a("img", {
staticClass: "smiling-img",
attrs: {
slot: "reference",
src: i("woiz")
},
slot: "reference"
})], 1), e._v(" "), a("div", {
staticClass: "btn-box"
}, [a("el-button", {
attrs: {
loading: e.contentLoading,
type: "primary"
},
on: {
click: function(t) {
e.commentSubmit(e.data)
}
}
}, [e._v("回复")]), e._v(" "), a("el-button", {
on: {
click: function(t) {
e.data.showComment = !1
}
}
}, [e._v("取消")])], 1)], 1)], 1) : e._e()])
}, [], !1, null, "1b7b786c", null);
p.options.__file = "journalCell.vue";
t.a = p.exports
},
JHu1: function(e, t, i) {},
JXju: function(e, t, i) {
"use strict";
var a = i("7Qib"),
s = i("mqlf"),
n = i("ppJE"),
l = i("PS1M"),
o = i("n1dw"),
c = i("xfX+"),
r = i("8gwX"),
d = i("K6D0"),
u = {
name: "CRMAllDetail",
components: {
ClueDetail: s.a,
CustomerDetail: n.a,
ContactsDetail: l.a,
BusinessDetail: o.a,
ContractDetail: c.a,
ProductDetail: r.a,
MoneyDetail: d.a
},
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
},
visible: {
type: Boolean,
default:
!1
},
listenerIDs: {
type: Array,
default:
function() {
return ["crm-main-container"]
}
},
noListenerIDs: {
type: Array,
default:
function() {
return []
}
},
noListenerClass: {
type: Array,
default:
function() {
return ["el-table__body"]
}
}
},
data: function() {
return {
tabName: ""
}
},
computed: {},
watch: {
crmType: function(e) {
"leads" == this.crmType ? this.tabName = "clue-detail" : "customer" == this.crmType ? this.tabName = "customer-detail" : "contacts" == this.crmType ? this.tabName = "contacts-detail" : "business" == this.crmType ? this.tabName = "business-detail" : "contract" == this.crmType ? this.tabName = "contract-detail" : "product" == this.crmType ? this.tabName = "product-detail" : "receivables" == this.crmType && (this.tabName = "money-detail")
}
},
mounted: function() {
this.visible && (document.body.appendChild(this.$el), this.$el.style.zIndex = Object(a.g)())
},
destroyed: function() {
this.$el && this.$el.parentNode && this.$el.parentNode.removeChild(this.$el)
},
methods: {
hiddenView: function() {
this.$emit("update:visible", !1)
},
detailHandle: function(e) {
this.$emit("handle", e)
}
}
},
m = (i("AnnZ"), i("KHd+")),
h = Object(m.a)(u, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return e.id && e.visible ? i(e.tabName, {
tag: "component",
staticClass: "d-view",
attrs: {
"crm-type": e.crmType,
id: e.id,
"listener-ids": e.listenerIDs,
"no-listener-ids": e.noListenerIDs
},
on: {
handle: e.detailHandle,
"hide-view": e.hiddenView
}
}) : e._e()
}, [], !1, null, "30fef6ca", null);
h.options.__file = "CRMAllDetail.vue";
t.a = h.exports
},
JZUE: function(e, t, i) {
"use strict";
var a = i("rGpO");
i.n(a).a
},
K95r: function(e, t, i) {},
KgBu: function(e, t, i) {},
LWW7: function(e, t, i) {},
LXjn: function(e, t, i) {
"use strict";
var a = i("cHM3");
i.n(a).a
},
N0PQ: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZGRjBCRTYxRTBBNzExRTg5QkREOEQxRjlDMkUxOUExIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZGRjBCRTYyRTBBNzExRTg5QkREOEQxRjlDMkUxOUExIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkZGMEJFNUZFMEE3MTFFODlCREQ4RDFGOUMyRTE5QTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkZGMEJFNjBFMEE3MTFFODlCREQ4RDFGOUMyRTE5QTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz704RrgAAABwUlEQVR42uSXz0sCQRTH36h1sGNlaHjpVJoHC0KCOnVJOwSdqmM/6NZ/EF071rluQaduGQWd9BZEqWBhQQQmHYIQikDU6bs6G8Oy4q7sskYPPuzOzFu+++a9mZ1lnHNywlzkkDkm7JEb7/m8rWIDoVBHEc+DEuAaSmLMtqk+An6dfr8Ys0T4BHxJUbUzJq6q/yc47kR4CXg1fevgTcf3Faxp+vrAsuHikqxH054A5y2mWvYxnEaPwZTc/Kl1zJPJBt27gbR667YlnUjYMNWMORMxi8edETZhH+AZ9IIx4LZb+A5sieskGALfYMWW4hIFdQtmwJyIVt5gruEziucfrF5OVbAKZsGpzq42BVIQH+6suFovlRRQojnTzWethl73IO52wYaVEd+DcTDSaFUqRPV6c6RYJJ5ON8WJFqwuLkWl/7cWMhmE4SLm8xHP5YhFIkrEJPsYibhqQDgKCur3moXDROUy8Wy2KRoMqn5PZoQLBoSnxTf7otHyeonFYsSiUVlUsUMzwttAOfnV2my3e2ATvKjiFAjIPpdg30yOr0DYRL6VpbMDFoEPPIpz2EGrl2fyn0S3Hm8tNfbv/p1+BBgA+Vdv2Iz9D6cAAAAASUVORK5CYII="
},
N3zo: function(e, t, i) {},
NOHc: function(e, t, i) {
"use strict";
var a = i("7FIu");
i.n(a).a
},
NS7n: function(e, t, i) {
"use strict";
var a = {
name: "FilterContent",
props: {
obj: {
type: Object,
default:
function() {
return {}
},
required: !0
}
},
data: function() {
return {
optionsNames: {
is: "等于",
isnot: "不等于",
contains: "包含",
not_contain: "不包含",
start_with: "开始于",
end_with: "结束于",
is_empty: "为空",
is_not_empty: "不为空",
eq: "等于",
neq: "不等于",
gt: "大于",
egt: "大于等于",
lt: "小于",
elt: "小于等于"
},
showObj: {}
}
},
computed: {},
watch: {
obj: function(e) {
this.showObj = e
}
},
mounted: function() {
this.showObj = this.obj
},
methods: {
handleDelete: function(e, t) {
this.$delete(this.showObj.obj, e.field), this.showObj.form.splice(t, 1), this.$emit("delete", {
item: e,
index: t,
obj: this.showObj
})
},
getTypesName: function(e) {
return e.type_id && e.typeOption.find(function(t) {
return t.type_id === e.type_id
}).name || ""
},
getStatusName: function(e) {
if (e.status_id) {
var t = e.statusOption.find(function(t) {
return t.status_id === e.status_id
});
return t.name ? "-" + t.name : ""
}
return ""
}
}
},
s = (i("XOVM"), i("KHd+")),
n = Object(s.a)(a, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "wrapper"
}, [i("ul", {
staticClass: "list"
}, e._l(e.showObj.form, function(t, a) {
return i("li", {
key: a,
staticClass: "list-item"
}, ["date" == t.form_type && t.value.length > 1 ? i("span", [e._v(e._s(t.name + " “" + t.value[0] + "-" + t.value[1] + "”"))]) : "datetime" === t.form_type && t.value.length > 1 ? i("span", [e._v(e._s(t.name + " “" + t.value[0] + "-" + t.value[1] + "”"))]) : "business_type" === t.form_type && t.status_id ? i("span", [e._v(e._s(t.name + " “" + e.getTypesName(t) + e.getStatusName(t) + "”"))]) : "address" === t.form_type ? i("span", [e._v(e._s(t.name + " " + t.address.state + " " + t.address.city + " " + t.address.area))]) : "user" === t.form_type && t.value.length > 0 ? i("span", [e._v(e._s(t.name + " " + e.optionsNames[t.condition] + "“" + t.value[0].realname + "”"))]) : "category" === t.form_type && t.value.length > 0 ? i("span", [e._v(e._s(t.name + " “" + t.valueContent + "”"))]) : i("span", [e._v(e._s(t.name + " " + e.optionsNames[t.condition] + "“" + t.value + "”"))]), e._v(" "), i("i", {
staticClass: "el-icon-close icon",
on: {
click: function(i) {
e.handleDelete(t, a)
}
}
})])
}))])
}, [], !1, null, "30016d38", null);
n.options.__file = "filterContent.vue";
t.a = n.exports
},
NUF6: function(e, t, i) {},
NVhG: function(e, t, i) {},
NiH4: function(e, t, i) {},
O1Uw: function(e, t, i) {
"use strict";
var a = i("7Qib"),
s = i("KTTK"),
n = {
name: "FileCell",
props: {
cellIndex: Number,
data: Object,
showFoot: {
type: Boolean,
default:
!0
},
cursorPointer: {
type: Boolean,
default:
!1
},
showDelete: {
type: Boolean,
default:
!1
},
module_id: [String, Number]
},
data: function() {
return {}
},
computed: {},
watch: {},
mounted: function() {},
beforeDestroy: function() {},
methods: {
downloadClick: function() {
Object(a.a)({
path: this.data.file_path,
name: this.data.name
})
},
deleteClick: function() {
var e = this;
this.$confirm("确定删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(s.d)({
module: "work_task",
module_id: e.module_id,
save_name: e.data.save_name
}).then(function(t) {
e.$message.success(t.data), e.$emit("delete", e.cellIndex, e.data)
}).
catch (function() {})
}).
catch (function() {
e.$message({
type: "info",
message: "已取消删除"
})
})
}
}
},
l = (i("wktz"), i("KHd+")),
o = Object(l.a)(n, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("flexbox", {
staticClass: "cell"
}, [a("img", {
staticClass: "cell-head",
attrs: {
src: i("6KEE"),
alt: ""
}
}), e._v(" "), a("div", {
staticClass: "cell-body",
class: {
"cursor-pointer": e.cursorPointer
}
}, [a("span", [e._v(e._s(e.data.name.length > 20 ? e.data.name.substring(0, 20) + "..." : e.data.name))]), e._v(" "), a("span", {
staticClass: "size"
}, [e._v("(" + e._s(e.data.size) + ")")])]), e._v(" "), a("div", {
staticClass: "cell-foot"
}, [a("el-button", {
attrs: {
type: "primary",
icon: "el-icon-download"
},
on: {
click: e.downloadClick
}
}, [e._v("下载")]), e._v(" "), e.showDelete ? a("i", {
staticClass: "el-icon-delete",
on: {
click: e.deleteClick
}
}) : e._e()], 1)])
}, [], !1, null, "327643c8", null);
o.options.__file = "index.vue";
t.a = o.exports
},
ODyT: function(e, t, i) {},
OPCT: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVENDNERTkxRTA5QjExRThBQkRDQjRERjVBMjY3MzE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjVENDNERTkyRTA5QjExRThBQkRDQjRERjVBMjY3MzE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUQ0M0RFOEZFMDlCMTFFOEFCRENCNERGNUEyNjczMTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NUQ0M0RFOTBFMDlCMTFFOEFCRENCNERGNUEyNjczMTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7c1/V2AAABIElEQVR42mL8//8/AwicPXuWgVxgbGwMZzMRUBsGxBeB+AXITigfL2DBIxcCxHlA7AnEz4CYB4gnQ+VW4dKEz4UNQBwNNQwEvgBxBhAn4XMhPgMFgPghmthPIP5NroF/cYgzkmsgMw7x/+Qa+AGIZbBEIgu5BjYC8VIgloLyQbE8E4gXkJtsVkMt3Ak1DOTiDiBeSa6BDFDNK0nJNdi8rArEa4H4IzQC0PFHqLwqMQaqA/ERID4IxIrQJIKOFaDyR6Dq8Xq5DYon4fHVe6g8J1RtMD4XugDxYiKDazYQu5GSbMgC6AbuAeJYIvWmAPEuQmFYDQ3w/1Cvv8dikCDU0mIgtifkwhtAbAdV+BBHsnkIlbeDqieYsG+ixxwpACDAAIZEQR7SM/O0AAAAAElFTkSuQmCC"
},
Op00: function(e, t, i) {
"use strict";
var a = i("+9th"),
s = {
name: "TaskCell",
components: {},
mixins: [],
props: {
data: Object,
dataIndex: Number
},
data: function() {
return {}
},
computed: {},
watch: {},
mounted: function() {},
methods: {
taskOverClick: function(e) {
var t = this;
Object(a.r)({
task_id: e.task_id,
type: e.checked ? 1 : 2
}).then(function(e) {
t.$store.dispatch("GetOAMessageNum", "task")
}).
catch (function() {
e.checked = !1
})
},
rowFun: function(e) {
this.$emit("on-handle", {
type: "view",
data: {
item: this.data,
index: this.dataIndex
}
})
},
onmouseoverFun: function(e) {
this.$refs.itemSpan.offsetWidth > this.$refs.listLeft.offsetWidth - 21 ? this.$set(e, "show", !0) : this.$set(e, "show", !1)
}
}
},
n = (i("cr3f"), i("KHd+")),
l = Object(n.a)(s, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
ref: "taskRow",
staticClass: "list",
style: {
"border-left-color": 1 == e.data.priority ? "#8bb5f0" : 2 == e.data.priority ? "#FF9668" : 3 == e.data.priority ? "#ED6363" : "transparent"
},
on: {
click: function(t) {
e.rowFun(e.data)
}
}
}, [i("div", {
ref: "listLeft",
staticClass: "list-left"
}, [i("div", {
class: e.data.checked ? "title title-active" : "title",
on: {
click: function(e) {
e.stopPropagation()
}
}
}, [i("el-checkbox", {
on: {
change: function(t) {
e.taskOverClick(e.data)
}
},
model: {
value: e.data.checked,
callback: function(t) {
e.$set(e.data, "checked", t)
},
expression: "data.checked"
}
})], 1), e._v(" "), i("el-tooltip", {
attrs: {
placement: "bottom",
effect: "light",
"popper-class": "task-tooltip tooltip-change-border"
}
}, [i("div", {
attrs: {
slot: "content"
},
slot: "content"
}, [i("span", [e._v(e._s(e.data.task_name))])]), e._v(" "), i("span", {
ref: "itemSpan",
class: e.data.checked ? "item-name-active" : "item-name"
}, [e._v("\n " + e._s(e.data.task_name) + "\n ")])])], 1), e._v(" "), i("div", {
staticClass: "list-right"
}, [e.data.lableList ? i("div", {
staticClass: "tag-box"
}, [e.data.lableList.length <= 2 ? e._l(e.data.lableList, function(t, a) {
return i("div", {
key: a,
staticClass: "item-label"
}, [i("span", {
staticClass: "k-name",
style: {
background: t.color
}
}, [e._v(e._s(t.name))])])
}) : [i("span", {
staticClass: "k-name",
style: {
background: e.data.lableList[0].color
}
}, [e._v(e._s(e.data.lableList[0].name))]), e._v(" "), i("span", {
staticClass: "k-name",
style: {
background: e.data.lableList[1].color
}
}, [e._v(e._s(e.data.lableList[1].name))]), e._v(" "), i("el-tooltip", {
attrs: {
placement: "top",
effect: "light",
"popper-class": "tooltip-change-border task-tooltip"
}
}, [i("div", {
staticClass: "tooltip-content",
staticStyle: {
margin: "10px 10px 10px 0"
},
attrs: {
slot: "content"
},
slot: "content"
}, e._l(e.data.lableList, function(t, a) {
return i("div", {
key: a,
staticClass: "item-label",
staticStyle: {
display: "inline-block",
"margin-right": "10px"
}
}, [a >= 2 ? i("span", {
staticClass: "k-name",
staticStyle: {
"border-radius": "3px",
color: "#FFF",
padding: "3px 10px"
},
style: {
background: t.color ? t.color : "#ccc"
}
}, [e._v(e._s(t.name))]) : e._e()])
})), e._v(" "), i("span", {
staticClass: "color-label-more"
}, [i("i", [e._v("...")])])])]], 2) : e._e(), e._v(" "), i("div", {
staticClass: "img-group"
}, [e.data.relationCount ? i("div", {
staticClass: "img-box"
}, [i("i", {
staticClass: "wukong wukong-relevance"
}), e._v(" "), i("span", [e._v(e._s(e.data.relationCount))])]) : e._e(), e._v(" "), e.data.subcount + e.data.subdonecount != 0 ? i("div", {
staticClass: "img-box"
}, [i("i", {
staticClass: "wukong wukong-sub-task"
}), e._v(" "), i("span", [e._v(e._s(e.data.subdonecount) + "/" + e._s(e.data.subcount + e.data.subdonecount))])]) : e._e(), e._v(" "), e.data.filecount ? i("div", {
staticClass: "img-box"
}, [i("i", {
staticClass: "wukong wukong-file"
}), e._v(" "), i("span", [e._v(e._s(e.data.filecount))])]) : e._e(), e._v(" "), e.data.commentcount ? i("div", {
staticClass: "img-box"
}, [i("i", {
staticClass: "wukong wukong-comment-task"
}), e._v(" "), i("span", [e._v(e._s(e.data.commentcount))])]) : e._e(), e._v(" "), e.data.stop_time ? i("div", {
staticClass: "img-box"
}, [i("i", {
staticClass: "wukong wukong-time-task",
style: {
color: 1 != e.data.is_end || e.data.checked ? "#999" : "red"
}
}), e._v(" "), i("span", {
style: {
color: 1 != e.data.is_end || e.data.checked ? "#999" : "red"
}
}, [e._v(e._s(e._f("moment")(e.data.stop_time, "MM-DD")) + " 截止")])]) : e._e()]), e._v(" "), i("div", {
staticClass: "item-own-box"
}, [e.data.main_user && e.data.main_user.id ? i("el-tooltip", {
attrs: {
placement: "bottom",
effect: "light",
"popper-class": "tooltip-change-border"
}
}, [i("div", {
attrs: {
slot: "content"
},
slot: "content"
}, [i("span", [e._v(e._s(e.data.main_user.realname))])]), e._v(" "), i("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: e.data.main_user,
expression: "data.main_user"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(e.data.main_user.thumb_img),
expression: "$options.filters.filterUserLazyImg(data.main_user.thumb_img)",
arg: "background-image"
}],
key: e.data.main_user.thumb_img,
staticClass: "div-photo"
})]) : e._e()], 1)])])
}, [], !1, null, "829cdce6", null);
l.options.__file = "taskCell.vue";
t.a = l.exports
},
QJC7: function(e, t, i) {
"use strict";
var a = i("3yi6"),
s = i("KzkL"),
n = {
name: "RecordLog",
components: {
FollowRecordCell: a.a
},
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
loading: !1,
loadMoreLoading: !0,
isPost: !1,
page: 1,
list: []
}
},
computed: {},
watch: {
id: function(e) {
this.refreshList()
}
},
mounted: function() {
var e = this;
this.$bus.on("follow-log-refresh", function(t) {
"record-log" == t.type && e.refreshList()
});
var t = document.getElementById("follow-log-content");
t.onscroll = function() {
var i = t.scrollTop + t.clientHeight - t.scrollHeight;
Math.abs(i) < 10 && 1 == e.loadMoreLoading && (e.isPost ? e.loadMoreLoading = !1 : (e.isPost = !0, e.page++, e.getList()))
}, this.getList()
},
activated: function() {},
deactivated: function() {},
beforeDestroy: function() {
this.$bus.off("follow-log-refresh")
},
methods: {
getList: function() {
var e = this;
this.loading = !0, Object(s.k)({
page: this.page,
limit: 10,
types: "crm_" + this.crmType,
types_id: this.id,
by: "record"
}).then(function(t) {
e.list = e.list.concat(t.data.list), t.data.list.length < 10 ? e.loadMoreLoading = !1 : e.loadMoreLoading = !0, e.loading = !1, e.isPost = !1
}).
catch (function() {
e.isPost = !1, e.loading = !1
})
},
refreshList: function() {
this.page = 1, this.list = [], this.getList()
},
cellHandle: function(e) {
"delete" == e.type && this.list.splice(e.data.index, 1)
}
}
},
l = (i("GynS"), i("KHd+")),
o = Object(l.a)(n, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}]
}, [i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: 0 === e.list.length,
expression: "list.length === 0"
}]
}, [i("div", {
staticClass: "log-items"
}, [e._l(e.list, function(t, a) {
return i("follow-record-cell", {
key: a,
attrs: {
item: t,
"crm-type": e.crmType,
index: a
},
on: {
"on-handle": e.cellHandle
}
})
}), e._v(" "), i("div", {
staticClass: "load"
}, [i("el-button", {
attrs: {
loading: e.loadMoreLoading,
type: "text"
}
}, [e._v(e._s(e.loadMoreLoading ? "加载更多" : "没有更多了"))])], 1)], 2)])])
}, [], !1, null, "6a287ea5", null);
o.options.__file = "RecordLog.vue";
t.a = o.exports
},
QUdC: function(e, t, i) {},
"QV+c": function(e, t, i) {},
Qf6f: function(e, t, i) {},
QhmF: function(e, t, i) {
"use strict";
i.r(t);
var a = i("6zBA"),
s = i("ooHJ"),
n = i("ExMk"),
l = {
name: "ExamineHandle",
components: {
XhUserCell: i("8GhS").p
},
props: {
show: {
type: Boolean,
default:
!1
},
status: {
type: [String, Number],
default:
1
},
id: [String, Number],
detail: {
type: Object,
default:
function() {
return {}
}
},
examineType: {
type: String,
default:
""
}
},
data: function() {
return {
loading: !1,
showDialog: !1,
handleType: 1,
selectUsers: [],
content: ""
}
},
computed: {
title: function() {
return 1 == this.status ? "审批通过" : 0 == this.status ? "审批拒绝" : 2 == this.status ? "撤回审批" : ""
},
placeholder: function() {
return 1 == this.status ? "请输入审批意见(选填)" : 0 == this.status ? "请输入审批意见(必填)" : 2 == this.status ? "请输入撤回理由(必填)" : ""
}
},
watch: {
show: {
handler: function(e) {
this.showDialog = e
},
deep: !0,
immediate: !0
}
},
mounted: function() {},
methods: {
submitInfo: function() {
0 != this.status && 2 != this.status || this.content ? 0 == this.status || 1 == this.status ? this.handlePassAndReject() : 2 == this.status && this.handleRevoke() : this.$message.error(this.placeholder)
},
handleRevoke: function() {
var e = this;
this.loading = !0, this.getExamineRevokeRequest()({
id: this.id,
content: this.content
}).then(function(t) {
e.loading = !1, e.$message.success(t.data), e.$emit("save"), e.hiddenView()
}).
catch (function() {
e.loading = !1
})
},
getExamineRevokeRequest: function() {
return "crm_contract" == this.examineType ? a.h : "crm_receivables" == this.examineType ? s.g : "oa_examine" == this.examineType ? n.f : void 0
},
handlePassAndReject: function() {
var e = this;
this.loading = !0;
var t = {
id: this.id,
status: this.status,
content: this.content,
flow_id: this.detail.flow_id
};
1 == this.status && 0 == this.detail.config && (1 == this.handleType ? t.is_end = 1 : t.check_user_id = this.selectUsers[0].id), this.getExamineRequest()(t).then(function(t) {
e.loading = !1, e.$message.success(t.data), e.$emit("save", {
type: e.status
}), e.hiddenView()
}).
catch (function() {
e.loading = !1
})
},
getExamineRequest: function() {
return "crm_contract" == this.examineType ? a.b : "crm_receivables" == this.examineType ? s.a : "oa_examine" == this.examineType ? n.b : void 0
},
handleClick: function(e) {
"cancel" == e ? this.hiddenView() : "confirm" == e && this.submitInfo()
},
selectUserFocus: function() {
this.handleType = 2
},
selectExamineUser: function(e) {
this.selectUsers = e.value
},
hiddenView: function() {
this.$emit("close")
}
}
},
o = (i("AV3D"), i("KHd+")),
c = Object(o.a)(l, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("el-dialog", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
attrs: {
title: e.title,
"append-to-body": !0,
visible: e.showDialog,
width: "400px"
},
on: {
"update:visible": function(t) {
e.showDialog = t
},
close: e.hiddenView
}
}, [1 == e.status && 0 == e.detail.config ? i("div", {
staticClass: "handle-type"
}, [i("flexbox", {
staticClass: "handle-item"
}, [i("el-radio", {
attrs: {
label: 1
},
model: {
value: e.handleType,
callback: function(t) {
e.handleType = t
},
expression: "handleType"
}
}, [i("span")]), e._v(" "), i("div", {
staticStyle: {
"font-size": "12px"
},
nativeOn: {
click: function(t) {
e.handleType = 1
}
}
}, [e._v("审核结束")])], 1), e._v(" "), i("flexbox", {
staticClass: "handle-item",
attrs: {
id: "selectUser"
}
}, [i("el-radio", {
attrs: {
label: 2
},
model: {
value: e.handleType,
callback: function(t) {
e.handleType = t
},
expression: "handleType"
}
}, [i("span")]), e._v(" "), i("xh-user-cell", {
staticClass: "select-user",
attrs: {
placeholder: "选择下一审批人"
},
on: {
focus: e.selectUserFocus,
"value-change": e.selectExamineUser
}
})], 1)], 1) : e._e(), e._v(" "), 1 == e.status && 0 == e.detail.config ? i("div", {
staticClass: "title"
}, [e._v("意见")]) : e._e(), e._v(" "), i("el-input", {
attrs: {
rows: 5,
placeholder: e.placeholder,
type: "textarea",
resize: "none"
},
model: {
value: e.content,
callback: function(t) {
e.content = t
},
expression: "content"
}
}), e._v(" "), i("div", {
staticClass: "dialog-footer",
attrs: {
slot: "footer"
},
slot: "footer"
}, [i("el-button", {
on: {
click: function(t) {
e.handleClick("cancel")
}
}
}, [e._v("取 消")]), e._v(" "), i("el-button", {
attrs: {
type: "primary"
},
on: {
click: function(t) {
e.handleClick("confirm")
}
}
}, [e._v("确 定")])], 1)], 1)
}, [], !1, null, "55ac0ffa", null);
c.options.__file = "ExamineHandle.vue";
t.
default = c.exports
},
Qldq: function(e, t, i) {
"use strict";
i.d(t, "f", function() {
return s
}), i.d(t, "a", function() {
return n
}), i.d(t, "e", function() {
return l
}), i.d(t, "c", function() {
return o
}), i.d(t, "d", function() {
return c
}), i.d(t, "b", function() {
return r
}), i.d(t, "g", function() {
return d
});
var a = i("t3Un");
function s(e) {
return Object(a.a)({
url: "oa/log/index",
method: "post",
data: e
})
}
function n(e) {
return Object(a.a)({
url: "oa/log/save",
method: "post",
data: e
})
}
function l(e) {
return Object(a.a)({
url: "oa/log/update",
method: "post",
data: e
})
}
function o(e) {
return Object(a.a)({
url: "oa/log/commentSave",
method: "post",
data: e
})
}
function c(e) {
return Object(a.a)({
url: "oa/log/delete",
method: "post",
data: e
})
}
function r(e) {
return Object(a.a)({
url: "oa/log/commentDel",
method: "post",
data: e
})
}
function d(e) {
return Object(a.a)({
url: "oa/log/setread",
method: "post",
data: e
})
}
},
S3Kq: function(e, t, i) {
"use strict";
var a = i("GQeE"),
s = i.n(a),
n = i("sCIN"),
l = {
name: "Emoji",
data: function() {
return {
emojiData: n.a,
pannels: ["表情", "自然", "物品", "地点", "符号"],
activeIndex: 0
}
},
computed: {
emojis: function() {
var e = this;
return this.pannels.map(function(t) {
return s()(e.emojiData[t])
})
}
},
created: function() {},
methods: {
changeActive: function(e) {
this.activeIndex = e
},
getPureName: function(e) {
return e.replace(/:/g, "")
},
selectItem: function(e) {
this.$emit("select", e)
}
}
},
o = (i("e8nH"), i("KHd+")),
c = Object(o.a)(l, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "emoji"
}, [i("ul", {
staticClass: "emoji-controller"
}, e._l(e.pannels, function(t, a) {
return i("li", {
key: a,
class: {
active: a === e.activeIndex
},
on: {
click: function(t) {
e.changeActive(a)
}
}
}, [e._v("\n " + e._s(t) + "\n ")])
})), e._v(" "), i("ul", {
staticClass: "emoji-container"
}, e._l(e.emojis, function(t, a) {
return a === e.activeIndex ? i("li", {
key: a,
staticStyle: {
padding: "0"
}
}, [e._v("\n " + e._s(t) + "--" + e._s(a) + "\n "), e._l(t, function(t, a) {
return i("a", {
key: a,
attrs: {
href: "javascript:;"
},
on: {
click: function(i) {
e.selectItem(t)
}
}
}, [i("span", {
staticClass: "emoji-item",
class: "sprite-" + e.getPureName(t),
attrs: {
title: t
}
})])
})], 2) : e._e()
}))])
}, [], !1, null, "1d108da0", null);
c.options.__file = "emoji.vue";
t.a = c.exports
},
SE13: function(e, t, i) {
"use strict";
var a = i("mX3o"),
s = i("UcQx"),
n = i("6zBA"),
l = i("7Qib"),
o = {
name: "RelativeProduct",
components: {
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-f93ad2")]).then(i.bind(null, "uMjE"))
}
},
mixins: [a.a],
props: {
id: [String, Number],
detail: {
type: Object,
default:
function() {
return {}
}
},
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
}
},
data: function() {
return {
nopermission: !1,
list: [],
fieldList: [],
tableHeight: "400px",
showFullDetail: !1,
productId: "",
totalInfo: {
total_price: "0.00",
discount_rate: "0.00"
},
formatterRules: {}
}
},
computed: {},
watch: {
id: function(e) {
this.list = [], this.getDetail()
}
},
mounted: function() {
this.getDetail()
},
activated: function() {},
deactivated: function() {},
methods: {
getFieldList: function() {
this.fieldList.push({
prop: "name",
width: "200",
label: "产品名称"
}), this.fieldList.push({
prop: "category_id",
width: "200",
label: "产品类别"
}), this.fieldList.push({
prop: "unit",
width: "200",
label: "单位"
}), this.fieldList.push({
prop: "price",
width: "200",
label: "标准价格"
}), this.fieldList.push({
prop: "sales_price",
width: "200",
label: "售价"
}), this.fieldList.push({
prop: "num",
width: "200",
label: "数量"
}), this.fieldList.push({
prop: "discount",
width: "200",
label: "折扣(%)"
}), this.fieldList.push({
prop: "subtotal",
width: "200",
label: "合计"
}), this.formatterRules.category_id = {
type: "crm",
formatter: function(e) {
return e || ""
}
}
},
getDetail: function() {
var e = this;
this.loading = !0, this.getRequest()(this.getParams()).then(function(t) {
0 == e.fieldList.length && e.getFieldList(), e.nopermission = !1, e.loading = !1, e.list = t.data.list, e.totalInfo.total_price = Object(l.h)(t.data.total_price), e.totalInfo.discount_rate = t.data.discount_rate
}).
catch (function(t) {
102 == t.code && (e.nopermission = !0), e.loading = !1
})
},
getRequest: function() {
return "business" == this.crmType ? s.e : "contract" == this.crmType ? n.f : void 0
},
getParams: function() {
return "business" == this.crmType ? {
business_id: this.id
} : "contract" == this.crmType ? {
contract_id: this.id
} : void 0
},
fieldFormatter: function(e, t, i) {
if (["sales_price", "price", "subtotal"].includes(t.property)) return Object(l.h)(i);
var a = this.formatterRules[t.property];
return a ? "crm" === a.type ? t.property ? a.formatter(e[t.property + "_info"]) : "" : a.formatter(e[t.property]) : e[t.property]
},
handleRowClick: function(e, t, i) {
this.productId = e.product_id, this.showFullDetail = !0
},
headerRowStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
cellStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
}
}
},
c = (i("NOHc"), i("KHd+")),
r = Object(c.a)(o, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: e.nopermission,
expression: "nopermission"
}],
staticClass: "rc-cont",
attrs: {
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
}
}, [i("flexbox", {
staticClass: "rc-head",
attrs: {
direction: "row-reverse"
}
}), e._v(" "), i("el-table", {
staticStyle: {
width: "100%",
border: "1px solid #E6E6E6"
},
attrs: {
data: e.list,
height: e.tableHeight,
"header-cell-style": e.headerRowStyle,
"cell-style": e.cellStyle,
stripe: ""
},
on: {
"row-click": e.handleRowClick
}
}, e._l(e.fieldList, function(t, a) {
return i("el-table-column", {
key: a,
attrs: {
prop: t.prop,
formatter: e.fieldFormatter,
label: t.label,
"show-overflow-tooltip": ""
}
})
})), e._v(" "), i("flexbox", {
staticClass: "handle-footer"
}, [i("div", {
staticClass: "discount-title"
}, [e._v("整单折扣(%):"), i("span", {
staticClass: "discount-title-value"
}, [e._v(e._s(e.totalInfo.discount_rate))])]), e._v(" "), i("div", {
staticClass: "total-info"
}, [e._v("已选中产品:"), i("span", {
staticClass: "info-yellow"
}, [e._v(e._s(e.list.length))]), e._v(" 种 总金额:"), i("span", {
staticClass: "info-yellow"
}, [e._v(e._s(e.totalInfo.total_price))]), e._v(" 元")])]), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
id: e.productId,
"crm-type": "product"
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
})], 1)
}, [], !1, null, "919b877a", null);
r.options.__file = "RelativeProduct.vue";
t.a = r.exports
},
SoCr: function(e, t, i) {},
SvQs: function(e, t, i) {},
UEWd: function(e, t, i) {
"use strict";
var a = i("7Qib"),
s = i("KTTK"),
n = {
name: "MixAdd",
components: {
CrmRelative: i("mkuN").a
},
props: {
showRelativeBusiness: {
type: Boolean,
default:
!1
},
showRelativeContacts: {
type: Boolean,
default:
!1
},
id: [String, Number],
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
content: "",
inputAutosize: {
minRows: 1,
maxRows: 6
},
barItems: [{
img: i("S1Xc"),
title: "图片",
type: "img",
data: "image/*"
}, {
img: i("rl4O"),
title: "附件",
type: "file",
data: "*.*"
}],
imgFiles: [],
files: [],
business: [],
contacts: [],
showRelativeType: ""
}
},
computed: {},
mounted: function() {
this.showRelativeBusiness && this.barItems.push({
img: i("i91G"),
title: "关联商机",
type: "business",
show: !1
}), this.showRelativeContacts && this.barItems.push({
img: i("OPCT"),
title: "关联联系人",
type: "contacts",
show: !1
}), this.$on("submit-info", function() {
this.$emit("mixadd-info", {
content: this.content,
files: this.files,
images: this.imgFiles,
business: this.business,
contacts: this.contacts
})
})
},
beforeDestroy: function() {
this.$off("submit-info")
},
methods: {
resetInfo: function() {
this.content = "", this.imgFiles = [], this.files = [], this.business = [], this.contacts = [], this.showRelativeType = ""
},
checkRelativeInfos: function(e) {
"business" == this.showRelativeType ? this.business = e.data : "contacts" == this.showRelativeType && (this.contacts = e.data)
},
barClick: function(e) {
"business" == e.type ? (this.showRelativeType = e.type, e.show = !0) : "contacts" == e.type && (this.showRelativeType = e.type, e.show = !0)
},
uploadFile: function(e) {
for (var t = this, i = e.target.files, n = this, l = function(l) {
var o = i[l];
(c = {}).module_id = t.id, c.module = "crm_" + t.crmType, "image/*" == e.target.accept ? c["img[]"] = o : "*.*" == e.target.accept && (c["file[]"] = o), Object(s.f)(c).then(function(t) {
t.data.forEach(function(t, i) {
t.size = Object(a.c)(o.size), "image/*" == e.target.accept ? n.imgFiles.push(t) : "*.*" == e.target.accept && (t.icon = Object(a.f)(o), n.files.push(t))
})
}).
catch (function() {})
}, o = 0; o < i.length; o++) {
var c;
l(o)
}
e.target.value = ""
},
deleteAllImg: function() {
this.imgFiles = []
},
deleteImgOrFile: function(e, t, i) {
var a = this;
Object(s.d)({
save_name: t.save_name,
module_id: this.id,
module: "crm_" + this.crmType
}).then(function(t) {
"image" == e ? a.imgFiles.splice(i, 1) : a.files.splice(i, 1), a.$message.success(t.data)
}).
catch (function() {})
},
mouseImgOver: function(e, t) {
e.showDelete = !0, this.$set(this.imgFiles, t, e)
},
mouseImgLeave: function(e, t) {
e.showDelete = !1, this.$set(this.imgFiles, t, e)
},
inputFocus: function() {
var e = this;
this.inputAutosize = {
minRows: 3,
maxRows: 6
}, this.$nextTick(function() {
e.$refs.textarea.resizeTextarea()
})
}
}
},
l = (i("eDCH"), i("KHd+")),
o = Object(l.a)(n, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
staticClass: "mix-container"
}, [a("div", {
staticClass: "i-cont"
}, [a("el-input", {
ref: "textarea",
attrs: {
autosize: e.inputAutosize,
type: "textarea",
clearable: "",
resize: "none",
placeholder: "请输入内容"
},
on: {
focus: e.inputFocus
},
model: {
value: e.content,
callback: function(t) {
e.content = t
},
expression: "content"
}
})], 1), e._v(" "), e.imgFiles.length > 0 ? a("section", {
staticClass: "img-cont"
}, [a("flexbox", {
attrs: {
wrap: "wrap"
}
}, [e._l(e.imgFiles, function(t, i) {
return a("div", {
key: i,
staticClass: "img-item",
style: {
"background-image": "url(" + t.path + ")"
},
on: {
mouseover: function(a) {
e.mouseImgOver(t, i)
},
mouseleave: function(a) {
e.mouseImgLeave(t, i)
}
}
}, [t.showDelete ? a("div", {
staticClass: "img-delete",
on: {
click: function(a) {
e.deleteImgOrFile("image", t, i)
}
}
}, [e._v("×")]) : e._e()])
}), e._v(" "), a("div", {
staticClass: "img-item-add"
}, [a("input", {
staticClass: "img-item-iput",
attrs: {
type: "file",
accept: "image/*",
multiple: ""
},
on: {
change: e.uploadFile
}
})])], 2), e._v(" "), a("div", {
staticClass: "img-bar",
on: {
click: e.deleteAllImg
}
}, [e._v("全部删除")])], 1) : e._e(), e._v(" "), e.files.length > 0 ? a("section", {
staticClass: "file-cont"
}, [a("flexbox", {
staticClass: "f-header"
}, [a("img", {
staticClass: "f-logo",
attrs: {
src: i("rl4O")
}
}), e._v(" "), a("div", {
staticClass: "f-name"
}, [e._v("附件")])]), e._v(" "), a("div", {
staticClass: "f-body"
}, e._l(e.files, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "f-item"
}, [a("img", {
staticClass: "f-img",
attrs: {
src: t.icon
}
}), e._v(" "), a("div", {
staticClass: "f-name"
}, [e._v(e._s(t.name + "(" + t.size + ")"))]), e._v(" "), a("div", {
staticClass: "close-button",
on: {
click: function(a) {
e.deleteImgOrFile("file", t, i)
}
}
}, [e._v("×")])])
})), e._v(" "), a("div", {
staticClass: "img-bar",
on: {
click: function(t) {
e.files = []
}
}
}, [e._v("全部删除")])], 1) : e._e(), e._v(" "), e.business.length > 0 ? a("section", {
staticClass: "c-cont"
}, [a("flexbox", {
staticClass: "c-header"
}, [a("img", {
staticClass: "c-logo",
attrs: {
src: i("i91G")
}
}), e._v(" "), a("div", {
staticClass: "c-name"
}, [e._v("商机")])]), e._v(" "), a("div", {
staticClass: "c-body"
}, [a("flexbox", {
attrs: {
wrap: "wrap"
}
}, e._l(e.business, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "c-item"
}, [a("div", {
staticClass: "c-item-name"
}, [e._v(e._s(t.name))]), e._v(" "), a("div", {
staticClass: "c-item-close",
on: {
click: function(t) {
e.business.splice(i, 1)
}
}
}, [e._v("×")])])
}))], 1)], 1) : e._e(), e._v(" "), e.contacts.length > 0 ? a("section", {
staticClass: "c-cont"
}, [a("flexbox", {
staticClass: "c-header"
}, [a("img", {
staticClass: "c-logo",
attrs: {
src: i("OPCT")
}
}), e._v(" "), a("div", {
staticClass: "c-name"
}, [e._v("联系人")])]), e._v(" "), a("div", {
staticClass: "c-body"
}, [a("flexbox", {
attrs: {
wrap: "wrap"
}
}, e._l(e.contacts, function(t, i) {
return a("flexbox", {
key: i,
staticClass: "c-item"
}, [a("div", {
staticClass: "c-item-name"
}, [e._v(e._s(t.name))]), e._v(" "), a("div", {
staticClass: "c-item-close",
on: {
click: function(t) {
e.contacts.splice(i, 1)
}
}
}, [e._v("×")])])
}))], 1)], 1) : e._e(), e._v(" "), a("flexbox", {
staticClass: "bar-cont"
}, [e._l(e.barItems, function(t, i) {
return ["img" == t.type || "file" == t.type ? a("flexbox", {
key: i,
staticClass: "bar-item",
nativeOn: {
click: function(i) {
e.barClick(t)
}
}
}, [a("input", {
staticClass: "bar-input",
attrs: {
accept: t.data,
type: "file",
multiple: ""
},
on: {
change: e.uploadFile
}
}), e._v(" "), a("img", {
staticClass: "bar-img",
attrs: {
src: t.img
}
}), e._v(" "), a("div", {
staticClass: "bar-title"
}, [e._v(e._s(t.title))])]) : a("el-popover", {
key: i,
attrs: {
placement: "bottom",
width: "700",
"popper-class": "no-padding-popover",
trigger: "click"
},
model: {
value: t.show,
callback: function(i) {
e.$set(t, "show", i)
},
expression: "item.show"
}
}, [a("crm-relative", {
ref: "crmrelative",
refInFor: !0,
attrs: {
show: t.show,
radio: !1,
action: {
type: "condition",
data: {
form_type: "customer",
customer_id: e.id
}
},
"selected-data": "business" == t.type ? {
business: e.business
} : {
contacts: e.contacts
},
"crm-type": t.type
},
on: {
close: function(e) {
t.show = !1
},
changeCheckout: e.checkRelativeInfos
}
}), e._v(" "), a("flexbox", {
staticClass: "bar-item",
attrs: {
slot: "reference"
},
nativeOn: {
click: function(i) {
e.barClick(t)
}
},
slot: "reference"
}, [a("img", {
staticClass: "bar-img",
attrs: {
src: t.img
}
}), e._v(" "), a("div", {
staticClass: "bar-title"
}, [e._v(e._s(t.title))])])], 1)]
})], 2)], 1)
}, [], !1, null, "c3bfd986", null);
o.options.__file = "MixAdd.vue";
t.a = o.exports
},
UHbi: function(e, t, i) {
"use strict";
var a = i("sAYG");
i.n(a).a
},
Veb8: function(e, t, i) {
"use strict";
var a = i("z3U6");
i.n(a).a
},
XBUZ: function(e, t, i) {
"use strict";
var a = i("BoPK");
i.n(a).a
},
XOVM: function(e, t, i) {
"use strict";
var a = i("wb/L");
i.n(a).a
},
"YZ/h": function(e, t, i) {},
Yytf: function(e, t, i) {
"use strict";
var a = i("ovzS");
i.n(a).a
},
ZlMj: function(e, t, i) {
"use strict";
var a = i("NiH4");
i.n(a).a
},
ZuO2: function(e, t, i) {
"use strict";
var a = i("QbLZ"),
s = i.n(a),
n = i("L2JU"),
l = i("vG5h"),
o = i("5tgW"),
c = i("qbf4"),
r = i("YrMO"),
d = i("KzkL"),
u = i("KTTK"),
m = {
name: "CRMImport",
components: {
XhUserCell: i("8GhS").p
},
props: {
show: {
type: Boolean,
default:
!1
},
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
showDialog: !1,
config: 1,
file: {
name: ""
},
user: [],
fieldUniqueInfo: "",
activeName: "first",
importExecStats: !1,
errorInfo: "",
isDone: !1,
isCancel: !1,
importResponseShow: !1,
done: 0,
total: 0,
error: 0,
cover: 0,
errorFilePath: "",
resTemp: {},
importQueueIndex: ""
}
},
computed: s()({}, Object(n.b)(["userInfo"]), {
crmTypeName: function() {
return {
customer: "客户",
leads: "线索",
contacts: "联系人",
product: "产品",
user: "员工"
}[this.crmType] || ""
}
}),
watch: {
show: function(e) {
this.showDialog = e, this.fieldUniqueInfo || this.getFieldUniqueInfo()
}
},
mounted: function() {
this.user.push(this.userInfo)
},
methods: {
sure: function() {
var e = this,
t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
i = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
a = s()({
import_queue_index: this.importQueueIndex,
cover: this.cover
}, t);
if (this.file.name) if ("customer" == this.crmType || this.user && 0 != this.user.length) {
this.activeName = "second", i && (this.importExecStats = !0), this.isDone = !1, this.refreshOrCloseTips(), a.config = this.config, a.temp_file || (a.file = this.file), console.log(a), a.owner_user_id = this.user.length > 0 ? this.user[0].id : "", (0, {
customer: l.f,
leads: o.d,
contacts: c.d,
product: r.d,
user: u.m
}[this.crmType])(a).then(function(t) {
e.importQueueIndex = t.data.import_queue_index, e.resTemp = t, e.importResponseShow = !0, e.done = t.data.done ? t.data.done : e.done, e.total = t.data.total ? t.data.total : e.total, e.error = t.data.error ? t.data.error : e.error, e.cover = t.data.cover ? t.data.cover : e.cover, e.isCancel && -1 === t.data.page ? (e.importExecStats = !1, window.onbeforeunload = null, e.error ? e.errorFilePath = t.data.error_file_path : e.errorFilePath = "") : e.isCancel || -2 !== t.data.page ? t.data.done >= t.data.total ? (e.isDone = !0, e.importExecStats = !1, e.$emit("listRefresh"), window.onbeforeunload = null, t.data.error ? e.errorFilePath = t.data.error_file_path : e.errorFilePath = "") : e.isCancel ? e.sure({
page: -1,
temp_file: t.data.temp_file,
error_file: t.data.error_file,
error: t.data.error
}) : e.sure({
page: t.data.page,
temp_file: t.data.temp_file,
error_file: t.data.error_file,
error: t.data.error
}) : (e.importResponseShow = !1, setTimeout(function() {
e.sure({
page: 1,
temp_file: t.data.temp_file
})
}, 1e3))
}).
catch (function() {
e.isCancel = !0, e.importExecStats = !1, e.importExecStats = !1, window.onbeforeunload = null
})
} else this.$message.error("请选择负责人");
else this.$message.error("请选择导入文件")
},
download: function() {
var e = document.createElement("a");
e.href = window.BASE_URL + {
customer: l.d,
leads: o.b,
contacts: c.b,
product: r.b,
user: u.l
}[this.crmType], e.target = "_black", document.body.appendChild(e), e.click(), document.body.removeChild(e)
},
selectFile: function() {
document.getElementById("importInputFile").click()
},
uploadFile: function(e) {
var t = e.target.files[0];
this.file = t, e.target.value = ""
},
userSelect: function(e) {
e.value && e.value.length > 0 ? this.user = e.value : this.user = []
},
closeView: function() {
"second" == this.activeName && (this.file = {
name: ""
}), this.activeName = "first", this.importResponseShow = !1, this.errorFilePath = "", this.isDone = !1, this.importExecStats = !1, this.errorInfo = "", this.isCancel = !1, this.importQueueIndex = "", this.$emit("close")
},
getFieldUniqueInfo: function() {
var e = this;
Object(d.a)({
types: "crm_" + this.crmType
}).then(function(t) {
e.fieldUniqueInfo = t.data
}).
catch (function() {})
},
tabClick: function() {
"first" === this.activeName && (this.importQueueIndex = "", this.importResponseShow = !1, this.errorFilePath = "", this.isCancel = !1, this.isDone = !1, this.errorInfo = "", this.importExecStats = !1, this.file = {
name: ""
})
},
downloadErrorFile: function() {
Object(u.a)({
path: this.errorFilePath,
name: "导入错误数据"
}).then(function(e) {
var t = new Blob([e.data], {
type: "application/vnd.ms-excel;charset=utf-8"
}),
i = document.createElement("a"),
a = window.URL.createObjectURL(t);
i.href = a, i.download = decodeURI(e.headers["content-disposition"].split("filename=")[1]) || "", document.body.appendChild(i), i.click(), document.body.removeChild(i), window.URL.revokeObjectURL(a)
})
},
cancelImport: function() {
var e = this;
this.importExecStats && this.$confirm("此操作将取消数据导入, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
e.importExecStats = !1, e.isCancel = !0
}).
catch (function() {})
},
beforeClose: function(e) {
this.importExecStats && "second" == this.activeName ? this.$message.error("导入中无法关闭窗口") : e()
},
refreshOrCloseTips: function() {
var e = this;
window.onbeforeunload = function(t) {
return e.sure({
page: -1,
temp_file: e.resTemp.temp_file,
error_file: e.resTemp.error_file
}), t
}
}
}
},
h = (i("edG1"), i("KHd+")),
p = Object(h.a)(m, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("el-dialog", {
attrs: {
visible: e.showDialog,
title: "导入" + e.crmTypeName,
"append-to-body": !0,
"close-on-click-modal": !1,
"before-close": e.beforeClose,
"close-on-press-escape": !1,
width: "550px"
},
on: {
"update:visible": function(t) {
e.showDialog = t
},
close: e.closeView
}
}, [i("div", {
staticClass: "dialog-body"
}, [i("el-tabs", {
attrs: {
stretch: !0
},
on: {
"tab-click": e.tabClick
},
model: {
value: e.activeName,
callback: function(t) {
e.activeName = t
},
expression: "activeName"
}
}, [i("el-tab-pane", {
attrs: {
disabled: e.importExecStats,
label: "① 上传文件",
name: "first"
}
}, [i("div", {
staticClass: "sections"
}, [i("div", [e._v("一、请按照数据模板的格式准备要导入的数据。"), i("span", {
staticClass: "download",
on: {
click: e.download
}
}, [e._v("点击下载")]), e._v("《" + e._s(e.crmTypeName) + "导入模板》")]), e._v(" "), i("div", {
staticClass: "content content-tips"
}, [i("div", [e._v("注意事项:")]), e._v(" "), i("div", [e._v("1、模板中的表头名称不能更改,表头行不能删除")]), e._v(" "), i("div", [e._v("2、其中标*为必填项,必须填写")]), e._v(" "), i("div", [e._v("3、导入文件请勿超过20MB")])])]), e._v(" "), i("div", {
staticClass: "sections"
}, [i("flexbox", {
attrs: {
align: "initial"
}
}, [i("div", [e._v("二、")]), e._v(" "), i("div", [e._v("请选择数据重复时的处理方式(查重规则:【" + e._s(e.fieldUniqueInfo) + "】)")])]), e._v(" "), i("div", {
staticClass: "content"
}, [i("el-select", {
attrs: {
placeholder: "请选择"
},
model: {
value: e.config,
callback: function(t) {
e.config = t
},
expression: "config"
}
}, e._l([{
name: "覆盖系统原有数据",
value: 1
}, {
name: "跳过",
value: 0
}], function(e, t) {
return i("el-option", {
key: t,
attrs: {
label: e.name,
value: e.value
}
})
}))], 1)], 1), e._v(" "), i("div", {
staticClass: "sections"
}, [i("div", [e._v("三、请选择需要导入的文件")]), e._v(" "), i("div", {
staticClass: "content"
}, [i("flexbox", {
staticClass: "file-select"
}, [i("el-input", {
attrs: {
disabled: !0
},
model: {
value: e.file.name,
callback: function(t) {
e.$set(e.file, "name", t)
},
expression: "file.name"
}
}), e._v(" "), i("el-button", {
attrs: {
type: "primary"
},
on: {
click: e.selectFile
}
}, [e._v("选择文件")])], 1)], 1)]), e._v(" "), "user" != e.crmType ? i("div", {
staticClass: "sections"
}, [i("div", [e._v("四、请选择负责人(" + e._s("customer" == e.crmType ? "如不选择,导入的客户将进入公海" : "必选") + ")")]), e._v(" "), i("div", {
staticClass: "content"
}, [i("div", {
staticClass: "user-cell"
}, [i("xh-user-cell", {
attrs: {
value: e.user
},
on: {
"value-change": e.userSelect
}
})], 1)])]) : e._e(), e._v(" "), i("input", {
attrs: {
id: "importInputFile",
type: "file",
accept: ".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
},
on: {
change: e.uploadFile
}
})]), e._v(" "), i("el-tab-pane", {
attrs: {
disabled: !e.importExecStats,
label: "② 导入数据",
name: "second"
}
}, [i("div", {
staticClass: "importProgress"
}, [e.errorInfo ? i("p", {
staticClass: "error"
}, [e._v("\n " + e._s(e.errorInfo) + "\n ")]) : i("div", [e.isCancel ? i("p", {
staticClass: "cancel"
}, [i("i", {
staticClass: "el-icon-warning"
}), e._v("\n 已取消\n ")]) : e.importExecStats ? i("p", [i("i", {
staticClass: "el-icon-loading"
}), e._v("\n 导入中...\n ")]) : i("p", {
staticClass: "success"
}, [i("i", {
staticClass: "el-icon-success"
}), e._v("\n 已完成\n ")]), e._v(" "), e.importResponseShow ? i("p", [e._v("\n 共 " + e._s(e.total) + " 条数据,\n 已导入 "), i("span", {
staticClass: "primary"
}, [e._v(e._s(e.done))]), e._v(" 条,\n 成功 "), i("span", {
staticClass: "success"
}, [e._v(e._s(e.done - e.error))]), e._v(" 条,\n "), e.config ? i("span", [e._v("覆盖 "), i("span", [e._v(e._s(e.cover))]), e._v(" 条,")]) : e._e(), e._v("\n 失败"), 0 == e.config ? i("span", [e._v("/跳过")]) : e._e(), e._v(" "), i("span", {
staticClass: "error"
}, [e._v(e._s(e.error))]), e._v(" 条\n ")]) : e._e(), e._v(" "), e.errorFilePath ? i("p", [i("el-link", {
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.downloadErrorFile(t)
}
}
}, [i("i", {
staticClass: "el-icon-download"
}), e._v("\n 点击下载错误数据\n ")])], 1) : e._e()])])])], 1)], 1), e._v(" "), i("span", {
staticClass: "dialog-footer",
attrs: {
slot: "footer"
},
slot: "footer"
}, ["first" === e.activeName ? i("el-button", {
on: {
click: e.closeView
}
}, [e._v("取 消")]) : e._e(), e._v(" "), "first" === e.activeName ? i("el-button", {
attrs: {
type: "primary"
},
on: {
click: function(t) {
e.sure({}, !0)
}
}
}, [e._v("确 定")]) : e._e(), e._v(" "), e.importExecStats ? i("el-button", {
on: {
click: e.cancelImport
}
}, [e._v("取消导入")]) : e._e()], 1)])
}, [], !1, null, "621d2423", null);
p.options.__file = "CRMImport.vue";
t.a = p.exports
},
a1tB: function(e, t, i) {
"use strict";
var a = i("qYtx");
i.n(a).a
},
"aQg/": function(e, t, i) {
"use strict";
var a = i("FyfS"),
s = i.n(a),
n = i("d0bK"),
l = i("Op00"),
o = i("KzkL"),
c = i("7Qib"),
r = {
name: "TaskLog",
components: {
TaskCell: l.a,
Particulars: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-3458")]).then(i.bind(null, "+Gvz"))
}
},
mixins: [n.a],
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
loading: !1,
loadMoreLoading: !0,
isPost: !1,
page: 1,
list: []
}
},
computed: {},
watch: {
id: function(e) {
this.refreshList()
}
},
mounted: function() {
var e = this,
t = document.getElementById("follow-log-content");
t.onscroll = function() {
var i = t.scrollTop + t.clientHeight - t.scrollHeight;
Math.abs(i) < 10 && 1 == e.loadMoreLoading && (e.isPost ? e.loadMoreLoading = !1 : (e.isPost = !0, e.page++, e.getList()))
}, this.getList()
},
activated: function() {},
deactivated: function() {},
methods: {
getList: function() {
var e = this;
this.loading = !0, Object(o.k)({
page: this.page,
limit: 10,
types: "crm_" + this.crmType,
types_id: this.id,
by: "task"
}).then(function(t) {
var i = !0,
a = !1,
n = void 0;
try {
for (var l, o = s()(t.data.list); !(i = (l = o.next()).done); i = !0) {
var c = l.value;
5 == c.dataInfo.status && (c.dataInfo.checked = !0)
}
} catch (e) {
a = !0, n = e
} finally {
try {
!i && o.
return &&o.
return ()
} finally {
if (a) throw n
}
}
e.list = e.list.concat(t.data.list), t.data.list.length < 10 ? e.loadMoreLoading = !1 : e.loadMoreLoading = !0, e.loading = !1, e.isPost = !1
}).
catch (function() {
e.isPost = !1, e.loading = !1
})
},
refreshList: function() {
this.page = 1, this.list = [], this.getList()
},
taskCellHandle: function(e) {
var t = this;
"view" == e.type && this.showDetailView(e.data.item, e.data.index, function() {
t.$nextTick(function() {
document.body.appendChild(t.$refs.taskShade), t.$refs.taskShade.style.zIndex = Object(c.g)(), t.$refs.taskShade.addEventListener("click", t.handleDocumentClick, !1)
})
})
},
handleDocumentClick: function(e) {
e.stopPropagation(), this.$refs.taskShade == e.target && (this.taskDetailShow = !1)
}
}
},
d = (i("hSY+"), i("KHd+")),
u = Object(d.a)(r, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}]
}, [i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: 0 === e.list.length,
expression: "list.length === 0"
}]
}, [i("div", {
staticClass: "log-items"
}, [e._l(e.list, function(t, a) {
return i("task-cell", {
key: a,
attrs: {
data: t.dataInfo,
"data-index": a
},
on: {
"on-handle": e.taskCellHandle
}
})
}), e._v(" "), i("div", {
staticClass: "load"
}, [i("el-button", {
attrs: {
loading: e.loadMoreLoading,
type: "text"
}
}, [e._v(e._s(e.loadMoreLoading ? "加载更多" : "没有更多了"))])], 1)], 2)]), e._v(" "), e.taskDetailShow ? i("div", {
ref: "taskShade",
staticClass: "full-container"
}, [i("particulars", {
staticClass: "d-view",
attrs: {
id: e.taskID,
"detail-index": e.detailIndex
},
on: {
"on-handle": e.detailHandle,
close: e.closeBtn
}
})], 1) : e._e()])
}, [], !1, null, "2aafd5d8", null);
u.options.__file = "TaskLog.vue";
t.a = u.exports
},
bmHb: function(e, t, i) {
"use strict";
var a = i("3hkp");
i.n(a).a
},
bwvB: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdFOTRBNUY2RjEzRTExRThCMzE4RjAyMzQwQTc5RjQ3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdFOTRBNUY3RjEzRTExRThCMzE4RjAyMzQwQTc5RjQ3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0U5NEE1RjRGMTNFMTFFOEIzMThGMDIzNDBBNzlGNDciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0U5NEE1RjVGMTNFMTFFOEIzMThGMDIzNDBBNzlGNDciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4t60rSAAAAkUlEQVR42mL8//8/AzUBEwOVAQuMsXr1arINCQ0NJdmFOtT0ch0QXwbiepK8jAOADIH5B0Y3kuvCGqghjlC+I5RfQ66BD6CGvIbyX0P5D8j18hIsYq9xiNMuHQ49A0nN2P/JdSHjoPHycyC2IVKvNRC/IJQOU0AFDxBLEGHgUyBOJmTgNiCWpMTLjIO+xAYIMABJgBzD8GiSjgAAAABJRU5ErkJggg=="
},
cHM3: function(e, t, i) {},
cYid: function(e, t, i) {
"use strict";
var a = i("mX3o"),
s = i("EgJF"),
n = i("6zBA"),
l = i("7Qib"),
o = {
name: "RelativeContract",
components: {
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-f93a")]).then(i.bind(null, "uMjE"))
},
CRMCreateView: s.
default
},
mixins: [a.a],
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
},
detail: {
type: Object,
default:
function() {
return {}
}
}
},
data: function() {
return {
nopermission: !1,
list: [],
fieldList: [],
tableHeight: "400px",
showFullDetail: !1,
isCreate: !1,
contractId: "",
createActionInfo: {
type: "relative",
crmType: this.crmType,
data: {}
}
}
},
computed: {},
watch: {
id: function(e) {
this.list = [], this.getDetail()
}
},
mounted: function() {
this.getDetail()
},
activated: function() {},
deactivated: function() {},
methods: {
getFieldList: function() {
this.fieldList.push({
prop: "num",
width: "200",
label: "合同编号"
}), this.fieldList.push({
prop: "name",
width: "200",
label: "合同名称"
}), this.fieldList.push({
prop: "customer_id",
width: "200",
label: "客户名称"
}), this.fieldList.push({
prop: "money",
width: "200",
label: "合同金额"
}), this.fieldList.push({
prop: "start_time",
width: "200",
label: "开始日期"
}), this.fieldList.push({
prop: "end_time",
width: "200",
label: "结束日期"
}), this.fieldList.push({
prop: "check_status",
width: "200",
label: "状态"
})
},
getDetail: function() {
var e = this;
this.loading = !0;
var t = {
pageType: "all"
};
t[this.crmType + "_id"] = this.id, Object(n.e)(t).then(function(t) {
0 == e.fieldList.length && e.getFieldList(), e.nopermission = !1, e.loading = !1, e.list = t.data.list
}).
catch (function(t) {
102 == t.code && (e.nopermission = !0), e.loading = !1
})
},
fieldFormatter: function(e, t, i) {
return "customer_id" === t.property ? e.customer_id_info.name : "check_status" === t.property ? this.getStatusName(e.check_status) : ["money"].includes(t.property) ? Object(l.h)(i) : e[t.property]
},
getStatusName: function(e) {
return e > 5 ? "" : ["待审核", "审核中", "审核通过", "已拒绝", "已撤回", "未提交"][e]
},
handleRowClick: function(e, t, i) {
this.contractId = e.contract_id, this.showFullDetail = !0
},
headerRowStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
cellStyle: function(e) {
e.row, e.column, e.rowIndex, e.columnIndex;
return {
textAlign: "center"
}
},
createClick: function() {
"business" == this.crmType ? (this.createActionInfo.data.customer = this.detail.customer_id_info, this.createActionInfo.data.business = this.detail) : "customer" == this.crmType && (this.createActionInfo.data.customer = this.detail), this.isCreate = !0
},
createSaveSuccess: function() {
this.getDetail()
}
}
},
c = (i("9Aba"), i("KHd+")),
r = Object(c.a)(o, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: e.nopermission,
expression: "nopermission"
}],
staticClass: "rc-cont",
attrs: {
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
}
}, [e.isSeas ? e._e() : i("flexbox", {
staticClass: "rc-head",
attrs: {
direction: "row-reverse"
}
}, [i("el-button", {
staticClass: "rc-head-item",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.createClick(t)
}
}
}, [e._v("新建合同\n ")])], 1), e._v(" "), i("el-table", {
staticStyle: {
width: "100%",
border: "1px solid #E6E6E6"
},
attrs: {
data: e.list,
height: e.tableHeight,
"header-cell-style": e.headerRowStyle,
"cell-style": e.cellStyle,
stripe: ""
},
on: {
"row-click": e.handleRowClick
}
}, e._l(e.fieldList, function(t, a) {
return i("el-table-column", {
key: a,
attrs: {
prop: t.prop,
formatter: e.fieldFormatter,
label: t.label,
"show-overflow-tooltip": ""
}
})
})), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
id: e.contractId,
"crm-type": "contract"
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
}), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
action: e.createActionInfo,
"crm-type": "contract"
},
on: {
"save-success": e.createSaveSuccess,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "13591d48", null);
r.options.__file = "RelativeContract.vue";
t.a = r.exports
},
cr3f: function(e, t, i) {
"use strict";
var a = i("ejyP");
i.n(a).a
},
d0bK: function(e, t, i) {
"use strict";
t.a = {
components: {},
data: function() {
return {
taskID: "",
detailIndex: -1,
taskDetailShow: !1
}
},
mounted: function() {},
methods: {
closeBtn: function() {
this.taskDetailShow = !1
},
showDetailView: function(e, t, i) {
this.taskID = e.task_id, this.detailIndex = t, this.taskDetailShow = !0, i && i()
},
detailHandle: function(e) {
if (0 == e.index || e.index) if ("title-check" == e.type) this.$set(this.list[e.index], "checked", e.value);
else if ("delete" == e.type) this.list.splice(e.index, 1);
else if ("change-stop-time" == e.type) {
parseInt(e.value) + 86399 > new Date(new Date).getTime() / 1e3 ? this.list[e.index].is_end = !1 : this.list[e.index].is_end = !0, this.list[e.index].stop_time = e.value
} else if ("change-priority" == e.type) this.list[e.index].priority = e.value.id;
else if ("change-name" == e.type) this.list[e.index].task_name = e.value;
else if ("change-comments" == e.type) {
var t = this.list[e.index].commentcount;
"add" == e.value ? this.list[e.index].commentcount = t + 1 : this.list[e.index].commentcount = t - 1
} else "change-sub-task" == e.type && (this.list[e.index].subdonecount = e.value.subdonecount, this.list[e.index].subcount = e.value.allcount - e.value.subdonecount)
}
},
deactivated: function() {}
}
},
e8nH: function(e, t, i) {
"use strict";
var a = i("KgBu");
i.n(a).a
},
eDCH: function(e, t, i) {
"use strict";
var a = i("QUdC");
i.n(a).a
},
edG1: function(e, t, i) {
"use strict";
var a = i("uXkD");
i.n(a).a
},
ejyP: function(e, t, i) {},
fmM0: function(e, t, i) {},
"g+V+": function(e, t, i) {
"use strict";
var a = i("YZ/h");
i.n(a).a
},
g1FD: function(e, t, i) {},
gYEL: function(e, t, i) {},
gd5k: function(e, t, i) {
"use strict";
var a = i("Fpl1"),
s = i("+zsY"),
n = i("KzkL"),
l = i("ExMk"),
o = {
name: "ExamineLog",
components: {
ExamineCell: a.a,
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-f93a")]).then(i.bind(null, "uMjE"))
},
ExamineHandle: function() {
return i.e("chunk-2cf3").then(i.bind(null, "QhmF"))
},
ExamineCreateView: s.a
},
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
loading: !1,
loadMoreLoading: !0,
isPost: !1,
page: 1,
list: [],
rowID: "",
showExamineHandle: !1,
isCreate: !1,
createAction: {
type: "save"
},
createInfo: {},
showFullDetail: !1,
detailCRMType: ""
}
},
computed: {},
watch: {
id: function(e) {
this.refreshList()
}
},
mounted: function() {
var e = this,
t = document.getElementById("follow-log-content");
t.onscroll = function() {
var i = t.scrollTop + t.clientHeight - t.scrollHeight;
Math.abs(i) < 10 && 1 == e.loadMoreLoading && (e.isPost ? e.loadMoreLoading = !1 : (e.isPost = !0, e.page++, e.getList()))
}, this.getList()
},
activated: function() {},
deactivated: function() {},
methods: {
getList: function() {
var e = this;
this.loading = !0, Object(n.k)({
page: this.page,
limit: 10,
types: "crm_" + this.crmType,
types_id: this.id,
by: "examine"
}).then(function(t) {
e.list = e.list.concat(t.data.list), t.data.list.length < 10 ? e.loadMoreLoading = !1 : e.loadMoreLoading = !0, e.loading = !1, e.isPost = !1
}).
catch (function() {
e.isPost = !1, e.loading = !1
})
},
refreshList: function() {
this.page = 1, this.list = [], this.getList()
},
examineCellHandle: function(e) {
var t = this;
"edit" == e.type ? (e.data.item.title = e.data.item.category_name, this.createInfo = e.data.item, this.createAction = {
type: "update",
id: e.data.item.examine_id,
data: e.data.item
}, this.isCreate = !0) : "delete" == e.type ? this.$confirm("确定删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(l.c)({
id: e.data.item.examine_id
}).then(function(e) {
t.refreshList(), t.$message({
type: "success",
message: "删除成功!"
})
})
}).
catch (function() {
t.$message({
type: "info",
message: "已取消删除"
})
}) : "withdraw" == e.type ? (this.rowID = e.data.item.examine_id, this.showExamineHandle = !0) : "view" == e.type ? (this.detailCRMType = "examine", this.rowID = e.data.item.examine_id, this.showFullDetail = !0) : "related-detail" == e.type && (this.rowID = e.data.item[e.data.type + "_id"], this.detailCRMType = e.data.type, this.showFullDetail = !0)
}
}
},
c = (i("hSjU"), i("KHd+")),
r = Object(c.a)(o, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}]
}, [i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: 0 === e.list.length,
expression: "list.length === 0"
}]
}, [i("div", {
staticClass: "log-items"
}, [e._l(e.list, function(t, a) {
return i("examine-cell", {
key: a,
attrs: {
data: t.dataInfo
},
on: {
"on-handle": e.examineCellHandle
}
})
}), e._v(" "), i("div", {
staticClass: "load"
}, [i("el-button", {
attrs: {
loading: e.loadMoreLoading,
type: "text"
}
}, [e._v(e._s(e.loadMoreLoading ? "加载更多" : "没有更多了"))])], 1)], 2)]), e._v(" "), i("examine-handle", {
attrs: {
show: e.showExamineHandle,
id: e.rowID,
"examine-type": "oa_examine",
status: "2"
},
on: {
close: function(t) {
e.showExamineHandle = !1
},
save: e.refreshList
}
}), e._v(" "), e.isCreate ? i("examine-create-view", {
attrs: {
category_id: e.createInfo.category_id,
category_title: e.createInfo.title,
action: e.createAction
},
on: {
"save-success": e.refreshList,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e(), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
"crm-type": e.detailCRMType,
id: e.rowID
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
})], 1)
}, [], !1, null, "1cf8abec", null);
r.options.__file = "ExamineLog.vue";
t.a = r.exports
},
"hSY+": function(e, t, i) {
"use strict";
var a = i("htha");
i.n(a).a
},
hSjU: function(e, t, i) {
"use strict";
var a = i("gYEL");
i.n(a).a
},
heOb: function(e, t, i) {},
htha: function(e, t, i) {},
hwcE: function(e, t, i) {},
i68b: function(e, t, i) {
"use strict";
var a = i("QbLZ"),
s = i.n(a),
n = i("KzkL"),
l = i("L2JU");
t.a = {
data: function() {
return {
followTypes: [],
followType: ""
}
},
computed: s()({}, Object(l.b)(["oa"]), {
showOAPermission: function() {
return this.oa
}
}),
created: function() {
this.getFollowLogType()
},
methods: {
getFollowLogType: function() {
var e = this;
this.loading = !0, Object(n.s)().then(function(t) {
e.loading = !1, e.followTypes = t.data.map(function(e) {
return {
type: e,
name: e
}
}), e.followType = t.data.length > 0 ? t.data[0] : ""
}).
catch (function() {
e.loading = !1
})
}
},
deactivated: function() {}
}
},
i91G: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU2RjI0NjM0RTA5QjExRTg4QTE5QjM2OEE1QUE5MUZBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU2RjI0NjM1RTA5QjExRTg4QTE5QjM2OEE1QUE5MUZBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTZGMjQ2MzJFMDlCMTFFODhBMTlCMzY4QTVBQTkxRkEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTZGMjQ2MzNFMDlCMTFFODhBMTlCMzY4QTVBQTkxRkEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4H2LzoAAAAnklEQVR42mI8c+YMA7WAsbExAxMDlQGygSuA+B8Q/8eD/0HV4QQsSOwwNAtwAZChEcS4kJFIXzES62WqhyFdDESOqH1ocjuwRRQLAQPxRZQHEvsvLKKYKIkAbD5FNvA/kZr/ExuGq5HC6wiauo1I4bWa2IQdDsXYgP+gTTZUN5DYiPpHbDqERRQjAUtXE2sgvojCnnD///8/uCMFIMAAVWsql9WKpTgAAAAASUVORK5CYII="
},
iTJ8: function(e, t, i) {
"use strict";
var a = i("K95r");
i.n(a).a
},
ixqQ: function(e, t, i) {
"use strict";
var a = i("hwcE");
i.n(a).a
},
jJjR: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlFRDNFMUVGRjEzRTExRThBNjFERkQ5M0I1RDI1OUYzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlFRDNFMUYwRjEzRTExRThBNjFERkQ5M0I1RDI1OUYzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUVEM0UxRURGMTNFMTFFOEE2MURGRDkzQjVEMjU5RjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUVEM0UxRUVGMTNFMTFFOEE2MURGRDkzQjVEMjU5RjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7Zm7p3AAABUklEQVR42qyUwUoCURSGnaGNtFSqdS8ggQS2sPAJ3AzlIhDzAVr4FJIgroMEFyqzKaFlQS0KxIWtxZZCoTvTndN/4x8QOQdnaC58c2fu/c/PnHvPvZbnebEo2455uK77byPHcf56W5k34wXQA9/AY9/juBYnThyCPqiBIQ2O2A853qdOTnnD7B08gjMw35h/AlXQoC4DPrU/NO9d8ABKgpnf5py/p97WDC/AAbgWTKRSMLp9xomGl+AOLAJu7BI0GScapsFLyGp5BSltU5IsDS3N9W+L/RdIaIZTsCcE+WaW8IdmDWdaygNwGjLlLPjQDFugCOIBzeLUtzTDDtekLgRL6dap72hruGJNvfG9An4Eo11wA/LghFr16I0pMidgBG7BMzfMVEEOlMGEuvG2s+ybHoNzXghXNJtx4ypMcxXkclhPv01CNSvqG9uORdx+BRgAmcBOEZLrcDgAAAAASUVORK5CYII="
},
k9gw: function(e, t, i) {
"use strict";
var a = i("heOb");
i.n(a).a
},
kegP: function(e, t, i) {
"use strict";
var a = i("GQeE"),
s = i.n(a),
n = i("QbLZ"),
l = i.n(n),
o = i("L2JU"),
c = i("4peS"),
r = i.n(c),
d = i("EgJF"),
u = i("ZuO2"),
m = i("vG5h"),
h = i("5tgW"),
p = i("qbf4"),
f = i("YrMO"),
v = i("UcQx"),
g = i("6zBA"),
b = {
name: "CRMExport",
components: {},
props: {
show: {
type: Boolean,
default:
!1
},
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
},
search: {
type: String,
default:
""
},
scene_id: {
type: [Number, String],
default:
""
},
filterObj: {
type: Object,
default:
function() {
return {}
}
},
exportParams: {
type: Object,
default:
function() {
return {}
}
}
},
data: function() {
return {
showDialog: !1,
progress: "",
error: "",
done: !1,
cancel: !1,
exportQueueIndex: "",
tempData: {
temp_file: ""
},
sortData: {}
}
},
computed: l()({}, Object(o.b)(["userInfo"]), {
crmTypeName: function() {
return {
customer: "客户",
leads: "线索",
contacts: "联系人",
product: "产品"
}[this.crmType] || ""
}
}),
watch: {
show: function(e) {
var t = this;
this.showDialog = e, e ? (this.cancel = !1, this.exportInfos(), window.onbeforeunload = function(e) {
return t.exportInfos({
page: -1,
temp_file: t.tempData.temp_file
}), e
}) : window.onbeforeunload = null
}
},
mounted: function() {
var e = this;
this.$bus.off("getSortData"), this.$bus.on("getSortData", function(t) {
e.sortData = t
})
},
methods: {
closeView: function() {
this.error = "", this.done = !1, this.exportQueueIndex = "", this.progress = "", this.$emit("close")
},
beforeClose: function(e) {
var t = this;
this.error || this.done ? e() : this.$confirm("此操作将终止导出, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
t.cancel = !0, e()
}).
catch (function() {})
},
exportInfos: function() {
var e = this,
t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
i = l()({
export_queue_index: this.exportQueueIndex,
search: this.search
}, this.exportParams, this.sortData, t);
for (var a in this.scene_id && (i.scene_id = this.scene_id), this.filterObj) i[a] = this.filterObj[a];
(this.isSeas ? m.j : {
customer: m.e,
leads: h.c,
contacts: p.c,
product: f.c,
business: v.c,
contract: g.d
}[this.crmType])(i).then(function(t) {
if (-1 !== t.data.type.indexOf("json")) {
var i = new Blob([t.data], {
type: "application/json"
}),
a = new FileReader;
a.readAsText(i, "utf-8"), a.onload = function() {
var t = JSON.parse(a.result);
e.tempData = t.data, t.error ? e.error = t.error : (e.exportQueueIndex = t.data.export_queue_index, e.cancel ? -1 !== t.data.page && e.exportInfos({
page: -1,
temp_file: t.data.temp_file
}) : -2 === t.data.page ? setTimeout(function() {
e.exportInfos({
page: 1,
temp_file: t.data.temp_file
})
}, 1e3) : t.data.page > 0 && (e.exportInfos({
page: t.data.page,
temp_file: t.data.temp_file
}), e.progress = String(t.data.done) + " / " + String(t.data.total)))
}
} else {
e.exportQueueIndex = "", e.done = !0;
i = new Blob([t.data], {
type: "application/vnd.ms-excel;charset=utf-8"
});
var s = document.createElement("a"),
n = window.URL.createObjectURL(i);
s.href = n, s.download = decodeURI(t.headers["content-disposition"].split("filename=")[1]) || "", document.body.appendChild(s), s.click(), document.body.removeChild(s), window.URL.revokeObjectURL(n)
}
}).
catch (function() {})
}
}
},
_ = (i("/5jD"), i("KHd+")),
y = Object(_.a)(b, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("el-dialog", {
attrs: {
visible: e.showDialog,
title: "导出" + e.crmTypeName,
"append-to-body": !0,
"close-on-click-modal": !1,
"before-close": e.beforeClose,
"close-on-press-escape": !1,
width: "550px"
},
on: {
"update:visible": function(t) {
e.showDialog = t
},
close: e.closeView
}
}, [i("div", {
staticClass: "dialog-body"
}, [e.error ? i("p", {
staticClass: "error",
domProps: {
textContent: e._s(e.error)
}
}) : e._e(), e._v(" "), e.done ? i("p", {
staticClass: "done"
}, [i("i", {
staticClass: "el-icon-success"
}), e._v("\n 导出已完成\n ")]) : e.cancel ? i("p", {
staticClass: "cancel"
}, [i("i", {
staticClass: "el-icon-warning"
}), e._v("\n 导出已取消\n ")]) : i("div", [i("i", {
staticClass: "el-icon-loading"
}), e._v("\n 导出中...\n " + e._s(e.progress) + "\n ")])]), e._v(" "), i("span", {
staticClass: "dialog-footer",
attrs: {
slot: "footer"
},
slot: "footer"
})])
}, [], !1, null, "52b97842", null);
y.options.__file = "CRMExport.vue";
var w = y.exports,
C = {
name: "CRMListHead",
components: {
CRMCreateView: d.
default,
CRMImport:
u.a,
CRMExport: w
},
props: {
title: {
type: String,
default:
""
},
placeholder: {
type: String,
default:
"请输入内容"
},
mainTitle: {
type: String,
default:
""
},
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
},
search: {
type: String,
default:
""
},
scene_id: {
type: [Number, String],
default:
""
},
filterObj: {
type: Object,
default:
function() {
return {}
}
}
},
data: function() {
return {
inputContent: "",
moreTypes: [],
createActionInfo: {
type: "save"
},
createCRMType: "",
isCreate: !1,
showCRMImport: !1,
showCRMExport: !1,
exportParams: {}
}
},
computed: l()({}, Object(o.b)(["crm"]), {
canSave: function() {
return !this.isSeas && this.crm[this.crmType].save
}
}),
mounted: function() {
this.isSeas ? this.crm[this.crmType].poolexcelexport && this.moreTypes.push({
type: "out",
name: "导出"
}) : (this.crm[this.crmType].excelimport && this.moreTypes.push({
type: "enter",
name: "导入"
}), this.crm[this.crmType].excelexport && this.moreTypes.push({
type: "out",
name: "导出"
}))
},
methods: {
handleTypeDrop: function(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
if ("out" == e) {
var i = {};
t.__export ? delete(i = t).__export : i = {}, this.exportParams = i, this.showCRMExport = !0
} else "enter" == e && (this.showCRMImport = !0)
},
createClick: function() {
this.createCRMType = this.crmType, this.createActionInfo = {
type: "save"
}, this.isCreate = !this.isCreate
},
searchInput: function() {
this.$emit("on-search", this.inputContent)
},
createSaveSuccess: function(e) {
e && e.saveAndCreate ? "customer" == e.type && (this.createCRMType = "contacts", this.createActionInfo = {
type: "relative",
crmType: "customer",
data: {}
}, this.createActionInfo.data.customer = e.data, this.isCreate = !0) : this.$emit("on-handle", {
type: "save-success"
})
},
hideView: function() {
this.isCreate = !1
},
listRefresh: function() {
this.$emit("listRefresh")
}
}
},
k = (i("k9gw"), Object(_.a)(C, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "c-container"
}, [i("div", {
staticClass: "title"
}, [e._v(e._s(e.title))]), e._v(" "), i("el-input", {
staticClass: "sc-container",
attrs: {
placeholder: e.placeholder
},
nativeOn: {
keyup: function(t) {
return "button" in t || !e._k(t.keyCode, "enter", 13, t.key, "Enter") ? e.searchInput(t) : null
}
},
model: {
value: e.inputContent,
callback: function(t) {
e.inputContent = t
},
expression: "inputContent"
}
}, [i("el-button", {
attrs: {
slot: "append",
icon: "el-icon-search"
},
nativeOn: {
click: function(t) {
return e.searchInput(t)
}
},
slot: "append"
})], 1), e._v(" "), i("div", {
staticClass: "right-container"
}, [e.canSave ? i("el-button", {
attrs: {
type: "primary"
},
on: {
click: e.createClick
}
}, [e._v(e._s(e.mainTitle))]) : e._e(), e._v(" "), e.moreTypes.length > 0 ? i("el-dropdown", {
attrs: {
trigger: "click"
},
on: {
command: e.handleTypeDrop
}
}, [i("flexbox", {
staticClass: "right-more-item"
}, [i("div", [e._v("更多")]), e._v(" "), i("i", {
staticClass: "el-icon-arrow-down el-icon--right",
staticStyle: {
color: "#777"
}
})]), e._v(" "), i("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, e._l(e.moreTypes, function(t, a) {
return i("el-dropdown-item", {
key: a,
attrs: {
command: t.type
}
}, [e._v(e._s(t.name))])
}))], 1) : e._e()], 1), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
"crm-type": e.createCRMType,
action: e.createActionInfo
},
on: {
"save-success": e.createSaveSuccess,
"hiden-view": e.hideView
}
}) : e._e(), e._v(" "), i("c-r-m-import", {
attrs: {
show: e.showCRMImport,
"crm-type": e.crmType
},
on: {
listRefresh: e.listRefresh,
close: function(t) {
e.showCRMImport = !1
}
}
}), e._v(" "), i("c-r-m-export", {
attrs: {
show: e.showCRMExport,
"crm-type": e.crmType,
search: e.search,
scene_id: e.scene_id,
"filter-obj": e.filterObj,
"is-seas": e.isSeas,
"export-params": e.exportParams
},
on: {
close: function(t) {
e.showCRMExport = !1
}
}
})], 1)
}, [], !1, null, "31418cb8", null));
k.options.__file = "CRMListHead.vue";
var I = k.exports,
x = i("KzkL"),
A = i("ooHJ"),
D = i("oWS4"),
R = i("NS7n"),
T = {
name: "SceneList",
components: {},
props: {
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
sceneSelectId: -1,
sceneList: []
}
},
computed: l()({}, Object(o.b)(["crm"])),
mounted: function() {
this.crm[this.crmType].index && this.getSceneList()
},
methods: {
getSceneList: function() {
var e = this;
Object(x.o)({
types: "crm_" + this.crmType
}).then(function(t) {
var i = t.data.list.filter(function(e, t) {
return 1 === e.is_default
});
if (i && i.length > 0) {
var a = i[0];
e.sceneSelectId = a.scene_id, e.$emit("scene", {
id: a.scene_id,
name: a.name,
bydata: a.bydata || ""
})
} else e.sceneSelectId = "", e.$emit("scene", {
id: "",
name: "",
bydata: ""
});
e.sceneList = t.data.list
}).
catch (function() {
e.$emit("scene", {
id: "",
name: "",
bydata: ""
})
})
},
selectScene: function(e, t) {
this.sceneSelectId = e.scene_id, this.$emit("scene", {
id: e.scene_id,
name: e.name,
bydata: e.bydata
}), this.$emit("hidden-scene")
},
addScene: function() {
this.$emit("scene-handle", {
type: "add"
})
},
setScene: function() {
this.$emit("scene-handle", {
type: "set"
})
}
}
},
E = (i("g+V+"), Object(_.a)(T, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
staticClass: "scene-container"
}, [a("div", {
staticClass: "scene-list"
}, e._l(e.sceneList, function(t, i) {
return a("div", {
key: i,
staticClass: "scene-list-item",
class: {
"scene-list-item-select": t.scene_id == e.sceneSelectId
},
on: {
click: function(a) {
e.selectScene(t, i)
}
}
}, [e._v("\n " + e._s(t.name) + "\n ")])
})), e._v(" "), a("div", [a("flexbox", {
staticClass: "handle-button",
nativeOn: {
click: function(t) {
return e.addScene(t)
}
}
}, [a("img", {
staticClass: "handle-button-icon",
attrs: {
src: i("5hU7")
}
}), e._v(" "), a("div", {
staticClass: "handle-button-name"
}, [e._v("新建场景")])]), e._v(" "), a("flexbox", {
staticClass: "handle-button",
nativeOn: {
click: function(t) {
return e.setScene(t)
}
}
}, [a("img", {
staticClass: "handle-button-icon",
attrs: {
src: i("HfS2")
}
}), e._v(" "), a("div", {
staticClass: "handle-button-name"
}, [e._v("管理")])])], 1)])
}, [], !1, null, "5963f2d2", null));
E.options.__file = "SceneList.vue";
var L = E.exports,
S = i("MQ60"),
N = i.n(S),
M = i("7Qib"),
j = {
name: "SceneCreate",
components: {
XhUserCell: i("8GhS").p
},
props: {
dialogVisible: {
type: Boolean,
required: !0,
default:
!1
},
fieldList: {
type: Array,
required: !0,
default:
function() {
return []
}
},
obj: {
type: Object,
default:
function() {
return {}
},
required: !0
},
crmType: {
type: String,
default:
""
},
name: {
type: String,
default:
""
},
isDefault: {
type: Boolean,
default:
!1
},
edit_id: {
type: String,
default:
""
}
},
data: function() {
return {
form: [],
visible: !1,
showErrors: !1,
saveDefault: !1,
saveName: null
}
},
watch: {
dialogVisible: {
handler: function(e) {
var t = this;
if (e) {
if (this.edit_id) {
this.form = [];
var i = function(e) {
var i = t.obj.obj[e],
a = t.getItem();
if (a.name = i.name, a.field = e, a.condition = i.condition, a.form_type = i.form_type, "date" == i.form_type) a.value = [i.start_date, i.end_date];
else if ("datetime" == i.form_type) a.value = [Object(M.n)(i.start, "YYYY-MM-DD HH:mm:ss"), Object(M.n)(i.end, "YYYY-MM-DD HH:mm:ss")];
else if ("business_type" == i.form_type) {
if (a.type_id = i.type_id, a.status_id = i.status_id, a.typeOption = i.setting, i.type_id) {
var s = i.setting.find(function(e) {
return e.type_id === i.type_id
});
a.statusOption = s ? s.statusList : []
}
} else "user" == i.form_type ? a.value = i.setting ? [i.setting] : [] : (a.setting = i.setting, a.value = i.value);
t.form.push(a)
};
for (var a in this.obj.obj) i(a)
} else this.form = Object(M.i)(this.obj.form), 0 == this.form.length && this.form.push(this.getItem());
this.name ? this.saveName = this.name : this.saveName = "", this.isDefault ? this.saveDefault = this.isDefault : this.saveDefault = !1
}
this.visible = this.dialogVisible
},
deep: !0,
immediate: !0
},
form: function() {
this.$nextTick(function() {
var e = document.getElementById("scene-filter-container");
e.scrollTop = e.scrollHeight
})
}
},
methods: {
getItem: function() {
return {
field: "",
name: "",
form_type: "",
condition: "is",
value: "",
typeOption: [],
statusOption: [],
type_id: "",
status_id: ""
}
},
typeOptionsChange: function(e) {
if (e.type_id) {
var t = e.typeOption.find(function(t) {
return t.type_id === e.type_id
});
e.statusOption = t.statusList || []
} else e.statusOption = [];
e.status_id = ""
},
userValueChange: function(e) {
e.value.length > 0 ? e.item.value = e.value : e.item.value = []
},
calConditionOptions: function(e, t) {
return "select" == e || "checkbox" == e || "user" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}] : "module" == e || "text" == e || "textarea" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}] : "floatnumber" == e || "number" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}, {
value: "is_empty",
label: "为空",
disabled: !1
}, {
value: "is_not_empty",
label: "不为空",
disabled: !1
}, {
value: "gt",
label: "大于",
disabled: !1
}, {
value: "egt",
label: "大于等于",
disabled: !1
}, {
value: "lt",
label: "小于",
disabled: !1
}, {
value: "elt",
label: "小于等于",
disabled: !1
}] : "category" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}] : [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}, {
value: "start_with",
label: "开始于",
disabled: !1
}, {
value: "end_with",
label: "结束于",
disabled: !1
}, {
value: "is_empty",
label: "为空",
disabled: !1
}, {
value: "is_not_empty",
label: "不为空",
disabled: !1
}, {
value: "gt",
label: "大于",
disabled: !1
}, {
value: "egt",
label: "大于等于",
disabled: !1
}, {
value: "lt",
label: "小于",
disabled: !1
}, {
value: "elt",
label: "小于等于",
disabled: !1
}]
},
fieldChange: function(e) {
var t = this.fieldList.find(function(t) {
return t.field === e.field
});
t && (e.form_type = t.form_type, e.name = t.name, "business_type" == e.form_type ? (e.typeOption = t.setting, e.statusOption = [], e.type_id = "", e.status_id = "") : "select" == e.form_type ? e.setting = t.setting || [] : "date" !== e.form_type && "datetime" !== e.form_type && "user" !== e.form_type || (e.value = [])), this.form.filter(function(t) {
return t.field === e.field
}).length > 1 ? this.showErrors = !0 : this.showErrors = !1
},
handleCancel: function() {
this.visible = !1, this.$emit("update:dialogVisible", !1)
},
handleConfirm: function() {
if (this.showErrors) this.$message.error("筛选条件中有重复项!");
else if (this.saveName && "" !== this.saveName) {
for (var e = 0; e < this.form.length; e++) {
var t = this.form[e];
if (!t.field || "" === t.field) return void this.$message.error("要筛选的字段名称不能为空!");
if ("business_type" == t.form_type) {
if (!t.type_id && !t.status_id) return void this.$message.error("请输入筛选条件的值!")
} else if ("date" == t.form_type || "datetime" == t.form_type || "user" == t.form_type) {
if (!t.value || 0 === t.value.length) return void this.$message.error("请输入筛选条件的值!")
} else if (!t.value) return void this.$message.error("请输入筛选条件的值!")
}
var i = {};
this.form.forEach(function(e) {
"date" == e.form_type ? i[e.field] = {
start_date: e.value[0],
end_date: e.value[1],
form_type: e.form_type,
name: e.name
} : "datetime" == e.form_type ? i[e.field] = {
start: Object(M.d)(e.value[0]),
end: Object(M.d)(e.value[1]),
form_type: e.form_type,
name: e.name
} : "business_type" == e.form_type ? i[e.field] = {
type_id: e.type_id,
status_id: e.status_id,
form_type: e.form_type,
name: e.name
} : "user" == e.form_type ? i[e.field] = {
condition: e.condition,
value: e.value[0].id,
form_type: e.form_type,
name: e.name
} : i[e.field] = {
condition: e.condition,
value: e.value,
form_type: e.form_type,
name: e.name
}
});
var a = {
obj: i,
form: this.form,
saveDefault: this.saveDefault,
saveName: this.saveName
};
this.requestCreateScene(a)
} else this.$message.error("场景名称不能为空!")
},
requestCreateScene: function(e) {
var t = this;
this.edit_id ? Object(x.r)({
types: "crm_" + this.crmType,
is_default: e.saveDefault ? 1 : 0,
name: e.saveName,
id: this.edit_id,
data: e.obj
}).then(function(e) {
t.$message({
type: "success",
message: "编辑成功"
}), t.$emit("saveSuccess"), t.handleCancel()
}).
catch (function() {}) : Object(x.p)({
types: "crm_" + this.crmType,
is_default: e.saveDefault ? 1 : 0,
name: e.saveName,
data: e.obj
}).then(function(e) {
t.$message({
type: "success",
message: "创建成功"
}), t.$emit("saveSuccess"), t.handleCancel()
}).
catch (function() {})
},
handleAdd: function() {
this.form.push(this.getItem())
},
handleDelete: function(e) {
var t = this;
this.$confirm("您确定要删除这一条数据吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
t.form.splice(e, 1)
}).
catch (function() {
t.$message({
type: "info",
message: "已取消删除"
})
})
}
}
},
O = (i("iTJ8"), Object(_.a)(j, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("el-dialog", {
attrs: {
title: e.edit_id ? "编辑场景" : "新建场景",
visible: e.visible,
"append-to-body": !0,
width: "800px"
},
on: {
"update:visible": function(t) {
e.visible = t
},
close: e.handleCancel
}
}, [i("div", {
staticClass: "scene-name-container"
}, [i("div", {
staticClass: "scene-name"
}, [e._v("场景名称")]), e._v(" "), i("el-input", {
staticClass: "scene-input",
attrs: {
maxlength: 10,
placeholder: "请输入场景名称,最多10个字符"
},
model: {
value: e.saveName,
callback: function(t) {
e.saveName = "string" == typeof t ? t.trim() : t
},
expression: "saveName"
}
})], 1), e._v(" "), i("div", {
staticClass: "scene-name"
}, [e._v("筛选条件")]), e._v(" "), i("el-form", {
staticClass: "filter-container",
attrs: {
id: "scene-filter-container"
}
}, [i("el-form-item", [e._l(e.form, function(t, a) {
return [i("el-row", {
key: a
}, [i("el-col", {
attrs: {
span: 8
}
}, [i("el-select", {
attrs: {
placeholder: "请选择要筛选的字段名"
},
on: {
change: function(i) {
e.fieldChange(t)
}
},
model: {
value: t.field,
callback: function(i) {
e.$set(t, "field", i)
},
expression: "formItem.field"
}
}, e._l(e.fieldList, function(e) {
return i("el-option", {
key: e.field,
attrs: {
label: e.name,
value: e.field
}
})
}))], 1), e._v(" "), "date" !== t.form_type && "datetime" !== t.form_type && "business_type" !== t.form_type ? i("el-col", {
attrs: {
span: 1
}
}, [e._v(" ")]) : e._e(), e._v(" "), "date" !== t.form_type && "datetime" !== t.form_type && "business_type" !== t.form_type ? i("el-col", {
attrs: {
span: 4
}
}, [i("el-select", {
attrs: {
placeholder: "请选择范围"
},
model: {
value: t.condition,
callback: function(i) {
e.$set(t, "condition", i)
},
expression: "formItem.condition"
}
}, e._l(e.calConditionOptions(t.form_type, t), function(e) {
return i("el-option", {
key: e.value,
attrs: {
label: e.label,
value: e.value
}
})
}))], 1) : e._e(), e._v(" "), "business_type" == t.form_type ? i("el-col", {
attrs: {
span: 1
}
}, [e._v(" ")]) : e._e(), e._v(" "), "business_type" == t.form_type ? i("el-col", {
attrs: {
span: 4
}
}, [i("el-select", {
attrs: {
placeholder: "请选择"
},
on: {
change: function(i) {
e.typeOptionsChange(t)
}
},
model: {
value: t.type_id,
callback: function(i) {
e.$set(t, "type_id", i)
},
expression: "formItem.type_id"
}
}, e._l(t.typeOption, function(e) {
return i("el-option", {
key: e.type_id,
attrs: {
label: e.name,
value: e.type_id
}
})
}))], 1) : e._e(), e._v(" "), i("el-col", {
attrs: {
span: 1
}
}, [e._v(" ")]), e._v(" "), i("el-col", {
attrs: {
span: "datetime" === t.form_type || "date" === t.form_type ? 13 : 8
}
}, ["select" === t.form_type ? i("el-select", {
attrs: {
placeholder: "请选择筛选条件"
},
model: {
value: t.value,
callback: function(i) {
e.$set(t, "value", i)
},
expression: "formItem.value"
}
}, e._l(t.setting, function(e) {
return i("el-option", {
key: e,
attrs: {
label: e,
value: e
}
})
})) : "date" === t.form_type || "datetime" === t.form_type ? i("el-date-picker", {
staticStyle: {
padding: "0px 10px"
},
attrs: {
"value-format": "date" === t.form_type ? "yyyy-MM-dd" : "yyyy-MM-dd HH:mm:ss",
type: "date" === t.form_type ? "daterange" : "datetimerange",
"range-separator": "-",
"start-placeholder": "开始日期",
"end-placeholder": "结束日期"
},
model: {
value: t.value,
callback: function(i) {
e.$set(t, "value", i)
},
expression: "formItem.value"
}
}) : "business_type" === t.form_type ? i("el-select", {
attrs: {
placeholder: "请选择"
},
model: {
value: t.status_id,
callback: function(i) {
e.$set(t, "status_id", i)
},
expression: "formItem.status_id"
}
}, e._l(t.statusOption, function(e) {
return i("el-option", {
key: e.status_id,
attrs: {
label: e.name,
value: e.status_id
}
})
})) : "user" === t.form_type ? i("xh-user-cell", {
attrs: {
item: t,
"info-params": {
m: "crm",
c: e.crmType,
a: "index"
},
value: t.value
},
on: {
"value-change": e.userValueChange
}
}) : i("el-input", {
attrs: {
placeholder: "请输入筛选条件"
},
model: {
value: t.value,
callback: function(i) {
e.$set(t, "value", i)
},
expression: "formItem.value"
}
})], 1), e._v(" "), i("el-col", {
staticClass: "delete",
attrs: {
span: 1
}
}, [i("i", {
staticClass: "el-icon-error delete-btn",
on: {
click: function(t) {
e.handleDelete(a)
}
}
})])], 1)]
})], 2)], 1), e._v(" "), i("p", {
directives: [{
name: "show",
rawName: "v-show",
value: e.showErrors,
expression: "showErrors"
}],
staticClass: "el-icon-warning warning-info"
}, [i("span", {
staticClass: "desc"
}, [e._v("筛选条件中有重复项!")])]), e._v(" "), i("el-button", {
attrs: {
type: "text"
},
on: {
click: e.handleAdd
}
}, [e._v("+ 添加筛选条件")]), e._v(" "), i("div", {
staticClass: "save"
}, [i("div", {
staticClass: "save-setting"
}, [i("el-checkbox", {
model: {
value: e.saveDefault,
callback: function(t) {
e.saveDefault = t
},
expression: "saveDefault"
}
}, [e._v("设置为默认")])], 1)]), e._v(" "), i("div", {
staticClass: "dialog-footer",
attrs: {
slot: "footer"
},
slot: "footer"
}, [i("el-button", {
on: {
click: e.handleCancel
}
}, [e._v("取 消")]), e._v(" "), i("el-button", {
attrs: {
type: "primary"
},
on: {
click: e.handleConfirm
}
}, [e._v("确 定")])], 1)], 1)
}, [], !1, null, "1ae0ab5a", null));
O.options.__file = "SceneCreate.vue";
var F = O.exports,
B = {
name: "SceneSet",
components: {
draggable: N.a,
SceneCreate: F
},
props: {
dialogVisible: {
type: Boolean,
required: !0,
default:
!1
},
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
default_id: "",
visible: !1,
isleftIndeterminate: !1,
checkleftAll: !1,
checkedLeftData: [],
leftCheckItems: [],
isrightIndeterminate: !1,
checkrightAll: !1,
checkedRightData: [],
rightCheckItems: [],
moveItem: {},
handlDefaultItem: {},
showCreateScene: !1,
fieldList: [],
filterObj: {
form: []
},
filterName: "",
filterDefault: !1,
filterEditId: ""
}
},
computed: {},
watch: {
dialogVisible: {
handler: function(e) {
this.visible = e, e && this.getSceneList()
},
deep: !0,
immediate: !0
}
},
mounted: function() {},
methods: {
getSceneList: function() {
var e = this;
Object(x.o)({
types: "crm_" + this.crmType
}).then(function(t) {
e.checkedLeftData = t.data.list.map(function(e, t) {
return e.check = !1, e
}), e.checkedRightData = t.data.hideList.map(function(e, t) {
return e.check = !1, e
});
var i = e.checkedLeftData.filter(function(e, t) {
return 1 == e.is_default
});
i && i.length > 0 ? e.default_id = i[0].scene_id : e.default_id = ""
}).
catch (function() {})
},
handleConfirm: function() {
var e = this,
t = this;
0 == this.checkedLeftData.filter(function(e, i) {
return e.scene_id == t.default_id
}).length && (this.default_id = ""), Object(x.q)({
types: "crm_" + this.crmType,
ids: this.checkedLeftData.map(function(e, t, i) {
return e.scene_id
}),
hide_ids: this.checkedRightData.map(function(e, t, i) {
return e.scene_id
}),
default_id: this.default_id
}).then(function(t) {
e.$message({
type: "success",
message: "操作成功"
}), e.handleCancel(), e.$emit("save-success")
}).
catch (function() {})
},
itemHandle: function(e, t, i) {
var a = this;
"edit" == e ? this.addAndEditScene("edit", t) : "delete" == e ? this.$confirm("您确定要删除这一条数据吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(x.n)({
id: t.scene_id
}).then(function(e) {
a.$message({
type: "success",
message: "删除成功"
}), a.checkedLeftData.splice(i, 1), a.leftCheckItemChange(), a.$emit("save-success")
}).
catch (function() {})
}).
catch (function() {
a.$message({
type: "info",
message: "已取消删除"
})
}) : "default" == e && (this.handlDefaultItem = t)
},
defaultHandle: function() {
var e = this;
Object(x.m)({
id: this.handlDefaultItem.scene_id,
types: "crm_" + this.crmType
}).then(function(t) {
e.$message({
type: "success",
message: t.data
}), e.default_id = e.handlDefaultItem.scene_id
}).
catch (function() {})
},
addAndEditScene: function(e, t) {
var i = this;
Object(x.x)({
types: "crm_" + this.crmType
}).then(function(a) {
i.fieldList = a.data, "edit" == e ? (i.filterObj = {
form: [],
obj: t.data
}, i.filterName = t.name, i.filterDefault = 1 == t.is_default, i.filterEditId = t.scene_id.toString()) : (i.filterObj = {
form: []
}, i.filterEditId = "", i.filterName = "", i.filterDefault = !1), i.showCreateScene = !0
}).
catch (function() {})
},
handleCancel: function() {
this.visible = !1, this.$emit("update:dialogVisible", !1)
},
rightMoveEnd: function(e) {
this.moveItem.check = !1, this.leftCheckItemChange(), this.rightCheckItemChange()
},
rightMove: function(e) {
this.moveItem = e.draggedContext.element
},
leftMoveEnd: function(e) {
this.moveItem.check = !1, this.leftCheckItemChange(), this.rightCheckItemChange()
},
leftMove: function(e) {
this.moveItem = e.draggedContext.element
},
handleleftCheckAllChange: function(e) {
e && (this.isleftIndeterminate = !1), this.checkedLeftData = this.checkedLeftData.filter(function(t, i, a) {
return t.check = e, t
}), this.leftCheckItems = e ? this.checkedLeftData : []
},
leftCheckItemChange: function() {
this.leftCheckItems = this.checkedLeftData.filter(function(e, t, i) {
return 1 == e.check
}), this.leftCheckItems.length > 0 ? this.leftCheckItems.length == this.checkedLeftData.length ? (this.checkleftAll = !0, this.isleftIndeterminate = !1) : (this.checkleftAll = !1, this.isleftIndeterminate = !0) : (this.checkleftAll = !1, this.isleftIndeterminate = !1)
},
handlerightCheckAllChange: function(e) {
e && (this.isrightIndeterminate = !1), this.checkedRightData = this.checkedRightData.filter(function(t, i, a) {
return t.check = e, t
}), this.rightCheckItems = e ? this.checkedRightData : []
},
rightCheckItemChange: function() {
this.rightCheckItems = this.checkedRightData.filter(function(e, t, i) {
return 1 == e.check
}), this.rightCheckItems.length > 0 ? this.rightCheckItems.length == this.checkedRightData.length ? (this.checkrightAll = !0, this.isrightIndeterminate = !1) : (this.checkrightAll = !1, this.isrightIndeterminate = !0) : (this.checkrightAll = !1, this.isrightIndeterminate = !1)
},
changePositon: function(e) {
var t = this;
"left" == e ? (this.checkedRightData = this.checkedRightData.filter(function(e, i, a) {
var s = !1;
return t.rightCheckItems.forEach(function(t, i) {
e.scene_id == t.scene_id && (s = !0)
}), !s
}), this.rightCheckItems.forEach(function(e, i) {
e.check = !1, t.checkedLeftData.push(e)
}), this.rightCheckItems = [], this.isrightIndeterminate = !1, this.checkrightAll = !1, this.leftCheckItemChange(), this.rightCheckItemChange()) : (this.checkedLeftData = this.checkedLeftData.filter(function(e, i, a) {
var s = !1;
return t.leftCheckItems.forEach(function(t, i) {
e.scene_id == t.scene_id && (s = !0)
}), !s
}), this.leftCheckItems.forEach(function(e, i) {
e.check = !1, t.checkedRightData.push(e)
}), this.leftCheckItems = [], this.isleftIndeterminate = !1, this.checkleftAll = !1, this.leftCheckItemChange(), this.rightCheckItemChange())
}
}
},
G = (i("JZUE"), Object(_.a)(B, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("el-dialog", {
attrs: {
visible: e.visible,
"append-to-body": !0,
title: "场景管理",
width: "700px"
},
on: {
"update:visible": function(t) {
e.visible = t
},
close: e.handleCancel
}
}, [i("div", {
staticClass: "scene-name"
}, [e._v("您可通过拖拽管理标签")]), e._v(" "), i("flexbox", {
staticClass: "scene-list"
}, [i("div", {
staticClass: "scene-list-box"
}, [i("flexbox", {
staticClass: "scene-list-head"
}, [i("el-checkbox", {
attrs: {
indeterminate: e.isleftIndeterminate
},
on: {
change: e.handleleftCheckAllChange
},
model: {
value: e.checkleftAll,
callback: function(t) {
e.checkleftAll = t
},
expression: "checkleftAll"
}
}), e._v(" "), i("div", {
staticClass: "scene-list-head-name"
}, [e._v("显示的标签")]), e._v(" "), i("div", {
staticClass: "scene-list-head-detail"
}, [e._v(e._s(e.leftCheckItems.length + "/" + e.checkedLeftData.length))])], 1), e._v(" "), i("div", {
staticClass: "scene-list-body"
}, [e._l(e.checkedLeftData, function(t, a) {
return 1 == t.type ? i("flexbox", {
key: a,
staticClass: "list-item"
}, [i("div", {
staticClass: "default-mark",
class: {
"default-mark-active": t.scene_id == e.default_id
}
}), e._v(" "), i("el-checkbox", {
staticClass: "list-item-check",
attrs: {
disabled: !0
},
on: {
change: e.leftCheckItemChange
},
model: {
value: t.check,
callback: function(i) {
e.$set(t, "check", i)
},
expression: "item.check"
}
}), e._v(" "), i("div", {
staticClass: "list-item-name"
}, [e._v(e._s(t.name))]), e._v(" "), i("div", {
staticClass: "list-item-handle"
}, [i("el-dropdown", {
attrs: {
trigger: "click"
},
on: {
command: e.defaultHandle
}
}, [i("i", {
staticClass: "el-icon-arrow-down",
on: {
click: function(i) {
e.itemHandle("default", t, a)
}
}
}), e._v(" "), i("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, [i("el-dropdown-item", [e._v("设置为默认标签")])], 1)], 1)], 1)], 1) : e._e()
}), e._v(" "), i("draggable", {
staticStyle: {
"min-height": "100px"
},
attrs: {
move: e.leftMove,
options: {
group: "list",
forceFallback: !1,
fallbackClass: "draggingStyle"
}
},
on: {
end: e.leftMoveEnd
},
model: {
value: e.checkedLeftData,
callback: function(t) {
e.checkedLeftData = t
},
expression: "checkedLeftData"
}
}, e._l(e.checkedLeftData, function(t, a) {
return 1 != t.type ? i("flexbox", {
key: a,
staticClass: "list-item"
}, [i("div", {
staticClass: "default-mark",
class: {
"default-mark-active": t.scene_id == e.default_id
}
}), e._v(" "), i("el-checkbox", {
staticClass: "list-item-check",
on: {
change: e.leftCheckItemChange
},
model: {
value: t.check,
callback: function(i) {
e.$set(t, "check", i)
},
expression: "item.check"
}
}), e._v(" "), i("div", {
staticClass: "list-item-name"
}, [e._v(e._s(t.name))]), e._v(" "), i("div", {
staticClass: "list-item-handle"
}, [i("i", {
staticClass: "el-icon-edit",
on: {
click: function(i) {
e.itemHandle("edit", t, a)
}
}
}), e._v(" "), i("i", {
staticClass: "el-icon-delete",
on: {
click: function(i) {
e.itemHandle("delete", t, a)
}
}
}), e._v(" "), i("el-dropdown", {
on: {
command: e.defaultHandle
}
}, [i("i", {
staticClass: "el-icon-arrow-down",
on: {
click: function(i) {
e.itemHandle("default", t, a)
}
}
}), e._v(" "), i("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, [i("el-dropdown-item", [e._v("设置为默认标签")])], 1)], 1)], 1)], 1) : e._e()
}))], 2)], 1), e._v(" "), i("div", {
staticClass: "scene-middle-list"
}, [i("el-button", {
staticClass: "scene-middle-left-button",
class: {
"scene-middle-button-select": e.rightCheckItems.length > 0
},
attrs: {
disabled: 0 == e.rightCheckItems.length
},
on: {
click: function(t) {
e.changePositon("left")
}
}
}, [i("i", {
staticClass: "el-icon-arrow-left scene-middle-icon"
})]), e._v(" "), i("el-button", {
staticClass: "scene-middle-right-button",
class: {
"scene-middle-button-select": e.leftCheckItems.length > 0
},
attrs: {
disabled: 0 == e.leftCheckItems.length
},
on: {
click: function(t) {
e.changePositon("right")
}
}
}, [i("i", {
staticClass: "el-icon-arrow-right scene-middle-icon"
})])], 1), e._v(" "), i("div", {
staticClass: "scene-list-box"
}, [i("flexbox", {
staticClass: "scene-list-head"
}, [i("el-checkbox", {
attrs: {
indeterminate: e.isrightIndeterminate
},
on: {
change: e.handlerightCheckAllChange
},
model: {
value: e.checkrightAll,
callback: function(t) {
e.checkrightAll = t
},
expression: "checkrightAll"
}
}), e._v(" "), i("div", {
staticClass: "scene-list-head-name"
}, [e._v("隐藏的标签")]), e._v(" "), i("div", {
staticClass: "scene-list-head-detail"
}, [e._v(e._s(e.rightCheckItems.length + "/" + e.checkedRightData.length))])], 1), e._v(" "), i("div", {
staticClass: "scene-list-body"
}, [i("draggable", {
staticStyle: {
"min-height": "100px"
},
attrs: {
move: e.rightMove,
options: {
group: "list",
forceFallback: !1,
fallbackClass: "draggingStyle"
}
},
on: {
end: e.rightMoveEnd
},
model: {
value: e.checkedRightData,
callback: function(t) {
e.checkedRightData = t
},
expression: "checkedRightData"
}
}, e._l(e.checkedRightData, function(t, a) {
return i("flexbox", {
key: a,
staticClass: "list-item"
}, [i("el-checkbox", {
staticClass: "list-item-check",
staticStyle: {
"margin-left": "9px"
},
on: {
change: e.rightCheckItemChange
},
model: {
value: t.check,
callback: function(i) {
e.$set(t, "check", i)
},
expression: "item.check"
}
}), e._v(" "), i("div", {
staticClass: "list-item-name"
}, [e._v(e._s(t.name))])], 1)
}))], 1)], 1)]), e._v(" "), i("div", {
staticClass: "handle-bar"
}, [i("div", {
staticClass: "handle-bar-add",
on: {
click: function(t) {
e.addAndEditScene("add", {})
}
}
}, [e._v("+ 新建场景")]), e._v(" "), i("div", {
staticClass: "handle-bar-save"
}, [i("el-button", {
nativeOn: {
click: function(t) {
return e.handleCancel(t)
}
}
}, [e._v("取消")]), e._v(" "), i("el-button", {
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.handleConfirm(t)
}
}
}, [e._v("保存")])], 1)]), e._v(" "), i("scene-create", {
attrs: {
"field-list": e.fieldList,
"crm-type": e.crmType,
"dialog-visible": e.showCreateScene,
obj: e.filterObj,
name: e.filterName,
edit_id: e.filterEditId,
"is-default": e.filterDefault
},
on: {
"update:dialogVisible": function(t) {
e.showCreateScene = t
},
saveSuccess: e.getSceneList
}
})], 1)
}, [], !1, null, "05bbdc98", null));
G.options.__file = "SceneSet.vue";
var Z = G.exports,
Y = i("QY39"),
z = i("eOzp"),
U = i("V47a"),
H = i("ZfAJ"),
Q = {
name: "CRMTableHead",
components: {
filterForm: D.a,
filterContent: R.a,
SceneList: L,
TransferHandle: Y.a,
TeamsHandle: z.a,
AllocHandle: U.a,
SceneCreate: F,
SceneSet: Z,
DealStatusHandle: H.a
},
props: {
title: {
type: String,
default:
""
},
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
}
},
data: function() {
return {
sceneTypes: [{
type: "enter",
name: "我负责的"
}, {
type: "out",
name: "我"
}],
sceneType: null,
showScene: !1,
showFilter: !1,
fieldList: [],
filterObj: {
form: []
},
sceneData: {
id: "",
bydata: "",
name: ""
},
showSceneSet: !1,
showSceneCreate: !1,
sceneFilterObj: {
form: []
},
selectionList: [],
transferDialogShow: !1,
teamsDialogShow: !1,
teamsTitle: "",
allocDialogShow: !1,
dealStatusShow: !1
}
},
computed: l()({}, Object(o.b)(["crm", "CRMConfig"])),
mounted: function() {},
methods: {
handleTypeDrop: function(e) {
this.sceneType = e
},
showFilterClick: function() {
this.getFilterFieldInfo()
},
getFilterFieldInfo: function() {
var e = this;
Object(x.x)({
types: "crm_" + this.crmType
}).then(function(t) {
e.fieldList = t.data, e.showFilter = !0
}).
catch (function() {})
},
handleFilter: function(e) {
var t = this;
this.filterObj = e, this.showFilter = !1, e.saveChecked && Object(x.p)({
types: "crm_" + this.crmType,
is_default: e.saveDefault ? 1 : 0,
name: e.saveName,
data: e.obj
}).then(function(e) {
t.updateSceneList()
}).
catch (function() {}), this.$emit("filter", e.obj)
},
handleDeleteField: function(e) {
this.filterObj = e.obj, this.$emit("filter", this.filterObj.obj)
},
sceneSelect: function(e) {
this.sceneData = e, this.$emit("scene", e)
},
sceneHandle: function(e) {
var t = this;
"set" == e.type ? this.showSceneSet = !0 : "add" == e.type && Object(x.x)({
types: "crm_" + this.crmType
}).then(function(e) {
t.fieldList = e.data, t.showSceneCreate = !0
}).
catch (function() {})
},
updateSceneList: function() {
this.$refs.sceneList.getSceneList()
},
headSelectionChange: function(e) {
this.selectionList = e
},
selectionBarClick: function(e) {
var t = this;
if ("transfer" == e) this.transferDialogShow = !0;
else if ("export" == e) {
var i = {};
i[this.crmType + "_id"] = this.selectionList.map(function(e) {
return e[t.crmType + "_id"]
}), i.__export = !0, this.$emit("exportData", i)
} else if ("transform" == e || "put_seas" == e || "delete" == e || "lock" == e || "unlock" == e || "start" == e || "disable" == e || "get" == e) {
var a = "";
"transform" == e ? a = "确定将这些线索转换为客户吗?" : "put_seas" == e ? a = "确定转移到公海吗?" : "delete" == e ? a = "确定要删除这些数据吗?" : "lock" == e ? a = "确定要锁定这些客户吗?锁定后将不会掉入公海。" : "unlock" == e ? a = "确定要解锁这些客户吗?" : "start" == e ? a = "确定要上架这些产品吗?" : "disable" == e ? a = "确定要下架这些产品吗?" : "get" == e && (a = "确定要领取该客户吗?"), this.$confirm(a, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
t.confirmHandle(e)
}).
catch (function() {
t.$message({
type: "info",
message: "已取消操作"
})
})
} else "add_user" == e ? (this.teamsTitle = "添加团队成员", this.teamsDialogShow = !0) : "delete_user" == e ? (this.teamsTitle = "移除团队成员", this.teamsDialogShow = !0) : "alloc" == e ? this.allocDialogShow = !0 : "deal_status" == e && (this.dealStatusShow = !0)
},
confirmHandle: function(e) {
var t = this;
if ("lock" === e || "unlock" === e) {
var i = this.selectionList.map(function(e, t, i) {
return e.customer_id
});
Object(m.h)({
is_lock: "lock" === e ? "1" : "2",
customer_id: i
}).then(function(i) {
t.$message({
type: "success",
message: i.data
}), t.$emit("handle", {
type: e
})
}).
catch (function() {})
} else if ("put_seas" === e) {
i = this.selectionList.map(function(e, t, i) {
return e.customer_id
});
Object(m.k)({
customer_id: i
}).then(function(i) {
t.$message({
type: "success",
message: i.data
}), t.$emit("handle", {
type: e
})
}).
catch (function() {})
} else if ("transform" === e) {
var a = this.selectionList.map(function(e, t, i) {
return e.leads_id
});
Object(h.j)({
leads_id: a
}).then(function(i) {
t.$message({
type: "success",
message: i.data
}), t.$emit("handle", {
type: e
})
}).
catch (function() {})
} else if ("start" === e || "disable" === e) {
var s = this.selectionList.map(function(e, t, i) {
return e.product_id
});
Object(f.h)({
id: s,
status: "start" === e ? "上架" : "下架"
}).then(function(i) {
t.$message({
type: "success",
message: i.data
}), t.$emit("handle", {
type: e
})
}).
catch (function() {})
} else if ("delete" === e) {
var n = this,
l = this.selectionList.map(function(e, t, i) {
return e[n.crmType + "_id"]
}),
o = void 0,
c = 0;
"leads" == this.crmType ? o = h.a : "customer" == this.crmType ? (o = m.b, !0 === this.isSeas && (c = 1)) : "contacts" == this.crmType ? o = p.a : "business" == this.crmType ? o = v.b : "contract" == this.crmType ? o = g.c : "receivables" == this.crmType ? o = A.b : "product" == this.crmType && (o = f.a), o({
id: l,
isSeas: c
}).then(function(i) {
t.$message({
type: "success",
message: i.data
}), t.$emit("handle", {
type: e
})
}).
catch (function() {})
} else if ("get" === e) {
i = this.selectionList.map(function(e, t, i) {
return e.customer_id
});
Object(m.m)({
customer_id: i
}).then(function(i) {
t.$message({
type: "success",
message: i.data
}), t.$emit("handle", {
type: e
})
}).
catch (function() {})
}
},
getSelectionHandleItemsInfo: function() {
var e = {
transfer: {
name: "转移",
type: "transfer",
icon: i("W1y5")
},
transform: {
name: "转化为客户",
type: "transform",
icon: i("rvIm")
},
export: {
name: "导出选中",
type: "export",
icon: i("bwvB")
},
delete: {
name: "删除",
type: "delete",
icon: i("NKOo")
},
put_seas: {
name: "放入公海",
type: "put_seas",
icon: i("tmjI")
},
lock: {
name: "锁定",
type: "lock",
icon: i("lYrD")
},
unlock: {
name: "解锁",
type: "unlock",
icon: i("4N2P")
},
add_user: {
name: "添加团队成员",
type: "add_user",
icon: i("jJjR")
},
delete_user: {
name: "移除团队成员",
type: "delete_user",
icon: i("svWA")
},
alloc: {
name: "分配",
type: "alloc",
icon: i("aQEv")
},
get: {
name: "领取",
type: "get",
icon: i("lF6w")
},
start: {
name: "上架",
type: "start",
icon: i("yTN1")
},
disable: {
name: "下架",
type: "disable",
icon: i("disj")
},
deal_status: {
name: "更改成交状态",
type: "deal_status",
icon: i("6c4z")
}
};
return "leads" == this.crmType ? this.forSelectionHandleItems(e, ["transfer", "transform", "export", "delete"]) : "customer" == this.crmType ? this.isSeas ? this.forSelectionHandleItems(e, ["alloc", "get", "export", "delete"]) : this.forSelectionHandleItems(e, ["transfer", "export", "deal_status", "put_seas", "delete", "lock", "unlock", "add_user", "delete_user"]) : "contacts" == this.crmType ? this.forSelectionHandleItems(e, ["transfer", "export", "delete"]) : "business" == this.crmType ? this.forSelectionHandleItems(e, ["transfer", "delete", "export", "add_user", "delete_user"]) : "contract" == this.crmType ? this.forSelectionHandleItems(e, ["transfer", "export", "delete", "add_user", "delete_user"]) : "receivables" == this.crmType ? this.forSelectionHandleItems(e, ["delete"]) : "product" == this.crmType ? this.forSelectionHandleItems(e, ["export", "start", "disable", "delete"]) : void 0
},
forSelectionHandleItems: function(e, t) {
for (var i = [], a = 0; a < t.length; a++) {
var s = t[a];
this.whetherTypeShowByPermision(s) && i.push(e[s])
}
return i
},
whetherTypeShowByPermision: function(e) {
return "transfer" == e ? "is_transform" != this.sceneData.bydata && this.crm[this.crmType].transfer : "transform" == e ? "is_transform" != this.sceneData.bydata && this.crm[this.crmType].transform : "export" == e ? this.isSeas ? this.crm[this.crmType].poolexcelexport : this.crm[this.crmType].excelexport : "delete" == e ? this.crm[this.crmType].delete : "put_seas" == e ? this.crm[this.crmType].putinpool : "lock" == e || "unlock" == e ? this.crm[this.crmType].lock && 1 == this.CRMConfig.config : "add_user" == e || "delete_user" == e ? this.crm[this.crmType].teamsave : "alloc" == e ? this.crm[this.crmType].distribute : "get" == e ? this.crm[this.crmType].receive : "start" == e || "disable" == e ? this.crm[this.crmType].status : "deal_status" != e || this.crm[this.crmType].deal_status
},
handleCallBack: function(e) {
this.$emit("handle", {
type: e.type
})
},
getDefaultSceneName: function() {
return "leads" == this.crmType ? "全部线索" : "customer" == this.crmType ? "全部客户" : "contacts" == this.crmType ? "全部联系人" : "business" == this.crmType ? "全部商机" : "contract" == this.crmType ? "全部合同" : "receivables" == this.crmType ? "全部回款" : "product" == this.crmType ? "全部产品" : void 0
}
}
},
V = (i("a1tB"), Object(_.a)(Q, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", [a("flexbox", {
directives: [{
name: "show",
rawName: "v-show",
value: 0 == e.selectionList.length,
expression: "selectionList.length == 0"
}],
staticClass: "th-container"
}, [e.isSeas ? e._e() : a("div", [e._v("场景:")]), e._v(" "), e.isSeas ? e._e() : a("el-popover", {
attrs: {
trigger: "click",
"popper-class": "no-padding-popover",
width: "150"
},
model: {
value: e.showScene,
callback: function(t) {
e.showScene = t
},
expression: "showScene"
}
}, [a("flexbox", {
attrs: {
slot: "reference"
},
slot: "reference"
}, [a("div", {
staticClass: "condition_title"
}, [e._v(e._s(e.sceneData.name || e.getDefaultSceneName()))]), e._v(" "), a("i", {
staticClass: "el-icon-arrow-down el-icon--right",
staticStyle: {
color: "#777"
}
})]), e._v(" "), a("scene-list", {
ref: "sceneList",
attrs: {
"crm-type": e.crmType
},
on: {
scene: e.sceneSelect,
"scene-handle": e.sceneHandle,
"hidden-scene": function(t) {
e.showScene = !1
}
}
})], 1), e._v(" "), a("img", {
staticClass: "c-filtrate",
style: {
"margin-left": e.isSeas ? 0 : "30px"
},
attrs: {
src: i("3gs7")
},
on: {
click: e.showFilterClick
}
}), e._v(" "), a("div", {
staticClass: "condition_title",
on: {
click: e.showFilterClick
}
}, [e._v("高级筛选")]), e._v(" "), a("filter-form", {
attrs: {
"field-list": e.fieldList,
"dialog-visible": e.showFilter,
obj: e.filterObj,
"crm-type": e.crmType,
"is-seas": e.isSeas
},
on: {
"update:dialogVisible": function(t) {
e.showFilter = t
},
filter: e.handleFilter
}
})], 1), e._v(" "), e.selectionList.length > 0 ? a("flexbox", {
staticClass: "selection-bar"
}, [a("div", {
staticClass: "selected—title"
}, [e._v("已选中"), a("span", {
staticClass: "selected—count"
}, [e._v(e._s(e.selectionList.length))]), e._v("项")]), e._v(" "), a("flexbox", {
staticClass: "selection-items-box"
}, e._l(e.getSelectionHandleItemsInfo(), function(t, i) {
return a("flexbox", {
key: i,
staticClass: "selection-item",
nativeOn: {
click: function(i) {
e.selectionBarClick(t.type)
}
}
}, [a("img", {
staticClass: "selection-item-icon",
attrs: {
src: t.icon
}
}), e._v(" "), a("div", {
staticClass: "selection-item-name"
}, [e._v(e._s(t.name))])])
}))], 1) : e._e(), e._v(" "), e.filterObj.form && e.filterObj.form.length > 0 ? a("filter-content", {
attrs: {
obj: e.filterObj
},
on: {
delete: e.handleDeleteField
}
}) : e._e(), e._v(" "), a("transfer-handle", {
attrs: {
"crm-type": e.crmType,
"selection-list": e.selectionList,
"dialog-visible": e.transferDialogShow
},
on: {
"update:dialogVisible": function(t) {
e.transferDialogShow = t
},
handle: e.handleCallBack
}
}), e._v(" "), a("teams-handle", {
attrs: {
"crm-type": e.crmType,
title: e.teamsTitle,
"selection-list": e.selectionList,
"dialog-visible": e.teamsDialogShow
},
on: {
"update:dialogVisible": function(t) {
e.teamsDialogShow = t
},
handle: e.handleCallBack
}
}), e._v(" "), a("alloc-handle", {
attrs: {
"crm-type": e.crmType,
"selection-list": e.selectionList,
"dialog-visible": e.allocDialogShow
},
on: {
"update:dialogVisible": function(t) {
e.allocDialogShow = t
},
handle: e.handleCallBack
}
}), e._v(" "), a("deal-status-handle", {
attrs: {
"crm-type": e.crmType,
"selection-list": e.selectionList,
visible: e.dealStatusShow
},
on: {
"update:visible": function(t) {
e.dealStatusShow = t
},
handle: e.handleCallBack
}
}), e._v(" "), a("scene-set", {
attrs: {
"dialog-visible": e.showSceneSet,
"crm-type": e.crmType
},
on: {
"update:dialogVisible": function(t) {
e.showSceneSet = t
},
"save-success": e.updateSceneList
}
}), e._v(" "), a("scene-create", {
attrs: {
"field-list": e.fieldList,
"crm-type": e.crmType,
"dialog-visible": e.showSceneCreate,
obj: e.sceneFilterObj
},
on: {
"update:dialogVisible": function(t) {
e.showSceneCreate = t
},
saveSuccess: e.updateSceneList
}
})], 1)
}, [], !1, null, "503962bb", null));
V.options.__file = "CRMTableHead.vue";
var J = V.exports,
W = {
name: "FieldsSet",
components: {
draggable: N.a
},
props: {
dialogVisible: {
type: Boolean,
required: !0,
default:
!1
},
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
}
},
data: function() {
return {
visible: !1,
isleftIndeterminate: !1,
checkleftAll: !1,
leftInput: "",
checkedLeftData: [],
leftCheckItems: [],
isrightIndeterminate: !1,
checkrightAll: !1,
rightInput: "",
checkedRightData: [],
rightCheckItems: [],
moveItem: {},
handlDefaultItem: {}
}
},
computed: {},
watch: {
dialogVisible: {
handler: function(e) {
this.visible = e, e && 0 == this.checkedLeftData.length && 0 == this.checkedRightData.length && this.getFieldConfigIndex()
},
deep: !0,
immediate: !0
}
},
mounted: function() {
document.body.ondrop = function(e) {
e.preventDefault(), e.stopPropagation()
}
},
methods: {
getFieldConfigIndex: function() {
var e = this,
t = "crm_" + this.crmType;
this.isSeas && (t += "_pool"), Object(x.g)({
types: t
}).then(function(t) {
e.checkedLeftData = t.data.value_list.map(function(e, t) {
return e.check = !1, e.show = !0, e
}), e.checkedRightData = t.data.hide_list.map(function(e, t) {
return e.check = !1, e.show = !0, e
})
}).
catch (function() {})
},
inputLeftChange: function(e) {
this.checkedLeftData = this.checkedLeftData.map(function(t, i) {
return -1 != t.name.indexOf(e) ? t.show = !0 : t.show = !1, t
})
},
inputRightChange: function(e) {
this.checkedRightData = this.checkedRightData.map(function(t, i) {
return -1 != t.name.indexOf(e) ? t.show = !0 : t.show = !1, t
})
},
handleConfirm: function() {
var e = this;
if (this.checkedLeftData.length < 2) this.$message.error("至少要显示两列");
else {
var t = "crm_" + this.crmType;
this.isSeas && (t += "_pool"), Object(x.f)({
types: t,
value: this.checkedLeftData,
hide_value: this.checkedRightData
}).then(function(t) {
e.$message.success(t.data), e.$emit("set-success"), e.handleCancel()
}).
catch (function() {})
}
},
handleCancel: function() {
this.visible = !1, this.$emit("update:dialogVisible", !1)
},
rightMoveEnd: function(e) {
this.moveItem.check = !1, this.leftCheckItemChange(), this.rightCheckItemChange()
},
rightMove: function(e) {
this.moveItem = e.draggedContext.element
},
leftMoveEnd: function(e) {
this.moveItem.check = !1, this.leftCheckItemChange(), this.rightCheckItemChange()
},
leftMove: function(e) {
this.moveItem = e.draggedContext.element
},
handleleftCheckAllChange: function(e) {
e && (this.isleftIndeterminate = !1), this.checkedLeftData = this.checkedLeftData.filter(function(t, i, a) {
return t.check = e, t
}), this.leftCheckItems = e ? this.checkedLeftData : []
},
leftCheckItemChange: function() {
this.leftCheckItems = this.checkedLeftData.filter(function(e, t, i) {
return 1 == e.check
}), this.leftCheckItems.length > 0 ? this.leftCheckItems.length == this.checkedLeftData.length ? (this.checkleftAll = !0, this.isleftIndeterminate = !1) : (this.checkleftAll = !1, this.isleftIndeterminate = !0) : (this.checkleftAll = !1, this.isleftIndeterminate = !1)
},
handlerightCheckAllChange: function(e) {
e && (this.isrightIndeterminate = !1), this.checkedRightData = this.checkedRightData.filter(function(t, i, a) {
return t.check = e, t
}), this.rightCheckItems = e ? this.checkedRightData : []
},
rightCheckItemChange: function() {
this.rightCheckItems = this.checkedRightData.filter(function(e, t, i) {
return 1 == e.check
}), this.rightCheckItems.length > 0 ? this.rightCheckItems.length == this.checkedRightData.length ? (this.checkrightAll = !0, this.isrightIndeterminate = !1) : (this.checkrightAll = !1, this.isrightIndeterminate = !0) : (this.checkrightAll = !1, this.isrightIndeterminate = !1)
},
changePositon: function(e) {
var t = this;
"left" == e ? (this.checkedRightData = this.checkedRightData.filter(function(e, i, a) {
var s = !1;
return t.rightCheckItems.forEach(function(t, i) {
e.field == t.field && (s = !0)
}), !s
}), this.rightCheckItems.forEach(function(e, i) {
e.check = !1, t.checkedLeftData.push(e)
}), this.rightCheckItems = [], this.isrightIndeterminate = !1, this.checkrightAll = !1, this.leftCheckItemChange(), this.rightCheckItemChange()) : (this.checkedLeftData = this.checkedLeftData.filter(function(e, i, a) {
var s = !1;
return t.leftCheckItems.forEach(function(t, i) {
e.field == t.field && (s = !0)
}), !s
}), this.leftCheckItems.forEach(function(e, i) {
e.check = !1, t.checkedRightData.push(e)
}), this.leftCheckItems = [], this.isleftIndeterminate = !1, this.checkleftAll = !1, this.leftCheckItemChange(), this.rightCheckItemChange())
}
}
},
P = (i("XBUZ"), Object(_.a)(W, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("el-dialog", {
attrs: {
visible: e.visible,
"append-to-body": !0,
title: "编辑列",
width: "600px"
},
on: {
"update:visible": function(t) {
e.visible = t
},
close: e.handleCancel
}
}, [i("div", {
staticClass: "scene-name"
}, [e._v("您可通过拖拽管理列")]), e._v(" "), i("flexbox", {
staticClass: "scene-list"
}, [i("div", {
staticClass: "scene-list-box"
}, [i("flexbox", {
staticClass: "scene-list-head"
}, [i("el-checkbox", {
attrs: {
indeterminate: e.isleftIndeterminate
},
on: {
change: e.handleleftCheckAllChange
},
model: {
value: e.checkleftAll,
callback: function(t) {
e.checkleftAll = t
},
expression: "checkleftAll"
}
}), e._v(" "), i("div", {
staticClass: "scene-list-head-name"
}, [e._v("显示的列")]), e._v(" "), i("div", {
staticClass: "scene-list-head-detail"
}, [e._v(e._s(e.leftCheckItems.length + "/" + e.checkedLeftData.length))])], 1), e._v(" "), i("div", {
staticStyle: {
position: "relative"
}
}, [i("div", {
staticClass: "scene-list-search"
}, [i("el-input", {
attrs: {
placeholder: "请输入",
size: "small",
"suffix-icon": "el-icon-search"
},
on: {
input: e.inputLeftChange
},
model: {
value: e.leftInput,
callback: function(t) {
e.leftInput = t
},
expression: "leftInput"
}
})], 1), e._v(" "), i("div", {
staticClass: "scene-list-body"
}, [i("draggable", {
staticStyle: {
"min-height": "100px"
},
attrs: {
move: e.leftMove,
options: {
group: "list",
forceFallback: !1,
dragClass: "sortable-drag"
}
},
on: {
end: e.leftMoveEnd
},
model: {
value: e.checkedLeftData,
callback: function(t) {
e.checkedLeftData = t
},
expression: "checkedLeftData"
}
}, e._l(e.checkedLeftData, function(t, a) {
return t.show ? i("flexbox", {
key: a,
staticClass: "list-item"
}, [i("el-checkbox", {
staticClass: "list-item-check",
on: {
change: e.leftCheckItemChange
},
model: {
value: t.check,
callback: function(i) {
e.$set(t, "check", i)
},
expression: "item.check"
}
}), e._v(" "), i("div", {
staticClass: "list-item-name"
}, [e._v(e._s(t.name))])], 1) : e._e()
}))], 1)])], 1), e._v(" "), i("div", {
staticClass: "scene-middle-list"
}, [i("el-button", {
staticClass: "scene-middle-left-button",
class: {
"scene-middle-button-select": e.rightCheckItems.length > 0
},
attrs: {
disabled: 0 == e.rightCheckItems.length
},
on: {
click: function(t) {
e.changePositon("left")
}
}
}, [i("i", {
staticClass: "el-icon-arrow-left scene-middle-icon"
})]), e._v(" "), i("el-button", {
staticClass: "scene-middle-right-button",
class: {
"scene-middle-button-select": e.leftCheckItems.length > 0
},
attrs: {
disabled: 0 == e.leftCheckItems.length
},
on: {
click: function(t) {
e.changePositon("right")
}
}
}, [i("i", {
staticClass: "el-icon-arrow-right scene-middle-icon"
})])], 1), e._v(" "), i("div", {
staticClass: "scene-list-box"
}, [i("flexbox", {
staticClass: "scene-list-head"
}, [i("el-checkbox", {
attrs: {
indeterminate: e.isrightIndeterminate
},
on: {
change: e.handlerightCheckAllChange
},
model: {
value: e.checkrightAll,
callback: function(t) {
e.checkrightAll = t
},
expression: "checkrightAll"
}
}), e._v(" "), i("div", {
staticClass: "scene-list-head-name"
}, [e._v("隐藏的列")]), e._v(" "), i("div", {
staticClass: "scene-list-head-detail"
}, [e._v(e._s(e.rightCheckItems.length + "/" + e.checkedRightData.length))])], 1), e._v(" "), i("div", {
staticStyle: {
position: "relative"
}
}, [i("div", {
staticClass: "scene-list-body"
}, [i("div", {
staticClass: "scene-list-search"
}, [i("el-input", {
attrs: {
placeholder: "请输入",
size: "small",
"suffix-icon": "el-icon-search"
},
on: {
input: e.inputRightChange
},
model: {
value: e.rightInput,
callback: function(t) {
e.rightInput = t
},
expression: "rightInput"
}
})], 1), e._v(" "), i("draggable", {
staticStyle: {
"min-height": "100px"
},
attrs: {
move: e.rightMove,
options: {
group: "list",
forceFallback: !1,
dragClass: "sortable-drag"
}
},
on: {
end: e.rightMoveEnd
},
model: {
value: e.checkedRightData,
callback: function(t) {
e.checkedRightData = t
},
expression: "checkedRightData"
}
}, e._l(e.checkedRightData, function(t, a) {
return t.show ? i("flexbox", {
key: a,
staticClass: "list-item"
}, [i("el-checkbox", {
staticClass: "list-item-check",
on: {
change: e.rightCheckItemChange
},
model: {
value: t.check,
callback: function(i) {
e.$set(t, "check", i)
},
expression: "item.check"
}
}), e._v(" "), i("div", {
staticClass: "list-item-name"
}, [e._v(e._s(t.name))])], 1) : e._e()
}))], 1)])], 1)]), e._v(" "), i("div", {
staticClass: "handle-bar"
}, [i("div", {
staticClass: "handle-bar-save"
}, [i("el-button", {
nativeOn: {
click: function(t) {
return e.handleCancel(t)
}
}
}, [e._v("取消")]), e._v(" "), i("el-button", {
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.handleConfirm(t)
}
}
}, [e._v("保存")])], 1)])], 1)
}, [], !1, null, "57c92621", null));
P.options.__file = "FieldsSet.vue";
var X = P.exports,
$ = i("wd/R"),
K = i.n($),
q = i("XJYT");
t.a = {
components: {
CRMListHead: I,
CRMTableHead: J,
FieldsSet: X
},
data: function() {
return {
loading: !1,
tableHeight: document.documentElement.clientHeight - 240,
list: [],
fieldList: [],
sortData: {},
currentPage: 1,
pageSize: r.a.get("crmPageSizes") || 15,
pageSizes: [15, 30, 60, 100],
total: 0,
search: "",
rowID: "",
rowType: "",
showDview: !1,
formatterRules: {},
filterObj: {},
scene_id: "",
scene_name: "",
showFieldSet: !1,
selectionList: []
}
},
computed: l()({}, Object(o.b)(["crm"])),
mounted: function() {
var e = this;
window.onresize = function() {
var t = document.documentElement.clientHeight,
i = s()(e.filterObj).length > 0 ? 310 : 240;
e.tableHeight = t - i
}, this.crm[this.crmType].index && (this.isSeas ? this.getFieldList() : this.loading = !0)
},
methods: {
getList: function() {
var e = this;
this.loading = !0;
var t = this.getIndexRequest(),
i = {
page: this.currentPage,
limit: this.pageSize,
search: this.search
};
for (var a in this.scene_id && (i.scene_id = this.scene_id), this.sortData.order && (i.order_field = this.sortData.prop, i.order_type = "ascending" == this.sortData.order ? "asc" : "desc", this.$bus.emit("getSortData", {
order_field: i.order_field,
order_type: i.order_type
})), this.filterObj) i[a] = this.filterObj[a];
t(i).then(function(t) {
"customer" === e.crmType ? e.list = t.data.list.map(function(e) {
return e.show = !1, e
}) : ("contract" === e.crmType && (e.moneyData = t.data.data), e.list = t.data.list), e.total = t.data.dataCount, e.loading = !1
}).
catch (function() {
e.loading = !1
})
},
getIndexRequest: function() {
return "leads" === this.crmType ? h.e : "customer" === this.crmType ? this.isSeas ? m.i : m.g : "contacts" === this.crmType ? p.e : "business" === this.crmType ? v.d : "contract" === this.crmType ? g.e : "product" === this.crmType ? f.e : "receivables" === this.crmType ? A.c : void 0
},
getFieldList: function() {
var e = this;
if (0 == this.fieldList.length) {
this.loading = !0;
var t = {
types: "crm_" + this.crmType,
module: "crm",
action: this.isSeas ? "pool" : "index"
};
t.controller = this.crmType, Object(x.v)(t).then(function(t) {
for (var i = 0; i < t.data.length; i++) {
var a = t.data[i];
"date" === a.form_type ? e.formatterRules[a.field] = {
formatter: function(e) {
return "0000-00-00" == e && (e = ""), e
}
} : "datetime" === a.form_type ? e.formatterRules[a.field] = {
formatter: function(e) {
return 0 != e && e ? K()(Object(M.e)(e)).format("YYYY-MM-DD HH:mm:ss") : ""
}
} : "create_user_id" === a.field || "owner_user_id" === a.field ? e.formatterRules[a.field] = {
type: "crm",
formatter: function(e) {
return e ? e.realname : ""
}
} : "user" === a.form_type ? e.formatterRules[a.field] = {
type: "crm",
formatter: function(e) {
if (e) {
for (var t = "", i = 0; i < e.length; i++) {
t = t + e[i].realname + (i === e.length - 1 ? "" : ",")
}
return t
}
return ""
}
} : "structure" === a.form_type ? e.formatterRules[a.field] = {
type: "crm",
formatter: function(e) {
if (e) {
for (var t = "", i = 0; i < e.length; i++) {
t = t + e[i].name + (i === e.length - 1 ? "" : ",")
}
return t
}
return ""
}
} : "contacts_id" === a.field || "customer_id" === a.field || "business_id" === a.field || "contract_id" === a.field ? e.formatterRules[a.field] = {
type: "crm",
formatter: function(e) {
return e ? e.name : ""
}
} : "status_id" === a.field || "type_id" === a.field || "category_id" === a.field || "plan_id" === a.field ? e.formatterRules[a.field] = {
type: "crm",
formatter: function(e) {
return e || ""
}
} : "floatnumber" === a.form_type && (e.formatterRules[a.field] = {
type: "floatnumber",
formatter: function(e) {
return Object(M.h)(e)
}
});
var s = 0;
s = a.width ? a.width : a.name && a.name.length <= 6 ? 15 * a.name.length + 45 : 140, e.fieldList.push({
prop: a.field,
label: a.name,
width: s
})
}
e.getList()
}).
catch (function() {
e.loading = !1
})
} else this.getList()
},
fieldFormatter: function(e, t) {
var i = this.formatterRules[t.property];
return i ? "crm" === i.type ? t.property ? i.formatter(e[t.property + "_info"]) || "--" : "" : i.formatter(e[t.property]) || "--" : e[t.property] || "--"
},
crmSearch: function(e) {
this.search = e, this.currentPage = 1, this.fieldList.length && this.getList()
},
handleRowClick: function(e, t, i) {
if ("selection" !== t.type) if ("leads" === this.crmType)"name" === t.property ? (this.rowID = e.leads_id, this.showDview = !0) : this.showDview = !1;
else if ("customer" === this.crmType) {
if ("business-check" === t.property && e.business_count > 0) return;
"name" === t.property ? (this.rowID = e.customer_id, this.rowType = "customer", this.showDview = !0) : this.showDview = !1
} else "contacts" === this.crmType ? "customer_id" === t.property ? (this.rowID = e.customer_id_info.customer_id, this.rowType = "customer", this.showDview = !0) : "name" === t.property ? (this.rowID = e.contacts_id, this.rowType = "contacts", this.showDview = !0) : this.showDview = !1 : "business" === this.crmType ? "customer_id" === t.property ? (this.rowID = e.customer_id_info.customer_id, this.rowType = "customer", this.showDview = !0) : "name" === t.property ? (this.rowID = e.business_id, this.rowType = "business", this.showDview = !0) : this.showDview = !1 : "contract" === this.crmType ? "customer_id" === t.property ? (this.rowID = e.customer_id_info.customer_id, this.rowType = "customer", this.showDview = !0) : "business_id" === t.property ? (this.rowID = e.business_id_info.business_id, this.rowType = "business", this.showDview = !0) : "contacts_id" === t.property ? (this.rowID = e.contacts_id_info.contacts_id, this.rowType = "contacts", this.showDview = !0) : "num" === t.property ? (this.rowID = e.contract_id, this.rowType = "contract", this.showDview = !0) : this.showDview = !1 : "product" === this.crmType ? "name" === t.property ? (this.rowID = e.product_id, this.showDview = !0) : this.showDview = !1 : "receivables" === this.crmType && ("customer_id" === t.property ? (this.rowID = e.customer_id_info.customer_id, this.rowType = "customer", this.showDview = !0) : "contract_id" === t.property ? (this.rowID = e.contract_id, this.rowType = "contract", this.showDview = !0) : "number" === t.property ? (this.rowID = e.receivables_id, this.rowType = "receivables", this.showDview = !0) : this.showDview = !1)
},
exportInfos: function() {
var e = this,
t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1,
i = {
search: this.search,
page: t
};
for (var a in this.scene_id && (i.scene_id = this.scene_id), this.filterObj) i[a] = this.filterObj[a];
var s = void 0;
s = this.isSeas ? m.j : {
customer: m.e,
leads: h.c,
contacts: p.c,
product: f.c
}[this.crmType];
var n = "",
l = q.Loading.service({
fullscreen: !0,
text: "导出中..." + n
});
console.log(l, "==loading=="), s(i).then(function(t) {
if (-1 !== t.data.type.indexOf("json")) {
var i = new Blob([t.data], {
type: "application/json"
}),
a = new FileReader;
a.readAsText(i, "utf-8"), a.onload = function() {
var t = JSON.parse(a.result);
n = String(t.data.done) + "/" + String(t.data.total), l.setText("导出中..." + n), e.exportInfos(t.data.page)
}
} else {
i = new Blob([t.data], {
type: "application/vnd.ms-excel;charset=utf-8"
});
var s = document.createElement("a"),
o = window.URL.createObjectURL(i);
s.href = o, s.download = decodeURI(t.headers["content-disposition"].split("filename=")[1]) || "", document.body.appendChild(s), s.click(), document.body.removeChild(s), window.URL.revokeObjectURL(o), l.close()
}
}).
catch (function() {
l.close()
})
},
handleFilter: function(e) {
this.filterObj = e;
var t = document.documentElement.clientHeight,
i = s()(this.filterObj).length > 0 ? 310 : 240;
this.tableHeight = t - i, this.currentPage = 1, this.getList()
},
handleScene: function(e) {
this.scene_id = e.id, this.scene_name = e.name, this.currentPage = 1, this.getFieldList()
},
handleHandle: function(e) {
"alloc" !== e.type && "get" !== e.type && "transfer" !== e.type && "transform" !== e.type && "delete" !== e.type && "cancel" !== e.type && "put_seas" !== e.type || (this.showDview = !1), "edit" !== e.type && this.getList()
},
setSave: function() {
this.fieldList = [], this.getFieldList()
},
listHeadHandle: function(e) {
"save-success" === e.type && (this.currentPage = 1, this.getList())
},
handleTableSet: function() {
this.showFieldSet = !0
},
sortChange: function(e, t, i) {
this.sortData = e, this.getList()
},
handleSelectionChange: function(e) {
this.selectionList = e, this.$refs.crmTableHead.headSelectionChange(e)
},
handleHeaderDragend: function(e, t, i, a) {
if (i.property) {
var s = this.isSeas ? this.crmType + "_pool" : this.crmType;
Object(x.e)({
types: "crm_" + s,
field: i.property,
width: e
}).then(function(e) {}).
catch (function() {})
}
},
handleSizeChange: function(e) {
r.a.set("crmPageSizes", e), this.pageSize = e, this.getList()
},
handleCurrentChange: function(e) {
this.currentPage = e, this.getList()
},
getStatusStyle: function(e) {
return 0 == e ? {
"border-color": "#E6A23C",
"background-color": "#FDF6EC",
color: "#E6A23C"
} : 1 == e ? {
"border-color": "#409EFF",
"background-color": "#ECF5FF",
color: "#409EFF"
} : 2 == e ? {
"border-color": "#67C23A",
"background-color": "#F0F9EB",
color: "#67C23A"
} : 3 == e ? {
"border-color": "#F56C6B",
"background-color": "#FEF0F0",
color: "#F56C6B"
} : 4 == e || 5 == e ? {
"background-color": "#FFFFFF"
} : 6 == e ? {
"border-color": "#E9E9EB",
"background-color": "#F4F4F5",
color: "#909399"
} : void 0
},
getStatusName: function(e) {
return e > 6 ? "" : ["待审核", "审核中", "审核通过", "已拒绝", "已撤回", "未提交", "已作废"][e]
},
exportData: function(e) {
this.$refs.listHead.handleTypeDrop("out", e)
}
},
beforeDestroy: function() {}
}
},
l7zd: function(e, t, i) {},
m8oD: function(e, t, i) {
"use strict";
var a = i("Bs8Y");
i.n(a).a
},
migV: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJGNkIxREZBNDE2NTExRTlBQkY1RjdBNzY2QThDRUY2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJGNkIxREZCNDE2NTExRTlBQkY1RjdBNzY2QThDRUY2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkY2QjFERjg0MTY1MTFFOUFCRjVGN0E3NjZBOENFRjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkY2QjFERjk0MTY1MTFFOUFCRjVGN0E3NjZBOENFRjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7u8NAUAAABfklEQVR42qSVsUoDQRCG5y5imfo0gk0C9la+RYQY4gOENNokkOALCBqIFlrlBYJBjfgaimCbKxSUpE4phDg/zJLd2wmnuR9+WHZmv9ud25sLFo0GKdpkl8UH7G32D/uL/cZ+ZD/JnKMNBXbIvmQXlYfsiY/ZMbvDfrCTQmucY19IQpHShZx7WZPTdnjObtP/ZdZ07B1W1oTZ0IoBojZXTrhQIGq1iPJ5fynmEEOOq2uwADxi7zihWo2oVCJqNl0oxphDDDmu8IRqKFfDVb9PNJ0SRdESamCYQww5vsoB38MPHuyqR7MBkBn3ekSzmQb8xA4jtcxYgIVmp+kwaCvUbnsWAThRI8kjJ2uqawLgeyoMx7SPvxr6AuDIm67X/Zola4ocXyMAh9JFlhoMiMZj/wUYKGLIcfUNViDtC5f7LuP7qAJovmXsspsB1hWG077O2DdrwG5lrdcP5+xT6RrxH0CxlOpE1q7s2Giaz5KM7r0vH74p/Kv8AobaR/ErwAAhLXvaJ0ohPQAAAABJRU5ErkJggg=="
},
oWS4: function(e, t, i) {
"use strict";
var a = i("QbLZ"),
s = i.n(a),
n = i("7Qib"),
l = i("8GhS"),
o = i("eE85"),
c = i.n(o),
r = {
name: "Index",
components: {
XhUserCell: l.p,
XhProuctCate: l.j,
VDistpicker: c.a
},
props: {
dialogVisible: {
type: Boolean,
required: !0,
default:
!1
},
fieldList: {
type: Array,
required: !0,
default:
function() {
return []
}
},
obj: {
type: Object,
required: !0,
default:
function() {
return {}
}
},
isSeas: {
type: Boolean,
default:
!1
},
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
form: [],
formCopy: [],
visible: !1,
showErrors: !1,
saveChecked: !1,
saveDefault: !1,
saveName: null
}
},
watch: {
dialogVisible: {
handler: function(e) {
e && (this.form = Object(n.i)(this.obj.form), 0 == this.form.length && this.form.push({
field: "",
name: "",
form_type: "",
condition: "is",
value: "",
typeOption: [],
statusOption: [],
type_id: "",
status_id: "",
address: {
state: "",
city: "",
area: ""
}
}), this.saveChecked = !1, this.saveDefault = !1, this.saveName = null), this.visible = this.dialogVisible
},
deep: !0,
immediate: !0
},
form: function() {
this.$nextTick(function() {
var e = document.getElementById("filter-container");
e.scrollTop = e.scrollHeight
})
}
},
methods: {
selectProvince: function(e, t) {
t.address.state = e.value
},
selectCity: function(e, t) {
t.address.city = e.value
},
selectArea: function(e, t) {
t.address.area = e.value
},
typeOptionsChange: function(e) {
if (e.type_id) {
var t = e.typeOption.find(function(t) {
return t.type_id === e.type_id
});
e.statusOption = t.statusList || []
} else e.statusOption = [];
e.status_id = ""
},
arrayValueChange: function(e) {
e.value.length > 0 ? (e.item.value = e.value, e.item.valueContent = e.valueContent) : e.item.value = []
},
showCalCondition: function(e) {
return "date" != e && "datetime" != e && "business_type" != e && "category" != e && "address" != e
},
calConditionOptions: function(e, t) {
return "select" == e || "checkbox" == e || "user" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}] : "module" == e || "text" == e || "textarea" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}] : "floatnumber" == e || "number" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}, {
value: "is_empty",
label: "为空",
disabled: !1
}, {
value: "is_not_empty",
label: "不为空",
disabled: !1
}, {
value: "gt",
label: "大于",
disabled: !1
}, {
value: "egt",
label: "大于等于",
disabled: !1
}, {
value: "lt",
label: "小于",
disabled: !1
}, {
value: "elt",
label: "小于等于",
disabled: !1
}] : "category" == e ? [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}] : [{
value: "is",
label: "等于",
disabled: !1
}, {
value: "isnot",
label: "不等于",
disabled: !1
}, {
value: "contains",
label: "包含",
disabled: !1
}, {
value: "not_contain",
label: "不包含",
disabled: !1
}, {
value: "start_with",
label: "开始于",
disabled: !1
}, {
value: "end_with",
label: "结束于",
disabled: !1
}, {
value: "is_empty",
label: "为空",
disabled: !1
}, {
value: "is_not_empty",
label: "不为空",
disabled: !1
}, {
value: "gt",
label: "大于",
disabled: !1
}, {
value: "egt",
label: "大于等于",
disabled: !1
}, {
value: "lt",
label: "小于",
disabled: !1
}, {
value: "elt",
label: "小于等于",
disabled: !1
}]
},
fieldChange: function(e) {
var t = this.fieldList.find(function(t) {
return t.field === e.field
});
t && (e.form_type = t.form_type, e.name = t.name, "business_type" == e.form_type ? (e.typeOption = t.setting, e.statusOption = [], e.type_id = "", e.status_id = "") : "select" == e.form_type ? e.setting = t.setting || [] : "address" == e.form_type ? e.address = {
state: "",
city: "",
area: ""
} : "date" !== e.form_type && "datetime" !== e.form_type && "user" !== e.form_type && "category" !== e.form_type || (e.value = [])), this.form.filter(function(t) {
return t.field === e.field
}).length > 1 ? this.showErrors = !0 : this.showErrors = !1
},
handleCancel: function() {
this.$emit("update:dialogVisible", !1)
},
handleConfirm: function() {
if (this.showErrors) this.$message.error("筛选条件中有重复项!");
else if (!this.saveChecked || this.saveName && "" !== this.saveName) {
for (var e = 0; e < this.form.length; e++) {
var t = this.form[e];
if (!t.field || "" === t.field) return void this.$message.error("要筛选的字段名称不能为空!");
if ("business_type" == t.form_type) {
if (!t.type_id && !t.status_id) return void this.$message.error("请输入筛选条件的值!")
} else if ("address" == t.form_type) {
if (!t.address.state && !t.address.city && !t.address.area) return void this.$message.error("请选择筛选条件的值!")
} else if ("date" == t.form_type || "datetime" == t.form_type || "user" == t.form_type || "category" == t.form_type) {
if (!t.value || 0 === t.value.length) return void this.$message.error("请选择筛选条件的值!")
} else if (!t.value) return void this.$message.error("请输入筛选条件的值!")
}
var i = {};
this.form.forEach(function(e) {
"date" == e.form_type ? i[e.field] = {
start_date: e.value[0],
end_date: e.value[1],
form_type: e.form_type,
name: e.name
} : "datetime" == e.form_type ? i[e.field] = {
start: Object(n.d)(e.value[0]),
end: Object(n.d)(e.value[1]),
form_type: e.form_type,
name: e.name
} : "business_type" == e.form_type ? i[e.field] = {
type_id: e.type_id,
status_id: e.status_id,
form_type: e.form_type,
name: e.name
} : "user" == e.form_type ? i[e.field] = {
condition: e.condition,
value: e.value[0].id,
form_type: e.form_type,
name: e.name
} : "category" == e.form_type ? i[e.field] = {
value: e.value[e.value.length - 1],
form_type: e.form_type,
name: e.name
} : "address" == e.form_type ? i[e.field] = s()({}, e.address, {
form_type: e.form_type,
name: e.name
}) : i[e.field] = {
condition: e.condition,
value: e.value,
form_type: e.form_type,
name: e.name
}
});
var a = {
obj: i,
form: this.form,
saveChecked: this.saveChecked,
saveDefault: this.saveDefault,
saveName: this.saveName
};
this.$emit("filter", a)
} else this.$message.error("场景名称不能为空!")
},
handleAdd: function() {
this.form.push({
field: "",
condition: "is",
value: "",
form_type: "",
setting: [],
typeOption: [],
statusOption: [],
type_id: "",
status_id: ""
})
},
handleDelete: function(e) {
var t = this;
this.$confirm("您确定要删除这一条数据吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
t.form.splice(e, 1)
}).
catch (function() {
t.$message({
type: "info",
message: "已取消删除"
})
})
}
}
},
d = (i("Veb8"), i("KHd+")),
u = Object(d.a)(r, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("el-dialog", {
attrs: {
visible: e.visible,
title: "高级筛选",
width: "900px"
},
on: {
"update:visible": function(t) {
e.visible = t
},
close: e.handleCancel
}
}, [i("div", {
staticStyle: {
"margin-bottom": "10px"
}
}, [e._v("筛选条件")]), e._v(" "), i("el-form", {
staticClass: "filter-container",
attrs: {
id: "filter-container"
}
}, [i("el-form-item", [e._l(e.form, function(t, a) {
return [i("el-row", {
key: a
}, [i("el-col", {
attrs: {
span: 8
}
}, [i("el-select", {
attrs: {
placeholder: "请选择要筛选的字段名"
},
on: {
change: function(i) {
e.fieldChange(t)
}
},
model: {
value: t.field,
callback: function(i) {
e.$set(t, "field", i)
},
expression: "formItem.field"
}
}, e._l(e.fieldList, function(e) {
return i("el-option", {
key: e.field,
attrs: {
label: e.name,
value: e.field
}
})
}))], 1), e._v(" "), e.showCalCondition(t.form_type) ? i("el-col", {
attrs: {
span: 1
}
}, [e._v(" ")]) : e._e(), e._v(" "), e.showCalCondition(t.form_type) ? i("el-col", {
attrs: {
span: 4
}
}, [i("el-select", {
attrs: {
placeholder: "请选择范围"
},
model: {
value: t.condition,
callback: function(i) {
e.$set(t, "condition", i)
},
expression: "formItem.condition"
}
}, e._l(e.calConditionOptions(t.form_type, t), function(e) {
return i("el-option", {
key: e.value,
attrs: {
label: e.label,
value: e.value
}
})
}))], 1) : e._e(), e._v(" "), "business_type" == t.form_type ? i("el-col", {
attrs: {
span: 1
}
}, [e._v(" ")]) : e._e(), e._v(" "), "business_type" == t.form_type ? i("el-col", {
attrs: {
span: 4
}
}, [i("el-select", {
attrs: {
placeholder: "请选择"
},
on: {
change: function(i) {
e.typeOptionsChange(t)
}
},
model: {
value: t.type_id,
callback: function(i) {
e.$set(t, "type_id", i)
},
expression: "formItem.type_id"
}
}, e._l(t.typeOption, function(e) {
return i("el-option", {
key: e.type_id,
attrs: {
label: e.name,
value: e.type_id
}
})
}))], 1) : e._e(), e._v(" "), i("el-col", {
attrs: {
span: 1
}
}, [e._v(" ")]), e._v(" "), i("el-col", {
attrs: {
span: "datetime" === t.form_type || "date" === t.form_type || "address" === t.form_type ? 13 : 8
}
}, ["select" === t.form_type ? i("el-select", {
attrs: {
placeholder: "请选择筛选条件"
},
model: {
value: t.value,
callback: function(i) {
e.$set(t, "value", i)
},
expression: "formItem.value"
}
}, e._l(t.setting, function(e) {
return i("el-option", {
key: e,
attrs: {
label: e,
value: e
}
})
})) : "date" === t.form_type || "datetime" === t.form_type ? i("el-date-picker", {
staticStyle: {
padding: "0px 10px"
},
attrs: {
"value-format": "date" === t.form_type ? "yyyy-MM-dd" : "yyyy-MM-dd HH:mm:ss",
type: "date" === t.form_type ? "daterange" : "datetimerange",
"range-separator": "-",
"start-placeholder": "开始日期",
"end-placeholder": "结束日期"
},
model: {
value: t.value,
callback: function(i) {
e.$set(t, "value", i)
},
expression: "formItem.value"
}
}) : "business_type" === t.form_type ? i("el-select", {
attrs: {
placeholder: "请选择"
},
model: {
value: t.status_id,
callback: function(i) {
e.$set(t, "status_id", i)
},
expression: "formItem.status_id"
}
}, e._l(t.statusOption, function(e) {
return i("el-option", {
key: e.status_id,
attrs: {
label: e.name,
value: e.status_id
}
})
})) : "user" === t.form_type ? i("xh-user-cell", {
attrs: {
item: t,
"info-params": {
m: "crm",
c: e.crmType,
a: "index"
}
},
on: {
"value-change": e.arrayValueChange
}
}) : "category" === t.form_type ? i("xh-prouct-cate", {
attrs: {
item: t
},
on: {
"value-change": e.arrayValueChange
}
}) : "address" === t.form_type ? i("v-distpicker", {
attrs: {
province: t.address.state,
city: t.address.city,
area: t.address.area
},
on: {
province: function(i) {
e.selectProvince(i, t)
},
city: function(i) {
e.selectCity(i, t)
},
area: function(i) {
e.selectArea(i, t)
}
}
}) : i("el-input", {
attrs: {
placeholder: "请输入筛选条件"
},
model: {
value: t.value,
callback: function(i) {
e.$set(t, "value", i)
},
expression: "formItem.value"
}
})], 1), e._v(" "), i("el-col", {
staticClass: "delete",
attrs: {
span: 1
}
}, [i("i", {
staticClass: "el-icon-error delete-btn",
on: {
click: function(t) {
e.handleDelete(a)
}
}
})])], 1)]
})], 2)], 1), e._v(" "), i("p", {
directives: [{
name: "show",
rawName: "v-show",
value: e.showErrors,
expression: "showErrors"
}],
staticClass: "el-icon-warning warning-info"
}, [i("span", {
staticClass: "desc"
}, [e._v("筛选条件中有重复项!")])]), e._v(" "), i("el-button", {
attrs: {
type: "text"
},
on: {
click: e.handleAdd
}
}, [e._v("+ 添加筛选条件")]), e._v(" "), e.isSeas ? e._e() : i("div", {
staticClass: "save"
}, [i("el-checkbox", {
model: {
value: e.saveChecked,
callback: function(t) {
e.saveChecked = t
},
expression: "saveChecked"
}
}, [e._v("保存为场景")]), e._v(" "), i("el-input", {
directives: [{
name: "show",
rawName: "v-show",
value: e.saveChecked,
expression: "saveChecked"
}],
staticClass: "name",
attrs: {
maxlength: 10,
placeholder: "请输入场景名称,最多10个字符"
},
model: {
value: e.saveName,
callback: function(t) {
e.saveName = "string" == typeof t ? t.trim() : t
},
expression: "saveName"
}
}), e._v(" "), i("div", {
directives: [{
name: "show",
rawName: "v-show",
value: e.saveChecked,
expression: "saveChecked"
}],
staticClass: "save-setting"
}, [i("el-checkbox", {
model: {
value: e.saveDefault,
callback: function(t) {
e.saveDefault = t
},
expression: "saveDefault"
}
}, [e._v("设置为默认")])], 1)], 1), e._v(" "), i("div", {
staticClass: "dialog-footer",
attrs: {
slot: "footer"
},
slot: "footer"
}, [i("el-button", {
on: {
click: e.handleCancel
}
}, [e._v("取 消")]), e._v(" "), i("el-button", {
attrs: {
type: "primary"
},
on: {
click: e.handleConfirm
}
}, [e._v("确 定")])], 1)], 1)
}, [], !1, null, "6022e216", null);
u.options.__file = "index.vue";
t.a = u.exports
},
ovzS: function(e, t, i) {},
p46I: function(e, t, i) {},
ppJE: function(e, t, i) {
"use strict";
var a = i("vG5h"),
s = i("Ew9n"),
n = i("F03V"),
l = i("UEWd"),
o = i("QJC7"),
c = i("8KPp"),
r = i("gd5k"),
d = i("aQg/"),
u = i("y9lt"),
m = i("KzkL"),
h = i("7Qib"),
p = i("i68b"),
f = {
name: "CustomerFollow",
components: {
MixAdd: l.a,
RecordLog: o.a,
JournalLog: c.a,
ExamineLog: r.a,
TaskLog: d.a,
ScheduleLog: u.a
},
mixins: [p.a],
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
},
isSeas: {
type: Boolean,
default:
!1
}
},
data: function() {
return {
sendLoading: !1,
next_time: "",
is_event: !1,
logType: "record"
}
},
computed: {
logTypes: function() {
return this.oa ? [{
type: "record",
name: "跟进记录"
}, {
type: "log",
name: "日志"
}, {
type: "examine",
name: "审批"
}, {
type: "task",
name: "任务"
}, {
type: "schedule",
name: "日程"
}] : [{
type: "record",
name: "跟进记录"
}]
},
componentsName: function() {
return "record" == this.logType ? "RecordLog" : "log" == this.logType ? "JournalLog" : "examine" == this.logType ? "ExamineLog" : "task" == this.logType ? "TaskLog" : "schedule" == this.logType ? "ScheduleLog" : ""
}
},
watch: {},
mounted: function() {},
activated: function() {},
deactivated: function() {},
methods: {
handleTypeDrop: function(e) {
this.followType = e
},
logTabsClick: function(e, t) {
this.logType = e.type
},
sendInfo: function() {
this.$refs.mixadd.$emit("submit-info")
},
submitInfo: function(e) {
var t = this;
if (!this.is_event || this.next_time) {
var i = {};
i.types = "crm_" + this.crmType, i.types_id = this.id, i.content = e.content, i.category = this.followType;
var a = e.images.map(function(e, t, i) {
return e.file_id
}),
s = e.files.map(function(e, t, i) {
return e.file_id
}),
n = e.business.map(function(e, t, i) {
return e.business_id
}),
l = e.contacts.map(function(e, t, i) {
return e.contacts_id
});
i.file_id = a.concat(s), i.business_ids = n, i.contacts_ids = l, this.next_time && (i.is_event = this.is_event ? 1 : 0, i.next_time = Object(h.d)(this.next_time)), this.sendLoading = !0, Object(m.l)(i).then(function(e) {
t.sendLoading = !1, t.$message.success(e.data), t.$refs.mixadd.resetInfo(), t.is_event = !1, t.next_time = "", t.$bus.emit("follow-log-refresh", {
type: "record-log"
})
}).
catch (function() {
t.sendLoading = !1
})
} else this.$message.error("请选择下次联系时间")
}
}
},
v = (i("6ENb"), i("KHd+")),
g = Object(v.a)(f, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "f-container"
}, [e.isSeas ? e._e() : i("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.sendLoading,
expression: "sendLoading"
}]
}, [i("mix-add", {
ref: "mixadd",
attrs: {
"crm-type": e.crmType,
id: e.id,
"show-relative-business": !0,
"show-relative-contacts": !0
},
on: {
"mixadd-info": e.submitInfo
}
}), e._v(" "), i("flexbox", {
staticClass: "se-section"
}, [i("div", {
staticClass: "se-name"
}, [e._v("记录类型")]), e._v(" "), i("el-dropdown", {
staticStyle: {
"margin-right": "20px"
},
attrs: {
trigger: "click"
},
on: {
command: e.handleTypeDrop
}
}, [i("flexbox", {
staticClass: "se-select"
}, [i("div", {
staticClass: "se-select-name"
}, [e._v(e._s(e.followType ? e.followType : "请选择"))]), e._v(" "), i("i", {
staticClass: "el-icon-arrow-down el-icon--right",
staticStyle: {
color: "#ccc"
}
})]), e._v(" "), i("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, e._l(e.followTypes, function(t, a) {
return i("el-dropdown-item", {
key: a,
attrs: {
command: t.type
}
}, [e._v(e._s(t.name))])
}))], 1), e._v(" "), i("div", {
staticClass: "se-name"
}, [e._v("下次联系时间")]), e._v(" "), i("el-date-picker", {
staticClass: "se-datepicker",
attrs: {
"default-value": new Date,
editable: !1,
type: "datetime",
placeholder: "选择日期",
"value-format": "yyyy-MM-dd HH:mm:ss"
},
model: {
value: e.next_time,
callback: function(t) {
e.next_time = t
},
expression: "next_time"
}
}), e._v(" "), e.showOAPermission ? i("el-checkbox", {
model: {
value: e.is_event,
callback: function(t) {
e.is_event = t
},
expression: "is_event"
}
}, [e._v("添加到日程提醒")]) : e._e(), e._v(" "), i("el-button", {
staticClass: "se-send",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.sendInfo(t)
}
}
}, [e._v("发布")])], 1)], 1), e._v(" "), i("div", {
staticClass: "log-cont"
}, [i("flexbox", {
staticStyle: {
"border-bottom": "1px solid #E6E6E6"
}
}, e._l(e.logTypes, function(t, a) {
return i("flexbox", {
key: a,
staticStyle: {
width: "auto"
},
nativeOn: {
click: function(i) {
e.logTabsClick(t, a)
}
}
}, [i("div", {
staticClass: "log-tabs-item",
style: {
color: e.logType == t.type ? "#F18C70" : "#777"
}
}, [e._v(e._s(t.name))]), e._v(" "), e.logTypes.length - 1 != a ? i("div", {
staticClass: "log-tabs-line"
}) : e._e()])
})), e._v(" "), i("keep-alive", [i(e.componentsName, {
tag: "component",
attrs: {
id: e.id,
"crm-type": e.crmType
}
})], 1)], 1)])
}, [], !1, null, "4f588198", null);
g.options.__file = "CustomerFollow.vue";
var b = g.exports,
_ = i("U05J"),
y = i("/U9q"),
w = i("5j45"),
C = i("cYid"),
k = i("+NTD"),
I = i("C+sD"),
x = i("8DbX"),
A = i("DUlf"),
D = i("EgJF"),
R = i("4+0Q"),
T = {
name: "CustomerDetail",
components: {
SlideView: s.a,
CustomerFollow: b,
CRMDetailHead: n.a,
CRMBaseInfo: _.a,
RelativeContacts: y.a,
RelativeBusiness: w.a,
RelativeContract: C.a,
RelativeReturnMoney: k.a,
RelativeFiles: I.a,
RelativeHandle: x.a,
RelativeTeam: A.a,
CRMCreateView: D.
default
},
mixins: [R.a],
props: {
id: [String, Number],
listenerIDs: {
type: Array,
default:
function() {
return ["crm-main-container"]
}
},
noListenerIDs: {
type: Array,
default:
function() {
return []
}
},
noListenerClass: {
type: Array,
default:
function() {
return ["el-table__body"]
}
}
},
data: function() {
return {
loading: !1,
crmType: "customer",
detailData: {},
// headDetails: [
// {
// title: "客户级别",
// value: ""
// }, {
// title: "成交状态",
// value: ""
// },
// {
// title: "负责人",
// value: ""
// }, {
// title: "更新时间",
// value: ""
// }],
tabCurrentName: "basicinfo",
isCreate: !1
}
},
computed: {
tabName: function() {
return "followlog" == this.tabCurrentName ? "customer-follow" : "basicinfo" == this.tabCurrentName ? "c-r-m-base-info" : "contacts" == this.tabCurrentName ? "relative-contacts" : "team" == this.tabCurrentName ? "relative-team" : "business" == this.tabCurrentName ? "relative-business" : "contract" == this.tabCurrentName ? "relative-contract" : "returnedmoney" == this.tabCurrentName ? "relative-return-money" : "file" == this.tabCurrentName ? "relative-files" : "operationlog" == this.tabCurrentName ? "relative-handle" : ""
},
tabnames: function() {
var e = [];
return e.push({
label: "跟进记录",
name: "followlog"
}), this.crm.customer && this.crm.customer.read && e.push({
label: "基本信息",
name: "basicinfo"
}), this.crm.contacts && this.crm.contacts.index && e.push({
label: "联系人",
name: "contacts"
}), e.push({
label: "相关团队",
name: "team"
}), this.crm.business && this.crm.business.index && e.push({
label: "商机",
name: "business"
}), this.crm.contract && this.crm.contract.index && e.push({
label: "合同",
name: "contract"
}), this.crm.receivables && this.crm.receivables.index && e.push({
label: "回款信息",
name: "returnedmoney"
}), e.push({
label: "附件",
name: "file"
}), e.push({
label: "操作记录",
name: "operationlog"
}), e
},
isSeasDetail: function() {
return this.detailData && this.detailData.hasOwnProperty("is_pool") ? 1 == this.detailData.is_pool : this.isSeas
}
},
mounted: function() {},
methods: {
getDetial: function() {
var e = this;
this.loading = !0, Object(a.l)({
id: this.id
}).then(function(t) {
e.loading = !1, e.detailData = t.data, e.headDetails[0].value = t.data.level, e.headDetails[1].value = t.data.deal_status, e.headDetails[2].value = e.isSeasDetail ? "- -" : t.data.owner_user_id_info ? t.data.owner_user_id_info.realname : "", e.headDetails[3].value = t.data.update_time
}).
catch (function(t) {
t && 102 == t.code && (e.hasRequestAuth = !1), e.loading = !1
})
},
hideView: function() {
this.$emit("hide-view")
},
handleClick: function(e, t) {},
editSaveSuccess: function() {
this.$emit("handle", {
type: "save-success"
}), this.getDetial()
}
}
},
E = (i("Yytf"), Object(v.a)(T, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("slide-view", {
directives: [{
name: "empty",
rawName: "v-empty",
value: !e.canShowDetail,
expression: "!canShowDetail"
}],
attrs: {
"listener-ids": e.listenerIDs,
"no-listener-ids": e.noListenerIDs,
"no-listener-class": e.noListenerClass,
"body-style": {
padding: 0,
height: "100%"
},
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
},
on: {
"side-close": e.hideView
}
}, [e.canShowDetail ? i("flexbox", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
staticClass: "d-container",
attrs: {
direction: "column",
align: "stretch"
}
}, [i("c-r-m-detail-head", {
attrs: {
"is-seas": e.isSeasDetail,
detail: e.detailData,
"head-details": e.headDetails,
id: e.id,
"crm-type": "customer"
},
on: {
handle: e.detailHeadHandle,
close: e.hideView
}
}), e._v(" "), i("div", {
staticClass: "tabs"
}, [i("el-tabs", {
on: {
"tab-click": e.handleClick
},
model: {
value: e.tabCurrentName,
callback: function(t) {
e.tabCurrentName = t
},
expression: "tabCurrentName"
}
}, e._l(e.tabnames, function(e, t) {
return i("el-tab-pane", {
key: t,
attrs: {
label: e.label,
name: e.name
}
})
}))], 1), e._v(" "), i("div", {
staticClass: "t-loading-content",
attrs: {
id: "follow-log-content"
}
}, [i("keep-alive", [i(e.tabName, {
tag: "component",
attrs: {
detail: e.detailData,
id: e.id,
"is-seas": e.isSeasDetail,
"crm-type": "customer"
}
})], 1)], 1)], 1) : e._e(), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
action: {
type: "update",
id: e.id
},
"crm-type": "customer"
},
on: {
"save-success": e.editSaveSuccess,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "5c0d4d52", null));
E.options.__file = "CustomerDetail.vue";
t.a = E.exports
},
qYtx: function(e, t, i) {},
rGpO: function(e, t, i) {},
rl4O: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUzM0EzN0E0RTA5QjExRTg4MTZEOEM2ODYxNjE5QjM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUzM0EzN0E1RTA5QjExRTg4MTZEOEM2ODYxNjE5QjM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTMzQTM3QTJFMDlCMTFFODgxNkQ4QzY4NjE2MTlCMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTMzQTM3QTNFMDlCMTFFODgxNkQ4QzY4NjE2MTlCMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7neeY0AAABL0lEQVR42syUv0tCURSA1Vzam5ya+h8ag5DG3GpqqsAiwVFoECJc+jGpCFZrLTpFUjQ7PPwjClxyiCY3+y6cB5fLud0rOXjhG965j++de865L5skSWaRK5dZ8JpHmIUG/MAA1v4jNLIWVKAO6/CmSWOFO3AAJbiCLVjVpLHCV9iAF3ke+6S5wDFr8Az78Ons29LHkNDImnAO3/AAZeU9I+3AZhrI/9EAU7Nd6egIbuEJJk5tL2RPzVCTpfGZ0qieZF/TMvTJzmT+TqzsbFnZ/pidYUORHcKNzF87JHMzPJXUB1ZsBY6gGyNzhUM4lhEYS6ztqZkqc4+8B1N4h4LSgH5I5gq/YFuRprL7kEwbm4kjrYrsLkbmuymp9AMu4VpGZhZz6fOeuJEWl+KP/SvAAHR5UyjSji44AAAAAElFTkSuQmCC"
},
sAYG: function(e, t, i) {},
svWA: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE1NUY2OTMzRjEzRTExRTg4NDAxQkEzQkYwMjU3REExIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE1NUY2OTM0RjEzRTExRTg4NDAxQkEzQkYwMjU3REExIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTU1RjY5MzFGMTNFMTFFODg0MDFCQTNCRjAyNTdEQTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTU1RjY5MzJGMTNFMTFFODg0MDFCQTNCRjAyNTdEQTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz70mGn0AAABSElEQVR42qyUsUoDQRRFs4tNsFTU2h8QQQQtVPwCm0UtBFE/wCJfIQrBWlBIYWQbDVgqaKEQLGItsRQU00Xtsp6RuyBhXtzFfXB2hpk7l30zbyZIkqRUZAy5TxzH/zaKouinDY15N74ODXiDRG1D49Y678QkNOEAWjKYVtvSeFM6f8p9ZvdwCUvQ7Zu/gj04lG4Onq0/dP0zuIAtj1kaXc2fSx9ahmswAbsZz8HpxrXOa7gBx/CZ0fALTrTOazgDNzmr5RamrEMZVWmkMajiA7WvMGIZvsOYZ9GgcHvYsVJ+gMWcKS/Ao2VYg00oZzQrS1+zDOvak2pGw6r0dWsPe6qpO/Ur8OExGoZ9WIF5ac2r15bI3YAnOIJrHZirgmXYgRfp2n/d5dR0Flb1IGzLrKODqyjNXpbH4Xf6pyJXBEW/2GGp4PgWYAAHtEsSK3MhmAAAAABJRU5ErkJggg=="
},
tgh5: function(e, t, i) {
"use strict";
var a = i("NUF6");
i.n(a).a
},
toL5: function(e, t, i) {
"use strict";
var a = i("g1FD");
i.n(a).a
},
uWiH: function(e, t, i) {},
uXkD: function(e, t, i) {},
wF9U: function(e, t, i) {
"use strict";
var a = i("LWW7");
i.n(a).a
},
"wb/L": function(e, t, i) {},
wktz: function(e, t, i) {
"use strict";
var a = i("SoCr");
i.n(a).a
},
woiz: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhGQTE4Q0EzRjM4ODExRThCNjlDOEQxMEUxMzYwREE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhGQTE4Q0E0RjM4ODExRThCNjlDOEQxMEUxMzYwREE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OEZBMThDQTFGMzg4MTFFOEI2OUM4RDEwRTEzNjBEQTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OEZBMThDQTJGMzg4MTFFOEI2OUM4RDEwRTEzNjBEQTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4R34ZtAAABfUlEQVR42pzUPUsDQRDG8eTQVBZiQhqxU6KoWKiFhaAQ21gqQcXGTxDFSsRKBOMXsBGi+NLFlBYighbmClGLgFZiE1+wECGd/4HnZDmSIA78uNzN7LC3t5touVyOhKINS5jGIDrwgTsUsYsvd4AXapBFBaPIoxdRXfN6XlHdb7Q4v9exgAz8UPNXlGQYJ+jBhtskqwZjqEaah6+6azxh39MabGPmDw2CqKp+B+3WZBHnCFb4UuqFm7P6M8x5WoNCqDjaZBZuzsZlbE36nVlYjDdpEM7dYsBmksBb5H/xjrinHwknUUOswaCY8kHEbbw1uceIk3jWHqgX9vzFuR/CgzU5xbyTONTGqxdroY9g44rWZA+Tzmw20Ykj9KFVV7vvwpbqrH4q2Gx2mFZUlMQ30jojJeVLuk8rn1R9Dp/Btj9AN660E329Ur3XsrNzrNcqhA+gHaZHrdGF1sbX549r+rOYwKq9RqO/AptRCjdY1n9ITV8wp02ZchtY/AgwAM3YV79CKIEGAAAAAElFTkSuQmCC"
},
"wu/m": function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJFRDI1M0Q1NDE2NTExRTk4NTFFODEzNjdCN0UzRTFCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJFRDI1M0Q2NDE2NTExRTk4NTFFODEzNjdCN0UzRTFCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkVEMjUzRDM0MTY1MTFFOTg1MUU4MTM2N0I3RTNFMUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkVEMjUzRDQ0MTY1MTFFOTg1MUU4MTM2N0I3RTNFMUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4ZL3N5AAABQklEQVR42mJ0O3ueAQtgA+IAKLYEYikg/gXET4AYpGE9EG+EiqEAFiyGBQJxFxCrYLFEA4ojgfgOEJcD8TpkRUxIbGYg7oQqUGEgDEBq1kL1MGNzYRsQlzGQDmB6ypFdGEKmYciGhsAMBIVNPz7VvWqqYEwATACZBfJyKBDL4FOpw8NNjCulgTiMCZo0qAUCQAaaUtFAE5CXJbCFGTZv7jQygLOvfPnKUHzrNroSSSZsqZ0YwIhDHOTC50DMiyyIbjPMZe7nLhCy5znIhZeoGIZnQAZuoKKBG0AGroaWIjgBKAKuAjEB8BRkFgs0UoqAeBUulVhiExsoBOKfsLwMcmU3BV7thpqBUnxVAvEUMgybCtWLUR7+BeJcaKlxhwiD7kDLgRyoXpwlNqjQ3AxVDCq9jaEZHxbwZ6FVwGpsmQIgwAD7IEenGBpwRwAAAABJRU5ErkJggg=="
},
"xfX+": function(e, t, i) {
"use strict";
var a = i("6zBA"),
s = i("Ew9n"),
n = i("F03V"),
l = i("UEWd"),
o = i("QJC7"),
c = i("8KPp"),
r = i("gd5k"),
d = i("aQg/"),
u = i("y9lt"),
m = i("KzkL"),
h = i("7Qib"),
p = i("i68b"),
f = {
name: "ContractFollow",
components: {
MixAdd: l.a,
RecordLog: o.a,
JournalLog: c.a,
ExamineLog: r.a,
TaskLog: d.a,
ScheduleLog: u.a
},
mixins: [p.a],
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
sendLoading: !1,
next_time: "",
is_event: !1,
logType: "record"
}
},
computed: {
logTypes: function() {
return this.oa ? [{
type: "record",
name: "跟进记录"
}, {
type: "log",
name: "日志"
}, {
type: "examine",
name: "审批"
}, {
type: "task",
name: "任务"
}, {
type: "schedule",
name: "日程"
}] : [{
type: "record",
name: "跟进记录"
}]
},
componentsName: function() {
return "record" == this.logType ? "RecordLog" : "log" == this.logType ? "JournalLog" : "examine" == this.logType ? "ExamineLog" : "task" == this.logType ? "TaskLog" : "schedule" == this.logType ? "ScheduleLog" : ""
}
},
watch: {},
mounted: function() {},
activated: function() {},
deactivated: function() {},
methods: {
handleTypeDrop: function(e) {
this.followType = e
},
logTabsClick: function(e, t) {
this.logType = e.type
},
sendInfo: function() {
this.$refs.mixadd.$emit("submit-info")
},
submitInfo: function(e) {
var t = this;
if (!this.is_event || this.next_time) {
var i = {};
i.types = "crm_" + this.crmType, i.types_id = this.id, i.content = e.content, i.category = this.followType;
var a = e.images.map(function(e, t, i) {
return e.file_id
}),
s = e.files.map(function(e, t, i) {
return e.file_id
});
i.file_id = a.concat(s), this.next_time && (i.is_event = this.is_event ? 1 : 0, i.next_time = Object(h.d)(this.next_time)), this.sendLoading = !0, Object(m.l)(i).then(function(e) {
t.sendLoading = !1, t.$message.success(e.data), t.$refs.mixadd.resetInfo(), t.is_event = !1, t.next_time = "", t.$bus.emit("follow-log-refresh", {
type: "record-log"
})
}).
catch (function() {
t.sendLoading = !1
})
} else this.$message.error("请选择下次联系时间")
}
}
},
v = (i("6jE7"), i("KHd+")),
g = Object(v.a)(f, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
staticClass: "f-container"
}, [i("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.sendLoading,
expression: "sendLoading"
}]
}, [i("mix-add", {
ref: "mixadd",
attrs: {
"crm-type": e.crmType,
id: e.id
},
on: {
"mixadd-info": e.submitInfo
}
}), e._v(" "), i("flexbox", {
staticClass: "se-section"
}, [i("div", {
staticClass: "se-name"
}, [e._v("记录类型")]), e._v(" "), i("el-dropdown", {
staticStyle: {
"margin-right": "20px"
},
attrs: {
trigger: "click"
},
on: {
command: e.handleTypeDrop
}
}, [i("flexbox", {
staticClass: "se-select"
}, [i("div", {
staticClass: "se-select-name"
}, [e._v(e._s(e.followType ? e.followType : "请选择"))]), e._v(" "), i("i", {
staticClass: "el-icon-arrow-down el-icon--right",
staticStyle: {
color: "#ccc"
}
})]), e._v(" "), i("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, e._l(e.followTypes, function(t, a) {
return i("el-dropdown-item", {
key: a,
attrs: {
command: t.type
}
}, [e._v(e._s(t.name))])
}))], 1), e._v(" "), i("div", {
staticClass: "se-name"
}, [e._v("下次联系时间")]), e._v(" "), i("el-date-picker", {
staticClass: "se-datepicker",
attrs: {
"default-value": new Date,
editable: !1,
type: "datetime",
placeholder: "选择日期",
"value-format": "yyyy-MM-dd HH:mm:ss"
},
model: {
value: e.next_time,
callback: function(t) {
e.next_time = t
},
expression: "next_time"
}
}), e._v(" "), e.showOAPermission ? i("el-checkbox", {
model: {
value: e.is_event,
callback: function(t) {
e.is_event = t
},
expression: "is_event"
}
}, [e._v("添加到日程提醒")]) : e._e(), e._v(" "), i("el-button", {
staticClass: "se-send",
attrs: {
type: "primary"
},
nativeOn: {
click: function(t) {
return e.sendInfo(t)
}
}
}, [e._v("发布")])], 1)], 1), e._v(" "), i("div", {
staticClass: "log-cont"
}, [i("flexbox", {
staticStyle: {
"border-bottom": "1px solid #E6E6E6"
}
}, e._l(e.logTypes, function(t, a) {
return i("flexbox", {
key: a,
staticStyle: {
width: "auto"
},
nativeOn: {
click: function(i) {
e.logTabsClick(t, a)
}
}
}, [i("div", {
staticClass: "log-tabs-item",
style: {
color: e.logType == t.type ? "#F18C70" : "#777"
}
}, [e._v(e._s(t.name))]), e._v(" "), e.logTypes.length - 1 != a ? i("div", {
staticClass: "log-tabs-line"
}) : e._e()])
})), e._v(" "), i("keep-alive", [i(e.componentsName, {
tag: "component",
attrs: {
id: e.id,
"crm-type": e.crmType
}
})], 1)], 1)])
}, [], !1, null, "1f0129cc", null);
g.options.__file = "ContractFollow.vue";
var b = g.exports,
_ = i("U05J"),
y = i("8DbX"),
w = i("DUlf"),
C = i("SE13"),
k = i("+NTD"),
I = i("C+sD"),
x = i("3biH"),
A = i("EgJF"),
D = i("4+0Q"),
R = {
name: "ContractDetail",
components: {
SlideView: s.a,
CRMDetailHead: n.a,
ContractFollow: b,
CRMBaseInfo: _.a,
RelativeHandle: y.a,
RelativeTeam: w.a,
RelativeProduct: C.a,
RelativeReturnMoney: k.a,
RelativeFiles: I.a,
ExamineInfo: x.a,
CRMCreateView: A.
default
},
mixins: [D.a],
props: {
id: [String, Number],
listenerIDs: {
type: Array,
default:
function() {
return ["crm-main-container"]
}
},
noListenerIDs: {
type: Array,
default:
function() {
return []
}
},
noListenerClass: {
type: Array,
default:
function() {
return ["el-table__body"]
}
}
},
data: function() {
return {
loading: !1,
crmType: "contract",
isRefresh: !0,
detailData: {},
headDetails: [{
title: "合同编号",
value: ""
}, {
title: "客户名称",
value: ""
}, {
title: "合同金额(元)",
value: ""
}, {
title: "下单时间",
value: ""
}, {
title: "回款金额(元)",
value: ""
}, {
title: "负责人",
value: ""
}],
tabCurrentName: "followlog",
isCreate: !1
}
},
computed: {
tabName: function() {
return "followlog" == this.tabCurrentName ? "contract-follow" : "basicinfo" == this.tabCurrentName ? "c-r-m-base-info" : "team" == this.tabCurrentName ? "relative-team" : "contract" == this.tabCurrentName ? "relative-contract" : "operationlog" == this.tabCurrentName ? "relative-handle" : "product" == this.tabCurrentName ? "relative-product" : "returnedmoney" == this.tabCurrentName ? "relative-return-money" : "file" == this.tabCurrentName ? "relative-files" : ""
},
tabnames: function() {
var e = [];
return e.push({
label: "跟进记录",
name: "followlog"
}), this.crm.contract && this.crm.contract.read && e.push({
label: "基本信息",
name: "basicinfo"
}), this.crm.product && this.crm.product.index && e.push({
label: "产品",
name: "product"
}), this.crm.receivables && this.crm.receivables.index && e.push({
label: "回款信息",
name: "returnedmoney"
}), e.push({
label: "相关团队",
name: "team"
}), e.push({
label: "附件",
name: "file"
}), e.push({
label: "操作记录",
name: "operationlog"
}), e
}
},
mounted: function() {},
methods: {
getDetial: function() {
var e = this;
this.loading = !0, Object(a.g)({
id: this.id
}).then(function(t) {
e.loading = !1, e.detailData = t.data, e.headDetails[0].value = t.data.num, e.headDetails[1].value = t.data.customer_id_info ? t.data.customer_id_info.name : "", e.headDetails[2].value = e.moneyFormat(t.data.money), e.headDetails[3].value = "0000-00-00" == t.data.order_date ? "" : t.data.order_date, e.headDetails[4].value = e.moneyFormat(t.data.receivablesMoney.doneMoney), e.headDetails[5].value = t.data.owner_user_id_info ? t.data.owner_user_id_info.realname : ""
}).
catch (function(t) {
t && 102 == t.code && (e.hasRequestAuth = !1), e.loading = !1
})
},
hideView: function() {
this.$emit("hide-view")
},
handleClick: function(e, t) {},
editSaveSuccess: function() {
this.$emit("handle", {
type: "save-success"
}), this.isRefresh = !this.isRefresh, this.getDetial()
},
examineCellHandle: function(e) {
e && this.getDetial()
}
}
},
T = (i("m8oD"), Object(v.a)(R, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("slide-view", {
directives: [{
name: "empty",
rawName: "v-empty",
value: !e.canShowDetail,
expression: "!canShowDetail"
}],
attrs: {
"listener-ids": e.listenerIDs,
"no-listener-ids": e.noListenerIDs,
"no-listener-class": e.noListenerClass,
"body-style": {
padding: 0,
height: "100%"
},
"xs-empty-icon": "nopermission",
"xs-empty-text": "暂无权限"
},
on: {
"side-close": e.hideView
}
}, [e.canShowDetail ? i("flexbox", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}],
staticClass: "d-container",
attrs: {
direction: "column",
align: "stretch"
}
}, [i("c-r-m-detail-head", {
attrs: {
detail: e.detailData,
"head-details": e.headDetails,
id: e.id,
"crm-type": "contract"
},
on: {
handle: e.detailHeadHandle,
close: e.hideView
}
}), e._v(" "), i("div", {
staticClass: "examine-info"
}, [i("examine-info", {
staticClass: "examine-info-border",
attrs: {
id: e.id,
refresh: e.isRefresh,
flow_id: e.detailData.flow_id,
"examine-type": "crm_contract"
},
on: {
"on-handle": e.examineCellHandle
}
})], 1), e._v(" "), i("div", {
staticClass: "tabs"
}, [i("el-tabs", {
on: {
"tab-click": e.handleClick
},
model: {
value: e.tabCurrentName,
callback: function(t) {
e.tabCurrentName = t
},
expression: "tabCurrentName"
}
}, e._l(e.tabnames, function(e, t) {
return i("el-tab-pane", {
key: t,
attrs: {
label: e.label,
name: e.name
}
})
}))], 1), e._v(" "), i("div", {
staticClass: "t-loading-content",
attrs: {
id: "follow-log-content"
}
}, [i("keep-alive", [i(e.tabName, {
tag: "component",
attrs: {
detail: e.detailData,
id: e.id,
"crm-type": "contract"
}
})], 1)], 1)], 1) : e._e(), e._v(" "), e.isCreate ? i("c-r-m-create-view", {
attrs: {
action: {
type: "update",
id: e.id
},
"crm-type": "contract"
},
on: {
"save-success": e.editSaveSuccess,
"hiden-view": function(t) {
e.isCreate = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "2de3ab41", null));
T.options.__file = "ContractDetail.vue";
t.a = T.exports
},
y4JV: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkMwMDM5QTNCNDE2NTExRTk5ODY1RTZGN0EwMzg2MEE4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkMwMDM5QTNDNDE2NTExRTk5ODY1RTZGN0EwMzg2MEE4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzAwMzlBMzk0MTY1MTFFOTk4NjVFNkY3QTAzODYwQTgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QzAwMzlBM0E0MTY1MTFFOTk4NjVFNkY3QTAzODYwQTgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5ZqqPOAAAB00lEQVR42mJ0O3ueAQtgA+IAKLYEYikg/gXET4AYpGE9EG+EiqEAFiyGBQJxFxCrYLFEA4ojgfgOEJcD8TpkRUxIbGYg7oQqUGEgDEBq1kL1MGNzYRsQlzGQDmB6ypFdGEKmYciGhsAMBIVNPwPlYALILJCBoUAsQwUDpYE4jAmaNEgCMuzsDHO0NBh61DDiLgBkoCkphqlycTH0qqsyyHJwMPz69x9d2gRkoARGYAA1TNdUZxBjY0MRN+TlZehWVWEQYGFhOP7xI0PjvfvoWiWZsKV2kMVKnJwM/UCDFTg5wGK2AgIMLSpKDJzMTAw7375jaLr3gOHnv38YPmAEZr2bQFoNWZCTiYmhVkmRwZiPl+HL378MO968ZQgSE2VgYmRkWPXyFcO8p88Y/mMPkYcgF15CF/0OtLnu7j2Gg+8/MPAwMzOEiIsxMAINm/XkKcNc3IaBwBmQgRuwyfz5/5+h/f4DhvWvXoNd2f3gEcNaIJsA2ADyMijk71IhLT4FYmVYpBRRIWEXAvFPWF5eDcTdFBjWDTUDpfiqBOIpZBg2FaoXozz8C8S50FLjDhEG3YGWAzlQvThLbFChuRmqGFR6G0MzPizgz0KrgNXYMgVAgAEAQ6R42TeJ/UsAAAAASUVORK5CYII="
},
y9lt: function(e, t, i) {
"use strict";
var a = i("FyfS"),
s = i.n(a),
n = i("KzkL"),
l = {
name: "FollowScheduleCell",
components: {},
filters: {
getRemindtypeText: function(e) {
switch (e) {
case 0:
return "无";
case 1:
return "准时提醒";
case 2:
return "5分钟前";
case 3:
return "15分钟前";
case 4:
return "30分钟前";
case 5:
return "一个小时前";
case 6:
return "二个小时前";
case 7:
return "一天前";
case 8:
return "二天前";
case 9:
return "一周前"
}
return ""
}
},
props: {
data: Object
},
data: function() {
return {}
},
computed: {},
mounted: function() {},
methods: {
checkRelatedDetail: function(e, t) {
this.$emit("on-handle", {
type: "related-detail",
data: {
type: e,
item: t
}
})
},
handleCommand: function(e) {
this.$emit("on-handle", {
type: e,
data: {
item: this.data
}
})
}
}
},
o = (i("UHbi"), i("KHd+")),
c = Object(o.a)(l, function() {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("div", {
staticClass: "fl-c"
}, [a("flexbox", {
staticClass: "fl-h"
}, [a("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: e.data.create_user_info,
expression: "data.create_user_info"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(e.data.create_user_info.thumb_img),
expression: "$options.filters.filterUserLazyImg(data.create_user_info.thumb_img)",
arg: "background-image"
}],
key: e.data.create_user_info.thumb_img,
staticClass: "div-photo fl-h-img"
}), e._v(" "), a("div", {
staticClass: "fl-h-b"
}, [a("div", {
staticClass: "fl-h-name"
}, [e._v(e._s(e.data.create_user_info.realname))]), e._v(" "), a("div", {
staticClass: "fl-h-time"
}, [e._v(e._s(e._f("filterTimestampToFormatTime")(e.data.create_time)))])]), e._v(" "), a("el-dropdown", {
attrs: {
trigger: "click"
},
on: {
command: e.handleCommand
}
}, [a("i", {
staticClass: "el-icon-arrow-down el-icon-more",
staticStyle: {
color: "#CDCDCD"
}
}), e._v(" "), a("el-dropdown-menu", {
attrs: {
slot: "dropdown"
},
slot: "dropdown"
}, [a("el-dropdown-item", {
attrs: {
command: "edit"
}
}, [e._v("编辑")]), e._v(" "), a("el-dropdown-item", {
attrs: {
command: "delete"
}
}, [e._v("删除")])], 1)], 1)], 1), e._v(" "), a("div", {
staticClass: "fl-b"
}, [a("div", [a("div", {
staticClass: "state-color",
style: {
"background-color": e.data.color ? e.data.color : "#fff"
}
}), e._v(e._s(e.data.title) + "\n ")]), e._v(" "), a("div", {
staticClass: "fl-b-des"
}, [a("flexbox", {
staticClass: "fl-b-des-item"
}, [a("div", {
staticClass: "fl-b-des-item-name"
}, [e._v("参与人:")]), e._v(" "), a("div", {
staticClass: "owner-list"
}, e._l(e.data.ownerList, function(t, i) {
return a("span", {
key: i
}, [a("el-tooltip", {
attrs: {
placement: "bottom",
effect: "light",
"popper-class": "tooltip-change-border"
}
}, [a("div", {
attrs: {
slot: "content"
},
slot: "content"
}, [a("span", [e._v(e._s(t.realname))])]), e._v(" "), a("div", {
directives: [{
name: "photo",
rawName: "v-photo",
value: t,
expression: "k"
}, {
name: "lazy",
rawName: "v-lazy:background-image",
value: e.$options.filters.filterUserLazyImg(t.thumb_img),
expression: "$options.filters.filterUserLazyImg(k.thumb_img)",
arg: "background-image"
}],
key: t.thumb_img,
staticClass: "div-photo header-circle"
})])], 1)
}))]), e._v(" "), a("flexbox", {
staticClass: "fl-b-des-item"
}, [a("div", {
staticClass: "fl-b-des-item-name"
}, [e._v("开始时间:")]), e._v(" "), a("div", [e._v(e._s(e._f("moment")(e.data.start_time, "YYYY-MM-DD HH:mm:ss")))])]), e._v(" "), a("flexbox", {
staticClass: "fl-b-des-item"
}, [a("div", {
staticClass: "fl-b-des-item-name"
}, [e._v("结束时间:")]), e._v(" "), a("div", [e._v(e._s(e._f("moment")(e.data.end_time, "YYYY-MM-DD HH:mm:ss")))])]), e._v(" "), a("flexbox", {
staticClass: "fl-b-des-item"
}, [a("div", {
staticClass: "fl-b-des-item-name"
}, [e._v("备注:")]), e._v(" "), a("div", [e._v(e._s(e.data.remark))])])], 1), e._v(" "), e.data.contactsList.length > 0 || e.data.customerList.length > 0 || e.data.businessList.length > 0 || e.data.contractList.length > 0 ? a("div", {
staticClass: "related-business"
}, [a("div", {
staticClass: "label"
}, [e._v("关联业务")]), e._v(" "), e._l(e.data.contactsList, function(t, s) {
return a("p", {
key: "contacts" + s,
on: {
click: function(i) {
e.checkRelatedDetail("contacts", t)
}
}
}, [a("img", {
attrs: {
src: i("AFlK"),
alt: ""
}
}), e._v("\n 联系人-" + e._s(t.name) + "\n ")])
}), e._v(" "), e._l(e.data.customerList, function(t, s) {
return a("p", {
key: "customer" + s,
on: {
click: function(i) {
e.checkRelatedDetail("customer", t)
}
}
}, [a("img", {
attrs: {
src: i("AFlK"),
alt: ""
}
}), e._v("\n 客户-" + e._s(t.name) + "\n ")])
}), e._v(" "), e._l(e.data.businessList, function(t, s) {
return a("p", {
key: "business" + s,
on: {
click: function(i) {
e.checkRelatedDetail("business", t)
}
}
}, [a("img", {
attrs: {
src: i("AFlK"),
alt: ""
}
}), e._v("\n 商机-" + e._s(t.name) + "\n ")])
}), e._v(" "), e._l(e.data.contractList, function(t, s) {
return a("p", {
key: "contract" + s,
on: {
click: function(i) {
e.checkRelatedDetail("contract", t)
}
}
}, [a("img", {
attrs: {
src: i("AFlK"),
alt: ""
}
}), e._v("\n 合同-" + e._s(t.name) + "\n ")])
})], 2) : e._e()])], 1)
}, [], !1, null, "9d312f0a", null);
c.options.__file = "FollowScheduleCell.vue";
var r = c.exports,
d = i("Dh/N"),
u = i("BuGm"),
m = i("7Qib"),
h = {
name: "ScheduleLog",
components: {
FollowScheduleCell: r,
CRMFullScreenDetail: function() {
return Promise.all([i.e("chunk-11a6"), i.e("chunk-e347"), i.e("chunk-f93a")]).then(i.bind(null, "uMjE"))
},
CreateSchedule: u.
default
},
props: {
id: [String, Number],
crmType: {
type: String,
default:
""
}
},
data: function() {
return {
loading: !1,
loadMoreLoading: !0,
isPost: !1,
page: 1,
list: [],
showFullDetail: !1,
detailCRMType: "",
rowID: "",
showDialog: !1,
formData: {
checkList: []
},
newtext: ""
}
},
computed: {},
watch: {
id: function(e) {
this.refreshList()
}
},
mounted: function() {
var e = this,
t = document.getElementById("follow-log-content");
t.onscroll = function() {
var i = t.scrollTop + t.clientHeight - t.scrollHeight;
Math.abs(i) < 10 && 1 == e.loadMoreLoading && (e.isPost ? e.loadMoreLoading = !1 : (e.isPost = !0, e.page++, e.getList()))
}, this.getList()
},
activated: function() {},
deactivated: function() {},
methods: {
getList: function() {
var e = this;
this.loading = !0, Object(n.k)({
page: this.page,
limit: 10,
types: "crm_" + this.crmType,
types_id: this.id,
by: "event"
}).then(function(t) {
e.list = e.list.concat(t.data.list), t.data.list.length < 10 ? e.loadMoreLoading = !1 : e.loadMoreLoading = !0, e.loading = !1, e.isPost = !1
}).
catch (function() {
e.isPost = !1, e.loading = !1
})
},
refreshList: function() {
this.page = 1, this.list = [], this.getList()
},
examineCellHandle: function(e) {
var t = this;
if ("edit" == e.type) {
this.newText = "编辑日程";
var i = e.data.item;
i.start_time = Object(m.e)(i.start_time), i.end_time = Object(m.e)(i.end_time), i.owner_user_ids = [];
var a = !0,
n = !1,
l = void 0;
try {
for (var o, c = s()(i.ownerList); !(a = (o = c.next()).done); a = !0) {
var r = o.value;
i.owner_user_ids.push(r.owner_id)
}
} catch (e) {
n = !0, l = e
} finally {
try {
!a && c.
return &&c.
return ()
} finally {
if (n) throw l
}
}
this.formData = i, this.showDialog = !0
} else "delete" == e.type ? this.$confirm("确定删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
Object(d.b)({
event_id: e.data.item.event_id
}).then(function(e) {
t.refreshList(), t.$message({
type: "success",
message: "删除成功!"
})
})
}).
catch (function() {
t.$message({
type: "info",
message: "已取消删除"
})
}) : "related-detail" == e.type && (this.rowID = e.data.item[e.data.type + "_id"], this.detailCRMType = e.data.type, this.showFullDetail = !0)
},
onSubmit: function(e, t) {
this.refreshList(), "创建日程" == this.newText ? (this.$message.success("新建成功"), this.showDialog = !1) : (this.$message.success("编辑成功"), this.showDialog = !1)
}
}
},
p = (i("2P4K"), Object(o.a)(h, function() {
var e = this,
t = e.$createElement,
i = e._self._c || t;
return i("div", {
directives: [{
name: "loading",
rawName: "v-loading",
value: e.loading,
expression: "loading"
}]
}, [i("div", {
directives: [{
name: "empty",
rawName: "v-empty",
value: 0 === e.list.length,
expression: "list.length === 0"
}]
}, [i("div", {
staticClass: "log-items"
}, [e._l(e.list, function(t, a) {
return i("follow-schedule-cell", {
key: a,
attrs: {
data: t.dataInfo
},
on: {
"on-handle": e.examineCellHandle
}
})
}), e._v(" "), i("div", {
staticClass: "load"
}, [i("el-button", {
attrs: {
loading: e.loadMoreLoading,
type: "text"
}
}, [e._v(e._s(e.loadMoreLoading ? "加载更多" : "没有更多了"))])], 1)], 2)]), e._v(" "), i("c-r-m-full-screen-detail", {
attrs: {
visible: e.showFullDetail,
"crm-type": e.detailCRMType,
id: e.rowID
},
on: {
"update:visible": function(t) {
e.showFullDetail = t
}
}
}), e._v(" "), e.showDialog ? i("create-schedule", {
attrs: {
text: e.newText,
"form-data": e.formData,
"append-to-body": !0
},
on: {
onSubmit: e.onSubmit,
closeDialog: function(t) {
e.showDialog = !1
}
}
}) : e._e()], 1)
}, [], !1, null, "50a649f8", null));
p.options.__file = "ScheduleLog.vue";
t.a = p.exports
},
z3U6: function(e, t, i) {},
zBZy: function(e, t, i) {
"use strict";
var a = i("GJP/");
i.n(a).a
},
zbTZ: function(e, t) {
e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdGRTgyQUFEQzBBMzExRTg4RTlCRTNDNzA5Q0RDRTJBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdGRTgyQUFFQzBBMzExRTg4RTlCRTNDNzA5Q0RDRTJBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0ZFODJBQUJDMEEzMTFFODhFOUJFM0M3MDlDRENFMkEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0ZFODJBQUNDMEEzMTFFODhFOUJFM0M3MDlDRENFMkEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7S8sG0AAABaklEQVR42qyUPUsDQRCG94IgGAiagELsU6WxUmITEKwEQYJop6U2/gTxH1gldrFWEASrQDgbP4oDmzR2WqQ4IQiBCAcWviOzsA5zeyf6wtPMx8vu7dwEURQZj7pgT8TOwX5aQ8H4taDE5n0NruG0yDXAstKzwjmj9VrDWfAKQtACl+AOlBXDMueoZod7XtjDTHHRCV+PaJp8ajHG8TiiE9bBofm7yKNOJzx1Tqrpg69IWgUzKXXfXnTCicesD2pgnalxLE0TMtxMufIIbIGhExtybKTUH5CXfeVQKeiBsRIfc04qzDPYv5Y11EaFvllJiZc4J9W0htegoxRUwBVYdGJVjlWU+jPyoqcuem6wBp7F2PjqiwG2DQ32U8Ys5tEnWKIrD0D7H96DPAb2UY5BDG7BLv/4WboA29wTs4cJnAVLKygR6+sGzAmjd7AB7sX6SuQcJqKRGh6Vkz0Isx+9WYMdK7E3X8OXAAMApsZGDBJcTHwAAAAASUVORK5CYII="
},
"zxr/": function(e, t, i) {}
}]);