<!doctype html>
<html>
	<head>
		<meta charset="utf-8">
		<title>角色商业关系新增</title>
		<script src="../../../js/vue/vue.js"></script>
		<script src="../../../js/vue/element-ui/lib/index.js"></script>
		<script src="../../../js/vue/axios/dist/axios.min.js"></script>
		<script src="../../../js/myelement.js"></script>
		<script src="../../../js/vue/page.js"></script>
		<script src="../../../js/common.js"></script>
		
		<link href="../../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
		<link href="../../../css/myelement.css" rel="stylesheet">
		<link href="../../../css/iconfont.css" rel="stylesheet">
		<link href="../../../css/page.css" rel="stylesheet">
		<link href="//at.alicdn.com/t/font_2374495_13ltsxm2eor.css" rel="stylesheet">
	</head>
	
	<body>
		<div id="vbody">
			<div id="page_root">
				<div ref="popup_body">
					<div class="el-dialog__header">
						<div class="dialog-title">
							<span>{{title}}</span>
							<div style="float: right;">
								<el-button-group style="margin-left: 3px;">
									<el-button :disabled="selectionList.length == 0" type="primary" @click="saveTables" :loading="loading_save">保 存</el-button>
									<el-button type="default" @click="closeDialog">取 消</el-button>
								</el-button-group>
							</div>
						</div>
					</div>
				
					<div class="topbar-line">
						<div class="query-icon">
							<i class="iconfont icon-query"></i>
						</div>
						<div class="query-bar">
							<h-form-filter ref="form1"
								:form-attr="filterAttr" 
								:table-fields="filterFields" 
								:form-data="filterObj" 
								:isbuttonquery="false"
								
								v-on:on-formchange="onQuery" 
								v-on:show-popup="showFilterPopup"
								v-on:on-query="onQuery"
								v-on:on-init-query="onInitFilter"
								v-on:on-edit-query="onEditFilter"
								>
							</h-form-filter>
						</div>
					</div>
				
					<div class="versionNo">
						<h-table
							ref="table1" 
							:tableloading="tableloading"
							:table-fields="tableFields" 
							:table-data="tableData"
							:is-edit-table-data="isEditTableData" 
							:table-height="tableHeight" 
							:is-highlight-row="true"
							:is-selection="true" 
							:pagesize="pagesize"
							:pagenum="pagenum"
							:total="total"
							:layout="layout"
							v-on:get-data="getData"
							v-on:row-click="rowClick"
							v-on:selection-change="handleSelectionChange"
							>
						</h-table>
					</div>
				</div>
			</div>
			<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 100vh;">
				<div class="spinner">
				  <div class="cube1"></div>
				  <div class="cube2"></div>
				</div>
			</div>
		</div>	
		
		<script type="text/javascript">
			var initlized = false;
			new ListVue({
				el: "#vbody",
				data: {
					title: "",
					loading_save: false,
					dataname: "v_customerByNotRole",
					filterFieldsName: "choosecustomer_",
					tabaleFieldsName: "choosecustomer_",
					rolecode: window.top.userinfo.user.rolecode,
					layout: "total, sizes, prev, pager, next",
					pageAttr: {
						heightType: "page"
					},
					
					popupParames: {},
					selectRole: {},
					
					tableHeight: 320,
					selectionObj: {},
					selectionList: [],
					selectionIds: "",
					
					//商业
					filterFields: [
						{isshow: "T", field: "md_code", name: "编码", fieldtype: "like"},
						{isshow: "T", field: "md_description", name: "名称", fieldtype: "like"}
					],
					tableHeight_c: 320,
					pagesize_c: 10,
					pagenum_c: 1,
					total_c: 0,
					
					filterObj_c: {},
					filter_c: "",
					filterTxt_c: "",
					filterFieldsObj_c: {},
					orderby_c: "",
					
					tableFields: [
						{isshow: "T", field: "md_code", name: "编码"},
						{isshow: "T", field: "md_description", name: "名称", align: "left"}
					],
					
					tableData_c: [],
					selectData_c: [],
					tableloading_c: false,
					
					
				},
				
				created() {
					var me = this;
					this.popupParames = clone(Root.popupParames);
					if (this.popupParames.data) {
						this.selectRole = clone(this.popupParames.data);
						this.paramObjBydefault.role_id = this.selectRole.id;
					}
					if (this.popupParames.text) {
						this.title = clone(this.popupParames.text);
					}
				},
				
				mounted() {
					var me = this;
					if (this.dataRequest.length) {
						var result = {};
						this.loadRequestData(this.dataRequest, result, function(data) {
							me.dataRequestObj = data;
							me.initData();
						});
					}
					else {
						this.initData();
					}
					
					this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
						document.getElementById('page_root').style.display =  "block";
						document.getElementById('page_loading').style.display =  "none";
						
						//重新设置弹窗宽高
						this.$nextTick(function(){
							let w_ = this.$refs.popup_body.offsetWidth + "px";
							let h_ = this.$refs.popup_body.offsetHeight + "px";
							Root.setPopupWH(w_, h_);
						})
					});
				},
				
				methods:{
					onServerInitData(data) {
						var me = this.data;
						
						//me.tableFields = data.tableFields;
						//me.filterFields = data.filterFields;
					
						if(me.filterFields.length > 0) {
							for(var i=0; i < me.filterFields.length; i++) {
								let fieldObj_ = me.filterFields[i];
								
								me.filterFieldsObj[fieldObj_.field] = fieldObj_;
							}
						}	
						if(me.tableFields.length > 0) {
							for(var i=0; i < me.tableFields.length; i++) {
								let fieldObj_ = me.tableFields[i];
								
								me.tableFieldsObj[fieldObj_.field] = fieldObj_;
							}
						}
					},
					
					initData() {
						if (initlized) { return; }
						initlized = true;
						
						this.onQuery();
					},
					
					closeDialog() {
						if (this.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() {
								if (me.popupParames.totab){
									Root.tab.removeItem(Root.tab.selected);
									Root.tab.open(me.popupParames.parentOption, false); 
								}
								else {
									Root.hidePopup();
								}
							});
						}
						else {
							alert("该按键事件缺失!")
						}
					},
					
					saveTables() {
						var me = this;
						this.loading_save = true;
						var popedomlist = [];
						var fieldobjlist = [];
						this.selectionList.map(p=>{
							var p_ = {
								type: "employee",
								role_id: this.selectRole.id,
								business_id: p.business_id,
								active: 1
							}
							popedomlist.push(p_);
							
							var l_ = {
								type: "add", 
								field: "business_id", 
								fieldname: "角色关联商业",
								currentdata: p.business_id
							}
							fieldobjlist.push(l_);
						})
						
						//添加,成功后关闭
						let param = {
							isClientMode: false,
							dataName: "sysRoleMapping",
							datas: popedomlist
						}
						Server.call("root/data/batchSaveEntity", param, function(result) {
							console.log(result);
							var operatelogdataobj_ = {
								businessid: me.selectRole.id,
								businessname: me.selectRole.name,
								dataname: "sysRoleMapping",
								operateremark: "添加角色关联商业"
							};
							var fieldobjlist_ = fieldobjlist;
							me.addlog("userRoleChange", operatelogdataobj_, fieldobjlist_, function(){
								me.loading_save = true;
								Root.message({
									type: 'success',
									message: '添加成功'
								});
								me.saveAfter();
							});
							
							
						});
					},
					
					addlog(code, operatelogdataobj, fieldobjlist, callback) {
						var id_ = uuid_short();
						var fieldobjlist_ = [];
						fieldobjlist.map(f=>{
							var f_ = {
								parentId: id_, 
								operateType: f.type, 
								field: f.field, 
								fieldName: f.fieldname,
								pre: f.predata || "",
								currentData: f.currentdata || ""
							}
							fieldobjlist_.push(f_);
						});
						
						var param = {
							isClientMode: false,
							id: id_,
							type: code,
							operateCode: localStorage.getItem("emp_code"),
							operateName: localStorage.getItem("emp_name"),
							userId: localStorage.getItem("id"),
							businessId: operatelogdataobj.businessid,
							businessName: operatelogdataobj.businessname,
							dataName: operatelogdataobj.dataname,
							operateRemark: operatelogdataobj.operateremark,
							sourceType: "EC",
							detailList: fieldobjlist_
						}
						Server.call("root/api/addCustomerLogs", param, function(result) {
							if (result.success) {
								if (callback) {
									callback();
								}
							}
						});
					},
					
					rowClick(obj) {
						if (this.selectionObj[obj.row.business_id]) {
							this.$refs.table1.toggleSelection(row_, true, "business_id");
						}
						else {
							var row_ = [];
							row_.push(obj.row.business_id);
							this.$refs.table1.toggleSelection(row_, false, "business_id");
						}
					},
					
					handleSelectionChange(selection) {
						var idsobj_ = {};
						var ids_ = [];
						var ids_str = "";
						if (selection.length > 0) {
							for (var i = 0; i < selection.length; i++) {
								if (!ids_str) {
									ids_str = "'" + selection[i].business_id + "'";
								}
								else {
									ids_str += ",'"+ selection[i].business_id + "'";
								}
								ids_.push(selection[i]);
								idsobj_[selection[i].business_id] = true;
							}
						}
						this.selectionObj = idsobj_;
						this.selectionList = ids_;
						this.selectionIds = ids_str;
					},
					
					
				}
			});
		</script>
	</body>
</html>