123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674 |
- 'use strict';
- /**
- * controllers used for the dashboard
- */
- var appFormly = angular.module('formlyDashboard', [
- 'formly', 'formlyBootstrap', 'ui.bootstrap',
- 'ngSanitize', 'ui.select', 'ui.grid'
- ]);
- app.requires.push('formlyDashboard');
- // var appFormly = angular.module('formlyExample', [
- // 'formly', 'formlyBootstrap','ui.bootstrap',
- // 'ngSanitize','ui.select','ui.grid'],
- appFormly.config(
- function config(formlyConfigProvider) {
- //格式转换方法 XXX-XXX转驼峰命名
- });
- appFormly.controller('DashboardCtrl', ['$rootScope', '$scope', '$parse', '$injector', '$http', '$q', '$state', '$modal', '$timeout', '$interval', 'SweetAlert', 'i18nService', '$window', 'Restangular', 'UserRestangular', 'BpmRestangular', 'api_configure_form', 'api_bpm_domain', 'api_bpm_data', 'api_user_data', 'api_report',
- function($rootScope, $scope, $parse, $injector, $http, $q, $state, $modal, $timeout, $interval, SweetAlert, i18nService, $window, Restangular, UserRestangular, BpmRestangular, api_configure_form, api_bpm_domain, api_bpm_data, api_user_data, api_report) {
- $scope.lodingstyle = 'nodata';
- $scope.onDropComplete = function(index, obj, evt) {
- var otherObj = vm.fields[index];
- var otherIndex = vm.fields.indexOf(obj);
- vm.fields[index] = obj;
- vm.fields[otherIndex] = otherObj;
- // console.log($scope)
- }
- $rootScope.app.layout.isNavbarFixed = false;
- $rootScope.app.layout.isSidebarFixed = false;
- $scope.loginBtn = {
- closeEl: '.close',
- modal: {
- templateUrl: 'assets/views/loginform.html',
- postion: 'center'
- }
- };
- // $scope.jry_ceshi=function(){
- // // alert('ok')
- // console.log('ok')
- // }
- $scope.choicevalue = 1
- $scope.choicelogin = function(e) {
- $scope.choicevalue = e;
- }
- $scope.login = function() {
- angular.element('.el-login').trigger('click');
- }
- // $scope.login();
- $scope.close = function() {
- console.log(angular.element('.el-login'));
- angular.element('.el-login').trigger('click');
- }
- $scope.loginForm = {
- username: "",
- // account:"",
- password: ""
- }
- $rootScope.app.isLoginFixed = true;
- $scope.validateUsername = function() {
- return $scope.loginForm.username == null || $scope.loginForm.username == "";
- }
- $scope.validatePassword = function() {
- return $scope.loginForm.password == null || $scope.loginForm.password == "";
- }
- $scope.formValid = function() {
- return $scope.loginForm.username == null || $scope.loginForm.username == "" || $scope.loginForm.password == null || $scope.loginForm.password == "";
- }
- $scope.more = function(field) {
- $state.go('app.incident.list', {});
- }
- // api_report.getLicenseKey().then(function(response) {
- // $cookieStore.put('Auth-Token', response.token);
- // });
- $scope.dashboardcount = {};
- if ($rootScope.user.group) {
- api_bpm_data.getCount({ "assignee": $rootScope.user.id, "candidateGroups": $rootScope.user.group[0].id, "idx": 0, "sum": 1000 }).then(function(response) {
- // if (response.status == 200) {
- $scope.dashboardcount = response;
- $scope.dashboardcount.knowledgedata = parseInt(response.toReleaseCount) + parseInt(response.toAuditCount);
- // } else {
- // SweetAlert.swal("系统错误!", "请刷新重试", "error");
- // }
- })
- } else {
- // SweetAlert.swal("访问数据失败!", "该用户没有分配组", "error");
- }
- $scope.roleidcode = true;
- if ($rootScope.user && $rootScope.user.role) {
- angular.forEach($rootScope.user.role, function(item) {
- if (item.rolecode == "call center") {
- $scope.roleidcode = false;
- }
- })
- }
- $scope.largedash = function(key) {
- if (key == 'lefttop') {
- localStorage.userId = key;
- var url = $state.href('dashlefttop', { basicType: 8 });
- window.open(url, '_blank');
- // $window.open("assets/views/dashboard/tpl/lagerdashboard/dash-lefttop.html");
- } else if (key == 'leftbottom') {
- localStorage.userId = key;
- var url = $state.href('dashleftbottom', { basicType: 8 });
- window.open(url, '_blank');
- } else if (key == 'righttop') {
- localStorage.userId = key;
- var url = $state.href('dashrighttop', { basicType: 8 });
- window.open(url, '_blank');
- } else if (key == 'rightbottom') {
- localStorage.userId = key;
- var url = $state.href('dashrightbottom', { basicType: 8 });
- window.open(url, '_blank');
- }
- }
- $scope.addModel = function() {
- var modalInstance = $modal.open({
- templateUrl: 'assets/views/system/tpl/adddashboard.html',
- controller: function($scope, $modalInstance, SweetAlert, scope) {
- $scope.addmodel = {};
- api_user_data.fetchgetData('user', $rootScope.user.id).then(function(response) {
- if (response.status == 200) {
- $scope.dashboard = [];
- var dashdata = angular.copy(response.data.dashboard);
- angular.forEach(response.data.dashboard, function(item, i) {
- angular.forEach(scope.resonseform.fields, function(index) {
- if (item.type == index.type) {
- dashdata[i].repeat = true
- }
- })
- })
- angular.forEach(dashdata, function(item) {
- if (!item || !item.repeat) {
- $scope.dashboard.push(item);
- }
- })
- // $scope.dashboard = response.data.dashboard;
- } else {
- SweetAlert.swal("系统错误!", "请刷新重试", "error");
- }
- $scope.ok = function(item) {
- $modalInstance.close(item);
- };
- $scope.cancel = function() {
- $modalInstance.dismiss('cancel');
- };
- })
- },
- size: 'sm',
- resolve: {
- SweetAlert: function() {
- return SweetAlert;
- },
- scope: function() {
- return $scope;
- }
- }
- });
- modalInstance.result.then(function(selectedItem) {
- if (selectedItem) {
- // api_user_data.addData('userDashboard', { "userDashboard": { "userId": $rootScope.user.id, "dashboardId": selectedItem.area.dashboard.id, "orders": "3" } }).then(function(response) {
- // if (response.status == 200) {
- // $scope.dashboard = response.data.userDashboard;
- // } else {
- // SweetAlert.swal("系统错误!", "请刷新重试", "error");
- // }
- // })
- for (var i = 0; i < $scope.responseData.fields.length; i++) {
- // for (var j = 0; j < $scope.userdashright.length; j++) {
- if (selectedItem.area.type == $scope.responseData.fields[i].type) {
- $scope.responseData.fields[i].id = selectedItem.area.id.toString();
- $scope.responseData.fields[i].templateOptions.orders = selectedItem.area.orders;
- $scope.resonseform.fields.push($scope.responseData.fields[i]);
- break;
- }
- // }
- }
- // $scope.formupdata = angular.copy($scope.formdatas)
- var vmForm = Restangular.stripRestangular($scope.resonseform);
- if (vmForm) { //console.log("vmForm>>>");//console.log(vmForm);
- decodeVMForm(vmForm);
- console.log(vm);
- }
- }
- });
- }
- $scope.removes = function(item) {
- var modalInstance = $modal.open({
- templateUrl: 'assets/views/delete.html',
- controller: function($scope, $modalInstance) {
- $scope.ok = function() {
- $modalInstance.close();
- };
- $scope.cancel = function() {
- $modalInstance.dismiss('cancel');
- };
- },
- size: 'sm'
- });
- modalInstance.result.then(function() {
- for (var i = 0; i < $scope.resonseform.fields.length; i++) {
- if (item.type == $scope.resonseform.fields[i].type) {
- // $scope.resonseform.fields.push($scope.responseData.fields[i]);
- $scope.resonseform.fields.splice(i, 1)
- break;
- }
- }
- var vmForm = Restangular.stripRestangular($scope.resonseform);
- if (vmForm) { //console.log("vmForm>>>");//console.log(vmForm);
- decodeVMForm(vmForm);
- vm.fields = vmForm.fields
- console.log(vm);
- }
- })
- }
- $scope.inWechat = function() {
- $state.go('app.desk.chart', {});
- }
- $scope.inIncident = function() {
- console.log($rootScope)
- var strandata = {};
- for (var i = 0; i < $rootScope.user.role.length; i++) {
- if ($rootScope.user.role[i].id = 5) {
- strandata = { "searchType": "todo" };
- break;
- }
- }
- $state.go('app.incident.list', { model: JSON.stringify(strandata) });
- }
- $scope.inInspect = function() {
- $state.go('app.inspection.inspectList', {});
- }
- $scope.inMeans = function() {
- $state.go('app.means.list', {});
- }
- $scope.inKnowledge = function() {
- $state.go('app.knowledge.manager', {});
- }
- $scope.inProblem = function() {
- $state.go('app.problem.list', {});
- }
- $scope.inChange = function() {
- $state.go('app.change.list', {});
- }
- $scope.inRelease = function() {
- $state.go('app.release.list', {});
- }
- $scope.datasetData = [{
- option: "这个是第一条数据"
- }, {
- option: "这个是第二条数据"
- }, {
- option: "这个是第三条数据"
- }, {
- option: "这个是第四条数据"
- }, {
- option: "这个是第五条数据"
- }, {
- option: "这个是第六条数据"
- }]
- // var speed = 60;
- // var FGDemo = document.getElementById('demo');
- // var FGDemo1 = document.getElementById('demo1');
- // var FGDemo2 = document.getElementById('demo2');
- // FGDemo2.innerHTML = FGDemo1.innerHTML
- // function Marquee1() {
- // if (FGDemo2.offsetHeight - FGDemo.scrollTop <= 0)
- // FGDemo.scrollTop -= FGDemo1.offsetHeight
- // else {
- // FGDemo.scrollTop++
- // }
- // }
- // var MyMar1 = setInterval(Marquee1, speed)
- // FGDemo.onmouseover = function() {
- // clearInterval(MyMar1)
- // }
- // FGDemo.onmouseout = function() {
- // MyMar1 = setInterval(Marquee1, speed)
- // }
- var vm = this;
- vm.options = {};
- vm.exampleTitle = ['expressionProperties', 'model property'];
- vm.fields = [];
- vm.model = {};
- $scope.langs = i18nService.getAllLangs();
- $scope.lang = 'zh-cn';
- i18nService.setCurrentLang($scope.lang);
- //alert($rootScope.user.id,null,2);
- vm.model["loginUser"] = $rootScope.user;
- var that = $injector;
- var parse = $parse;
- //用户测试数据,后续从header的auth中获取
- var userId = 2;
- userId = $rootScope.user.id;
- //==============处理表单设计数据 开始====================
- //处理组件加载后台数据选项的方法
- function refreshSelectOptions(searchVal, field) {
- if (field.templateOptions.optionsUrl) {
- var process = BpmRestangular.all("");
- if (field.templateOptions.ApiService) {
- process = UserRestangular.all("");
- }
- process.customPOST({ "idx": 0, "sum": 1000 }, field.templateOptions.optionsUrl).then(function(result) {
- if (!field.templateOptions.options) {
- field.templateOptions.options = [];
- }
- if (field.templateOptions.optionsDataKey) {
- field.templateOptions.options = result[field.templateOptions.optionsDataKey];
- } else {
- field.templateOptions.options = result;
- }
- });
- }
- }
- //解析自定义表单设计数据
- function decodeVMForm(vmForm) {
- var result = { model: {}, fields: [] };
- //设置模型实体数据 begin
- // var mdata = vmForm.model;
- //解析数据实体
- var mdata = angular.fromJson(vmForm.model); //JSON.parse(field.extjson);
- angular.extend(result.model, mdata);
- //设置模型实体数据 end
- //解析设计数据生成表单项 begin
- var fields = [];
- //处理修改设计数据中展示设置
- angular.forEach(vmForm.fields, function(field) {
- if (field.key == "") {
- delete field.key;
- }
- if (angular.isDefined(field.extjson)) {
- var extObj = angular.fromJson(field.extjson); //JSON.parse(field.extjson);
- angular.extend(field.templateOptions, extObj.templateOptions);
- delete extObj.templateOptions;
- for (var prop in extObj) {
- if (new RegExp("Expression").test(prop)) {
- //var obj = $scope.$eval(extObj[prop]);
- //extObj[prop] = $scope.$eval(extObj[prop]);
- if (extObj[prop] != null) {
- if (new RegExp("function").test(extObj[prop])) {
- var propValue = eval(extObj[prop]);
- extObj[prop] = propValue;
- } else {
- //console.log(extObj[prop]);
- var obj = $scope.$eval(extObj[prop]);
- extObj[prop] = obj;
- //console.log(obj);
- }
- }
- } else if (new RegExp("expressionProperties").test(prop)) {
- for (var p in extObj[prop]) {
- if (new RegExp("function").test(extObj[prop][p])) {
- var propValue = eval(extObj[prop][p]);
- extObj[prop][p] = propValue;
- } else {
- //if(p.indexOf("'")>=0){
- // var obj = $scope.$eval(extObj[prop][p]);
- // extObj[prop][$scope.$eval(p)]=obj;
- //}
- }
- }
- } else if ("watcher" == prop) {
- if (angular.isArray(extObj[prop])) {
- angular.forEach(extObj[prop], function(item, index) {
- for (var p in item) {
- if (new RegExp("function").test(item[p])) {
- var propValue = eval(item[p]);
- extObj[prop][index][p] = propValue;
- }
- }
- });
- } else if (angular.isObject(extObj[prop])) {
- for (var p in extObj[prop]) {
- if (new RegExp("function").test(extObj[prop][p])) {
- var propValue = eval(extObj[prop][p]);
- extObj[prop][p] = propValue;
- }
- }
- }
- }
- }
- angular.extend(field, extObj);
- delete field.extjson;
- }
- if (angular.isDefined(field.templateOptions)) {
- var templateOs = field.templateOptions;
- for (var property in templateOs) {
- //console.log(angular.isString(templateOs[property]) +" "+property + " " + (!(new RegExp("[\u4e00-\u9fa5]").test(templateOs[property]))));
- if (angular.isString(templateOs[property])) { //&& !(new RegExp("[\u4e00-\u9fa5]").test(templateOs[property]))
- if (new RegExp("function").test(templateOs[property])) {
- var propValue = eval(templateOs[property]);
- field.templateOptions[property] = propValue;
- } else {
- if (that.has(templateOs[property])) {
- field.templateOptions[property] = that.get(templateOs[property]);
- } else {
- field.templateOptions[property] = templateOs[property];
- }
- }
- } else if (templateOs[property] == null) {
- //delete field.templateOptions[property];
- } else {}
- }
- }
- // if (angular.isDefined($stateParams.formKey) && $stateParams.formKey != "") {
- // api_configure_form.renderForm($stateParams.formKey, '00000').then(function(responseData) {
- // if (responseData) {
- // //console.log("responseData>>>");console.log(responseData);
- // var vmForm = Restangular.stripRestangular(responseData);
- // if (vmForm) {
- // //console.log("vmForm>>>");console.log(vmForm);
- // var modelData = {};
- // //modelData=myData.data;
- // decodeVMForm(vmForm);
- // }
- // }
- // });
- // }
- console.log(field);
- if (angular.isDefined(field.templateOptions) && angular.isDefined(field.templateOptions.extjson)) {
- var extObj = angular.fromJson(field.templateOptions.extjson); //JSON.parse(field.extjson);
- angular.extend(field.templateOptions, extObj);
- delete field.templateOptions.extjson;
- }
- // ...
- if (field.templateOptions) {
- //处理远程获取数据控件方法调用
- if (field.templateOptions.optionsUrl) {
- field.templateOptions.refresh = refreshSelectOptions;
- }
- //事件脚本处理
- // if(field.templateOptions.ngChangeScript){
- // if(!field.expressionProperties)field.expressionProperties={};
- // field.expressionProperties.ngChange = function(modelVal,viewVal,ev){
- //// console.log(ev);
- //// console.log("change>>"+ev.options.key);
- // eval(field.templateOptions.ngChangeScript);
- // }
- // }
- // if(field.templateOptions.ngClickScript){
- // if(!field.expressionProperties)field.expressionProperties={};
- // field.expressionProperties.ngClick = function(modelVal,viewVal,ev){
- //// console.log(ev);
- //// console.log("click>>"+ev.options.key);
- // eval(field.templateOptions.ngClickScript);
- // }
- // }
- //处理嵌套属性数据绑定/
- if (field.templateOptions.pkey) {
- var pmodel, i = 0;
- angular.forEach(field.templateOptions.pkey.split("."), function(p) {
- if (i == 0) {
- if (result.model[p] == null) {
- result.model[p] = {};
- }
- pmodel = result.model[p];
- i++;
- } else {
- if (pmodel[p] == null) {
- pmodel[p] = {};
- }
- pmodel = pmodel[p];
- }
- });
- if (pmodel != null) {
- field.model = pmodel;
- if (pmodel[field.key] == null) {
- pmodel[field.key] = null;
- }
- }
- } else {
- if (result.model[field.key] == null) {
- result.model[field.key] = null;
- }
- }
- //处理弹出框组件初始化
- if (field.type == "ui-input-selectmodal") {
- field.templateOptions.modal = $modal;
- //field.templateOptions.Restangular = Restangular;
- } else if (field.type == "ui-requesterselect") {
- //field.templateOptions.language = $scope.lang;
- field.templateOptions.modal = $modal;
- field.templateOptions.UserService = api_user_data;
- } else if (field.type == "ui-userselect") {
- field.templateOptions.modal = $modal;
- //field.templateOptions.Restangular = Restangular;
- } else if (field.type == "ui-multiuserselect") {
- field.templateOptions.modal = $modal;
- } else if (field.type == "ui-search") {
- field.templateOptions.modal = $modal;
- } else if (field.type == "ui-modelselect") {
- field.templateOptions.modal = $modal;
- //console.log("$rootScope.user:" + JSON.stringify($rootScope.user));
- field.templateOptions.loginUser = $rootScope.user;
- //field.templateOptions.Restangular = Restangular;
- } else if (field.type == "ui-incidentmodelselect") {
- field.templateOptions.modal = $modal;
- //console.log("$rootScope.user:" + JSON.stringify($rootScope.user));
- field.templateOptions.loginUser = $rootScope.user;
- //field.templateOptions.Restangular = Restangular;
- } else if (field.type == "ui-repeatSection") {
- var repeatForm = {
- model: {
- },
- fields: field.templateOptions.fields
- };
- repeatForm.model[field.key] = [];
- decodeVMForm(repeatForm);
- } else if (field.type == "ui-currentuser") {
- field.templateOptions.user = vm.model["loginUser"];
- }
- }
- // console.log(field);
- result.fields.push(field);
- });
- angular.extend($scope.vm.fields, result.fields);
- angular.extend($scope.vm.model, result.model);
- // console.log("$scope.vm.model="+JSON.stringify($scope.vm.model));
- vm.model["loginUser"] = $rootScope.user;
- $scope.formData = vmForm;
- // console.log("$scope.formData="+JSON.stringify($scope.formData.url));
- if ($scope.formData.url == "start") {
- $scope.Reset = true;
- $scope.close = false;
- } else if ($scope.formData.url == "complete") {
- $scope.Reset = false;
- $scope.close = true;
- }
- //解析设计数据生成表单项 end
- return result;
- }
- //======================处理表单设计数据 结束========================
- $scope.ldloading = {};
- function filter(obj) {
- angular.forEach(obj, function(key, value) {
- if (value === "" || value === null) {
- delete obj[key];
- } else if (Object.prototype.toString.call(value) === '[object Object]') {
- filter(value);
- } else if (angular.isArray(value)) {
- angular.forEach(value, function(item) {
- filter(item);
- });
- }
- });
- }
- $scope.closeModel = function() {
- // console.log("pdKey="+pdKey);
- // if ($stateParams.pdKey) {
- // pdKey = $stateParams.pdKey;
- // }
- event.preventDefault();
- };
- $scope.submit = function(data, style) {
- var userDashboards = [];
- angular.forEach(data.fields, function(item, index) {
- userDashboards.push({ "dashboardId": Number(item.id), "orders": (100 + index).toString() })
- })
- var fildata = {
- userDashboard: {
- "userId": $rootScope.user.id,
- "userDashboards": userDashboards
- }
- }
- api_user_data.addData("userDashboard", fildata).then(function(response) {
- if (response && response.status == 200) {
- var resData = Restangular.stripRestangular(response);
- SweetAlert.swal({
- title: "提交成功!",
- type: "success",
- confirmButtonColor: "#007AFF"
- }, function() {
- userright();
- });
- } else {
- SweetAlert.swal({
- title: "系统错误",
- text: "系统错误,请稍后重试!",
- type: "error",
- confirmButtonColor: "#DD6B55"
- });
- }
- // $scope.ldloading[style.replace('-', '_')] = false;
- });
- };
- $scope.userdashright = [];
- function userright() {
- api_user_data.fetchgetData('user', $rootScope.user.id).then(function(response) {
- if (response.status == 200) {
- $scope.filboard = response.data.dashboard;
- if (response.data.userDashboard && response.data.userDashboard.length > 0) {
- $scope.userdashright = response.data.userDashboard;
- } else {
- if (response.data.dashboard && response.data.dashboard.length > 0) {
- for (var i = 0; i < response.data.dashboard.length; i++) {
- $scope.userdashright.push({ dashboard: response.data.dashboard[i], orders: 100 + i })
- }
- }
- }
- // $scope.userdashright = response.data.userDashboard;
- vmformData();
- } else {
- SweetAlert.swal("系统错误!", "请刷新重试", "error");
- }
- })
- }
- userright();
- function vmformData() {
- $scope.vm = vm;
- api_configure_form.renderForm("dashboard").then(function(responseData) {
- if (responseData) { //console.log("responseData>>>");//console.log(responseData);
- $scope.responseData = responseData;
- $scope.resonseform = angular.copy(responseData);
- $scope.resonseform.fields = [];
- for (var i = 0; i < responseData.fields.length; i++) {
- for (var j = 0; j < $scope.userdashright.length; j++) {
- if ($scope.userdashright[j].dashboard.type == responseData.fields[i].type) {
- responseData.fields[i].id = $scope.userdashright[j].dashboard.id.toString();
- responseData.fields[i].templateOptions.orders = $scope.userdashright[j].orders;
- $scope.resonseform.fields.push(responseData.fields[i]);
- break;
- }
- }
- }
- var temp = {};
- for (var i = 0; i < $scope.resonseform.fields.length; i++) {
- for (var j = 0; j < i; j++) {
- if (Number($scope.resonseform.fields[j].templateOptions.orders) > Number($scope.resonseform.fields[i].templateOptions.orders)) {
- temp = $scope.resonseform.fields[j];
- $scope.resonseform.fields[j] = $scope.resonseform.fields[i];
- $scope.resonseform.fields[i] = temp;
- }
- }
- }
- // $scope.formdatas = angular.copy($scope.resonseform);
- var vmForm = Restangular.stripRestangular($scope.resonseform);
- if (vmForm) { //console.log("vmForm>>>");//console.log(vmForm);
- decodeVMForm(vmForm);
- console.log(vm);
- }
- }
- });
- }
- }
- ]);
|