var sysFormly = angular.module("formlySystem", [ "formly", "formlyBootstrap", "ui.bootstrap", "ngSanitize", "ui.select", "ui.grid", ]); app.requires.push("formlySystem"); sysFormly.config(function config(formlyConfigProvider) { //格式转换方法 XXX-XXX转驼峰命名 }); sysFormly.controller("workingFormCtrl", [ "$rootScope", "$scope", "$parse", "$filter", "$injector", "$http", "$q", "$state", "$stateParams", "$modal", "$timeout", "$interval", "SweetAlert", "FileUploader", "i18nService", "moment", "Restangular", "UserRestangular", "BpmRestangular", "api_configure_form", "api_bpm_domain", "api_bpm_data", "api_user_data", "api_solution", "api_wechatfile", function ( $rootScope, $scope, $parse, $filter, $injector, $http, $q, $state, $stateParams, $modal, $timeout, $interval, SweetAlert, FileUploader, i18nService, moment, Restangular, UserRestangular, BpmRestangular, api_configure_form, api_bpm_domain, api_bpm_data, api_user_data, api_solution, api_wechatfile ) { //console.log($stateParams); var vm = this; vm.options = {}; vm.exampleTitle = ["expressionProperties", "model property"]; vm.fields = []; vm.model = {}; var loginUser = $rootScope.user; $scope.langs = i18nService.getAllLangs(); $scope.lang = "zh-cn"; var that = $injector; var parse = $parse; var modelWatch = ""; var fieldsWatch = []; var serviceWatch = null; var formWatch = {}; var jry_modelWatch = ""; if (angular.isDefined($stateParams.model) && $stateParams.model != "") { modelWatch = JSON.parse($stateParams.model); jry_modelWatch = JSON.parse($stateParams.model); // console.log("modelWatch:"+ JSON.stringify(modelWatch)); } if (angular.isDefined($stateParams.fields) && $stateParams.fields != "") { fieldsWatch = JSON.parse($stateParams.fields); } if (angular.isDefined($stateParams.extjson) && $stateParams.extjson != "") { formWatch.extjson = JSON.parse($stateParams.extjson); } if ( angular.isDefined($stateParams.cancelUrl) && $stateParams.cancelUrl != "" ) { formWatch.cancelUrl = $stateParams.cancelUrl; } if (angular.isDefined($stateParams.url) && $stateParams.url != "") { formWatch.url = $stateParams.url; } if (angular.isDefined($stateParams.service) && $stateParams.service != "") { if (that.has($stateParams.service)) { serviceWatch = that.get($stateParams.service); } else { serviceWatch = $stateParams.service; } } // 选择上班人员---------------------start------------------------------------- $scope.my_user = []; $scope.my_data = []; $scope.try_async_user = function () { $scope.doing_asyncuser = true; api_user_data .fetchDataList("user", { idx: 0, sum: 1000000,user:{engineer: 1,} }) .then(function (response) { if (response.status == 200) { var data = response.list; var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; angular.extend(object, data[i]); object.label = object.name; objects.push(object); } $scope.my_user = convertParentToChildList(objects); console.log($scope.my_user); $scope.tree_user = angular.copy($scope.my_user); // if ($scope.my_user.length > 0) { $scope.doing_asyncuser = false; // } console.log($scope.vm.model.workOnlineConfig.userList); $scope.my_user.forEach(function (v) { $scope.vm.model.workOnlineConfig.userList.forEach(function (vv) { if (v.id == vv.id) { v.checks = true; $scope.getbranchs.push(v); } }); }); $scope.getOldbranchs = angular.copy($scope.getbranchs); $scope.try_async_load(); } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error", }); } }); }; $scope.try_async_load = function () { $scope.doing_async = true; api_user_data .fetchDataList("group", { idx: 0, sum: 1000 }) .then(function (response) { if (response.status == 200) { var data = response.list; var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; angular.extend(object, data[i]); object.label = object.groupName; objects.push(object); } $scope.my_data = convertParentToChildList(objects); console.log($scope.my_data); $scope.my_data.unshift({ id: 0, groupName: "全部", label: "全部", users: $scope.tree_user, }); $scope.tree_data = angular.copy($scope.my_data); if ($scope.my_data.length > 1) { $scope.doing_async = false; } } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error", }); } }); }; function convertParentToChildList(data) { var treeMap = {}; var list = []; convertListToTree(data, treeMap); angular.forEach(treeMap, function (item) { list.push(item); }); return list; } function convertListToTree(data, treeMap) { var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup var root = null; //Initially set our loop to null //loop over data for (var i = 0; i < data.length; i++) { var datum = data[i]; //each node will have children, so let's give it a "children" poperty datum.children = []; //add an entry for this node to the map so that any future children can //lookup the parent idToNodeMap[datum.id] = datum; //Does this node have a parent? // console.log("datum="+JSON.stringify(datum)) if (typeof datum.parent === "undefined" || datum.parent === null) { //Doesn't look like it, so this node is the root of the tree root = datum; treeMap[datum.id] = root; } else { //This node has a parent, so let's look it up using the id parentNode = idToNodeMap[datum.parent.id]; //We don't need this property, so let's delete it. // delete datum.parent; //Let's add the current node as a child of the parent node. parentNode.children.push(datum); } } return root; } //选中工作组 $scope.group = {}; $scope.my_tree_handler = function (branch) { var ids = branch.users.map(function (v) { return v.id; }); $scope.my_user = $scope.tree_user.filter(function (v) { return ids.includes(v.id); }); $scope.getbranchs.forEach(function (v) { $scope.my_user.forEach(function (vv) { if (v.id == vv.id) { vv.checks = true; } }); }); $scope.group = branch; console.log(branch, $scope.my_user); }; // 选中/取消上班人员 $scope.getbranchs = []; $scope.getOldbranchs = []; //上一次选择的上班人员 $scope.formbranch = function (branchData) { console.log(branchData); // 判断当前工作组选中还是取消人员 var old = $scope.getOldbranchs.filter(function (v) { var groups = v.group || []; var ids = groups.map(function (vv) { return vv.id; }); return $scope.group.id ? ids.includes($scope.group.id) : true; }); if (old.length > branchData.length) { //删除 取出(old与branchData)差异值,删除 var currentIds = branchData.map(function (v) { return v.id; }); currentIds.forEach(function (v, i) { old.splice(i, 1); }); var delId = old[0].id; $scope.getbranchs = $scope.getOldbranchs.filter(function (vv) { return vv.id != delId; }); $scope.getOldbranchs = angular.copy($scope.getbranchs); //最近一次上班人员 } else { //增加 $scope.getbranchs = $scope.uniqueU($scope.getbranchs, branchData); $scope.getOldbranchs = angular.copy($scope.getbranchs); //最近一次上班人员 } }; $scope.uniqueU = function (getbranchs, branchData) { var filterResult = []; getbranchs.forEach(function (v) { branchData.forEach(function (vv) { if (v.id == vv.id) { filterResult.push(v); } }); }); filterResult = filterResult.map(function (item) { return item.id; }); //ids var arr = branchData.filter(function (item) { return !filterResult.includes(item.id); }); return getbranchs.concat(arr); }; // 去除上班人员 $scope.removeBranch = function (u) { console.log(u.id, $scope.getbranchs); $scope.getbranchs = $scope.getbranchs.filter(function (v) { if (v.id == u.id) { $scope.my_user.forEach(function (vv) { if (vv.id == v.id) { vv.checks = false; } }); } return v.id != u.id; }); $scope.getOldbranchs = angular.copy($scope.getbranchs); //最近一次上班人员 }; // 选择上班人员---------------------end------------------------------------- //用户测试数据,后续从header的auth中获取 var userId = 2; userId = $rootScope.user.id; //==============处理表单设计数据 开始==================== //处理组件加载后台数据选项的方法 function refreshSelectOptions(searchVal, field) { console.log(field, "field", $scope.vm.model); if ( field.templateOptions.optionsUrl && !field.templateOptions.isnosearch ) { var process = BpmRestangular.all(""); if (field.templateOptions.ApiService) { process = UserRestangular.all(""); } if (field.templateOptions.Apicommon) { process = WechatRestangular.all(""); } var datakey = { idx: 0, sum: 1000 }; if (field.templateOptions.modelreasondata) { datakey = field.templateOptions.modelreasondata; } process .customPOST(datakey, field.templateOptions.optionsUrl) .then(function (result) { if (!field.templateOptions.options) { field.templateOptions.options = []; } if (field.templateOptions.optionsDataKey) { if (field.key === "userList") { $scope.vm.model.workOnlineConfig.userList.forEach(function (v) { result[field.templateOptions.optionsDataKey].forEach( function (vv, ii) { if (v.id == vv.id) { result[field.templateOptions.optionsDataKey].splice( ii, 1 ); } } ); }); } field.templateOptions.options = result[field.templateOptions.optionsDataKey]; } else { field.templateOptions.options = result.list; } }); } } //获取表单后数据处理 function formfield(field, result) { // angular.forEach(fields.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(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 ) { // if (!field.templateOptions.isnoreash) { field.templateOptions.refresh = refreshSelectOptions; // } } //处理嵌套属性数据绑定/ 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-requesterinformation") { 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-jryselect") { field.templateOptions.modal = $modal; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-jrySelectOpen") { field.templateOptions.modal = $modal; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-jrySelectFault") { field.templateOptions.modal = $modal; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-userselectSearch") { field.templateOptions.modal = $modal; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-multiuserselect") { field.templateOptions.modal = $modal; } else if (field.type == "ui-stringuserselect") { 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-dropfile") { $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({ url: "/uploader", }); field.templateOptions.taskId = $stateParams.taskId; field.templateOptions.processInstanceId = $stateParams.processInstanceId; field.templateOptions.userId = $rootScope.user.id; } else if (field.type == "ui-dropfielknow") { $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({ url: "/uploader", }); field.templateOptions.taskId = $stateParams.taskId; field.templateOptions.processInstanceId = $stateParams.processInstanceId; field.templateOptions.userId = $rootScope.user.id; } else if (field.type == "ui-dropfilenotup") { $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({ url: "/uploader", }); field.templateOptions.taskId = $stateParams.taskId; field.templateOptions.processInstanceId = $stateParams.processInstanceId; field.templateOptions.userId = $rootScope.user.id; //field.ApiService=api_bpm_domain; } else if (field.type == "ui-dropfiletable") { if (field.templateOptions.processInstanceId) { } else { field.templateOptions.processInstanceId = $stateParams.processInstanceId; } } 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"]; } else if (field.type == "ui-workernumbersign") { field.templateOptions.user = vm.model["loginUser"]; } } } //解析自定义表单设计数据 $scope.oldfromtype = true; function decodeVMForm(vmForm) { if (vmForm.formType == "1") { $scope.oldfromtype = false; } else { $scope.oldfromtype = true; } var result = { model: {}, fields: [] }; //设置模型实体数据 begin // var mdata = vmForm.model; //解析数据实体 var mdata = angular.fromJson(vmForm.model); //JSON.parse(field.extjson); angular.extend(result.model, mdata); if (modelWatch != null && modelWatch != "") { //angular.extend(result.model.incident,modelWatch.incident); //result.model.alarmType = modelWatch.alarmType; // vmForm.cancelUrl = modelWatch.cancelUrl; // console.log(modelWatch.cancelUrl) for (var index in modelWatch.model) { //console.log(JSON.stringify(index+" " +JSON.stringify( modelWatch.model[index]))); if (result.model[index] != null) { angular.extend(result.model[index], modelWatch.model[index]); } else { result.model[index] = modelWatch.model[index]; } } } //设置模型实体数据 end //解析设计数据生成表单项 begin var fields = []; //处理修改设计数据中展示设置 angular.forEach(vmForm.fields, function (fields) { if (vmForm.formType == "1") { angular.forEach(fields.fields, function (field) { formfield(field, result); }); } else { formfield(fields, result); } // console.log(field); result.fields.push(fields); }); angular.extend($scope.vm.fields, result.fields); angular.extend($scope.vm.model, result.model); vm.model["loginUser"] = $rootScope.user; if ( modelWatch != null && modelWatch != "" && modelWatch.cancelUrl != null && modelWatch.cancelUrl != "" ) { vmForm.cancelUrl = modelWatch.cancelUrl; } $scope.formData = vmForm; // console.log($scope.formData.url); // console.log("$scope.formData="+JSON.stringify($scope.formData.url)); if ($scope.formData.url == "start") { $scope.Reset = true; $scope.close = true; $rootScope.isMask = 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 () { $state.go($scope.formData.cancelUrl, {}); event.preventDefault(); }; // 状态下拉框数据 $scope.stateListData = {}; $scope.getStateData = function () { var data = { key: "task_month_state", type: "list", }; api_wechatfile.getDictionary(data).then(function (res) { angular.forEach(res, function (v, i) { $scope.stateListData[v.value] = v.id; }); }); }; $scope.getStateData(); // 获取状态-lmm $scope.stateListData1 = {}; $scope.getStateData1 = function () { //lyl var data = { key: "task_sub_state", type: "list", }; api_wechatfile.getDictionary(data).then(function (res) { angular.forEach(res, function (v, i) { $scope.stateListData1[v.value] = v.id; }); }); }; $scope.getStateData1(); vm.submit = function (data, style) { console.log(vm); // console.log("data="+JSON.stringify(data)); // if($stateParams.formKey=="system_edit"){ // console.log("roleid="+$scope.roleid); if (vm.form.$valid) { vm.options.updateInitialValue(); $scope.ldloading[style.replace("-", "_")] = true; // alert(JSON.stringify(vm.model), null, 2); var _ = window._; vm.model = (function filter(obj) { var dateTransKeys = []; var filtered = _.pick(obj, function (v, k, obj) { if (_.isDate(v)) { dateTransKeys.push(k); } return ( angular.isDefined(v) && v !== null && (angular.isArray(v) ? v.length > 0 : true) && (_.isPlainObject(v) ? !_.isEmpty(v) : true) ); }); return _.cloneDeep(filtered, function (v, index, object) { if (angular.isArray(dateTransKeys) && dateTransKeys.length > 0) { angular.forEach(dateTransKeys, function (item) { v[item] = moment(v[item]).format("YYYY-MM-DD HH:mm:ss"); }); dateTransKey = []; return v; } return !_.isEmpty(filtered) && v !== filtered && _.isPlainObject(v) ? filter(v) : undefined; }); })(vm.model); // console.log("$scope.formData=" + $scope.formData); switch ($scope.formData.url) { // 新建 case "start": var PersonArr = []; if (vm.model.workOnlineConfig.userList) { for ( var i = 0; i < vm.model.workOnlineConfig.userList.length; i++ ) { PersonArr.push({ id: vm.model.workOnlineConfig.userList[i] }); } } vm.model.workOnlineConfig.userList = PersonArr; vm.model.workOnlineConfig["state"] = { id: $scope.stateListData[1], }; //lmm vm.model.workOnlineConfig.createUser = { id: loginUser.id }; api_user_data .addData("workOnlineConfig", vm.model) .then(function (res) { console.log(2222); if (res.status == 200) { SweetAlert.swal( { title: "保存成功!", type: "success", confirmButtonColor: "#007AFF", }, function () { $state.go($scope.formData.cancelUrl); } ); } else { SweetAlert.swal( { title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55", }, function () { $state.go($scope.formData.cancelUrl); } ); } }); break; // 编辑 case "edit": console.log(vm.model.workOnlineConfig); // if ($scope.getbranchs.length) { // if (vm.model.workOnlineConfig.userList) { // var userListArr = []; // if (vm.model.workOnlineConfig.userList[0].name) { // } else { // for ( // var i = 0; // i < vm.model.workOnlineConfig.userList.length; // i++ // ) { // userListArr.push({ // id: vm.model.workOnlineConfig.userList[i], // }); // } // vm.model.workOnlineConfig.userList = userListArr; // } // 上班人员选择页面start vm.model.workOnlineConfig.userList = angular.copy( $scope.getbranchs ); // 上班人员选择页面end if (!vm.model.workOnlineConfig.id) { vm.model.workOnlineConfig.normalClass = { id: vm.model.workOnlineConfig.normalClass, }; } vm.model = { workOnlineConfig: vm.model.workOnlineConfig }; console.log(vm.model); //baba // return; api_user_data .updData("workOnlineConfig", vm.model) .then(function (res) { if (res.data && res.data.id) { SweetAlert.swal( { title: "保存成功!", type: "success", confirmButtonColor: "#007AFF", }, function () { $state.go($scope.formData.cancelUrl); } ); } else { SweetAlert.swal( { title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55", }, function () { $state.go($scope.formData.cancelUrl); } ); } }); // } else { // SweetAlert.swal( // { // title: "校验错误", // text: "上班人员没有填 !", // type: "error", // confirmButtonColor: "#DD6B55", // }, // function () { // $state.go($scope.formData.cancelUrl); // } // ); // } break; // 反馈 case "feedback": // 反馈时间赋予 if ( vm.model.workOnlineConfig.feedback != jry_modelWatch.model.workOnlineConfig.feedback ) { vm.model.workOnlineConfig.backTime = moment( new Date().getTime() ).format("YYYY-MM-DD HH:mm:ss"); } if ( vm.model.workOnlineConfig.feedback2 != jry_modelWatch.model.workOnlineConfig.feedback2 ) { vm.model.workOnlineConfig.backTime2 = moment( new Date().getTime() ).format("YYYY-MM-DD HH:mm:ss"); } if ( vm.model.workOnlineConfig.feedback3 != jry_modelWatch.model.workOnlineConfig.feedback3 ) { vm.model.workOnlineConfig.backTime3 = moment( new Date().getTime() ).format("YYYY-MM-DD HH:mm:ss"); } if ( vm.model.workOnlineConfig.feedback4 != jry_modelWatch.model.workOnlineConfig.feedback4 ) { vm.model.workOnlineConfig.backTime4 = moment( new Date().getTime() ).format("YYYY-MM-DD HH:mm:ss"); } vm.model.workOnlineConfig.state.id = $scope.stateListData[1]; api_user_data .updData("workOnlineConfig", vm.model) .then(function (res) { if (res.status == 200) { SweetAlert.swal( { title: "保存成功!", type: "success", confirmButtonColor: "#007AFF", }, function () { $state.go($scope.formData.cancelUrl); } ); } else { SweetAlert.swal( { title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55", }, function () { $state.go($scope.formData.cancelUrl); } ); } }); break; // 任务总结 case "summary": vm.model.workOnlineConfig.state.id = $scope.stateListData[3]; api_user_data .updData("workOnlineConfig", vm.model) .then(function (res) { if (res.status == 200) { SweetAlert.swal( { title: "保存成功!", type: "success", confirmButtonColor: "#007AFF", }, function () { $state.go($scope.formData.cancelUrl); } ); } else { SweetAlert.swal( { title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55", }, function () { $state.go($scope.formData.cancelUrl); } ); } }); break; // 任务处理 case "listHandle": if ( vm.model.taskSub.feedback != jry_modelWatch.model.taskSub.feedback ) { vm.model.taskSub.backTime = moment(new Date().getTime()).format( "YYYY-MM-DD HH:mm:ss" ); } if ( vm.model.taskSub.feedback2 != jry_modelWatch.model.taskSub.feedback2 ) { vm.model.taskSub.backTime2 = moment(new Date().getTime()).format( "YYYY-MM-DD HH:mm:ss" ); } if ( vm.model.taskSub.feedback3 != jry_modelWatch.model.taskSub.feedback3 ) { vm.model.taskSub.backTime3 = moment(new Date().getTime()).format( "YYYY-MM-DD HH:mm:ss" ); } if ( vm.model.taskSub.feedback4 != jry_modelWatch.model.taskSub.feedback4 ) { vm.model.taskSub.backTime4 = moment(new Date().getTime()).format( "YYYY-MM-DD HH:mm:ss" ); } vm.model.taskSub.state.id = $scope.stateListData1[2]; console.log($scope.stateListData1[2]); api_user_data.updData("taskSub", vm.model).then(function (res) { if (res.status == 200) { SweetAlert.swal( { title: "保存成功!", type: "success", confirmButtonColor: "#007AFF", }, function () { $state.go($scope.formData.cancelUrl); } ); } else { SweetAlert.swal( { title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55", }, function () { $state.go($scope.formData.cancelUrl); } ); } }); break; default: $scope.ldloading[style.replace("-", "_")] = false; break; } } else { SweetAlert.swal({ title: "校验错误", text: "请填写必填项!", type: "error", confirmButtonColor: "#DD6B55", }); angular.forEach(vm.form.$error.required, function (item) { angular.forEach(vm.fields, function (f) { if (f.name == item.$name) { f.validation.show = true; } }); }); } }; //审核取消 $scope.jry_shenhe_close = function () { $state.go("app.knowledge.manager", {}); }; //审核通过 $scope.jry_shenhe_success = function () { var filedata = vm.model.knowledge; // filedata.status.id=72; filedata["status"] = { id: 72 }; // filedata.approveUser.id=loginUser.id; filedata["approveUser"] = { id: loginUser.id }; filedata.approvetime = moment(new Date()).format("YYYY-MM-DD HH:mm:ss"); delete filedata["item"]; delete filedata.solutionType["isExpanded"]; // console.log(filedata); var shenhe_data = { solution: filedata }; api_solution.jry_updateSolution(shenhe_data).then(function (res) { SweetAlert.swal( { title: "审核通过!", type: "success", confirmButtonColor: "#007AFF", }, function () { $state.go("app.knowledge.manager"); } ); }); }; // 审核驳回 $scope.jry_shenhe_bohui = function () { var filedata = vm.model.knowledge; filedata.status.id = 73; filedata["approveUser"] = { id: loginUser.id }; filedata.reject = $scope.bohui_YY; filedata.approvetime = moment(new Date()).format("YYYY-MM-DD HH:mm:ss"); delete filedata["item"]; delete filedata.solutionType["isExpanded"]; // console.log(filedata); var shenhe_data = { solution: filedata }; api_solution.jry_updateSolution(shenhe_data).then(function (res) { SweetAlert.swal( { title: "该知识已驳回!", type: "success", confirmButtonColor: "#007AFF", }, function () { $state.go("app.knowledge.manager"); } ); }); }; $scope.bohui_show = false; $scope.jry_bohuiyuanyin_show = function () { $scope.bohui_show = true; }; $scope.bohuiyuanyin_close = function () { $scope.bohui_show = false; }; $scope.vm = vm; 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); } } }); } else if ($stateParams.formKey == undefined) { //task_start api_configure_form .renderForm("working_manage", "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); //获取数据 // $scope.vm.model = api_bpm_data .fetchDataList("workOnlineConfig", { idx: 0, sum: 1000 }) .then(function (res) { if (res.status == 200) { if (res.list[0]) { console.log(res.list[0]); $scope.vm.model.workOnlineConfig.id = res.list[0].id; $scope.vm.model.workOnlineConfig.onlineMsg = res.list[0].onlineMsg; $scope.vm.model.workOnlineConfig.normalClass = res.list[0].normalClass; $scope.vm.model.workOnlineConfig.offlineMsg = res.list[0].offlineMsg; $scope.vm.model.workOnlineConfig.userList = res.list[0].userList || []; $scope.try_async_user(); } } }); } } }); } else { // if (angular.isDefined(fieldsWatch) && fieldsWatch.length > 0) { var vmForm = { fields: fieldsWatch, model: modelWatch, }; angular.extend(vmForm, formWatch); //$scope.formData = vmForm; if (vmForm) { decodeVMForm(vmForm); } } else { //for form //TODO //测试数据 开始 var testJson = { fields: [ { key: "formtitle", type: "ui-title", noFormControl: true, templateOptions: { label: "title is ", placeholder: "Formly is terrific!", }, }, { key: "b", type: "ui-input", className: "col-xs-4", templateOptions: { type: "input", label: "input a", placeholder: "search a...", rBtn: { icon: "fa fa-phone", onClick: function (val, opt, el, ev, model) { alert(val); }, }, lAddon: '', }, }, { key: "id", type: "ui-select", //initialValue:"false", templateOptions: { label: "测试默认值", optionsUrl: "abc", //options:[{"id":"false","name":"不取消"},{"id":"true","name":"取消"}], // refresh:function(){ // return [{"id":1,"name":"事件","code":1},{"id":2,"name":"问题","code":2},{"id":3,"name":"配置","code":3},{"id":4,"name":"服务级别","code":4},{"id":5,"name":"内部需求","code":5}]; // }, //options:[{"id":1,"name":"事件","code":1},{"id":2,"name":"问题","code":2},{"id":3,"name":"配置","code":3},{"id":4,"name":"服务级别","code":4},{"id":5,"name":"内部需求","code":5}], valueProp: "id", labelProp: "name", pkey: "change.source", }, }, { key: "systemType", type: "ui-multiselect", className: "col-xs-4", templateOptions: { label: "所属系统类型", pkey: "change", valueProp: "id", labelProp: "source", optionsUrl: "data/fetchDataList/changesystemtype", optionsDataKey: "list", onChange: function (value, options, that, event, model) { var field = null; angular.forEach(that.$parent.fields, function (item) { if (item.key == "influenceDepartment") { field = item; } if (item.key == "notificationDepartment") { notifyField = item; } }); if (field != null) { field.templateOptions.optionsPostData = { systemIds: [], }; angular.forEach(value, function (vue) { field.templateOptions.optionsPostData["systemIds"].push({ id: vue, }); }); field.value([]); if (value.length > 0) { field.templateOptions.refreshData(null, field); } } if (notifyField != null) { notifyField.templateOptions.optionsPostData = { systemIds: [], }; angular.forEach(value, function (vue) { notifyField.templateOptions.optionsPostData[ "systemIds" ].push({ id: vue }); }); notifyField.value([]); if (value.length > 0) { notifyField.templateOptions.refreshData( null, notifyField ); } } }, }, }, { key: "influenceDepartment", type: "ui-multiselectplus", className: "col-xs-4", templateOptions: { label: "所影响的应用系统、部门", pkey: "change", valueProp: "", //对应value labelProp: "dept", //对应key optionsUrl: "dept/findBySystemType", //对应后台地址,api/之前的部分省略 optionsDataKey: "list", //对应返回数组数据的键值, optionsPostData: function (options, model, scope) { return { systemIds: [] }; }, refreshData: function (search, options, model, that) { options.templateOptions.options = [ { id: 13, dept: "村镇银行管理部" }, { id: 14, dept: "电子银行部" }, ]; options.value(options.templateOptions.options); }, optionsChecked: true, required: true, ApiService: UserRestangular, }, }, { key: "notificationDepartment", type: "ui-multiselectplus", className: "col-xs-4", templateOptions: { label: "需通知部门", pkey: "change", valueProp: "id", //对应value labelProp: "dept", //对应key optionsUrl: "dept/findBySystemType", //对应后台地址,api/之前的部分省略 optionsDataKey: "list", //对应返回数组数据的键值, optionsPostData: function (options, model, scope) { return { systemIds: [] }; }, optionsChecked: true, required: true, ApiService: UserRestangular, }, }, { type: "ui-label", key: "arrayData", className: "col-xs-4", templateOptions: { label: "数组label数据", labelProp: "dept", }, }, { key: "selectUser", type: "ui-requesterselect", className: "col-xs-12", templateOptions: { label: "报修人信息", modalTitle: "报修人列表", fetchItems: function (filterData, APIService) { return APIService.fetchDataList("requester", filterData); }, Restangular: Restangular, ApiService: api_user_data, // onClick:function(val, options, field, event , model){ // console.log(options); // } }, }, { key: "cabUser", type: "ui-multiuserselect", className: "col-xs-12", templateOptions: { label: "CAB评审成员", modalTitle: "CAB成员列表", fetchItems: function (filterData, APIService) { return APIService.fetchDataList("user", filterData); }, Restangular: Restangular, ApiService: api_user_data, onClick: function (val, options, field, event, model) { // console.log(model); }, }, }, // { // key:'incident', // type:'ui-modelselect', // className:'col-xs-3', // templateOptions:{ // label:'关联事件工单', // modalTitle:'工单列表', // fetchItems:function(filterData,APIService){ // return APIService.fetchDataList('incident',filterData); // }, // Restangular:"Restangular", // ApiService:"api_bpm_data", // columnDefs:[ // { name:'id', width:80, enableFiltering:false}, // { name:'title', displayName:'事件主题', width:140}, // { name:'type.name', displayName:'事件类型', width:140}, // { name:'emergency.name', displayName:'紧急度', width:80}, // { name:'state.name', displayName:'状态', width:100}, // { name:'emergency.name', displayName:'紧急度', width:80}, // { name:'influence.name', displayName:'影响度', width:80}, // { name:'priority.name', displayName:'优先级', width:80}, // { name:'handlerUser.name', displayName:'当前处理人', width:100}, // { name:'acceptDate', displayName:'创建时间', width:100} // ], // displayName:'title', // onClick:function(val, options, field, event , model){ // //model.start_code++; // console.log(options); // } // } // }, // { // key: 'worknumber', // type: 'ui-workernumber', // className:'col-xs-3', // templateOptions: { // label: 'work number', // Restangular:Restangular, // ApiService:api_bpm_domain, // getWorkernumber: function(APIService){ // return APIService.workernumber('bg'); // } // } // }, // { // key: 'chkme', // type: 'ui-checkbox', // className:'col-xs-3', // templateOptions: { // label: 'Check me out' // } // }, // { // key: 'droplink', // type: 'ui-link', // className: 'col-xs-3', // templateOptions:{ // label:'添加附件', // onClick:function(val, options, field, event ,model){ // if(angular.isUndefined(field.form.dropState)){ // field.form.dropState=false; // } // field.form.dropState=!field.form.dropState; // console.log(field); // } // } // }, // { // key: 'dropfile', // type: 'ui-dropfile', // className: 'col-xs-12', // templateOptions:{ // label:'附件', // uploadUrl:'http://127.0.0.1:9008/saveAttachments' // } // }, // { // type: 'ui-label', // key: 'changesign', // className: 'col-xs-4', // templateOptions: { // label:'变更请求单号', // pkey:'change' // } // }, // { // type: 'ui-label', // key: 'title', // className: 'col-xs-4', // templateOptions: { // label:'变更标题', // pkey:'change' // } // }, // //关联发布单号 // //新建发布 // { // key: 'droplist', // type: 'ui-dropfiletable', // className: 'col-xs-12', // templateOptions:{ // label:'附件下载列表', // Restangular:Restangular, // processInstanceId:'250033', // ApiService:api_bpm_domain // } // }, // { // type: 'ui-repeatSection', // key: 'investments', // className: 'col-xs-12', // templateOptions: { // btnText: '新增变更施工单', // fields: [ // { // className: 'col-xs-3', // type: 'ui-input', // key: 'aboutci', // templateOptions: { // label: '关联的配置项', // required: true // } // }, // { // className: 'col-xs-3', // type: 'ui-datepicker', // key: 'planbegintime', // templateOptions: { // label: '计划开始时间', // required: true // } // }, // { // className: 'col-xs-3', // type: 'ui-datepicker', // key: 'planendtime', // templateOptions: { // label: '计划完成时间', // required: true // } // }, // { // className: 'col-xs-12', // type: 'ui-userselect', // key: 'handleruser', // templateOptions: { // label: '实施人员信息', // modalTitle:'实施人列表', // required: true, // fetchItems:function(filterData, APIService){ // return APIService.fetchDataList('user',filterData); // }, // Restangular:Restangular, // ApiService:api_user_data, // onClick:function(val, options, field, event , model){ // //model.start_code++; // console.log(options); // } // } // }, // { // className: 'col-xs-8', // type: 'ui-textarea', // key: 'handlerContent', // templateOptions: { // label: '实施内容', // required: true, // row:10 // } // },{ // noFormControl: true, // template:'
' // }] // } // }, // { // key: 'droplist', // type: 'ui-dropfiletable', // className: 'col-xs-12', // templateOptions:{ // label:'附件下载列表', // Restangular:Restangular, // processInstanceId:'250033', // ApiService:api_bpm_domain // } // }, // { // key: 'start_code', // className:'col-xs-6', // type: 'ui-hidden' // }, // { // key:'remark', // type:'ui-textarea', // className:'col-xs-12', // templateOptions:{ // label:'remark is ', // rows:3 // } // }, // { // key:'setStartCode', // type:'ui-button', // className:'col-xs-4', // templateOptions:{ // label:'升级为变更', // onClick:function(val, options, field, event ,model){ // console.log(options); // event.preventDefault(); // //model.start_code++; // //console.log(options); // } // } // } ], model: { username: "robin lau", password: "123456", change: { source: { id: 5 } }, chkme: false, start_code: 0, arrayData: [ { id: 13, dept: "村镇银行管理部" }, { id: 14, dept: "电子银行部" }, ], formtitle: "Hey!I am title value!", name: { first: "robin", last: "lau", }, multiselectItem: [], //date:"2015-09-15 00:00:00" }, }; setTimeout(function () { decodeVMForm(testJson); $scope.$apply(); }, 500); //测试数据结束 } } // console.log("end decode"); }, ]);