<!doctype html>
|
<html>
|
<head>
|
<meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
|
<title>方案定义</title>
|
|
<script type="text/javascript">
|
function loadJsCss(callback) {
|
var jscss_urls = [
|
{id: "js6", type: "js", url: "root/js/vuedraggable.umd.min.js"},
|
];
|
window.top.initJsCss(document, jscss_urls, callback);
|
};
|
|
function initVue() {
|
new FormVue({
|
el: "#vbody",
|
data: {
|
dataname: "fee_model_plan",
|
table_dataname: "fee_model_plan_field",
|
title: "方案定义",
|
|
dataRequest: [
|
{//协议类型
|
name: "agm_record_type",
|
dataname: "agm_record_type",
|
//url: "root/front/getOneDictionary",
|
//paramsobj: { code: "OrgType", },
|
filter: "",
|
orderby: "",
|
isnotoption: false, //true:不是选项
|
code:"id",//是下拉选项时设置
|
label:"name",//是下拉选项时设置
|
},
|
{//流向类型
|
name: "fee_model_band",
|
dataname: "fee_model_band",
|
//url: "root/front/getOneDictionary",
|
//paramsobj: { code: "OrgType", },
|
filter: "",
|
orderby: "",
|
isnotoption: false, //true:不是选项
|
code:"id",//是下拉选项时设置
|
label:"name",//是下拉选项时设置
|
},
|
{//字段库
|
name: "property",
|
dataname: "sys_data_property",
|
//url: "root/front/getOneDictionary",
|
//paramsobj: { code: "OrgType", },
|
filter: "dataobject_id='fee_memo'",
|
orderby: "list_order_no",
|
isnotoption: true, //true:不是选项
|
code:"field",//是下拉选项时设置
|
label:"label_chinese",//是下拉选项时设置
|
},
|
],
|
formAttr: {
|
istitle: false,
|
title: "基础信息",
|
columnnumber: 3,
|
labelwidth: "140px",
|
labelposition: "left",//"left",// right//top
|
size: "mini",
|
border: "3px solid #c6c6c600"
|
},
|
|
default_formFields: [
|
{isshow: "T", field: "policyname", name: "方案名称", isminwidth: true},
|
{isshow: "T", field: "policycode", name: "方案编码", disabled: true, notvalunit: true},
|
{isshow: "T", field: "version", name: "版本号", disabled: true, notvalunit: true},
|
// {isshow: "T", field: "state_name", name: "状态", disabled: true, notvalunit: true},
|
{isshow: "T", field: "effdate", name: "生效日期", type: "date", formatter: "date", required: true, notvalunit: true},
|
{isshow: "T", field: "expdate", name: "失效日期", type: "date", formatter: "date", required: true, notvalunit: true},
|
{isshow: "T", field: "createname", name: "创建人", disabled: true, notvalunit: true},
|
{isshow: "F", field: "record_type_name", name: "准则来源名称", disabled: true, notvalunit: true},
|
|
{isshow: "T", field: "record_type", name: "准则来源", type: "select",
|
options: [
|
{value: "协议-回款履约", code: "hkly"},
|
{value: "协议-底价", code: "dj"},
|
{value: "协议-佣金", code: "yj"},
|
{value: "协议-年度达成", code: "nddc"},
|
{value: "协议-二次议价", code: "ecyj"},
|
{value: "协议-省标", code: "sb"},
|
], required: true, notvalunit: true},
|
{isshow: "F", field: "flow_type_name", name: "流向来源名称", disabled: true, notvalunit: true},
|
{isshow: "T", field: "flow_type", name: "流向来源", type: "select",
|
options: [
|
{value: "流向-回款", code: "hk"},
|
{value: "流向-库存", code: "kc"},
|
{value: "流向-终端纯销", code: "zdcx"},
|
], required: true, notvalunit: true},
|
{isshow: "T", field: "createtime", name: "创建时间", disabled: true, notvalunit: true},
|
|
// {isshow: "T", field: "biz_date", name: "订单日期", type: "date", formatter: "date", notvalunit: true},
|
// {isshow: "T", field: "customer_name", name: "客户名称", type: "popup", required: true, notvalunit: true},
|
// {isshow: "T", field: "customer_consignee_address", name: "收货地址", required: true, type: "select",isfilterable:true, isrefresh:true, options: [], props:{value: "id", label: "address", checkStrictly: true}, notvalunit: true},
|
// {isshow: "T", field: "customer_consignee_user_name", name: "联系人", required: true, notvalunit: true},
|
// {isshow: "T", field: "customer_consignee_phone", name: "联系电话", required: true, notvalunit: true},
|
// {isshow: "T", field: "operate_emp_name", name: "业务员名称", disabled: true, notvalunit: true},
|
// {isshow: "T", field: "business_depart_name", name: "业务部门", type: "popup", required: true, notvalunit: true},
|
// {isshow: "T", field: "province_name", name: "区域", width: "120", type: "popup", required: true, notvalunit: true},
|
// {isshow: "T", field: "settle_type", name: "结算方式", type: "select", options: [{label: "现金",value: "cash"}, {label: "信用付款",value: "credit"}], required: true, notvalunit: true},
|
// {isshow: "T", field: "emp_depart_name", name: "销售部门", disabled: true, defaultval: "", notvalunit: true},
|
// {isshow: "T", field: "contract_no", name: "合同号", notvalunit: true},
|
// {isshow: "T", field: "amt_credit", name: "授信额度", disabled: true, formatter: "money", notvalunit: true},
|
// {isshow: "F", field: "iscreditsuccess", name: "资信检查结果", formatter: "TF3", notvalunit: true},
|
// {isshow: "T", field: "amt", name: "订单总金额", disabled: true, formatter: "money", align: "right", notvalunit: true},
|
// {isshow: "T", field: "amt_receipts", name: "折扣后金额", disabled: true, formatter: "money", align: "right", notvalunit: true},
|
// {isshow: "T", field: "amt_discount", name: "折扣总金额", disabled: true, formatter: "money", align: "right", notvalunit: true},
|
],
|
formFields: [],
|
|
newformData: {
|
//id: uuid_short(),
|
// code: createCode("BA"),
|
create_time: createDatetime(),
|
state_code: "Draft",
|
state_name: "录入",
|
creator_name: window.top.vue.userinfo.name,
|
type_code: "",
|
type_name: "",
|
},
|
formData: {
|
record_type: "",
|
flow_type: ""
|
},
|
|
isRefresh: true,
|
default_tableFields: [
|
|
],
|
tableFields: [],
|
newTableData: {
|
create_time: createDatetime(),
|
creator_name: window.top.vue.userinfo.name,
|
},
|
tableData: [],
|
|
//按键权限设置
|
isedit: false,//提交前编辑,保存/提交
|
isrefuseedit: false,//拒绝后编辑,保存/再次提交
|
isapproval: false,//审批,同意/拒绝/转办/退回
|
|
iscommit: false,//提交标记
|
|
//弹窗参数
|
popupParames: {},
|
//字段设置
|
tablefieldClick: {},
|
formfieldClick: {},
|
tableHeight: 0,
|
|
|
record_map: {
|
hkly: [ //回款履约
|
//条款ID 条款编码 客户ID 客户编码 客户名称 付款条款编码 付款条款名称 备注说明
|
{isshow: "T", field: "field1", name: "条款ID", width: "180"},
|
{isshow: "T", field: "field1", name: "条款编码", width: "180"},
|
{isshow: "T", field: "field1", name: "客户ID", width: "180"},
|
{isshow: "T", field: "field1", name: "客户编码", width: "100"},
|
{isshow: "T", field: "field1", name: "客户名称", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "付款条款编码", width: "180"},
|
{isshow: "T", field: "field1", name: "付款条款名称", width: "180", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "备注说明", width: "220", align: "left", isminwidth: true},
|
],
|
dj: [ // 底价
|
// ID 协议编码 协议类型 经销商编码 经销商名称 医院名称 医院名称 产品编码 产品名称 规格
|
// 返利单价 达成奖 年指标 季度1 季度2 季度3 季度4 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
|
{isshow: "T", field: "field1", name: "协议编码", width: "180"},
|
{isshow: "T", field: "field1", name: "协议类型", width: "180"},
|
{isshow: "T", field: "field1", name: "经销商编码", width: "100"},
|
{isshow: "T", field: "field1", name: "经销商名称", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "医院编码", width: "180"},
|
{isshow: "T", field: "field1", name: "医院名称", width: "180", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "产品编码", width: "220", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "产品名称", width: "220", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "规格", width: "220", align: "left", isminwidth: true},
|
|
{isshow: "T", field: "field1", name: "返利单价", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "达成奖", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "年指标", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度1", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度2", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度3", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度4", width: "100", align: "right"},
|
|
{isshow: "T", field: "field1", name: "1月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "2月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "3月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "4月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "5月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "6月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "7月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "8月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "9月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "10月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "11月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "12月", width: "100", align: "right"},
|
],
|
yj: [ // 佣金
|
// ID 协议编码 协议类型 经销商编码 经销商名称 医院名称 医院名称 产品编码 产品名称 规格
|
// 终端售价 佣金 达成奖 年指标 季度1 季度2 季度3 季度4 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
|
|
{isshow: "T", field: "field1", name: "协议编码", width: "180"},
|
{isshow: "T", field: "field1", name: "协议类型", width: "180"},
|
{isshow: "T", field: "field1", name: "经销商编码", width: "100"},
|
{isshow: "T", field: "field1", name: "经销商名称", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "医院编码", width: "180"},
|
{isshow: "T", field: "field1", name: "医院名称", width: "180", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "产品编码", width: "220", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "产品名称", width: "220", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "规格", width: "220", align: "left", isminwidth: true},
|
|
{isshow: "T", field: "field1", name: "终端售价", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "佣金", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "年指标", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度1", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度2", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度3", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度4", width: "100", align: "right"},
|
|
{isshow: "T", field: "field1", name: "1月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "2月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "3月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "4月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "5月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "6月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "7月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "8月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "9月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "10月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "11月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "12月", width: "100", align: "right"},
|
],
|
nddc: [ //年度达成
|
// ID 协议编码 协议类型 经销商编码 经销商名称 医院名称 医院名称 产品编码 产品名称 规格
|
// 达成奖 年指标 季度1 季度2 季度3 季度4 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
|
|
{isshow: "T", field: "field1", name: "协议编码", width: "180"},
|
{isshow: "T", field: "field1", name: "协议类型", width: "180"},
|
{isshow: "T", field: "field1", name: "经销商编码", width: "100"},
|
{isshow: "T", field: "field1", name: "经销商名称", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "医院编码", width: "180"},
|
{isshow: "T", field: "field1", name: "医院名称", width: "180", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "产品编码", width: "220", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "产品名称", width: "220", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "规格", width: "220", align: "left", isminwidth: true},
|
|
{isshow: "T", field: "field1", name: "达成奖", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "年指标", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度1", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度2", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度3", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "季度4", width: "100", align: "right"},
|
|
{isshow: "T", field: "field1", name: "1月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "2月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "3月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "4月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "5月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "6月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "7月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "8月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "9月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "10月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "11月", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "12月", width: "100", align: "right"},
|
],
|
ecyj: [ // 二次议价
|
//id 申请号 医院id 医院编码 医院名称 医院省份 医院城市 产品-id 产品-编码 产品-名称 规格
|
// 中标价 扣率 折扣单价 实际销售价 生效时间 失效时间 备注 创建人-id 创建人-姓名 创建时间 更新时间
|
{isshow: "T", field: "field1", name: "ID", width: "180"},
|
{isshow: "T", field: "field1", name: "申请号", width: "180"},
|
{isshow: "T", field: "field1", name: "医院编码", width: "180"},
|
{isshow: "T", field: "field1", name: "医院名称", width: "100", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "医院省份", width: "100"},
|
{isshow: "T", field: "field1", name: "医院城市", width: "100"},
|
{isshow: "T", field: "field1", name: "产品编码", width: "100"},
|
{isshow: "T", field: "field1", name: "产品名称", width: "100", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "规格", width: "100"},
|
|
{isshow: "T", field: "field1", name: "中标价", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "扣率", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "折扣单价", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "实际销售价", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "生效时间", width: "100"},
|
{isshow: "T", field: "field1", name: "失效时间", width: "100"},
|
{isshow: "T", field: "field1", name: "备注", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "创建人", width: "100"},
|
{isshow: "T", field: "field1", name: "创建时间", width: "100"},
|
{isshow: "T", field: "field1", name: "更新时间", width: "100"},
|
],
|
sb: [ //省标
|
// id 申请号 经销商编码 经销商名称 省份 城市 产品ID 产品编码 产品名称 产品规格
|
// 原协议价 扣率 折扣金额 生效时间 失效时间 备注 创建人-id 创建人-姓名 创建时间 更新时间
|
{isshow: "T", field: "field1", name: "ID", width: "180"},
|
{isshow: "T", field: "field1", name: "申请号", width: "180"},
|
{isshow: "T", field: "field1", name: "经销商编码", width: "180"},
|
{isshow: "T", field: "field1", name: "经销商名称", width: "100", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "省份", width: "100"},
|
{isshow: "T", field: "field1", name: "城市", width: "100"},
|
{isshow: "T", field: "field1", name: "产品编码", width: "100"},
|
{isshow: "T", field: "field1", name: "产品名称", width: "100", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "规格", width: "100"},
|
|
{isshow: "T", field: "field1", name: "原协议价", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "扣率", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "折扣金额", width: "100", align: "right"},
|
{isshow: "T", field: "field1", name: "生效时间", width: "100"},
|
{isshow: "T", field: "field1", name: "失效时间", width: "100"},
|
{isshow: "T", field: "field1", name: "备注", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "创建人", width: "100"},
|
{isshow: "T", field: "field1", name: "创建时间", width: "100"},
|
{isshow: "T", field: "field1", name: "更新时间", width: "100"},
|
]
|
|
},
|
|
flow_map: {
|
hk: [ //回款
|
//ID idx 年份 月份 客户编码 客户名称 订单号 收款单号 发货单号 发货日期 收款日期 订单金额 收款金额
|
{isshow: "T", field: "field1", name: "年份", width: "180"},
|
{isshow: "T", field: "field1", name: "月份", width: "180"},
|
{isshow: "T", field: "field1", name: "客户编码", width: "100"},
|
{isshow: "T", field: "field1", name: "客户名称", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "订单号", width: "180"},
|
{isshow: "T", field: "field1", name: "收款单号"},
|
{isshow: "T", field: "field1", name: "发货单号"},
|
{isshow: "T", field: "field1", name: "发货日期", width: "220"},
|
{isshow: "T", field: "field1", name: "收款日期", width: "220"},
|
{isshow: "T", field: "field1", name: "订单金额", width: "220"},
|
{isshow: "T", field: "field1", name: "收款金额", width: "220", align: "left"},
|
],
|
kc: [ //库存
|
//库存日期 经销商编码 经销商名称 产品编码 产品名称 规格 数量
|
{isshow: "T", field: "field1", name: "库存日期", width: "180"},
|
{isshow: "T", field: "field1", name: "经销商编码", width: "100"},
|
{isshow: "T", field: "field1", name: "经销商名称", width: "200", align: "left", isminwidth: true},
|
{isshow: "T", field: "field1", name: "产品编码", width: "100"},
|
{isshow: "T", field: "field1", name: "产品名称", width: "180"},
|
{isshow: "T", field: "field1", name: "规格", width: "100"},
|
{isshow: "T", field: "field1", name: "数量", width: "220"},
|
],
|
zdcx: [ //终端纯销
|
//ID 年份 月份 流向日期 上游省份 上游城市 上游ID 上游编码 上游名称 下游省份 下游城市 下游ID 下游编码 下游名称
|
// 产品ID 产品编码 产品名称 数量
|
|
{isshow: "T", field: "field1", name: "年份", width: "180"},
|
{isshow: "T", field: "field1", name: "月份", width: "100"},
|
{isshow: "T", field: "field1", name: "流向日期", width: "100"},
|
{isshow: "T", field: "field1", name: "上游省份", width: "100"},
|
{isshow: "T", field: "field1", name: "上游城市", width: "100"},
|
{isshow: "T", field: "field1", name: "上游编码", width: "100"},
|
{isshow: "T", field: "field1", name: "上游名称", width: "100"},
|
{isshow: "T", field: "field1", name: "下游省份", width: "100"},
|
{isshow: "T", field: "field1", name: "下游城市", width: "100"},
|
{isshow: "T", field: "field1", name: "下游编码", width: "100"},
|
{isshow: "T", field: "field1", name: "下游名称", width: "100"},
|
{isshow: "T", field: "field1", name: "产品编码", width: "100"},
|
{isshow: "T", field: "field1", name: "产品名称", width: "100"},
|
{isshow: "T", field: "field1", name: "规格", width: "100"},
|
{isshow: "T", field: "field1", name: "数量", width: "100"},
|
],
|
},
|
recordArray_agm: [],
|
recordArray: [
|
{isshow: "T", field: "field1", name: '字段1', type: "input"},
|
{isshow: "T", field: "field2", name: '字段2', type: "select"},
|
{isshow: "T", field: "field3", name: '字段3', type: "date"},
|
{isshow: "T", field: "field4", name: '字段4', type: "textarea"},
|
],
|
|
flowArray: [
|
{isshow: "T", field: "fieldA", name: '字段a', type: "input"},
|
{isshow: "T", field: "fieldB", name: '字段b', type: "select"},
|
{isshow: "T", field: "fieldC", name: '字段c', type: "date"},
|
{isshow: "T", field: "fieldD", name: '字段d', type: "textarea"},
|
],
|
|
guidelineArray: [
|
// {id: "1001", record: [], flow: [], field: "field1", name: '新字段', record_field: "field1", field_name: '字段1', flow_field: "fieldA", flow_name: '字段a'},
|
// {id: "add_field", name: '新增字段'},
|
],
|
grpup_record: {
|
name:'guideline',
|
pull:"clone",
|
put:false
|
},
|
grpup_flow: {
|
name:'guideline',
|
pull:"clone",
|
put:false
|
},
|
|
activeName: "",
|
recordTabName: "",
|
|
},
|
created() {
|
let clientHeight = document.documentElement.clientHeight;
|
this.tableHeight = clientHeight - 94;
|
|
this.popupParames = clone(Root.popupParames);
|
this.title = this.popupParames.title || this.popupParames.text
|
if (this.popupParames.data) {
|
this.formData = clone(this.popupParames.data);
|
}
|
|
if (this.popupParames.sceneCode) {
|
if (this.popupParames.sceneCode == "add") {//新增
|
if (this.newformData) {
|
let formData_ = clone(this.formData);
|
|
for (var k in this.newformData) {
|
formData_[k] = this.newformData[k];
|
}
|
this.formData = formData_;
|
}
|
|
if (this.newTableData) {
|
this.tableData.push(clone(this.newTableData));
|
}
|
|
this.isedit = true;
|
}
|
else if (this.popupParames.sceneCode == "browse") {//只读
|
this.formAttr.disabled = true;
|
}
|
else if (this.popupParames.sceneCode == "edit") {//编辑
|
this.isedit = true;
|
}
|
else if (this.popupParames.sceneCode == "approval") {//审批
|
this.formAttr.disabled = true;
|
this.isapproval = true;
|
}
|
else if (this.popupParames.sceneCode == "refuseedit") {//拒绝后的编辑
|
this.isrefuseedit = true;
|
}
|
}
|
},
|
|
mounted() {
|
var me = this;
|
//预加载数据
|
if (this.dataRequest && this.dataRequest.length) {
|
var result = {};
|
this.loadRequestData(this.dataRequest, result, function(data) {
|
me.dataRequestObj = data;
|
//预加载数据后给哪些字段设置options或formatterjson
|
console.log("预加载", data);
|
if (me.dataRequestObj.property) {
|
me.dataRequestObj.property.map(r=>{
|
r.name = r.label_chinese
|
})
|
}
|
me.initData();
|
});
|
}
|
else {
|
this.initData();
|
}
|
|
// 以服务的方式调用的 Loading 需要异步关闭
|
this.$nextTick(() => {
|
hideLoading();
|
|
//重新设置弹窗宽高
|
// this.$nextTick(function(){
|
// //let w_ = this.$refs.popup_body.offsetWidth "px";
|
// let w_ = "900px";
|
// let h_ = this.$refs.popup_body.offsetHeight + "px";
|
// Root.setPopupWH(w_, h_);
|
// })
|
});
|
},
|
|
methods:{
|
//关闭弹窗
|
closeDialog() {
|
var me = this;
|
if (me.popupParames.totab){
|
Root.tab.removeItem(Root.tab.selected);
|
Root.tab.open(me.popupParames.parentOption, false);
|
}
|
else {
|
Root.hidePopup();
|
}
|
},
|
//关闭前调回调
|
saveAfter() {
|
var me = this;
|
if(this.popupParames.callback) {
|
let obj = {
|
//row: this.formData
|
}
|
this.popupParames.callback(obj, function() {
|
me.closeDialog();
|
});
|
}
|
else {
|
me.closeDialog();
|
}
|
},
|
|
initData() {
|
let me = this
|
var id_ = null;
|
if (this.formData.id) {
|
id_ = this.formData.id;
|
}
|
this.getRowDataById(id_, function(result) {//查询后的回调,用于获取字段的
|
if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
|
var metas = clone(result.meta[me.dataname].fields);
|
var table_dataname_ = "";
|
for (var dataname_ in result.meta) {
|
if (dataname_ != me.dataname && !table_dataname_) {
|
table_dataname_ = dataname_;
|
}
|
}
|
var table_metas = [];
|
if (table_dataname_) {
|
me.table_dataname = table_dataname_;
|
table_metas = clone(result.meta[table_dataname_].fields);
|
}
|
|
var formFields_ = [];
|
var tableFields_ = [];
|
metas.map(f=>{
|
f.isshow = "T";
|
if (f.field == "source_agreement_id") {
|
f.options = me.dataRequestObj.agm_record_type;
|
}
|
if (f.field == "source_flow_id") {
|
f.options = me.dataRequestObj.fee_model_band;
|
}
|
|
formFields_.push(clone(f));
|
})
|
table_metas.map(f=>{
|
f.isshow = "T";
|
tableFields_.push(clone(f));
|
})
|
|
if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
|
me.formFields = clone(formFields_);
|
// me.formFields = clone(me.default_formFields);
|
|
me.tableFields = clone(tableFields_);
|
|
//字段数组转字段obj
|
me.fieldsToFieldsObj();
|
|
//设置字段事件
|
me.tableFieldClick();
|
}
|
}
|
me.activeName = "tab_zdpz";
|
if (me.rowData[me.dataname]) {
|
me.formData = me.rowData[me.dataname];
|
if (me.formData.source_agreement_id) {
|
me.recordTabName = "record";
|
var filter_ = "dataobject_id = (SELECT dataname from agm_record_type where id='"+me.formData.source_agreement_id+"')";
|
me.getFieldByDataname(filter_, function(array) {
|
me.recordArray_agm = clone(array);
|
me.recordArray = array
|
})
|
}
|
else {
|
me.recordTabName = "allfields";
|
}
|
if (me.formData.source_flow_id) {
|
var filter_ = "dataobject_id = (SELECT table_name from fee_model_band where id='"+me.formData.source_flow_id+"')";
|
me.getFieldByDataname(filter_, function(array) {
|
me.flowArray = array
|
})
|
}
|
}
|
if (me.rowData[me.table_dataname]) {
|
// me.tableData = me.rowData[me.table_dataname];
|
var guidelineArray_ = clone(me.rowData[me.table_dataname]);
|
guidelineArray_.map(r=>{
|
r.field = r.field_name;
|
r.name = r.field_label;
|
|
r.record = [];
|
r.flow = [];
|
if (r.agm_field_name) {
|
var fr_ = {
|
field: r.agm_field_name,
|
name: r.agm_field_label
|
}
|
r.record = [fr_];
|
}
|
if (r.flow_field_name) {
|
var ff_ = {
|
field: r.flow_field_name,
|
name: r.flow_field_label
|
}
|
r.flow = [ff_];
|
}
|
|
})
|
me.guidelineArray = guidelineArray_
|
}
|
})
|
},
|
|
getFieldByDataname(filter, callback) {
|
var me = this;
|
var param_ = {
|
dataname: "sys_data_property",
|
filter: filter,
|
orderby: "list_order_no"
|
}
|
|
Server.call("root/data/getEntitySet", param_, function(result) {
|
var fields = [];
|
if (result && result.data && result.data.entityset) {
|
// var aaa = clone(result.data.entityset);
|
// var aa_ = []
|
// aaa.map(a=>{
|
// var a_ = {
|
// "code": a.code,
|
// "name": a.label_chinese,
|
// "fieldname": a.code,
|
// "expression": "[折扣条款-零售补偿].["+a.label_chinese+"]",
|
// }
|
// aa_.push(a_)
|
// })
|
// console.log("字段aa", aa_);
|
|
var fields_ = clone(result.data.entityset);
|
fields_.map(r=>{
|
r.name = r.label_chinese
|
})
|
fields = fields_;
|
}
|
|
if (callback) {
|
callback(fields);
|
}
|
|
})
|
},
|
|
tableFieldClick() {
|
var me = this;
|
//表单字段事件设置
|
this.formfieldClick = {
|
source_agreement_id: {
|
select: {
|
onchange: function(obj) {//下拉更改事件
|
var filter_ = "dataobject_id = (SELECT dataname from agm_record_type where id='"+ obj.selectoption.code +"')";
|
me.getFieldByDataname(filter_, function(array) {
|
me.recordArray_agm = clone(array);
|
me.recordArray = array
|
})
|
|
obj.data.source_agreement_name = obj.selectoption.value;
|
}
|
}
|
},
|
source_flow_id: {
|
select: {
|
onchange: function(obj) {//下拉更改事件
|
var filter_ = "dataobject_id = (SELECT table_name from fee_model_band where id='"+ obj.selectoption.code +"')";
|
me.getFieldByDataname(filter_, function(array) {
|
me.flowArray = array
|
})
|
|
obj.data.source_flow_name = obj.selectoption.value;
|
}
|
}
|
}
|
};
|
|
//表格字段事件设置
|
this.tablefieldClick = {
|
|
};
|
},
|
recordEnd(e) {
|
|
},
|
flowEnd(e) {
|
|
},
|
end1(e){
|
// console.log(e)
|
// var that=this;
|
// var items=this.formFields.filter(function(m){
|
// return m.id==that.moveId
|
// })
|
// //如果左边
|
// if(items.length<2) return;
|
// this.formFields.splice(e.newDraggableIndex, 1)
|
},
|
|
onMove(e,originalEvent){
|
// this.moveId = e.relatedContext.element.id;
|
// //不允许停靠
|
// if (e.relatedContext.element.id == 1) return false;
|
// //不允许拖拽
|
// if (e.draggedContext.element.id == 4) return false;
|
// if (e.draggedContext.element.id == 11) return false;
|
// return true;
|
},
|
onMoveGuideline(e,originalEvent) {
|
// //不允许拖拽
|
// if (e.draggedContext.element.id == "add_field") return false;
|
// return true;
|
},
|
recordClone(origin) {
|
var aa = "";
|
// console.log(origin,'origin')
|
// clone 从一个数组拖拽到另外一个数组时触发的事件和add不同,clone是复制了数组元素
|
// 所以我们可以重新new 拷贝一个新对象
|
let data1 = JSON.parse(JSON.stringify(origin))
|
let data = JSON.parse(JSON.stringify(origin))
|
data.id = uuid();
|
data.record = [data1];
|
data.flow = [];
|
// console.log(data,'data')
|
return data
|
},
|
flowClone(origin) {
|
var aa = "";
|
// console.log(origin,'origin')
|
// clone 从一个数组拖拽到另外一个数组时触发的事件和add不同,clone是复制了数组元素
|
// 所以我们可以重新new 拷贝一个新对象
|
let data1 = JSON.parse(JSON.stringify(origin))
|
let data = JSON.parse(JSON.stringify(origin))
|
data.id = uuid();
|
data.record = [];
|
data.flow = [data1];
|
// console.log(data,'data')
|
return data
|
},
|
guidelineClone(e,originalEvent) {
|
var aa = "";
|
console.log(e)
|
},
|
|
onMove_record(e,originalEvent) {
|
|
},
|
remove_g(array, row) {
|
array.remove(row);
|
},
|
|
////
|
addTableData() {
|
var new_field = {id: uuid(),record: [], flow: [], field: createBaseCode("field"), name: '新字段'};
|
this.guidelineArray.unshift(new_field);
|
|
// var table_row = clone(this.newTableData);
|
// this.rowChange(table_row, "add", this.table_dataname);
|
},
|
|
delData(scope) {
|
let me = this;
|
let row = scope.row;
|
let index_ = scope.$index;
|
|
Root.confirm('确定删除数据【' + JSON.stringify(row) + '】吗?', '删除提示', {
|
confirmButtonText: '删除',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
me.rowChange(row, "del", me.table_dataname);
|
}).catch(() => {
|
Root.message({
|
type: 'info',
|
message: '已取消删除'
|
});
|
});
|
},
|
|
rowChange(row, type, tablename) {
|
var me = this;
|
if (type == "add") {
|
this.tableData.unshift(row);
|
}
|
else if (type == "del") {
|
if (row.id) {
|
let param = {
|
dataname: tablename,
|
id: row.id
|
}
|
|
Server.call("root/data/deleteEntity", param, function(result) {
|
console.log(result);
|
if (result && result.data) {
|
me.tableData.remove(row);
|
|
Root.message({
|
type: 'success',
|
message: '删除成功!'
|
});
|
}
|
});
|
}
|
else {
|
this.tableData.remove(row);
|
}
|
}
|
else {
|
|
}
|
},
|
recordTabChange(tab, event) {
|
var me = this;
|
if (me.recordTabName == "allfields") {
|
me.recordArray = clone(me.dataRequestObj.property);
|
}
|
else if (me.recordTabName == "record") {
|
me.recordArray = clone(me.recordArray_agm);
|
}
|
},
|
|
//提交
|
submitRowTable() {
|
this.iscommit = true;
|
this.saveRowTable();
|
},
|
saveRowTable() {
|
var aa = this.guidelineArray;
|
console.log("参数", aa);
|
},
|
//保存
|
saveRowTable2() {
|
var me = this;
|
var operator_ = "save";//保存
|
if(me.iscommit) {
|
operator_ = "commit";//提交
|
}
|
|
var entity_ = clone(this.formData);
|
var entity = {};
|
for (var r in entity_) {
|
if (entity_[r]) {
|
entity[r] = entity_[r];
|
}
|
}
|
|
var tableData_ = [];
|
this.tableData.map(r=>{
|
var row_ = {};
|
for (var k in r) {
|
if (r[k]) {
|
row_[k] = r[k];
|
}
|
}
|
tableData_.push(row_);
|
})
|
|
if (tableData_.length == 0) {
|
Root.message({
|
type: 'warning',
|
message: '请先添加明细数据'
|
});
|
return
|
}
|
|
let param = {
|
dataname: this.dataname,
|
operator: operator_,
|
data: {},
|
}
|
param.data[this.dataname] = entity;
|
param.data[this.table_dataname] = tableData_;
|
|
Server.call("root/data/saveEntity", param, function(result) {
|
console.log(result);
|
if (result.success) {
|
if(me.iscommit){
|
me.iscommit = false;
|
Root.message({
|
type: 'success',
|
message: '提交成功'
|
});
|
me.saveAfter();
|
}
|
else {
|
Root.message({
|
type: 'success',
|
message: '保存成功'
|
});
|
me.saveAfter();
|
}
|
}
|
});
|
},
|
|
// 公式设计
|
formulaConfig() {
|
//先保存政策的定义,根据政策id和政策生成的备忘录字段设计公式
|
//目前没有保存就先已假的信息配置公式
|
var me = this;
|
|
var config = {
|
totab: true, //true: 以Tab导航的方式打开
|
width: "900px",
|
height: "900px",
|
icon: "icon-product",
|
text: "公式定义",
|
id: "settingFormula_edit" + me.formData.id,//totab: true时需设置,用于判断是否已打开此页面
|
// url: "module/performance/page/settingFormula_edit.html",
|
url: "module/performance/page/designer/designer.html?id=" + me.formData.id,
|
data: me.formData,
|
delta: {policyArray :this.guidelineArray},
|
sceneCode: "browse", //"add"//"browse",
|
callback: function(obj, callback) {
|
me.onQuery();
|
if (callback) {
|
callback();
|
}
|
}
|
};
|
me.doPopupByPublic(config);
|
},
|
|
}
|
});
|
};
|
|
loadJsCss(function () {
|
initVue();
|
});
|
</script>
|
<style>
|
/* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
|
[v-cloak] {
|
display: none !important;
|
}
|
</style>
|
<style scoped>
|
.field_title {
|
height: 40px;
|
line-height: 40px;
|
font-size: 14px;
|
}
|
|
.item {
|
padding: 6px;
|
background-color: #fdfdfd;
|
border: solid 1px #eee;
|
/* margin-bottom: 10px; */
|
cursor: move;
|
}
|
.item:hover {
|
background-color: #f1f1f1;
|
cursor: move;
|
}
|
|
.field_list {
|
border: 1px solid #ccc;
|
overflow: auto;
|
}
|
.field_list .item span{
|
padding-left: 10px;
|
}
|
|
.item_r {
|
padding: 0px 10px;
|
/* border: solid 1px #eee; */
|
/* margin-bottom: 10px; */
|
border-radius: 10px;
|
cursor: move;
|
position: relative;
|
}
|
.item_r_delete {
|
color: red;
|
position: absolute;
|
right: 10px;
|
top: 0px;
|
}
|
.item_r_delete:hover {
|
/* background-color: #f1f1f1; */
|
/* font-size: 16px; */
|
cursor: pointer;
|
}
|
.el-icon-delete:hover {
|
/* font-size: 16px; */
|
cursor: pointer;
|
}
|
.guideline_ghost {
|
/* padding: 0px; */
|
/* height: 10px !important; */
|
overflow: hidden;
|
background-color: #42adef !important;
|
color: #42adef !important;
|
}
|
.guideline_ghost_r {
|
padding: 0px;
|
/* height: 16px !important; */
|
overflow: hidden;
|
background-color: #dca12c !important;
|
color: #dca12c !important;
|
}
|
.guideline_ghost_f {
|
padding: 0px;
|
/* height: 16px !important; */
|
overflow: hidden;
|
background-color: #b5d6fa !important;
|
color: #b5d6fa !important;
|
}
|
|
.el-divider--horizontal {
|
margin: 14px 0px !important;
|
}
|
.text_null_r span:empty:before{
|
content: "可拖入协议字段";
|
color: #bccdd9;
|
padding-left: 10px;
|
}
|
.text_null_f span:empty:before{
|
content: "可拖入流向字段";
|
color: #bccdd9;
|
padding-left: 10px;
|
}
|
</style>
|
</head>
|
|
<body style="margin: 0px;">
|
<div v-cloak id="vbody">
|
<div id="page_root">
|
<div ref="popup_body" style="padding: 0 20px;">
|
<div class="el-dialog__header">
|
<div class="dialog-title">
|
<span> {{title}}</span>
|
</div>
|
</div>
|
<div :style="{height: tableHeight + 'px', 'overflow-y': 'auto'}">
|
<div class="el-dialog__body">
|
<h-form
|
ref="form1"
|
:form-attr="formAttr"
|
:table-fields="formFields"
|
:form-data="formData"
|
:table-field-click="formfieldClick"
|
>
|
</h-form>
|
|
<div class="h_dialog__body">
|
<div v-if="isedit || isrefuseedit" style=" text-align: right;">
|
<!-- 工具栏 -->
|
<!-- <div style=" display: inline-block; width: 90px;">
|
<el-button-group>
|
<el-button @click="addTableData">新增明细</el-button>
|
</el-button-group>
|
</div> -->
|
</div>
|
<el-tabs v-model="activeName">
|
<el-tab-pane label="备忘录字段配置" name="tab_zdpz"></el-tab-pane>
|
</el-tabs>
|
|
<div v-show="activeName" :style="{height: (tableHeight - 180) + 'px', width: '100%'}">
|
<div :style="{height: (tableHeight - 180) + 'px', width: '20%', float: 'left'}">
|
<div class="field_title">
|
<!-- {{formData.record_type_name ? formData.record_type_name : "协议字段"}} -->
|
<el-tabs v-model="recordTabName" @tab-click="recordTabChange">
|
<el-tab-pane :label="formData.source_agreement_name ? formData.source_agreement_name : '协议字段'" name="record"></el-tab-pane>
|
<el-tab-pane label="字段库" name="allfields"></el-tab-pane>
|
</el-tabs>
|
</div>
|
<div class="field_list" :style="{height: (tableHeight - 180 - 40) + 'px'}" >
|
<draggable v-model="recordArray" @end="recordEnd" :clone="recordClone" :move="onMove"
|
:options="{group:{name: 'guideline',pull:'clone',put: false},sort: false}" animation="300">
|
<transition-group>
|
<div class="item" v-for="(item, index1) in recordArray" :key="'r'+index1">
|
<i :class="item.icon ? item_g.icon : 'el-icon-copy-document'"></i>
|
<span>{{item.name}}</span>
|
</div>
|
</transition-group>
|
</draggable>
|
</div>
|
</div>
|
<div :style="{height: (tableHeight - 180) + 'px', width: '20%', float: 'right'}">
|
<div class="field_title">{{formData.source_flow_name ? formData.source_flow_name : "流向字段"}}</div>
|
<div class="field_list" :style="{height: (tableHeight - 180 - 40) + 'px'}" >
|
<draggable v-model="flowArray" @end="flowEnd" :clone="flowClone" :move="onMove"
|
:options="{group:{name: 'guideline',pull:'clone',put: false},sort: true}" animation="300">
|
<transition-group>
|
<div class="item" v-for="(item, index1) in flowArray" :key="'f'+index1">
|
<i :class="item.icon ? item_g.icon : 'el-icon-copy-document'"></i>
|
<span>{{item.name}}</span>
|
</div>
|
</transition-group>
|
</draggable>
|
</div>
|
</div>
|
|
<div :style="{height: (tableHeight - 180) + 'px', width: '56%', margin: '0 auto'}">
|
<div class="field_title">
|
<el-row style="height: 28px;">
|
<el-col :span="10"><div style="text-align: left;">备忘录字段</div></el-col>
|
<el-col :span="7"><div style="text-align: center;">协议映射字段</div></el-col>
|
<el-col :span="7"><div style="text-align: center;">流向映射字段</div></el-col>
|
</el-row>
|
</div>
|
<!-- <div style="width: 100%; height: 30px; line-height: 30px;">
|
<el-button icon="el-icon-plus" @click="addTableData" style="width: 100%;" size="medium">新增自定义字段</el-button>
|
</div> -->
|
<div :style="{height: (tableHeight - 180 - 40) + 'px', border: '1px dashed #ccc', overflow: 'auto'}" >
|
<draggable v-model="guidelineArray" ghost-class="guideline_ghost" group="guideline" @end="end1" @add="guidelineClone" :move="onMoveGuideline"
|
:options="{group:{name: 'itxst'},sort: true}" animation="300">
|
<transition-group :style="{height: (tableHeight - 180 - 40) + 'px', 'background-color': '#eee', display: 'block'}">
|
<div class="item" v-for="(item, index1) in guidelineArray" :key="'g'+index1">
|
<el-row style="height: 28px;line-height: 28px;">
|
<el-col :span="10">
|
<div class="" style="text-align: left;">
|
<i class="el-icon-copy-document"></i>
|
<span>{{index1 + 1}}.</span>
|
<el-input size="mini" placeholder="请输入字段名称" style="width: 80%;" v-model="item.name"></el-input>
|
<!-- <el-input size="mini" placeholder="请输入字段" style="width: 40%;" v-model="item.field"></el-input> -->
|
<i class="el-icon-delete" style="color: red;" @click="remove_g(guidelineArray, item)"></i>
|
</div>
|
</el-col>
|
<el-col :span="1"><el-divider></el-divider></el-col>
|
<el-col :span="6">
|
<div class="text_null_r">
|
<draggable v-model="item.record" ghost-class="guideline_ghost_r" group="guideline" animation="300" :move="onMove_record">
|
<transition-group style="display: block; height: 28px; border: 1px dotted #ccc;">
|
<div class="item_r" style="background-color: #faea89;" v-for="(item_g, index1) in item.record" :key="'gr'+index1">
|
<span>{{item_g.name}} </span>
|
<div class="item_r_delete" style="" @click="remove_g(item.record, item_g)">
|
<i class="el-icon-delete" ></i>
|
</div>
|
</div>
|
</transition-group>
|
</draggable>
|
</div>
|
</el-col>
|
<el-col :span="1"><el-divider></el-divider></el-col>
|
<el-col :span="6">
|
<div class="text_null_f">
|
<draggable v-model="item.flow" ghost-class="guideline_ghost_f" group="guideline" animation="300" :move="onMove_record">
|
<transition-group style="display: block; height: 28px; border: 1px dotted #ccc;">
|
<div class="item_r" style="background-color: #b8e2fa;" v-for="(item_g, index1) in item.flow" :key="'gr'+index1">
|
<span>{{item_g.name}} </span>
|
<div class="item_r_delete" style="" @click="remove_g(item.flow, item_g)">
|
<i class="el-icon-delete"></i>
|
</div>
|
</div>
|
</transition-group>
|
</draggable>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
</transition-group>
|
</draggable>
|
</div>
|
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="el-dialog__footer">
|
<el-button size="small" type="default" @click="closeDialog">取 消</el-button>
|
<el-button size="small" type="default" @click="formulaConfig">公式设置</el-button>
|
<el-button size="small" v-if="isedit || isrefuseedit" type="primary" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button>
|
<el-button size="small" v-if="isedit" type="success" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button>
|
<el-button size="small" v-if="isrefuseedit" type="success" @click="">再次提交</el-button>
|
|
<el-button size="small" v-if="isapproval" type="primary" @click="">通 过</el-button>
|
<el-button size="small" v-if="isapproval" type="danger" @click="">拒 绝</el-button>
|
<el-button size="small" v-if="isapproval" type="primary" @click="">转 办</el-button>
|
<el-button size="small" v-if="isapproval" type="success" @click="">退 回</el-button>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
|
<div class="spinner">
|
<div class="cube1"></div>
|
<div class="cube2"></div>
|
</div>
|
</div>
|
</body>
|
</html>
|