var appFormly = angular.module("formlyExample", [
"formly",
"formlyBootstrap",
"ui.bootstrap",
"ngSanitize",
"ui.select",
"ui.grid",
]);
app.requires.push("formlyExample");
// var appFormly = angular.module('formlyExample', [
// 'formly', 'formlyBootstrap','ui.bootstrap',
// 'ngSanitize','ui.select','ui.grid'],
// 图片上传
app.factory("fileReader", [
"$q",
"$log",
function ($q, $log) {
var onLoad = function (reader, deferred, scope) {
return function () {
scope.$apply(function () {
deferred.resolve(reader.result);
});
};
};
var onError = function (reader, deferred, scope) {
return function () {
scope.$apply(function () {
deferred.reject(reader.result);
});
};
};
var getReader = function (deferred, scope) {
var reader = new FileReader(); //fileReader
reader.onload = onLoad(reader, deferred, scope);
reader.onerror = onError(reader, deferred, scope);
return reader;
};
var readAsDataURL = function (file, scope) {
var deferred = $q.defer();
var reader = getReader(deferred, scope);
reader.readAsDataURL(file);
return deferred.promise;
};
return {
readAsDataUrl: readAsDataURL,
};
},
]);
appFormly.filter("minutesToHours", function () {
//分钟转小时
return function (num) {
var hour = parseInt(num / 60);
var minute = num % 60;
return hour + "小时" + minute + "分钟";
};
});
appFormly.config(function config(formlyConfigProvider) {
//格式转换方法 XXX-XXX转驼峰命名
function camelize(string) {
string = string.replace(/[\-_\s]+(.)?/g, function (match, chr) {
return chr ? chr.toUpperCase() : "";
});
// Ensure 1st char is always lowercase
return string.replace(/^([A-Z])/, function (match, chr) {
return chr ? chr.toLowerCase() : "";
});
}
//获取ngModelAttr对象设置
function getNgModelAttr(attrs, bindings) {
var ngModelAttrs = {};
angular.forEach(attrs, function (attr) {
ngModelAttrs[camelize(attr)] = {
attribute: attr,
};
});
angular.forEach(bindings, function (binding) {
ngModelAttrs[camelize(binding)] = {
bound: binding,
};
});
return ngModelAttrs;
}
formlyConfigProvider.setWrapper({
overwriteOk: true,
name: "bootstrapLabel",
templateUrl: "assets/views/customform/tpl/normal-label.html",
});
//流程图
formlyConfigProvider.setType({
name: "ui-process",
templateUrl: "assets/views/customform/tpl/cmdb/ui-process.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$modal",
"SweetAlert",
"api_bpm_domain",
function ($scope, $modal, SweetAlert, api_bpm_domain) {
$scope.processdata = [];
api_bpm_domain
.flowTracing($scope.model.applicationForm.processInstanceId)
.then(function (data) {
console.log(data);
$scope.processdata = data.data;
});
},
],
});
//出库单详情
formlyConfigProvider.setType({
name: "ui-getoutinform",
extends: "radio",
templateUrl: "assets/views/customform/tpl/cmdb/ui-getoutinform.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$modal",
"SweetAlert",
"api_bpm_domain",
function ($scope, $modal, SweetAlert, api_bpm_domain) {
if (
angular.isDefined($scope.model.type.id) &&
!$scope.model.type.name
) {
if (($scope.model.type.id = 0)) {
$scope.model.type.name = "新资产入库";
} else if (($scope.model.type.id = 1)) {
$scope.model.type.name = "新设备领用出库";
} else if (($scope.model.type.id = 2)) {
$scope.model.type.name = "资产归还";
} else if (($scope.model.type.id = 4)) {
$scope.model.type.name = "设备更换";
}
}
},
],
});
//多选框组件
formlyConfigProvider.setType({
name: "ui-checkboxmore",
extends: "radio",
templateUrl: "assets/views/customform/tpl/cmdb/ui-checkboxmore.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$modal",
"SweetAlert",
"api_bpm_domain",
function ($scope, $modal, SweetAlert, api_bpm_domain) {
$scope.options.initialValue = $scope.model[$scope.options.key];
},
],
});
//入库单详情
formlyConfigProvider.setType({
name: "ui-getininform",
extends: "radio",
templateUrl: "assets/views/customform/tpl/cmdb/ui-getininform.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$modal",
"SweetAlert",
"api_bpm_domain",
function ($scope, $modal, SweetAlert, api_bpm_domain) {
if (
angular.isDefined($scope.model.type.id) &&
!$scope.model.type.name
) {
if (($scope.model.type.id = 0)) {
$scope.model.type.name = "新资产入库";
} else if (($scope.model.type.id = 1)) {
$scope.model.type.name = "新设备领用出库";
} else if (($scope.model.type.id = 2)) {
$scope.model.type.name = "资产归还";
} else if (($scope.model.type.id = 4)) {
$scope.model.type.name = "设备更换";
}
}
},
],
});
//申请人详情
formlyConfigProvider.setType({
name: "ui-requsterinfom",
extends: "radio",
templateUrl: "assets/views/customform/tpl/cmdb/requsterinfom.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
});
//设备耗材list组件
formlyConfigProvider.setType({
name: "ui-uplodchange",
templateUrl: "assets/views/customform/tpl/cmdb/uplodchange.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
view: function (APIService, contentId) {
return APIService.downloadAttachment(contentId);
},
},
};
},
controller: [
"$scope",
"$filter",
"ngTableParams",
"$rootScope",
"Restangular",
function ($scope, $filter, ngTableParams, $rootScope, Restangular) {
// var data = { "haodata": [], "shedata": [] };
var haodata = [];
var shedata = [];
if ($scope.model.consumables) {
if (angular.isArray($scope.model.consumables)) {
haodata = $scope.model.consumables;
} else {
haodata = JSON.parse($scope.model.consumables);
}
$scope.model.consumables = haodata;
angular.forEach(haodata, function (item, index) {
haodata[index].item = index + 1;
});
}
if ($scope.model.assets) {
if (angular.isArray($scope.model.assets)) {
shedata = $scope.model.assets;
} else {
shedata = JSON.parse($scope.model.assets);
}
$scope.model.assets = shedata;
angular.forEach(shedata, function (item, index) {
shedata[index].item = index + 1;
});
}
$scope.tableParamshao = new ngTableParams(
{
page: 1,
count: 5,
},
{
total: haodata.length,
getData: function ($defer, params) {
var orderedData = params.sorting()
? $filter("orderBy")(haodata, params.orderBy())
: haodata;
$defer.resolve(
orderedData.slice(
(params.page() - 1) * params.count(),
params.page() * params.count()
)
);
},
}
);
$scope.tableParamsshe = new ngTableParams(
{
page: 1,
count: 5,
},
{
total: shedata.length,
getData: function ($defer, params) {
var orderedData = params.sorting()
? $filter("orderBy")(shedata, params.orderBy())
: shedata;
$defer.resolve(
orderedData.slice(
(params.page() - 1) * params.count(),
params.page() * params.count()
)
);
},
}
);
$scope.editId = -1;
$scope.setEditId = function (pid) {
$scope.editId = pid;
};
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
var to = $scope.options.templateOptions;
var bindId = $scope.model.processInstanceId;
//获取附件列表
$scope.listAttachmen = function () {
to.ApiService.listAttachment(
to.listAttachmentUrl,
to.bindType,
bindId
).then(function (result) {
var myData = Restangular.stripRestangular(result);
// $scope.listAttachmens = myData;
$scope.attachments = myData.data;
});
};
$scope.listAttachmen();
// if (to.bindType && $scope.model[to.bindType].processInstanceId) {
// $scope.listAttachmen();
// } else if (to.bindType && $scope.model[to.bindType].id) {
// $scope.listAttachmen();
// }
//附件下载
$scope.download = function (token, filename) {
var downUrl = to.ApiService.downloadAttachment(
to.downUrl,
token
).getRequestedUrl();
// window.open(downUrl);
var a = document.createElement("a");
a.href = downUrl;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
};
//附件预览
$scope.view = function (id, previewUrl) {
if (previewUrl) {
window.open(previewUrl);
}
};
},
],
});
//多选框组件
formlyConfigProvider.setType({
name: "ui-nodataimage",
templateUrl: "assets/views/customform/tpl/cmdb/ui-nodataimage.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
});
//ui-grid list
formlyConfigProvider.setType({
name: "ui-gridtwolist",
// extends: 'input',
templateUrl: "assets/views/customform/tpl/cmdb/gridtwolist.html",
defaultOptions: function (options, $scope) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
"$modal",
"i18nService",
"SweetAlert",
function ($scope, $modal, i18nService, SweetAlert) {
//gridone
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myDatagrid";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = false;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
$scope.myDatagrid = [];
$scope.myDatagridall = [];
$scope.selected = {
item: {},
};
$scope.memoryfilterDatagrid = {
idx: 0,
sum: 10,
};
if (angular.isFunction($scope.options.templateOptions.fetchItems)) {
filterData = {
idx: 0,
sum: 10,
};
$scope.gridOptions.columnDefs =
$scope.options.templateOptions.columnDefs;
}
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
// $scope.gridOptions.columnDefs = items.columnDefs();
$scope.interceptMydata = function (mydate, idx, sum) {
return mydate.slice(idx * sum, (idx + 1) * sum);
};
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
$scope.memoryfilterDatagrid.idx = newPage - 1;
$scope.memoryfilterDatagrid.sum = pageSize;
$scope.myDatagrid = $scope.interceptMydata(
$scope.myDatagridall,
$scope.memoryfilterDatagrid.idx,
10
);
$scope.loadData({
idx: newPage - 1,
sum: pageSize,
});
}
);
gridApi.core.on.filterChanged($scope, function () { });
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.item = data.entity;
//console.log(data);
});
};
$scope.loadData = function (mydate, idx, sum) {
angular.forEach($scope.myDatagrid, function (item, index) {
$scope.myDatagrid[index].item = index;
});
$scope.gridOptions.totalItems = mydate.length;
$scope.myDatagrid = mydate.slice(idx * sum, (idx + 1) * sum);
};
if ($scope.model.assets) {
$scope.myDatagridall = $scope.model.assets;
$scope.loadData($scope.model.assets, 0, 10);
}
$scope.saveData = function (itemin) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/lingyonglist.html",
controller: function ($scope, $modalInstance, SweetAlert) {
// $scope.consumptive = {};
$scope.title = "填写领用设备信息";
// if (items.name) {
// $scope.consumptive.name = items.name.name;
// }
$scope.placechange = angular.copy(itemin);
$scope.ok = function (item) {
if (
item.props &&
item.props.hwnw_area &&
item.props.hwnw_place &&
item.props.hwnw_room &&
item.props.hwnwswt_jiguihao &&
item.props.hwnwswt_Ushu &&
item.props.snnum
) {
$modalInstance.close(item);
} else {
SweetAlert.swal({
title: "数据填写不完整!",
text: "请检查数据然后提交!",
type: "error",
});
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
SweetAlert: function () {
return SweetAlert;
},
},
});
modalInstance.result.then(function (selectedItem) {
angular.forEach($scope.myDatagrid, function (item, index) {
// $scope.myDatagrid[index].props.hw_state = "在线";
if (item.id == selectedItem.id) {
// $scope.myDatagrid[index] = selectedItem;
angular.extend($scope.myDatagrid[index], selectedItem);
}
});
// $scope.myData3.push(selectedItem);
for (var i = 0; i < $scope.myDatagrid.length; i++) {
$scope.myDatagrid[i]["item"] =
i + 1 + $scope.memoryfilterDatagrid.idx * 10;
}
$scope.$parent.$parent.$parent.model.applicationForm.assets =
$scope.myDatagridall;
});
};
//gridtwo
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions2 = {};
$scope.gridOptions2.data = "myDatagridold";
$scope.gridOptions2.enableColumnResizing = true;
$scope.gridOptions2.enableFiltering = true;
$scope.gridOptions2.enableGridMenu = false;
$scope.gridOptions2.enableRowSelection = true;
$scope.gridOptions2.showGridFooter = true;
$scope.gridOptions2.showColumnFooter = false;
$scope.gridOptions2.fastWatch = true;
$scope.gridOptions2.useExternalFiltering = false;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions2.paginationPageSizes = [10];
$scope.gridOptions2.paginationPageSize = 10;
$scope.gridOptions2.multiSelect = false;
$scope.myDatagridold = [];
$scope.myDatagridoldall = [];
$scope.selected = {
item: {},
};
$scope.memoryfilterDatagridold = {
idx: 0,
sum: 10,
};
if (angular.isFunction($scope.options.templateOptions.fetchItems)) {
filterData = {
idx: 0,
sum: 10,
};
$scope.gridOptions2.columnDefs =
$scope.options.templateOptions.columnDefstwo;
}
$scope.gridOptions2.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions2.getRowIdentity = function (row) {
return row.id;
};
// $scope.gridOptions.columnDefs = items.columnDefs();
$scope.interceptMydata = function (mydate, idx, sum) {
return mydate.slice(idx * sum, (idx + 1) * sum);
};
if ($scope.model.oldAssets) {
$scope.myDatagridallold = JSON.parse($scope.model.oldAssets);
$scope.myDatagridold = $scope.interceptMydata(
$scope.myDatagridallold,
$scope.memoryfilterDatagridold.idx,
10
);
}
$scope.gridOptions2.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
$scope.memoryfilterDatagridold.idx = newPage - 1;
$scope.memoryfilterDatagridold.sum = pageSize;
$scope.myDatagridold = $scope.interceptMydata(
$scope.myDatagridallold,
$scope.memoryfilterDatagridold.idx,
10
);
// $scope.loadData({ "idx": newPage - 1, "sum": pageSize });
}
);
gridApi.core.on.filterChanged($scope, function () { });
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.item = data.entity;
//console.log(data);
});
};
// $scope.loadData = function(mydate, idx, sum) {
// angular.forEach($scope.myDatagridold, function(item, index) {
// $scope.myDatagridold[index].item = index;
// })
// $scope.myDatagridold = mydate.slice(idx * sum, (idx + 1) * sum)
// }
// if ($scope.model.assets) {
// $scope.myDatagridallold = $scope.model.assets;
// $scope.loadData($scope.model.assets, 0, 10)
// }
// $scope.addoldassets = function(itemin) {
// event.preventDefault();
// var modalInstance = $modal.open({
// templateUrl: 'assets/views/customform/tpl/cmdb/lingyonglist.html',
// controller: function($scope, $modalInstance, SweetAlert) {
// // $scope.consumptive = {};
// $scope.title = "填写领用设备信息";
// // if (items.name) {
// // $scope.consumptive.name = items.name.name;
// // }
// $scope.placechange = itemin;
// $scope.ok = function(item) {
// if (item.hwnw_area && item.hwnw_place && item.hwnw_room && item.hwnwswt_jiguihao && item.hwnwswt_Ushu && item.snnum) {
// $modalInstance.close(item);
// } else {
// SweetAlert.swal({
// title: "数据填写不完整!",
// text: "请检查数据然后提交!",
// type: "error"
// });
// }
// };
// $scope.cancel = function() {
// $modalInstance.dismiss('cancel');
// };
// },
// resolve: {
// SweetAlert: function() {
// return SweetAlert;
// }
// }
// });
$scope.interceptMydata = function (mydate, idx, sum) {
return mydate.slice(idx * sum, (idx + 1) * sum);
};
$scope.addshebei = function () {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/add_shebei.html",
controller: function (
$scope,
i18nService,
$modalInstance,
items,
title,
Restangular,
APIService,
onDataCallback,
parentScope,
api_configure_data,
api_configure_form,
api_cmdb
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myDatatwo";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = false;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = true;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.columnDefs = [
{
name: "item",
displayName: "序号",
width: 80,
enableFiltering: false,
},
{
name: "uuid",
displayName: "内部编号",
width: 150,
},
{
name: "props.hw_mingcheng",
displayName: "资产名称",
width: 100,
},
{
name: "props.hw_cifilterClassic",
displayName: "资产类型",
width: 120,
enableFiltering: false,
},
// { name: 'type', displayName: '资产型号', width: 100, enableFiltering: false },
{
name: "props.hw_state",
displayName: "资产状态",
width: 150,
enableFiltering: false,
},
{
name: "props.hwnw_area",
displayName: "资产地点",
width: 130,
enableFiltering: false,
},
{
name: "createtime",
displayName: "申请时间",
enableFiltering: false,
},
];
// $scope.selectButtonClick
var defaultFilterData = {
// "assignee":2,
// "applicationForm": { "hw_state": "在线" },
hw_state: "在线",
idx: 0,
sum: 10,
};
$scope.memoryfilterData = {
// "assignee":2,
// "applicationForm": { "hw_state": "在线" },
hw_state: "在线",
idx: 0,
sum: 10,
};
$scope.refreshData = function (style, filterData) {
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
$scope.myDatatwo = [];
// $scope.gridOptions['sum']=filterData.sum;
api_cmdb.query(filterData).then(
function (data) {
// $scope.callsPending--;
var myDatatwo = Restangular.stripRestangular(data);
$scope.gridOptions["totalItems"] = data.total;
for (var i = 0; i < myDatatwo.data.node.length; i++) {
myDatatwo.data.node[i].createtime = moment(
myDatatwo.data.node[i].createtime
).format("YYYY-MM-DD");
}
$scope.myDatatwo = myDatatwo.data.node;
for (var i = 0; i < $scope.myDatatwo.length; i++) {
$scope.myDatatwo[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
}
},
function () { }
);
};
$scope.refreshData("expand-right", defaultFilterData);
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
// $scope.loadData(filtersData);
$scope.refreshData("expand-right", filtersData);
//console.log(pageSize);
// $scope.loadData({"idx":newPage-1,"sum":pageSize});
}
);
// gridApi.selection.on.rowSelectionChanged($scope, function(data) {
// $scope.selected.items.push(data.entity);
//console.log(data);
gridApi.selection.on.rowSelectionChanged(
$scope,
function (scope, ect) {
if (scope.isSelected) {
scope.grid.appScope.selected.items.push(scope.entity);
} else {
for (
var i = 0;
i <= scope.grid.appScope.selected.items.length;
i++
) {
if (
scope.grid.appScope.selected.items[i].id ==
scope.entity.id
) {
scope.grid.appScope.selected.items.splice(i, 1);
break;
}
}
}
$scope.mySelectedRows =
$scope.gridApi.selection.getSelectedRows();
}
);
// });
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (rows) {
// $scope.selected.items = data.entity;
//console.log(data);
var selectitem = [];
selectitem = angular.copy($scope.selected.items);
for (var j = 0; j < rows.length; j++) {
if (rows[j].isSelected == true) {
selectitem.push(rows[j].entity);
} else {
delete selectitem[j];
// rows.splice(j, 1);
}
}
$scope.selected.items = [];
for (var i = 0; i < selectitem.length; i++) {
if (selectitem[i]) {
$scope.selected.items.push(selectitem[i]);
}
}
}
);
// gridApi.selection.on.selectAllRows = function(row) { //GridRow
// // if (row.entity.age > 45) {
// row.grid.api.selection.selectRow(row.entity); // 选中行
// // }
// };
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
// console.log("item.filters[0]=" + JSON.stringify(item.filters));
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] = item.filters[0].term;
}
}
});
$scope.memoryfilterData = filtersData;
// $scope.loadData(filtersData);
});
};
$scope.onDblClick = function (data, event) {
// $scope.selected.items = data.entity;
$scope.selectButtonClick(data, event);
};
$scope.title = title;
//树形图
var apple_selected, tree, treedata_avm, treedata_geography;
$scope.my_tree_handler = function (branch) {
//var _ref;
var classify = ($scope.classify =
branch.prefix.toLowerCase() + branch.sign);
api_cmdb
.query({
sign: classify,
})
.then(function (data) {
var myDatalingbei = Restangular.stripRestangular(data);
// console.log(myData.data.node);
if (myDatalingbei.data && myDatalingbei.status == 200) {
var ret = myDatalingbei.data;
redrawSvg(myDatalingbei);
}
});
};
$scope.my_data = [];
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
var parentNode = 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?
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;
}
function convertParentToChildList(data) {
var treeMap = {};
var list = [];
convertListToTree(data, treeMap);
angular.forEach(treeMap, function (item) {
list.push(item);
});
return list;
}
$scope.my_tree = tree = {};
$scope.try_async_load = function () {
$scope.my_data = [];
$scope.select_treedata = [];
$scope.doing_async = true;
api_configure_data
.fetchDataList("ciclassify", {
idx: 0,
sum: 100,
})
.then(function (result) {
//console.log(result['list']);
$scope.select_treedata = $scope.my_data =
convertParentToChildList(result["list"]);
$scope.doing_async = false;
// tree.expand_all();
//console.log(treelist);
});
};
$scope.select_treedata = [];
$scope.propTypeOptions = [];
$scope.try_async_load();
$scope.onFilterremove = function (item) {
console.log(item);
};
$scope.searchdata = {};
$scope.clear = function () {
$scope.searchdata = {};
$scope.cifilter_classic = {};
$scope.try_async_load();
var fildata = {
idx: 0,
sum: 10,
hw_state: "在线",
};
$scope.memoryfilterData = fildata;
$scope.refreshData("expand-right", fildata);
};
$scope.chiceIncident = function (item) {
var fildata = $scope.memoryfilterData;
// fildata.applicationForm = {};
// if (item.alltitle && item.alldata) {
// fildata.applicationForm[item.alltitle.key] = item.alldata
// }
if (item && item.id) {
var classify = item.prefix.toLowerCase() + item.sign;
fildata.sign = classify;
}
$scope.gridOptions.paginationCurrentPage = 1;
var transitiondata = angular.copy(item);
$scope.refreshData("expand-right", fildata);
};
$scope.applicadata = [];
$scope.onFilterCallback = function (item) {
var tempclassify = item.prefix.toLowerCase() + item.sign;
api_configure_form
.renderTabForm(tempclassify)
.then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.applicadata = myData[0].form.fields;
});
// }
};
// $scope.loadData({
// idx: 0,
// sum: 10,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
// });
$scope.selected = {
items: [],
};
$scope.ok = function () {
// if(onDataCallback&&angular.isFunction(onDataCallback)){
// onDataCallback($scope.selected.item, parentScope);
// }
$modalInstance.close($scope.selected.items);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "lg",
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
};
}
return $scope.options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return $scope.options.templateOptions.label;
},
Restangular: function () {
return $scope.options.templateOptions.Restangular;
},
APIService: function () {
return $scope.options.templateOptions.ApiService;
},
onDataCallback: function () {
return $scope.options.templateOptions.callback;
},
parentScope: function () {
return $scope.options.templateOptions.that;
},
},
});
modalInstance.result.then(function (selectedItem) {
$scope.myDatagridoldall = selectedItem;
for (var i = 0; i < $scope.myDatagridoldall.length; i++) {
$scope.myDatagridoldall[i]["item"] =
i +
1 +
$scope.memoryfilterDatagridold.idx *
$scope.memoryfilterDatagridold.sum;
}
$scope.gridOptions2["totalItems"] = $scope.myDatagridoldall.length;
$scope.myDatagridold = $scope.interceptMydata(
$scope.myDatagridoldall,
0,
10
);
// $scope.model.oldAssets = $scope.myDatagridoldall;
$scope.$parent.$parent.$parent.model.applicationForm.oldAssets =
$scope.myDatagridoldall;
$scope.options.initialValue = $scope.model.oldAssets;
});
// }
};
$scope.changestate = function (itemin) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/changeoldstate.html",
controller: function ($scope, scope, $modalInstance, api_bpm_data) {
$scope.title = "旧设备状态修改";
$scope.stateshe = [
{
id: 2,
name: "在库",
},
{
id: 4,
name: "报修",
},
{
id: 3,
name: "报废",
},
];
$scope.hw_state = {};
$scope.ok = function (item) {
$modalInstance.close(item.id);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
if (selectedItem) {
angular.forEach($scope.myDatagridallold, function (item, index) {
if (item.id == itemin.id) {
$scope.myDatagridallold[index].props.hw_state =
selectedItem.name;
}
});
for (var i = 0; i < $scope.myDatagridallold.length; i++) {
$scope.myDatagridallold[i]["item"] =
i +
1 +
$scope.memoryfilterDatagridold.idx *
$scope.memoryfilterDatagridold.sum;
}
$scope.gridOptions2["totalItems"] =
$scope.myDatagridallold.length;
$scope.myDatagridold = $scope.interceptMydata(
$scope.myDatagridallold,
$scope.memoryfilterDatagridold.idx,
$scope.memoryfilterDatagridold.sum
);
// $scope.model.oldAssets = $scope.myDatagridallold;
$scope.$parent.$parent.$parent.model.applicationForm.oldAssets =
$scope.myDatagridallold;
$scope.options.initialValue = $scope.model.oldAssets;
}
});
};
$scope.savedata = function (data) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/changeoldshe.html",
controller: function ($scope, scope, $modalInstance, api_bpm_data) {
$scope.title = "设备编辑";
// $scope.connect = '删除的数据不可恢复,请确认继续操作!';
$scope.ok = function (item) {
$modalInstance.close(item);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
if (selectedItem) {
angular.forEach($scope.myDatagridoldall, function (item, index) {
if (item.id == data.id) {
$scope.myDatagridoldall[index].olddecription =
selectedItem.olddecription;
}
});
for (var i = 0; i < $scope.myDatagridoldall.length; i++) {
$scope.myDatagridoldall[i]["item"] =
i +
1 +
$scope.memoryfilterDatagridold.idx *
$scope.memoryfilterDatagridold.sum;
}
$scope.gridOptions2["totalItems"] =
$scope.myDatagridoldall.length;
$scope.myDatagridold = $scope.interceptMydata(
$scope.myDatagridoldall,
0,
10
);
// $scope.model.oldAssets = $scope.myDatagridoldall;
$scope.$parent.$parent.$parent.model.applicationForm.oldAssets =
$scope.myDatagridoldall;
$scope.options.initialValue = $scope.model.oldAssets;
}
});
};
$scope.removeold = function (data) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/delete.html",
controller: function ($scope, scope, $modalInstance, api_bpm_data) {
$scope.title = "设备删除";
$scope.connect = "删除的数据不可恢复,请确认继续操作!";
$scope.ok = function () {
$modalInstance.close(data);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
if (selectedItem) {
angular.forEach($scope.myDatagridoldall, function (item, index) {
if (item.id == selectedItem.id) {
$scope.myDatagridoldall.splice(index, 1);
}
});
for (var i = 0; i < $scope.myDatagridoldall.length; i++) {
$scope.myDatagridoldall[i]["item"] =
i +
1 +
$scope.memoryfilterDatagridold.idx *
$scope.memoryfilterDatagridold.sum;
}
$scope.gridOptions2["totalItems"] =
$scope.myDatagridoldall.length;
$scope.myDatagridold = $scope.interceptMydata(
$scope.myDatagridoldall,
0,
10
);
// $scope.model.oldAssets = $scope.myDatagridoldall;
$scope.$parent.$parent.$parent.model.applicationForm.oldAssets =
$scope.myDatagridoldall;
$scope.options.initialValue = $scope.model.oldAssets;
}
});
};
},
],
});
//ui-grid list
formlyConfigProvider.setType({
name: "ui-gridlist",
extends: "input",
templateUrl: "assets/views/customform/tpl/cmdb/gridlist.html",
defaultOptions: function (options, $scope) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
"$modal",
"i18nService",
"SweetAlert",
function ($scope, $modal, i18nService, SweetAlert) {
//gridone
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myDatagrid";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = false;
// $scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
$scope.myDatagrid = [];
$scope.myDatagridall = [];
$scope.selected = {
item: {},
};
$scope.memoryfilterDatagrid = {
idx: 0,
sum: 10,
};
if (angular.isFunction($scope.options.templateOptions.fetchItems)) {
filterData = {
idx: 0,
sum: 10,
};
$scope.gridOptions.columnDefs =
$scope.options.templateOptions.columnDefs;
}
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
// $scope.gridOptions.columnDefs = items.columnDefs();
$scope.interceptMydata = function (mydate, idx, sum) {
return mydate.slice(idx * sum, (idx + 1) * sum);
};
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
$scope.memoryfilterDatagrid.idx = newPage - 1;
$scope.memoryfilterDatagrid.sum = pageSize;
$scope.myDatagrid = $scope.interceptMydata(
$scope.myDatagridall,
$scope.memoryfilterDatagrid.idx,
10
);
$scope.loadData({
idx: newPage - 1,
sum: pageSize,
});
}
);
gridApi.core.on.filterChanged($scope, function () { });
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.item = data.entity;
//console.log(data);
});
};
$scope.loadData = function (mydate, idx, sum) {
angular.forEach($scope.myDatagrid, function (item, index) {
$scope.myDatagrid[index].item = index;
});
$scope.myDatagrid = mydate.slice(idx * sum, (idx + 1) * sum);
};
if ($scope.model.assets) {
$scope.myDatagridall = $scope.model.assets;
$scope.loadData($scope.model.assets, 0, 10);
}
$scope.saveData = function (itemin) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/lingyonglist.html",
controller: function ($scope, $modalInstance, SweetAlert) {
// $scope.consumptive = {};
$scope.title = "填写领用设备信息";
// if (items.name) {
// $scope.consumptive.name = items.name.name;
// }
$scope.placechange = angular.copy(itemin);
$scope.ok = function (item) {
if (
item.props &&
item.props.hwnw_area &&
item.props.hwnw_place &&
item.props.hwnw_room &&
item.props.hwnwswt_jiguihao &&
item.props.hwnwswt_Ushu &&
item.props.snnum
) {
$modalInstance.close(item);
} else {
SweetAlert.swal({
title: "数据填写不完整!",
text: "请检查数据然后提交!",
type: "error",
});
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
SweetAlert: function () {
return SweetAlert;
},
},
});
modalInstance.result.then(function (selectedItem) {
angular.forEach($scope.myDatagrid, function (item, index) {
if (item.id == selectedItem.id) {
angular.extend($scope.myDatagrid[index], selectedItem);
}
});
// $scope.myData3.push(selectedItem);
for (var i = 0; i < $scope.myDatagrid.length; i++) {
$scope.myDatagrid[i]["item"] =
i + 1 + $scope.memoryfilterDatagrid.idx * 10;
}
// $scope.model.assets = $scope.myDatagridall;
$scope.$parent.$parent.$parent.model.applicationForm.assets =
$scope.myDatagridall;
});
};
},
],
});
//设备耗材list组件
formlyConfigProvider.setType({
name: "ui-shehaolist",
// extends: 'radio',
templateUrl: "assets/views/customform/tpl/cmdb/shehaolist.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$filter",
"ngTableParams",
function ($scope, $filter, ngTableParams) {
// var data = { "haodata": [], "shedata": [] };
var haodata = [];
var shedata = [];
if ($scope.model.consumables) {
if (angular.isArray($scope.model.consumables)) {
haodata = $scope.model.consumables;
} else {
haodata = JSON.parse($scope.model.consumables);
}
$scope.model.consumables = haodata;
angular.forEach(haodata, function (item, index) {
haodata[index].item = index + 1;
});
}
if ($scope.model.assets) {
if (angular.isArray($scope.model.assets)) {
shedata = $scope.model.assets;
} else {
shedata = JSON.parse($scope.model.assets);
}
$scope.model.assets = shedata;
angular.forEach(shedata, function (item, index) {
shedata[index].item = index + 1;
});
}
$scope.tableParamshao = new ngTableParams(
{
page: 1,
count: 5,
},
{
total: haodata.length,
getData: function ($defer, params) {
var orderedData = params.sorting()
? $filter("orderBy")(haodata, params.orderBy())
: haodata;
$defer.resolve(
orderedData.slice(
(params.page() - 1) * params.count(),
params.page() * params.count()
)
);
},
}
);
$scope.tableParamsshe = new ngTableParams(
{
page: 1,
count: 5,
},
{
total: shedata.length,
getData: function ($defer, params) {
var orderedData = params.sorting()
? $filter("orderBy")(shedata, params.orderBy())
: shedata;
$defer.resolve(
orderedData.slice(
(params.page() - 1) * params.count(),
params.page() * params.count()
)
);
},
}
);
$scope.editId = -1;
$scope.setEditId = function (pid) {
$scope.editId = pid;
};
if (
$scope.$parent.$parent.$parent.model.isAgree &&
$scope.$parent.$parent.$parent.model.isAgree == "2"
) {
$scope.isAgree = "同意";
} else if (
$scope.$parent.$parent.$parent.model.isAgree &&
$scope.$parent.$parent.$parent.model.isAgree == "1"
) {
$scope.isAgree = "同意";
} else if (
$scope.$parent.$parent.$parent.model.isAgree &&
$scope.$parent.$parent.$parent.model.isAgree == "3"
) {
$scope.isAgree = "返回修改";
}
},
],
});
//关联资产出库
formlyConfigProvider.setType({
name: "ui-meansmodelselect",
extends: "input",
templateUrl: "assets/views/customform/tpl/cmdb/inputguanlina.html",
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
"$modal",
function ($scope, $modal) {
$scope.openModal = function (size, options, modal) {
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/guanlian.html",
controller: function (
$scope,
$rootScope,
$modalInstance,
items,
title,
Restangular,
APIService,
api_user_data,
i18nService,
api_wechatfile
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = false;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
// $scope.states = [{
// id: 0,
// name: '待批准'
// },
// {
// id: 1,
// name: '已驳回'
// },
// {
// id: 2,
// name: '待出库'
// },
// {
// id: 3,
// name: '信息更新'
// },
// {
// id: 4,
// name: '信息确认'
// },
// {
// id: 5,
// name: '已关闭'
// }
// ];
$scope.getStatesDictionary = function () {
var data = {
key: "applicationForm_status",
type: "list",
};
api_wechatfile.getDictionary(data).then(function (res) {
$scope.states = res;
});
};
$scope.getStatesDictionary();
$scope.type = [
{
id: 1,
name: "资产入库",
},
{
id: 2,
name: "资产归还",
},
{
id: 3,
name: "资产领用",
},
{
id: 4,
name: "资产更换",
},
];
$scope.typedata = function (row) {
if (row.type == 0) {
return "资产入库";
} else if (row.type == 2) {
return "资产归还";
} else if (row.type == 1) {
return "资产领用";
} else if (row.type == 4) {
return "资产更换";
}
};
$scope.statedata = function (row) {
if (row.status == 0) {
return "待批准";
} else if (row.status == 1) {
return "已驳回";
} else if (row.status == 2) {
return "待出库";
} else if (row.status == 3) {
return "信息更新";
} else if (row.status == 4) {
return "信息确认";
} else if (row.status == 5) {
return "已关闭";
}
};
$scope.transferTime = function (time) {
return moment(time).format("YYYY-MM-DD HH:mm");
};
$scope.application = [
{
value: "serialNumbe",
name: "申请单编号",
},
// { value: "proposer", name: '申请人' },
{
value: "purpose",
name: "领用用途",
},
// { value: "cmdbsign", name: '设备编号' }
];
$scope.parameters = null;
$scope.open = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = !$scope.opened;
};
$scope.endOpen = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.startOpened = false;
$scope.endOpened = !$scope.endOpened;
};
$scope.startOpen = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.endOpened = false;
$scope.startOpened = !$scope.startOpened;
};
$scope.othcode = {};
$scope.searchkeys = {};
$scope.parameters = {};
$scope.memoryfilterData = {
assignee: $rootScope.user.id,
candidateGroups: $rootScope.user.group[0].id,
searchType: "todo",
idx: 0,
sum: 10,
};
$scope.clear = function () {
$scope.searchkeys = {};
// $scope.othcode = {};
$scope.parameters = {};
var fildata = {
assignee: $rootScope.user.id,
candidateGroups: $rootScope.user.group[0].id,
searchType: "todo",
idx: 0,
sum: 10,
};
$scope.memoryfilterData = fildata;
$scope.loadData(fildata);
};
$scope.chiceIncident = function (parameters, item, stateid) {
var fildata = {
assignee: $rootScope.user.id,
candidateGroups: 1,
searchType: "todo",
idx: 0,
sum: 10,
};
if (item) {
fildata.applicationForm = {};
if (item.alltitle && item.alldata) {
fildata.applicationForm[item.alltitle.value] = item.alldata;
}
if (item.linkProposer) {
fildata.applicationForm.linkProposer = item.linkProposer;
}
if (item.proposer) {
fildata.applicationForm.proposer = item.proposer;
}
if (item.status) {
fildata.applicationForm["status"] = {
id: item.status.id,
};
}
if (item.type) {
fildata.applicationForm["type"] = {
id: item.type.id,
};
}
}
$scope.gridOptions.paginationCurrentPage = 1;
if (
parameters &&
parameters.paramDateFrom &&
parameters.paramDateTo
) {
angular.extend(fildata, {
idx: 0,
sum: $scope.gridOptions.paginationPageSize,
});
angular.extend(fildata.applicationForm, {
startDate: moment(parameters.paramDateFrom).format(
"YYYY-MM-DD HH:mm:ss"
),
endDate: moment(parameters.paramDateTo).format(
"YYYY-MM-DD 23:59:59"
),
});
}
var transitiondata = angular.copy(item);
// angular.extend(fildata.applicationForm, transitiondata)
$scope.loadData(fildata);
};
$scope.key = {};
api_user_data
.fetchDataList("user", {
idx: 0,
sum: 1000,
flag: -1,
user: {
engineer: 1,
}
})
.then(function (data) {
$scope.handlingPersonnelUser = data.list;
});
$scope.gridOptions.columnDefs = items.columnDefs();
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// console.log(newPage);
// console.log(pageSize);
$scope.loadData({
idx: newPage - 1,
sum: pageSize,
});
}
);
gridApi.core.on.filterChanged($scope, function () { });
gridApi.selection.on.rowSelectionChanged(
$scope,
function (data) {
$scope.selected.item = data.entity;
//console.log(data);
}
);
};
$scope.loadData = function (filterData) {
items.fetchItems(filterData, APIService).then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
$scope.myData = myData.list;
for (var i = 0; i < $scope.myData.length; i++) {
$scope.myData[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
}
});
};
$scope.title = title;
$scope.loadData({
idx: 0,
sum: 10,
assignee: $rootScope.user.id,
candidateGroups: $rootScope.user.group[0].id,
searchType: "todo",
});
$scope.selected = {
item: {},
};
$scope.ok = function () {
//console.log($scope.selected.item);
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "lg",
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
// if(!filterData.idx){
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
};
}
return options.templateOptions.fetchItems(
filterData,
APIService,
options
);
},
columnDefs: function () {
return options.templateOptions.columnDefs;
},
};
},
title: function () {
return options.templateOptions.modalTitle;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
},
});
modalInstance.result.then(
function (selectedItem) {
var selectitem = {
title: selectedItem.title,
description: selectedItem.description,
};
if (options.key == "chuku") {
if (selectedItem.assets) {
$scope.$parent.$parent.$parent.model.applicationForm.assets =
selectedItem.assets;
}
if (selectedItem.consumables) {
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
selectedItem.consumables;
}
angular.extend(
$scope.$parent.$parent.$parent.model,
selectitem
);
options.value(selectedItem);
// options.model.consumables = JSON.parse(selectedItem.consumables);
} else {
angular.extend(options.model, selectitem);
options.value(selectedItem);
}
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
};
},
],
});
//文本框
formlyConfigProvider.setType({
name: "ui-textcmdb",
extends: "",
templateUrl: "assets/views/customform/tpl/cmdb/ui-textcmdb.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
maxlength: function (viewValue, modelValue, scope) {
if (viewValue != null) {
if (viewValue.length > scope.to.maxlength) {
return (
scope.to.label +
" 字数(" +
viewValue.length +
")超限(" +
scope.to.maxlength +
")"
);
} else {
return "";
}
}
},
},
},
};
},
controller: [
"$scope",
function ($scope) {
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
if (angular.isFunction($scope.options.templateOptions.felditem)) {
$scope.options.templateOptions.felditem($scope);
}
},
],
});
//设备组件
formlyConfigProvider.setType({
name: "ui-applist",
extends: "radio",
templateUrl: "assets/views/customform/tpl/cmdb/applist.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$filter",
"ngTableParams",
function ($scope, $filter, ngTableParams) {
var data = [];
if ($scope.model.consumables && $scope.options.key == "consumables") {
// data = JSON.parse($scope.model.consumables);
if (angular.isArray($scope.model.consumables)) {
data = $scope.model.consumables;
} else {
data = JSON.parse($scope.model.consumables);
}
$scope.model.consumables = data;
angular.forEach(data, function (item, index) {
data[index].item = index + 1;
});
}
if ($scope.model.assets && $scope.options.key == "assets") {
if (angular.isArray($scope.model.assets)) {
data = $scope.model.assets;
} else {
data = JSON.parse($scope.model.assets);
}
// data = JSON.parse($scope.model.assets);
$scope.model.assets = data;
angular.forEach(data, function (item, index) {
data[index].item = index + 1;
});
}
$scope.tableParams = new ngTableParams(
{
page: 1,
count: 5,
},
{
total: data.length,
getData: function ($defer, params) {
var orderedData = params.sorting()
? $filter("orderBy")(data, params.orderBy())
: data;
$defer.resolve(
orderedData.slice(
(params.page() - 1) * params.count(),
params.page() * params.count()
)
);
},
}
);
$scope.editId = -1;
$scope.setEditId = function (pid) {
$scope.editId = pid;
};
},
],
});
//list组件
formlyConfigProvider.setType({
name: "ui-gudinglist",
extends: "radio",
templateUrl: "assets/views/customform/tpl/cmdb/gudinglist.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$filter",
"ngTableParams",
function ($scope, $filter, ngTableParams) {
var data = [];
if ($scope.model.consumables && $scope.options.key == "consumables") {
// data = JSON.parse($scope.model.consumables);
if (angular.isArray($scope.model.consumables)) {
data = $scope.model.consumables;
} else {
data = JSON.parse($scope.model.consumables);
}
$scope.model.consumables = data;
angular.forEach(data, function (item, index) {
data[index].item = index + 1;
});
}
if ($scope.model.assets && $scope.options.key == "assets") {
if (angular.isArray($scope.model.assets)) {
data = $scope.model.assets;
} else {
data = JSON.parse($scope.model.assets);
}
// data = JSON.parse($scope.model.assets);
$scope.model.assets = data;
angular.forEach(data, function (item, index) {
data[index].item = index + 1;
});
}
$scope.tableParams = new ngTableParams(
{
page: 1,
count: 5,
},
{
total: data.length,
getData: function ($defer, params) {
var orderedData = params.sorting()
? $filter("orderBy")(data, params.orderBy())
: data;
$defer.resolve(
orderedData.slice(
(params.page() - 1) * params.count(),
params.page() * params.count()
)
);
},
}
);
$scope.editId = -1;
$scope.setEditId = function (pid) {
$scope.editId = pid;
};
},
],
});
//other list tab组件
formlyConfigProvider.setType({
name: "ui-otherlisttab",
extends: "",
templateUrl: "assets/views/customform/tpl/cmdb/otherlisttab.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$filter",
"ngTableParams",
function ($scope, $filter, ngTableParams) { },
],
});
//审核查看组件
formlyConfigProvider.setType({
name: "ui-aprovelist",
extends: "",
templateUrl: "assets/views/customform/tpl/cmdb/aprovelist.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$filter",
"ngTableParams",
function ($scope, $filter, ngTableParams) {
if ($scope.model.isAgree && $scope.model.isAgree == "2") {
$scope.isAgree = "同意";
} else if ($scope.model.isAgree && $scope.model.isAgree == "1") {
$scope.isAgree = "同意";
} else if ($scope.model.isAgree && $scope.model.isAgree == "3") {
$scope.isAgree = "返回修改";
}
},
],
});
//other list组件
formlyConfigProvider.setType({
name: "ui-otherlist",
extends: "",
templateUrl: "assets/views/customform/tpl/cmdb/otherlist.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
controller: [
"$rootScope",
"$scope",
"$parse",
"$injector",
"$http",
"$q",
"$state",
"$stateParams",
"$modal",
"$timeout",
"$interval",
"i18nService",
"SweetAlert",
"FileUploader",
"Restangular",
"UserRestangular",
"BpmRestangular",
"api_configure_form",
"api_configure_data",
"api_bpm_domain",
"api_bpm_data",
"api_user_data",
"api_cmdb",
"api_sysinfo",
function (
$rootScope,
$scope,
$parse,
$injector,
$http,
$q,
$state,
$stateParams,
$modal,
$timeout,
$interval,
i18nService,
SweetAlert,
FileUploader,
Restangular,
UserRestangular,
BpmRestangular,
api_configure_form,
api_configure_data,
api_bpm_domain,
api_bpm_data,
api_user_data,
api_cmdb,
api_sysinfo
) {
console.log("哈哈");
console.log($scope);
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
var vm = this;
vm.options = {};
vm.exampleTitle = ["expressionProperties", "model property"];
vm.fields = [];
vm.models = {};
// vm.models["loginUser"] = $rootScope.user;
var that = $injector;
var parse = $parse;
var formKey = "";
var pdKey = "";
if (
angular.isDefined($state.current.pdKey) &&
$state.current.pdKey != ""
) {
pdKey = $state.current.pdKey;
//console.log("pdKey::"+$state.current.pdKey);
}
if (
angular.isDefined($stateParams.formKey) &&
$stateParams.formKey != ""
) {
formKey = $stateParams.formKey;
//console.log("formKey::"+$stateParams.formKey);
}
//用户测试数据,后续从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 decodeVMTabForm(model, tabs) {
var result = {
model: {},
tabs: [],
};
var mdata = angular.fromJson(model);
angular.extend(result.model, mdata);
angular.forEach(tabs, function (tab) {
tab.form.model = vm.models;
angular.forEach(tab.form.fields, function (field) {
if (field.key == "") {
delete field.key;
}
field.type = "ui-otherlisttab";
if (angular.isDefined(field.extjson) && field.extjson != "") {
var extObj = angular.fromJson(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 (field.extjson == "") {
delete field.extjson;
}
if (angular.isDefined(field.templateOptions)) {
var templateOs = field.templateOptions;
for (var property in templateOs) {
//console.log(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 = 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-userselect") {
field.templateOptions.modal = $modal;
//field.templateOptions.Restangular = Restangular;
} else if (field.type == "ui-multiuserselect") {
field.templateOptions.modal = $modal;
} else if (field.type == "ui-modelselect") {
field.templateOptions.modal = $modal;
//field.templateOptions.Restangular = Restangular;
} else if (field.type == "ui-cmdbuplode") {
$scope.fileUploader = field.templateOptions.fileUploader =
new FileUploader({
url: "/uploader",
queueLimit: 1, //文件个数
autoUpload: true,
});
// $scope.fileUploadermeans = field.templateOptions.fileUploadermeans;
} else if (field.type == "ui-dropfile") {
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] = [];
decodeVMTabForm(repeatForm);
}
}
// console.log(field);
//field
//result.fields.push(field);
});
});
vm.originalTabs = angular.copy(vm.form);
}
//======================处理表单设计数据 结束========================
$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);
});
}
});
}
function invokeOnAllFormOptions(fn) {
angular.forEach(vm.tabs, function (tab) {
if (tab.form.options && tab.form.options[fn]) {
tab.form.options[fn]();
}
});
}
function encodeCIData(data, ciId) {
/*
create/update state:未审核
create createtime:系统时间
create/update lastupdatetime : 系统时间
label:ci分类
*/
if (ciId) {
var baseprop = [
"uuid",
"name",
"type",
"label",
"status",
"createtime",
"lastupdatetime",
"props",
]; //state|audittime//createtime//removeflag|removetime//configperson//lastupdateperson//manager//useradmin
var extraprop = "props";
data[extraprop] = {};
for (var key in data) {
console.log(data[key]);
if (_.indexOf(baseprop, key) >= 0) {
continue;
} else {
data[extraprop][key] = data[key];
delete data[key];
}
}
if ($rootScope.user) {
data[extraprop]["lastupdateperson"] = $rootScope.user.name;
data[extraprop]["configperson"] = $rootScope.user.name;
var isCMAdminFlag = false;
angular.forEach($rootScope.user.role, function (roleItem) {
if (roleItem.rolecode == "cmdb charge") {
isCMAdminFlag = true;
}
});
if (!isCMAdminFlag) {
data[extraprop]["state"] = "1";
}
}
if (data.props.id) {
} else {
data.label = ciId;
}
return data;
}
return undefined;
}
function decodeCIModel(data) {
var extraprop = "props";
if (data[extraprop]) {
for (var key in data[extraprop]) {
data[key] = data[extraprop][key];
}
delete data[extraprop];
}
data["iscmadmin"] = false;
angular.forEach($rootScope.user.role, function (roleItem) {
if (roleItem.rolecode == "cmdb charge") {
data["iscmadmin"] = true;
}
});
return data;
}
function formValid() {
angular.forEach(vm.tabs, function (item) {
//item.
});
}
$scope.vm = vm;
$scope.refreshcmdbform = function (item) {
var tempclassify = item.prefix.toLowerCase() + item.sign;
api_configure_form.renderTabForm(tempclassify).then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.propTypeOptions = myData;
$scope.templateProps = myData;
$scope.vm.tabs = myData;
if ($scope.model.assets) {
vm.models = JSON.parse($scope.model.assets);
}
if (angular.isDefined(vm.models.vtvmvtm_kaiji)) {
if (vm.models.vtvmvtm_kaiji) {
vm.models.vtvmvtm_kaiji = "是";
} else {
vm.models.vtvmvtm_kaiji = "否";
}
}
decodeVMTabForm(vm.models, vm.tabs);
});
// }
};
var cifilterClassic = {};
// if ($scope.$parent.$parent.$parent.model.cifilterClassic && cifilterClassic.id != $scope.$parent.$parent.$parent.model.cifilterClassic.id) {
// cifilterClassic = $scope.$parent.$parent.$parent.model.cifilterClassic;
$scope.refreshcmdbform(
$scope.$parent.$parent.$parent.model.cifilterClassic
);
// } else {}
},
],
});
//固定资产下载
formlyConfigProvider.setType({
name: "ui-dropupload",
templateUrl: "assets/views/customform/tpl/cmdb/upload.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {
view: function (APIService, contentId) {
return APIService.downloadAttachment(contentId);
},
},
};
},
controller: [
"$scope",
"$rootScope",
"Restangular",
function ($scope, $rootScope, Restangular) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
var to = $scope.options.templateOptions;
var bindId = $scope.model[to.bindType].processInstanceId;
//获取附件列表
$scope.listAttachmen = function () {
to.ApiService.listAttachment(
to.listAttachmentUrl,
to.bindType,
bindId
).then(function (result) {
var myData = Restangular.stripRestangular(result);
// $scope.listAttachmens = myData;
$scope.attachments = myData.data;
});
};
$scope.listAttachmen();
// if (to.bindType && $scope.model[to.bindType].processInstanceId) {
// $scope.listAttachmen();
// } else if (to.bindType && $scope.model[to.bindType].id) {
// $scope.listAttachmen();
// }
//附件下载
$scope.download = function (token, filename) {
var downUrl = to.ApiService.downloadAttachment(
to.downUrl,
token
).getRequestedUrl();
var a = document.createElement("a");
a.href = downUrl;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
};
//附件预览
$scope.view = function (id, previewUrl) {
if (previewUrl) {
window.open(previewUrl);
}
};
},
],
});
formlyConfigProvider.setType({
name: "ui-form",
templateUrl: "assets/views/customform/tpl/ui-cmdbform.html",
defaultOptions: function (options) {
return {
templateOptions: {
// link: function() {}
},
};
},
controller: [
"$rootScope",
"$scope",
"$parse",
"$injector",
"$http",
"$q",
"$state",
"$stateParams",
"$modal",
"$timeout",
"$interval",
"i18nService",
"SweetAlert",
"FileUploader",
"Restangular",
"UserRestangular",
"BpmRestangular",
"api_configure_form",
"api_configure_data",
"api_bpm_domain",
"api_bpm_data",
"api_user_data",
"api_cmdb",
"api_sysinfo",
function (
$rootScope,
$scope,
$parse,
$injector,
$http,
$q,
$state,
$stateParams,
$modal,
$timeout,
$interval,
i18nService,
SweetAlert,
FileUploader,
Restangular,
UserRestangular,
BpmRestangular,
api_configure_form,
api_configure_data,
api_bpm_domain,
api_bpm_data,
api_user_data,
api_cmdb,
api_sysinfo
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
var vm = this;
vm.options = {};
vm.exampleTitle = ["expressionProperties", "model property"];
vm.fields = [];
vm.models = {};
// vm.models["loginUser"] = $rootScope.user;
var that = $injector;
var parse = $parse;
var formKey = "";
var pdKey = "";
if (
angular.isDefined($state.current.pdKey) &&
$state.current.pdKey != ""
) {
pdKey = $state.current.pdKey;
//console.log("pdKey::"+$state.current.pdKey);
}
if (
angular.isDefined($stateParams.formKey) &&
$stateParams.formKey != ""
) {
formKey = $stateParams.formKey;
//console.log("formKey::"+$stateParams.formKey);
}
//用户测试数据,后续从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 decodeVMTabForm(model, tabs) {
var result = {
model: {},
tabs: [],
};
var mdata = angular.fromJson(model);
angular.extend(result.model, mdata);
angular.forEach(tabs, function (tab) {
tab.form.model = vm.models;
angular.forEach(tab.form.fields, function (field) {
if (field.key == "") {
delete field.key;
}
if (angular.isDefined(field.extjson) && field.extjson != "") {
var extObj = angular.fromJson(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 (field.extjson == "") {
delete field.extjson;
}
if (angular.isDefined(field.templateOptions)) {
var templateOs = field.templateOptions;
for (var property in templateOs) {
//console.log(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 = 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-userselect") {
field.templateOptions.modal = $modal;
//field.templateOptions.Restangular = Restangular;
} else if (field.type == "ui-multiuserselect") {
field.templateOptions.modal = $modal;
} else if (field.type == "ui-modelselect") {
field.templateOptions.modal = $modal;
//field.templateOptions.Restangular = Restangular;
} else if (field.type == "ui-dropfile") {
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-uploadFile") {
// 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-dropFiles") {
if (field.templateOptions.processInstanceId) {
} else {
field.templateOptions.processInstanceId =
$stateParams.processInstanceId;
}
} else if (field.type == "ui-showImgs") {
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] = [];
decodeVMTabForm(repeatForm);
}
}
// console.log(field);
//field
//result.fields.push(field);
});
});
vm.originalTabs = angular.copy(vm.form);
}
//解析自定义表单设计数据
function decodeVMForm(vmForm) {
var result = {
model: {},
tabs: [],
};
//设置模型实体数据 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.tabs, 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(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 = 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-userselect") {
field.templateOptions.modal = $modal;
//field.templateOptions.Restangular = Restangular;
} else if (field.type == "ui-multiuserselect") {
field.templateOptions.modal = $modal;
} else if (field.type == "ui-modelselect") {
field.templateOptions.modal = $modal;
//field.templateOptions.Restangular = Restangular;
} else if (field.type == "ui-dropfile") {
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-dropFiles") {
if (field.templateOptions.processInstanceId) {
} else {
field.templateOptions.processInstanceId =
$stateParams.processInstanceId;
}
} else if (field.type == "ui-showImgs") {
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);
}
}
// console.log(field);
result.fields.push(field);
});
angular.extend($scope.vm.fields, result.fields);
angular.extend($scope.vm.models, result.model);
$scope.formData = vmForm;
//console.log($scope.vm);
//解析设计数据生成表单项 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);
});
}
});
}
function invokeOnAllFormOptions(fn) {
angular.forEach(vm.tabs, function (tab) {
if (tab.form.options && tab.form.options[fn]) {
tab.form.options[fn]();
}
});
}
function encodeCIData(data, ciId) {
/*
create/update state:未审核
create createtime:系统时间
create/update lastupdatetime : 系统时间
label:ci分类
*/
if (ciId) {
var baseprop = [
"uuid",
"name",
"type",
"label",
"status",
"createtime",
"lastupdatetime",
"props",
]; //state|audittime//createtime//removeflag|removetime//configperson//lastupdateperson//manager//useradmin
var extraprop = "props";
data[extraprop] = {};
for (var key in data) {
console.log(data[key]);
if (_.indexOf(baseprop, key) >= 0) {
continue;
} else {
data[extraprop][key] = data[key];
delete data[key];
}
}
if ($rootScope.user) {
data[extraprop]["lastupdateperson"] = $rootScope.user.name;
data[extraprop]["configperson"] = $rootScope.user.name;
var isCMAdminFlag = false;
angular.forEach($rootScope.user.role, function (roleItem) {
if (roleItem.rolecode == "cmdb charge") {
isCMAdminFlag = true;
}
});
if (!isCMAdminFlag) {
data[extraprop]["state"] = "1";
}
}
if (data.props.id) {
} else {
data.label = ciId;
}
return data;
}
return undefined;
}
function decodeCIModel(data) {
var extraprop = "props";
if (data[extraprop]) {
for (var key in data[extraprop]) {
data[key] = data[extraprop][key];
}
delete data[extraprop];
}
data["iscmadmin"] = false;
angular.forEach($rootScope.user.role, function (roleItem) {
if (roleItem.rolecode == "cmdb charge") {
data["iscmadmin"] = true;
}
});
return data;
}
vm.remove = function (data, style) {
$scope.ldloading[style.replace("-", "_")] = true;
var modalInstance = $modal.open({
templateUrl: "assets/views/delete.html",
controller: function ($scope, scope, $modalInstance, api_bpm_data) {
var cidata = {
label: data.label,
id: data.id,
uuid: data.uuid,
name: data.name,
props: {},
};
if (cidata.id) {
cidata.props["removeflag"] = true;
cidata.props["lastupdateperson"] = vm.models.loginUser;
$scope.ok = function () {
$modalInstance.close(cidata);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
}
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
if (selectedItem) {
// if (selectedItem.length > 0) {
api_cmdb
.put(selectedItem, selectedItem.id)
.then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
SweetAlert.swal(
{
title: "删除成功!",
confirmButtonColor: "#007AFF",
},
function () {
$state.go("app.means.list");
// $scope.refreshform();
// reinitTabForm($scope.classify);
}
);
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
}
});
};
function formValid() {
angular.forEach(vm.tabs, function (item) {
//item.
});
}
$scope.closeModel = function () {
console.log($stateParams);
if (
angular.isDefined($stateParams.formKey) &&
$stateParams.formKey != ""
) {
if (
$stateParams.formKey == "means_editor" ||
$stateParams.formKey == "means_edit"
) {
$state.go("app.means.list", {});
}
event.preventDefault();
}
};
// setInterval(function() {
// if ($scope.model.cifilter_classic && cifilter_classic.id != $scope.model.cifilter_classic.id) {
// cifilter_classic = $scope.model.cifilter_classic;
// $scope.refreshcmdbform(cifilter_classic);
// } else {}
// }, 100);
vm.models = (function filter(obj) {
var filtered = _.pick(obj, function (v) {
return (
angular.isDefined(v) &&
v !== null &&
(angular.isArray(v) ? v.length > 0 : true) &&
(_.isPlainObject(v) ? !_.isEmpty(v) : true)
);
});
return _.cloneDeep(filtered, function (v) {
return v !== filtered && _.isPlainObject(v) ? filter(v) : undefined;
});
})(vm.models);
// setInterval(function() {
// if ($scope.model.type == 0) {
// $scope.model[$scope.options.key] = vm.models;
// }
// }, 100);
setInterval(function () {
if (vm.form && vm.form.$$parentForm.$valid) {
if (
$scope.$parent &&
$scope.$parent.$parent &&
$scope.$parent.$parent.$parent &&
$scope.$parent.$parent.$parent.model
) {
vm.models.hw_cifilterClassic =
$scope.$parent.$parent.$parent.model.cifilterClassic.label;
$scope.model[$scope.options.key] = vm.models;
}
// vm.models.hw_cifilterClassic = $scope.$parent.$parent.$parent.model.cifilterClassic.label;
// $scope.model[$scope.options.key] = vm.models;
}
}, 100);
vm.submit = function (data, ciId, templateitem, style) {
// $scope.ldloading[style.replace('-', '_')] = true;
console.log(vm.form.$$parentForm.$valid);
if (vm.form.$$parentForm.$valid) {
invokeOnAllFormOptions("updateInitialValue");
//alert(JSON.stringify(vm.model), null, 2);
//vm.options.updateInitialValue();
//console.log(vm.model);
var cidata = encodeCIData(vm.models, ciId);
if (cidata) {
//var cidata = ;
if (cidata.props.id) {
//修改
api_cmdb.put(cidata, ciId).then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
SweetAlert.swal(
{
title: "保存成功!",
confirmButtonColor: "#007AFF",
},
function () {
$scope.ldloading[style.replace("-", "_")] = false;
// $scope.refreshform();
$state.go("app.means.list");
}
);
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
} else {
//新建
var type = 2;
api_sysinfo
.getSerialnumber(type, templateitem.id)
.then(function (data) {
if (data && data.status == 200) {
cidata.uuid = data.uuid;
api_cmdb.create(cidata).then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
SweetAlert.swal(
{
title: "保存成功!",
text: "内部编号:" + cidata.uuid,
confirmButtonColor: "#007AFF",
},
function () {
$state.go("app.means.list");
}
);
// if(resData.status){
// resData
// }
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
} else {
SweetAlert.swal({
title: "系统错误",
text: "内部编号生成出错!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
});
}
} else {
SweetAlert.swal({
title: "错误",
text: "错误,请选择资产分类!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
//alert(JSON.stringify(cidata), null, 2);
$scope.ldloading[style.replace("-", "_")] = true;
return;
var _ = window._;
vm.models = (function filter(obj) {
var filtered = _.pick(obj, function (v) {
return (
angular.isDefined(v) &&
v !== null &&
(angular.isArray(v) ? v.length > 0 : true) &&
(_.isPlainObject(v) ? !_.isEmpty(v) : true)
);
});
return _.cloneDeep(filtered, function (v) {
return v !== filtered && _.isPlainObject(v)
? filter(v)
: undefined;
});
})(vm.models);
} else {
if (vm.form.$$parentForm.$error) {
SweetAlert.swal({
title: "校验错误",
text: "请填写必填项!",
type: "error",
confirmButtonColor: "#DD6B55",
});
angular.forEach(
vm.form.$$parentForm.$error.required,
function (item) {
angular.forEach(vm.tabs, function (tab) {
angular.forEach(tab.form.fields, function (f) {
if (f.name == item.$name) {
f.validation.show = true;
tab.active = true;
}
});
});
}
);
$scope.ldloading[style.replace("-", "_")] = false;
}
}
};
$scope.vm = vm;
$scope.refreshcmdbform = function (item) {
// if ($stateParams.model) {
// var modeldata = JSON.parse($stateParams.model)
var tempclassify = item.prefix.toLowerCase() + item.sign;
api_configure_form.renderTabForm(tempclassify).then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.propTypeOptions = myData;
$scope.templateProps = myData;
$scope.vm.tabs = myData;
if ($scope.model.asset && $scope.model.asset.length != "") {
vm.models = JSON.parse($scope.model.asset);
}
decodeVMTabForm(vm.models, vm.tabs);
});
// }
};
var cifilterClassic = {};
setInterval(function () {
if (
$scope.$parent.$parent &&
$scope.$parent.$parent.$parent &&
$scope.$parent.$parent.$parent.model &&
$scope.$parent.$parent.$parent.model.cifilterClassic &&
cifilterClassic.id !=
$scope.$parent.$parent.$parent.model.cifilterClassic.id
) {
// $scope.$parent.$parent.$parent.model.cifilterClassic = $scope.model.cifilterClassic;
cifilterClassic =
$scope.$parent.$parent.$parent.model.cifilterClassic;
$scope.refreshcmdbform(cifilterClassic);
} else {
}
}, 100);
},
],
});
//请求人信息
formlyConfigProvider.setType({
name: "ui-cmdbinformation",
templateUrl: "assets/views/customform/tpl/cmdb/ui-cmdbinformation.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {
// checkform: function(options) {
// if (options.model.requester) {
// options.value(options.model.requester);
// }
// },
},
};
},
controller: [
"$scope",
"api_user_data",
function ($scope, api_user_data) {
if ($scope.options.templateOptions.loginUser) {
if (
$scope.model[$scope.options.key] &&
$scope.model[$scope.options.key].id
) {
} else {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.loginUser;
}
$scope.options.initialValue = $scope.model[$scope.options.key];
}
},
],
});
//资产属性
formlyConfigProvider.setType({
name: "ui-cmdbtype",
templateUrl: "assets/views/customform/tpl/cmdb/ui-cmdbtype.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {
// checkform: function(options) {
// if (options.model.requester) {
// options.value(options.model.requester);
// }
// },
},
};
},
controller: [
"$scope",
"api_user_data",
function ($scope, api_user_data) {
// $scope.options.initialValue = $scope.model[$scope.options.key];
$scope.property = {
hw_change: $scope.to.loginUser,
hw_updata: moment(new Date()).format("YYYY-MM-DD hh:mm:ss"),
hw_createtime: moment(new Date()).format("YYYY-MM-DD hh:mm:ss"),
};
if ($scope.$parent.$parent.$parent.model.assets) {
$scope.$parent.$parent.$parent.model.assets.extend($scope.property);
}
},
],
});
//申请单信息
formlyConfigProvider.setType({
name: "ui-cmdbformimform",
templateUrl: "assets/views/customform/tpl/cmdb/ui-cmdbformimform.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {
// checkform: function(options) {
// if (options.model.requester) {
// options.value(options.model.requester);
// }
// },
},
};
},
controller: [
"$scope",
"api_user_data",
function ($scope, api_user_data) {
// $scope.options.initialValue = $scope.model[$scope.options.key];
$scope.getininform = {
serialNumbe:
$scope.$parent.$parent.$parent.model.applicationForm.serialNumbe,
time: $scope.$parent.$parent.$parent.model.applicationForm.time,
};
if ($scope.$parent.$parent.$parent.model.applicationForm.type == 0) {
$scope.getininform.types = "新资产入库";
} else if (
$scope.$parent.$parent.$parent.model.applicationForm.type == 2
) {
$scope.getininform.types = "资产归还";
}
},
],
});
//出库单信息
formlyConfigProvider.setType({
name: "ui-outinformation",
templateUrl: "assets/views/customform/tpl/cmdb/outinformation.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {
// checkform: function(options) {
// if (options.model.requester) {
// options.value(options.model.requester);
// }
// },
},
};
},
controller: [
"$scope",
"api_user_data",
function ($scope, api_user_data) {
// $scope.options.initialValue = $scope.model[$scope.options.key];
$scope.getininform = {
serialNumbe:
$scope.$parent.$parent.$parent.model.applicationForm.serialNumbe,
time: $scope.$parent.$parent.$parent.model.applicationForm.time,
// source: $scope.$parent.$parent.$parent.model.applicationForm.source,
sourceId:
$scope.$parent.$parent.$parent.model.applicationForm.sourceId,
describe:
$scope.$parent.$parent.$parent.model.applicationForm.describe,
};
if ($scope.$parent.$parent.$parent.model.type.value == "1") {
$scope.getininform.types = "新设备领用出库";
} else if ($scope.$parent.$parent.$parent.model.type.value == "4") {
$scope.getininform.types = "设备更换";
}
$scope.getininform.source_id =
$scope.$parent.$parent.$parent.model.source.value;
if ($scope.$parent.$parent.$parent.model.source.value == "1") {
$scope.getininform.source = "事件";
} else if ($scope.$parent.$parent.$parent.model.source.value == "2") {
$scope.getininform.source = "变更";
// $scope.getininform.sourceId=$scope.$parent.$parent.$parent.model.source
} else if ($scope.$parent.$parent.$parent.model.source.value == "3") {
$scope.getininform.source = "其它";
}
},
],
});
//资产附件上传
formlyConfigProvider.setType({
name: "ui-cmdbuplode",
templateUrl: "assets/views/customform/tpl/cmdb/ui-cmdbuplode.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {
// checkform: function(options) {
// if (options.model.requester) {
// options.value(options.model.requester);
// }
// },
},
};
},
controller: [
"$scope",
"$rootScope",
"$http",
"SweetAlert",
"FileUploader",
"api_user_data",
"i18nService",
"$modal",
"Restangular",
"api_configure_data",
"api_cmdb",
"api_cmdb_new",
"api_wechatfile",
"api_sysinfo",
function (
$scope,
$rootScope,
$http,
SweetAlert,
FileUploader,
api_user_data,
i18nService,
$modal,
Restangular,
api_configure_data,
api_cmdb,
api_cmdb_new,
api_wechatfile,
api_sysinfo
) {
$scope.state = 1;
$scope.myData3all = [];
$scope.myData3 = [];
$scope.memoryfilterDatahao = {
idx: 0,
sum: 10,
};
$scope.selected = {
items: [],
};
$scope.interceptMydata = function (mydate, idx, sum) {
return mydate.slice(idx * sum, (idx + 1) * sum);
};
// $scope.importnext = function() {
// $scope.state = 2;
// event.preventDefault();
// }
$scope.workspaces = [];
$scope.options.templateOptions.getpush = function (item) {
$scope.workspaces = [];
if (item.gu) {
$scope.workspaces.push({
id: 1,
name: "固定资产",
active: true,
contentUrl: "assets/views/customform/tpl/cmdb/gudingzichan.html",
});
}
if (item.hao) {
$scope.workspaces.push({
id: 2,
name: "耗材资产",
active: true,
contentUrl: "assets/views/customform/tpl/cmdb/haocai.html",
});
}
};
//获取附件列表
$scope.listAttachmen = function () {
to.ApiService.listAttachment(
to.listAttachmentUrl,
to.bindType,
bindId
).then(function (result) {
var myData = Restangular.stripRestangular(result);
// $scope.listAttachmens = myData;
$scope.attachments = myData.data;
});
};
//附件列表
if ($scope.options.templateOptions.bindType) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
var to = $scope.options.templateOptions;
var bindId = $scope.model[to.bindType].processInstanceId;
$scope.listAttachmen();
}
// if (to.bindType && $scope.model[to.bindType].processInstanceId) {
// $scope.listAttachmen();
// } else if (to.bindType && $scope.model[to.bindType].id) {
// $scope.listAttachmen();
// }
//附件下载
$scope.download = function (token, filename) {
var downUrl = to.ApiService.downloadAttachment(
to.downUrl,
token
).getRequestedUrl();
// window.open(downUrl);
var a = document.createElement("a");
a.href = downUrl;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
};
//附件预览
$scope.view = function (id, previewUrl) {
if (previewUrl) {
window.open(previewUrl);
}
};
//下载资产模版
$scope.filenum = 0;
$scope.openmeans = function () {
var modalInstance = $modal.open({
templateUrl: "assets/views/means/tpl/meansdown.html",
controller: function ($scope, scope, $modalInstance) {
$scope.item = {};
$scope.title = "选择下载模版";
$scope.lable = "资产模版下载";
function foreachdata(my_datas) {
// angular.forEach(my_datas, function(item, index) {
// if (item.children && item.children.length > 0) {
// foreachdata(item.children);
// } else {
// my_datas[index].checks = true;
// }
// })
for (var i = 0; i < my_datas.length; i++) {
if (my_datas[i].children && my_datas[i].children.length > 0) {
foreachdata(my_datas[i].children);
console.log($scope);
} else {
my_datas[i].checks = true;
}
}
}
function foreachtree(data) {
angular.forEach(data, function (item) {
// if (item.checks != true) {
item.checks = true;
item.expanded = true;
if (item.children && item.children.length > 0) {
foreachtree(item.children);
} else {
$scope.getslowtree.push(item);
}
// }
});
}
$scope.getslowtree = [];
$scope.slowtree = function (tree) {
foreachtree(tree);
return $scope.getslowtree;
};
$scope.all = function (c, v) {
//全选
if (c == true) {
$scope.formdashboard($scope.slowtree(v));
} else {
$scope.my_data_after = [];
angular.forEach($scope.my_data, function (item, index) {
$scope.my_data[index].checks = false;
$scope.my_data[index].expanded = false;
if (item.children && item.children.length > 0) {
angular.forEach(
item.children,
function (itemone, indexone) {
$scope.my_data[index].children[
indexone
].checks = false;
$scope.my_data[index].children[
indexone
].expanded = false;
if (itemone.children && itemone.children.length > 0) {
angular.forEach(
itemone.children,
function (itemtwo, indextwo) {
$scope.my_data[index].children[
indexone
].children[indextwo].checks = false;
}
);
} else {
}
}
);
} else {
}
});
$scope.mydatacate = [];
$scope.getslowtree = [];
// }
}
};
// $scope.searchone = function(search) {
// angular.forEach($scope.my_data, function(item) {
// if (item.indexOf(search) > 0) {
// }
// })
// }
$scope.checkall = function () {
angular.forEach($scope.my_data, function (item, index) {
scope.my_data[index].checks = true;
});
};
$scope.selectitem = [];
$scope.choiceitem = function (item) {
// if (item.checkeds) {
// item.checkeds = false;
// // for (var i = 0; i < $scope.selectitem.length; i++) {
// // if ($scope.selectitem[i].id == item.id) {
// // $scope.selectitem.splice(i, 1)
// // }
// // }
// for (var i = 0; i < $scope.my_data_after; i++) {
// if ($scope.my_data_after[i].id == item.id) {
// $scope.my_data_after[i].checkeds ? $scope.my_data_after[i].checkeds = false : $scope.my_data_after[i].checkeds = true;
// // $scope.selectitem.splice(i, 1)
// }
// }
// } else {
// item.checkeds = true;
// $scope.selectitem.push(item)
// }
for (var i = 0; i < $scope.my_data_after.length; i++) {
if ($scope.my_data_after[i].id == item.id) {
$scope.my_data_after[i].checkeds
? ($scope.my_data_after[i].checkeds = false)
: ($scope.my_data_after[i].checkeds = true);
}
}
};
$scope.remove = function (removeitem) {
var realdat = angular.copy($scope.my_data_after);
// angular.extend(realdat, $scope.selectitem);
$scope.my_data_after = [];
angular.forEach(realdat, function (item) {
if (!item.checkeds) {
$scope.my_data_after.push(item);
}
});
$scope.mydatacate = angular.copy($scope.my_data_after);
};
$scope.try_async_loads = function (item, search) {
var fildatas = {
idx: 0,
sum: 1000,
};
$scope.my_data = [];
// $scope.try_async_load = true;
if (item) {
angular.extend(fildatas, item);
}
api_configure_data
.fetchDataList("ciclassify", fildatas)
.then(function (response) {
if (response.status == 200) {
var data = response.list;
var objects = [];
for (var i = 0; i < data.length; i++) {
var object = {};
object.id = data[i].id;
if (search) {
delete data[i].parent;
} else {
if (data[i].parent && data[i].parent.id != 0) {
object.parent = data[i].parent.id;
}
}
angular.extend(object, data[i]);
objects.push(object);
}
$scope.my_data = convertParentToChildList(objects);
$scope.tree_data = angular.copy($scope.my_data);
if ($scope.my_data.length > 0) {
$scope.try_async_load = false;
}
} else {
SweetAlert.swal({
title: "系统错误!",
text: "请刷新重试!",
type: "error",
});
}
});
};
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;
}
function convertParentToChildList(data) {
var treeMap = {};
var list = [];
convertListToTree(data, treeMap);
angular.forEach(treeMap, function (item) {
list.push(item);
});
return list;
}
function convertParentToChild(datato) {
var treeMapto = {};
var listto = [];
convertListToTree(datato, treeMapto);
angular.forEach(treeMapto, function (items) {
listto.push(items);
});
return listto;
}
$scope.try_async_loads();
$scope.searchdown = function (key) {
if (key && key != "") {
$scope.try_async_loads(
{
ciclassify: {
label: key,
},
},
"search"
);
} else {
$scope.try_async_loads();
}
// var mydatacatedown = angular.copy($scope.my_data);
// $scope.my_data = [];
// var objects = [];
// angular.forEach(mydatacatedown, function(item) {
// if (item.label.match(key)) {
// objects.push(item)
// } else {
// // $scope.my_data_after.push(item)
// }
// })
// $scope.my_data = convertParentToChildList(objects);
// $scope.tree_data = angular.copy($scope.my_data);
};
$scope.mydatacate = [];
$scope.searchup = function (key) {
// var mydatacate = angular.copy($scope.my_data_after);
$scope.my_data_after = [];
angular.forEach($scope.mydatacate, function (item) {
if (item.label.match(key)) {
$scope.my_data_after.push(item);
} else {
}
});
};
//角色树
$scope.my_tree = [];
$scope.tree_data_after = [];
$scope.my_data = [];
$scope.my_data_after = [];
$scope.formdashboard = function (item) {
$scope.my_data_after = [];
angular.forEach(item, function (infox) {
if (infox.children.length == 0) {
$scope.my_data_after.push(infox);
}
});
$scope.mydatacate = angular.copy($scope.my_data_after);
};
$scope.ok = function (item) {
$modalInstance.close(item);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
// size: 'sm',
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
// $rootScope.isMask = true;
if (selectedItem) {
var type = 1;
var fildat = {
configure: selectedItem,
};
// api_configure_data.downModeldata('cmdb', fildat).then(function(data) {
// // if (data.errno == 0) {
// var file = new Blob([data], {
// // 'Accept': '*/*'
// type: 'application/octet-stream'
// // type: 'application/vnd.ms-excel'
// });
// //trick to download store a file having its URL
// var fileURL = URL.createObjectURL(file);
// var a = document.createElement('a');
// a.href = fileURL;
// a.target = '_blank';
// a.download = "资产导入模版.xlsx";
// document.body.appendChild(a);
// a.click();
// // }
// })
$http({
url: api_configure_data
.downModels("export/cmdb", fildat)
.getRequestedUrl(),
method: "POST",
data: JSON.stringify(fildat),
headers: {
// 'Content-type': 'application/xls',
Accept: "*/*",
},
responseType: "arraybuffer",
})
.success(function (data, status, headers, config) {
$rootScope.isMask = false;
var file = new Blob([data], {
type: "application/octet-stream",
// type : 'application/vnd.ms-excel'
});
//trick to download store a file having its URL
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = "资产导入模版.xlsx";
document.body.appendChild(a);
a.click();
})
.error(function (data, status, headers, config) {
// console.log(data);
$rootScope.isMask = false;
});
// break;
// }
// }
// }
// })
} else {
SweetAlert.swal(
{
title: "未选择资产分类!",
text: "请选择资产分类",
type: "error",
},
function () {
$rootScope.isMask = false;
}
);
}
// }
});
};
$scope.wrongdata = [];
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
var uploadermeans = ($scope.uploadermeans =
$scope.options.templateOptions.fileUploadermeans);
$scope.importopen = function () {
//导入触发事件
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
//附件上传数据
//$scope.options.templateOptions.uploader();
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 2;
},
});
// CALLBACKS
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info("onAfterAddingAll", addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
// uploader.onSuccessItem = function(fileItem, response, status, headers) {
// console.info('onSuccessItem', fileItem, response, status, headers);
// };
uploader.onErrorItem = function (
fileItem,
response,
status,
headers
) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
};
// $scope.importnext = function() {
// $scope.state = 2;
// event.preventDefault();
// }
$scope.importnext = function () {
event.preventDefault();
// $rootScope.isMask = true;
$rootScope.loading = true;
// $scope.loadingtext = "正在导入中,请暂时不要离开此界面..."
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = api_cmdb_new.checkFile(1).getRequestedUrl();
// if (item.index > 1) {
// item.formData = [{ 'filename': item.file.name + '_' + (item.index - 1) }];
// }
// item.index = 1;
item.formData = [
{
filename: item.file.name,
},
];
console.info("onBeforeUploadItem", item);
};
uploader.uploadAll();
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
if (response.status == 200) {
$scope.wrongdata = [];
$rootScope.loading = false;
if (response.abnormal) {
$scope.state = 2;
angular.forEach(response.msg, function (item) {
$scope.wrongdata.push({
name: item.assetName,
line: item.row,
cmdbname: item.name,
errotip: [
{
label: item.msg,
},
],
});
});
} else {
$scope.state = 3;
}
} else {
$rootScope.loading = false;
$scope.state = 2;
}
};
};
$scope.clearItems = function () {
//重新选择文件时,清空队列,达到覆盖文件的效果
uploader.clearQueue();
// uploader.remove();
// uploader.cancel();
// uploader.onChange();
};
uploader.onAfterAddingFile = function (fileItem) {
$scope.fileItem = fileItem._file;
// $scope.$apply();
// $scope.fileItem = filenum;
// $scope.fileItem.name = fileItem._file.name.replace(".", "_" + filenum + "."); //添加文件之后,把文件信息赋给scope
// $scope.fileItem.name = fileItem._file.name.replace(".", "_" + filenum + ".");
$scope.filenum++;
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
$scope.uploadStatus = true; //上传成功则把状态改为true
// alert(response.path);
};
$scope.importnext = function () {
event.preventDefault();
// uploader.onChange();
$rootScope.loading = true;
// $scope.loadingtext = "正在导入中,请暂时不要离开此界面..."
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = api_cmdb_new.checkFile(1).getRequestedUrl();
// if (item.index > 1) {
// item.formData = [{ 'filename': item.file.name + '_' + (item.index - 1) }];
// }
// item.index = 1;
item.formData = [
{
filename: item.file.name,
},
];
console.info("onBeforeUploadItem", item);
};
uploader.uploadAll();
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
if (response.status == 200) {
$scope.wrongdata = [];
// uploader.queue = [];
$rootScope.loading = false;
if (response.abnormal) {
$scope.state = 2;
uploader.clearQueue();
angular.forEach(response.msg, function (item) {
$scope.wrongdata.push({
name: item.assetName,
line: item.row,
cmdbname: item.name,
errotip: [
{
label: item.msg,
},
],
});
});
} else {
$scope.state = 3;
}
} else {
uploader.clearQueue();
$rootScope.loading = false;
$scope.state = 2;
}
};
};
var setAllInactive = function () {
angular.forEach($scope.workspaces, function (workspace) {
workspace.active = false;
});
};
//添加
var addNewWorkspace = function (name, contentUrl) {
var id = $scope.workspaces.length + 1;
$scope.workspaces.push({
id: id,
name: name,
active: true,
contentUrl: "main/html/content.html",
});
};
//关闭
$scope.closeopen = function (closedata) {
event.preventDefault();
angular.forEach($scope.workspaces, function (item, index) {
if (closedata.id == item.id) {
if (closedata.id == 1) {
$scope.$parent.$parent.$parent.model.uplodtype.gu = false;
} else {
$scope.$parent.$parent.$parent.model.uplodtype.hao = false;
}
$scope.workspaces.splice(index, 1);
}
});
};
// $scope.workspaces = [
// { id: 1, name: "固定资产", active: true, contentUrl: 'assets/views/customform/tpl/cmdb/gudingzichan.html' },
// { id: 2, name: "耗材资产", active: true, contentUrl: 'assets/views/customform/tpl/cmdb/haocai.html' }
// ];
$scope.addWorkspace = function (contentUrl, name) {
setAllInactive();
addNewWorkspace(name, contentUrl);
};
// $rootScope.addWorkspace = $scope.addWorkspace;
$scope.close = function (idNumber) {
var index = 0; //记录当前元素下标
angular.forEach($scope.workspaces, function (workspace) {
if (workspace.id === idNumber) {
$scope.workspaces.splice(index, 1); //删除当前下标的选项卡元素
}
index++;
});
};
//grid2
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions2 = {};
$scope.gridOptions2.data = "myData3";
$scope.gridOptions2.enableColumnResizing = true;
$scope.gridOptions2.enableFiltering = false;
$scope.gridOptions2.enableGridMenu = false;
$scope.gridOptions2.showGridFooter = true;
$scope.gridOptions2.showColumnFooter = false;
$scope.gridOptions2.fastWatch = true;
$scope.gridOptions2.useExternalFiltering = true;
$scope.gridOptions2.useExternalPagination = true;
$scope.gridOptions2.paginationPageSizes = [10];
$scope.gridOptions2.paginationPageSize = 10;
$scope.gridOptions2.multiSelect = false;
// $scope.gridOptions.rowTemplate = "
";
$scope.gridOptions2.columnDefs = [
{
name: "item",
displayName: "序号",
width: 120,
},
{
name: "name",
displayName: "耗材名称",
width: 80,
enableFiltering: false,
},
{
name: "model",
displayName: "品牌/型号",
width: 100,
enableFiltering: false,
},
{
name: "Specifications",
displayName: "规格",
width: 150,
enableFiltering: false,
},
{
name: "sum",
displayName: "数量",
enableFiltering: false,
},
{
name: "操作",
cellTemplate:
'",
enableFiltering: false,
},
];
if ($scope.$parent.$parent.$parent.model.uplodtype) {
if ($scope.$parent.$parent.$parent.model.uplodtype.hao == "true") {
$scope.myData3all = JSON.parse(
$scope.$parent.$parent.$parent.model.applicationForm.consumables
);
for (var i = 0; i < $scope.myData3all.length; i++) {
$scope.myData3all[i]["item"] =
i + 1 + $scope.memoryfilterDatahao.idx * 10;
}
// $scope.model.consumables = $scope.myDataone;
$scope.gridOptions2["totalItems"] = $scope.myData3all.length;
$scope.myData3 = $scope.interceptMydata($scope.myData3all, 0, 10);
$scope.model.applicationForm.consumables = $scope.myData3all;
if ($scope.$parent.$parent.$parent.model.uplodtype.gu == "true") {
$scope.options.templateOptions.getpush({
hao: true,
gu: true,
});
} else {
$scope.options.templateOptions.getpush({
hao: true,
});
}
} else {
if ($scope.$parent.$parent.$parent.model.uplodtype.gu == "true") {
$scope.options.templateOptions.getpush({
gu: true,
});
}
}
}
$scope.options.templateOptions.workspaces = $scope.workspaces;
$scope.changecai = function (item) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/changehaocai.html",
controller: function ($scope, $modalInstance) {
$scope.title = "修改耗材数量";
$scope.consumptive = angular.copy(item);
$scope.ok = function () {
$modalInstance.close($scope.consumptive);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
});
modalInstance.result.then(function (selectedItem) {
// angular.forEach($scope.myData3, function(items, index) {
// if (items.id == selectedItem.id) {
// $scope.myData3[index] = selectedItem;
// }
// })
// // $scope.myData3.push(selectedItem);
// $scope.model.applicationForm.consumables = $scope.myData3;
angular.forEach($scope.myData3all, function (items, index) {
if (
items.modelid == selectedItem.modelid &&
items.nameid == selectedItem.nameid &&
items.Specificationsid == selectedItem.Specificationsid
) {
// item.model.id == itemsdata.modelid && item.name.id == itemsdata.nameid && item.Specifications.id == itemsdata.Specificationsid
angular.extend($scope.myData3all[index], selectedItem);
}
});
$scope.gridOptions2["totalItems"] = $scope.myData3all.length;
$scope.myData3 = $scope.interceptMydata(
$scope.myData3all,
$scope.memoryfilterDatahao.idx,
10
);
$scope.model.applicationForm.consumables = $scope.myData3all;
});
};
$scope.gridOptions2.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// var filtersData = $scope.memoryfilterDatahao;
// filtersData.idx = newPage - 1;
// filtersData.sum = pageSize;
// $scope.loadData(filtersData);
$scope.memoryfilterDatahao.idx = newPage - 1;
$scope.memoryfilterDatahao.sum = pageSize;
$scope.myData3 = $scope.interceptMydata(
$scope.myData3all,
$scope.memoryfilterDatahao.idx,
10
);
}
);
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.items = data.entity;
//console.log(data);
});
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
};
$scope.memoryfilterDatahao = filtersData;
// $scope.loadData(filtersData);
// $scope.memoryfilterDatahao.idx = newPage - 1;
// $scope.memoryfilterDatahao.sum = pageSize;
$scope.myData3 = $scope.interceptMydata(
$scope.myData3all,
$scope.memoryfilterDatahao.idx,
10
);
});
};
$scope.haocaiopen = function (items) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/addhaocai.html",
controller: function ($scope, $modalInstance, SweetAlert) {
$scope.consumptive = {};
$scope.title = "新增耗材";
if (items.name) {
$scope.consumptive.name = items.name.name;
}
$scope.clearNoNum = function (obj, attr) {
//先把非数字的都替换掉,除了数字和.
obj[attr] = obj[attr].replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
obj[attr] = obj[attr].replace(/^\./g, "");
//保证只有出现一个.而没有多个.
obj[attr] = obj[attr].replace(/\.{2,}/g, "");
//保证.只出现一次,而不能出现两次以上
obj[attr] = obj[attr]
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
//小于最大值
// if ($scope.maxsum && parseInt(obj[attr]) > $scope.maxsum) {
// alert('输入数据超过库存数量' + $scope.maxsum + ',请重新输入!');
// obj[attr] = '';
// }
};
$scope.ok = function (item) {
// if (item.name && item.model && item.Specifications && item.sum) {
if (
item.name &&
item.model &&
JSON.stringify(item.model) != "{}" &&
item.Specifications &&
JSON.stringify(item.Specifications) != "{}" &&
item.sum
) {
$modalInstance.close(item);
} else {
SweetAlert.swal({
title: "数据填写不完整!",
text: "请检查数据然后提交!",
type: "error",
});
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
SweetAlert: function () {
return SweetAlert;
},
},
});
modalInstance.result.then(function (selectedItem) {
api_sysinfo
.addData("dictionaryTree", {
// "type": "list",
key: "haocaifenlei",
name: selectedItem.name,
parent: selectedItem.id,
value: selectedItem.name,
deleted: false,
level: 1,
})
.then(function (data) {
// $scope.haocainame.name = data.list;
api_sysinfo
.addData("dictionaryTree", {
// "type": "list",
key: "pinpai",
name: selectedItem.model,
parent: data.id,
value: selectedItem.model,
deleted: false,
level: 2,
})
.then(function (data) {
// $scope.haocainame = data.list;
});
api_sysinfo
.addData({
// "type": "list",
key: "guige",
name: selectedItem.Specifications,
parent: data.id,
value: selectedItem.Specifications,
deleted: false,
level: 2,
})
.then(function (data) {
// $scope.haocainame = data.list;
});
});
// $scope.myData3.push(selectedItem);
// for (var i = 0; i < $scope.myData3.length; i++) {
// $scope.myData3[i]['item'] = i + 1 + $scope.memoryfilterData.idx * 10
// }
// $scope.model.applicationForm.consumables = $scope.myData3;
$scope.myData3all.push(selectedItem);
for (var i = 0; i < $scope.myData3all.length; i++) {
$scope.myData3all[i]["item"] = i + 1;
}
// $scope.model.consumables = $scope.myDataone;
$scope.gridOptions2["totalItems"] = $scope.myData3all.length;
$scope.myData3 = $scope.interceptMydata(
$scope.myData3all,
$scope.memoryfilterDatahao.idx,
10
);
$scope.model.applicationForm.consumables = $scope.myData3all;
});
};
$scope.haocaiadd = function () {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl:
"assets/views/customform/tpl/cmdb/addchangehaocai.html",
controller: function (
$scope,
scope,
$modalInstance,
api_wechatfile,
SweetAlert,
api_cmdb3
) {
$scope.haocainame = [];
$scope.pinpai = [];
$scope.guige = [];
$scope.consumptive = {};
$scope.consumpall = {};
$scope.title = "添加耗材";
api_wechatfile
.getDictionary({
key: "haocaifenlei",
type: "tree",
})
.then(function (data) {
$scope.haocainame = data;
});
$scope.clearNoNum = function (obj, attr) {
//先把非数字的都替换掉,除了数字和.
obj[attr] = obj[attr].replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
obj[attr] = obj[attr].replace(/^\./g, "");
//保证只有出现一个.而没有多个.
obj[attr] = obj[attr].replace(/\.{2,}/g, "");
//保证.只出现一次,而不能出现两次以上
obj[attr] = obj[attr]
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
//小于最大值
// if ($scope.maxsum && parseInt(obj[attr]) > $scope.maxsum) {
// alert('输入数据超过库存数量' + $scope.maxsum + ',请重新输入!');
// obj[attr] = '';
// }
};
$scope.onChange = function (parent) {
$scope.consumptive.model = {};
$scope.consumptive.Specifications = {};
api_wechatfile
.getDictionaryForList({
key: "pinpai",
parent: parent.id,
})
.then(function (data) {
$scope.pinpai = data;
});
api_wechatfile
.getDictionaryForList({
key: "guige",
parent: parent.id,
})
.then(function (data) {
$scope.guige = data;
});
};
$scope.addhaocai = function () {
$modalInstance.dismiss("cancel");
scope.haocaiopen($scope.consumptive);
};
$scope.ok = function (item) {
var items = {};
var submittrue = true;
if (
item.name &&
item.model &&
JSON.stringify(item.model) != "{}" &&
item.Specifications &&
JSON.stringify(item.Specifications) != "{}" &&
item.sum
) {
items = {
modelid: item.model.id,
nameid: item.name.id,
Specificationsid: item.Specifications.id,
name: item.name.name,
model: item.model.name,
Specifications: item.Specifications.name,
sum: item.sum,
};
angular.forEach(scope.myData3all, function (itemsdata) {
if (
item.model.id == itemsdata.modelid &&
item.name.id == itemsdata.nameid &&
item.Specifications.id == itemsdata.Specificationsid
) {
submittrue = false;
}
});
if (submittrue) {
$modalInstance.close(items);
} else {
SweetAlert.swal({
title: "该耗材已有添加",
text: "请检查数据然后提交!",
type: "error",
});
}
} else {
SweetAlert.swal({
title: "数据填写不完整!",
text: "请检查数据然后提交!",
type: "error",
});
}
// var isold = false;
// if (item.name && item.model && item.Specifications && item.sum) {
// for (var i = 0; i < scope.myData3all.length; i++) {
// if (scope.myData3all[i].id == $scope.consumpall.id) {
// isold = true;
// }
// }
// if (isold) {
// SweetAlert.swal({
// title: "该耗材已添加!",
// text: "请不要重复添加耗材!",
// type: "error"
// });
// } else {
// $scope.consumpall.model = $scope.consumpall.brandModel;
// $scope.consumpall.Specifications = $scope.consumpall.specification;
// $scope.consumpall.sum = item.sum;
// delete $scope.consumpall.brandModel;
// delete $scope.consumpall.specification;
// $modalInstance.close($scope.consumpall);
// }
// } else {
// SweetAlert.swal({
// title: "数据填写不完整!",
// text: "请检查数据然后提交!",
// type: "error"
// });
// }
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
$scope.myData3all.push(selectedItem);
for (var i = 0; i < $scope.myData3all.length; i++) {
$scope.myData3all[i]["item"] = i + 1;
}
// $scope.model.consumables = $scope.myDataone;
$scope.gridOptions2["totalItems"] = $scope.myData3all.length;
$scope.myData3 = $scope.interceptMydata(
$scope.myData3all,
$scope.memoryfilterDatahao.idx,
10
);
$scope.model.applicationForm.consumables = $scope.myData3all;
});
};
$scope.onDblClick = function (data, event) {
$scope.selectButtonClick(data, event);
};
// $scope.memoryfilterDatahao = {
// "idx": 0,
// "sum": 10,
// }
// $scope.loadData = function(filterData) {};
// $scope.title = title;
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.options.templateOptions.transform(
$scope.options,
$rootScope,
$scope
);
}
},
],
});
//归还设备耗材tab
formlyConfigProvider.setType({
name: "ui-cmdbreturntab",
templateUrl: "assets/views/customform/tpl/cmdb/ui-cmdbreturntab.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {
// checkform: function(options) {
// if (options.model.requester) {
// options.value(options.model.requester);
// }
// },
},
};
},
controller: [
"$scope",
"$modal",
"api_user_data",
"i18nService",
"api_wechatfile",
"api_cmdb3",
function (
$scope,
$modal,
api_user_data,
i18nService,
api_wechatfile,
api_cmdb3
) {
var setAllInactive = function () {
angular.forEach($scope.workspaces, function (workspace) {
workspace.active = false;
});
};
$scope.memoryfilterData = {
idx: 0,
sum: 10,
};
//添加
var addNewWorkspace = function (name, contentUrl) {
var id = $scope.workspaces.length + 1;
$scope.workspaces.push({
id: id,
name: name,
active: true,
contentUrl: "main/html/content.html",
});
};
$scope.workspaces = [
{
id: 1,
name: "归还设备",
active: true,
contentUrl: "assets/views/customform/tpl/cmdb/shebei.html",
},
{
id: 2,
name: "归还耗材",
active: true,
contentUrl: "assets/views/customform/tpl/cmdb/haocai.html",
},
];
$scope.addWorkspace = function (contentUrl, name) {
setAllInactive();
addNewWorkspace(name, contentUrl);
};
// $rootScope.addWorkspace = $scope.addWorkspace;
$scope.close = function (idNumber) {
var index = 0; //记录当前元素下标
angular.forEach($scope.workspaces, function (workspace) {
if (workspace.id === idNumber) {
$scope.workspaces.splice(index, 1); //删除当前下标的选项卡元素
}
index++;
});
};
$scope.memoryfilterDataguishe = {
idx: 0,
sum: 10,
};
//grid1
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions1 = {};
$scope.gridOptions1.data = "myData1";
$scope.gridOptions1.enableColumnResizing = true;
$scope.gridOptions1.enableFiltering = false;
$scope.gridOptions1.enableGridMenu = false;
$scope.gridOptions1.showGridFooter = true;
$scope.gridOptions1.showColumnFooter = false;
$scope.gridOptions1.fastWatch = true;
$scope.gridOptions1.useExternalFiltering = true;
$scope.gridOptions1.useExternalPagination = true;
$scope.gridOptions1.paginationPageSizes = [10];
$scope.gridOptions1.paginationPageSize = 10;
$scope.gridOptions1.multiSelect = false;
// $scope.gridOptions.rowTemplate = "
";
$scope.gridOptions1.columnDefs = [
{
name: "item",
displayName: "序号",
width: 120,
},
{
name: "props.hw_cifilterClassic",
displayName: "设备类型",
width: 150,
enableFiltering: false,
},
{
name: "props.hw_mingcheng",
displayName: "设备名称",
width: 180,
enableFiltering: false,
},
{
name: "uuid",
displayName: "设备编号",
width: 180,
enableFiltering: false,
},
{
name: "props.hw_state",
width: 150,
displayName: "状态",
enableFiltering: false,
},
{
name: "操作",
cellTemplate:
'",
enableFiltering: false,
},
];
// $scope.selectButtonClick
$scope.gridOptions1.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// var filtersData = $scope.memoryfilterData;
// filtersData.idx = newPage - 1;
// filtersData.sum = pageSize;
// $scope.loadData(filtersData);
$scope.memoryfilterDataguishe.idx = newPage - 1;
$scope.memoryfilterDataguishe.sum = pageSize;
$scope.myData1 = $scope.interceptMydata(
$scope.myData2all,
$scope.memoryfilterDataguishe.idx,
10
);
}
);
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.items = data.entity;
//console.log(data);
});
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
gridApi.core.on.filterChanged($scope, function () {
// var grid = this.grid;
// var filtersData = {
// idx: 0,
// sum: 20,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
// };
// angular.forEach(grid.columns, function(item) {
// if (item.enableFiltering) {
// // console.log("item.filters[0]=" + JSON.stringify(item.filters));
// if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') {
// if (angular.isUndefined(filtersData['user'])) {
// filtersData['user'] = {};
// }
// filtersData['user'][item.field] = item.filters[0].term;
// }
// }
// });
// $scope.memoryfilterData = filtersData;
// $scope.loadData(filtersData);
});
};
$scope.changegu = function (item) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/changestate.html",
controller: function ($scope, $modalInstance) {
$scope.title = "修改设备状态";
$scope.hw_state = {};
if (item.status) {
$scope.hw_state.name = item.hw_state;
}
// $scope.consumptive = item;
$scope.stateshe = [
{
id: 2,
name: "在库",
},
{
id: 4,
name: "报修",
},
{
id: 3,
name: "报废",
},
];
$scope.ok = function (item) {
$modalInstance.close($scope.hw_state);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
});
modalInstance.result.then(function (selectedItem) {
angular.forEach($scope.myData1, function (items, index) {
if (items.id == item.id) {
$scope.myData1[index].props.hw_state = selectedItem.id.name;
}
});
$scope.model.assets = $scope.myData1;
$scope.$parent.$parent.$parent.model.applicationForm.assets =
$scope.model.assets;
});
};
$scope.onDblClick = function (data, event) {
$scope.selectButtonClick(data, event);
};
$scope.memoryfilterData = {
idx: 0,
sum: 10,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
};
// $scope.myData = {};
$scope.loadData = function (filterData) { };
// $scope.title = title;
$scope.loadData({
idx: 0,
sum: 10,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
});
$scope.selected = {
items: [],
};
$scope.myData2 = [];
$scope.consumptive = {};
$scope.myDataguibeiall = [];
$scope.haocaiopen = function (items) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/addhaocai.html",
controller: function (
$scope,
$modalInstance,
SweetAlert,
api_wechatfile,
api_sysinfo
) {
$scope.consumptive = {};
$scope.title = "新增耗材";
if (items.name) {
$scope.consumptive.name = items.name.name;
}
$scope.ok = function (item) {
if (
item.name &&
item.model &&
JSON.stringify(item.model) != "{}" &&
item.Specifications &&
JSON.stringify(item.Specifications) != "{}" &&
item.sum
) {
$modalInstance.close(item);
} else {
SweetAlert.swal({
title: "数据填写不完整!",
text: "请检查数据然后提交!",
type: "error",
});
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
});
modalInstance.result.then(function (selectedItem) {
api_sysinfo
.addData({
type: "list",
key: "haocaifenlei",
name: selectedItem.name,
parent: selectedItem.id,
value: "1",
})
.then(function (data) {
// $scope.haocainame.name = data.list;
api_wechatfile
.addDictionary({
type: "list",
key: "pinpai",
name: selectedItem.model,
parent: data.id,
value: "1",
})
.then(function (data) {
// $scope.haocainame = data.list;
});
api_wechatfile
.addDictionary({
type: "list",
key: "guige",
name: selectedItem.Specifications,
parent: data.id,
value: "1",
})
.then(function (data) {
// $scope.haocainame = data.list;
});
});
$scope.myData2.push(selectedItem);
for (var i = 0; i < $scope.myData2.length; i++) {
$scope.myData2[i]["item"] =
i + 1 + $scope.memoryfilterData.idx * 10;
}
// $scope.model.applicationForm.consumables = $scope.myData2;
angular.forEach($scope.myDataguibeiall, function (items, index) {
if (items.id == selectedItem.id) {
$scope.myDataguibeiall.splice(index, 1);
}
});
$scope.myData2 = $scope.interceptMydata($scope.myDataguibei, 0, 10);
$scope.model.consumables = $scope.myDataguibeiall;
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
$scope.model.consumables;
$scope.gridOptions1["totalItems"] = $scope.myDataguibeiall.length;
});
};
//grid2
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions2 = {};
$scope.gridOptions2.data = "myData2";
$scope.gridOptions2.enableColumnResizing = true;
$scope.gridOptions2.enableFiltering = false;
$scope.gridOptions2.enableGridMenu = false;
$scope.gridOptions2.showGridFooter = true;
$scope.gridOptions2.showColumnFooter = false;
$scope.gridOptions2.fastWatch = true;
$scope.gridOptions2.useExternalFiltering = true;
$scope.gridOptions2.useExternalPagination = true;
$scope.gridOptions2.paginationPageSizes = [10];
$scope.gridOptions2.paginationPageSize = 10;
$scope.gridOptions2.multiSelect = false;
// $scope.gridOptions.rowTemplate = "
";
$scope.modelcons = {};
$scope.modelass = {};
$scope.myData2all = [];
$scope.myData1all = [];
$scope.memoryfilterDatagui = {
idx: 0,
sum: 10,
};
setInterval(function () {
if ($scope.model.assets) {
if (
$scope.model.assets != $scope.modelass &&
typeof $scope.model.assets == "string"
) {
$scope.modelass = $scope.model.assets;
if (JSON.stringify($scope.model.assets) == "{}") {
$scope.model.assets = [];
} else {
$scope.model.assets = JSON.parse($scope.model.assets);
}
// $scope.myData1 = $scope.model.assets;
// for (var i = 0; i < $scope.myData1.length; i++) {
// $scope.myData1[i]['item'] = i + 1 + $scope.memoryfilterData.idx * 10
// }
$scope.myData1all = $scope.model.assets;
for (var i = 0; i < $scope.myData1all.length; i++) {
$scope.myData1all[i]["item"] =
i + 1 + $scope.memoryfilterDatagui.idx * 10;
}
$scope.gridOptions1["totalItems"] = $scope.myData1all.length;
$scope.myData1 = $scope.interceptMydata($scope.myData1all, 0, 10);
}
}
if ($scope.model.consumables) {
if (
$scope.model.consumables != $scope.modelcons &&
typeof $scope.model.consumables == "string"
) {
$scope.modelass = $scope.model.consumables;
if (JSON.stringify($scope.model.consumables) == "{}") {
$scope.model.consumables = [];
} else {
$scope.model.consumables = JSON.parse($scope.model.consumables);
}
// $scope.myData2 = $scope.model.consumables;
// for (var i = 0; i < $scope.myData2.length; i++) {
// $scope.myData2[i]['item'] = i + 1 + $scope.memoryfilterData.idx * 10
// }
$scope.myData2all = $scope.model.consumables;
for (var i = 0; i < $scope.myData2all.length; i++) {
$scope.myData2all[i]["item"] =
i + 1 + $scope.memoryfilterDatagui.idx * 10;
}
$scope.gridOptions2["totalItems"] = $scope.myData2all.length;
$scope.myData2 = $scope.interceptMydata($scope.myData2all, 0, 10);
// $scope.model.consumables = $scope.myData2all;
}
}
}, 100);
$scope.gridOptions2.columnDefs = [
{
name: "item",
displayName: "序号",
width: 120,
},
{
name: "name",
displayName: "耗材名称",
width: 180,
enableFiltering: false,
},
{
name: "model",
displayName: "品牌/型号",
width: 180,
enableFiltering: false,
},
{
name: "Specifications",
displayName: "规格",
width: 150,
enableFiltering: false,
},
{
name: "sum",
width: 150,
displayName: "数量",
enableFiltering: false,
},
{
name: "操作",
cellTemplate:
'",
enableFiltering: false,
},
];
// $scope.selectButtonClick
$scope.gridOptions2.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// var filtersData = $scope.memoryfilterDatagui;
// filtersData.idx = newPage - 1;
// filtersData.sum = pageSize;
$scope.memoryfilterDatagui.idx = newPage - 1;
$scope.memoryfilterDatagui.sum = pageSize;
$scope.myData2 = $scope.interceptMydata(
$scope.myData2all,
$scope.memoryfilterDatagui.idx,
10
);
}
);
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.items = data.entity;
//console.log(data);
});
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
// console.log("item.filters[0]=" + JSON.stringify(item.filters));
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] = item.filters[0].term;
}
}
});
$scope.memoryfilterData = filtersData;
$scope.loadData(filtersData);
});
};
$scope.changecai = function (item) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/changehaocai.html",
controller: function ($scope, $modalInstance) {
$scope.title = "修改耗材数量";
$scope.consumptive = angular.copy(item);
// $scope.consumptive = item;
$scope.maxsum = item.inventoryNum;
$scope.clearNoNum = function (obj, attr) {
//先把非数字的都替换掉,除了数字和.
obj[attr] = obj[attr].replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
obj[attr] = obj[attr].replace(/^\./g, "");
//保证只有出现一个.而没有多个.
obj[attr] = obj[attr].replace(/\.{2,}/g, "");
//保证.只出现一次,而不能出现两次以上
obj[attr] = obj[attr]
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
//小于最大值
// if ($scope.maxsum && parseInt(obj[attr]) > $scope.maxsum) {
// alert('输入数据超过库存数量' + $scope.maxsum + ',请重新输入!');
// obj[attr] = '';
// }
};
$scope.ok = function () {
$modalInstance.close($scope.consumptive);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
});
modalInstance.result.then(function (selectedItem) {
angular.forEach($scope.myData2all, function (items, index) {
// if (items.id == selectedItem.id) {
if (
items.modelid == selectedItem.modelid &&
items.nameid == selectedItem.nameid &&
items.Specificationsid == selectedItem.Specificationsid
) {
angular.extend($scope.myData2all[index], selectedItem);
}
});
// $scope.model.consumables = $scope.myData2;
// $scope.myData2 = $scope.model.consumables;
// $scope.myData2all.push(selectedItem);
// for (var i = 0; i < $scope.myData2all.length; i++) {
// $scope.myData2all[i]['item'] = i + 1 + $scope.memoryfilterDatagui.idx * 10
// }
$scope.gridOptions2["totalItems"] = $scope.myData2all.length;
$scope.myData2 = $scope.interceptMydata(
$scope.myData2all,
$scope.memoryfilterDatagui.idx,
10
);
$scope.model.consumables = $scope.myData2all;
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
$scope.model.consumables;
});
};
$scope.interceptMydata = function (mydate, idx, sum) {
return mydate.slice(idx * sum, (idx + 1) * sum);
};
$scope.haocaiadd = function () {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/add_haocai.html",
controller: function (
$scope,
scope,
$modalInstance,
api_wechatfile,
SweetAlert
) {
$scope.haocainame = [];
$scope.pinpai = [];
$scope.guige = [];
$scope.consumptive = {};
$scope.consumptiveall = {};
$scope.title = "添加耗材";
api_wechatfile
.getDictionaryForList({
key: "haocaifenlei",
})
.then(function (data) {
$scope.haocainame = data;
});
$scope.clearNoNum = function (obj, attr) {
//先把非数字的都替换掉,除了数字和.
obj[attr] = obj[attr].replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
obj[attr] = obj[attr].replace(/^\./g, "");
//保证只有出现一个.而没有多个.
obj[attr] = obj[attr].replace(/\.{2,}/g, "");
//保证.只出现一次,而不能出现两次以上
obj[attr] = obj[attr]
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
//小于最大值
if ($scope.maxsum && parseInt(obj[attr]) > $scope.maxsum) {
alert(
"输入数据超过库存数量" + $scope.maxsum + ",请重新输入!"
);
obj[attr] = "";
}
};
$scope.onChange = function (parent) {
$scope.consumptive.model = {};
$scope.consumptive.Specifications = {};
api_wechatfile
.getDictionaryForList({
key: "pinpai",
parent: parent.id,
})
.then(function (data) {
$scope.pinpai = data;
});
api_wechatfile
.getDictionaryForList({
key: "guige",
parent: parent.id,
})
.then(function (data) {
$scope.guige = data;
});
};
// $scope.onChangesum = function(item) {
// if (item.name && item.model && item.model.id && item.Specifications && item.Specifications.id) {
// var data1 = { "idx": 0, "sum": 10, "consumable": { "name": item.name.name, "model": item.model.name, "Specifications": item.Specifications.name } }
// $scope.consumptiveall = data1;
// // api_cmdb3.fetchDataList('consumable', data1).then(function(data) {
// // if (data.list && data.list.length != 0) {
// // var myData = data.list;
// // $scope.consumptiveall = myData[0];
// // $scope.maxsum = myData[0].inventoryNum;
// // } else if (data.list && data.list.length == 0) {
// // SweetAlert.swal({
// // title: "库存数据存在问题!",
// // text: "请检查库存数据!",
// // type: "error"
// // });
// // }
// // });
// }
// }
$scope.addhaocai = function () {
$modalInstance.dismiss("cancel");
scope.haocaiopen($scope.consumptive);
};
$scope.ok = function (item) {
var submittrue = true;
// var data = { "id": item.model.id, "name": item.name.name, "model": item.model.name, "Specifications": item.Specifications.name, "sum": item.sum }
var data = {
modelid: item.model.id,
nameid: item.name.id,
Specificationsid: item.Specifications.id,
name: item.name.name,
model: item.model.name,
Specifications: item.Specifications.name,
sum: item.sum,
};
if (
item.name &&
item.model &&
JSON.stringify(item.model) != "{}" &&
item.Specifications &&
JSON.stringify(item.Specifications) != "{}" &&
item.sum
) {
// $modalInstance.close(data);
angular.forEach(scope.myData2all, function (itemsdata) {
// if (item.model.id == itemsdata.id) {
if (
item.model.id == itemsdata.modelid &&
item.name.id == itemsdata.nameid &&
item.Specifications.id == itemsdata.Specificationsid
) {
submittrue = false;
}
});
if (submittrue) {
$modalInstance.close(data);
} else {
SweetAlert.swal({
title: "该耗材已有添加",
text: "请检查数据然后提交!",
type: "error",
});
}
} else {
SweetAlert.swal({
title: "数据填写不完整!",
text: "请检查数据然后提交!",
type: "error",
});
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
// $scope.myData2.push(selectedItem);
// for (var i = 0; i < $scope.myData2.length; i++) {
// $scope.myData2[i]['item'] = i + 1 + $scope.memoryfilterData.idx * 10
// }
// $scope.model.consumables = $scope.myData2;
$scope.myData2all.push(selectedItem);
for (var i = 0; i < $scope.myData2all.length; i++) {
// $scope.myData2all[i]['item'] = i + 1 + $scope.memoryfilterDatagui.idx * 10
$scope.myData2all[i]["item"] = i + 1;
}
$scope.gridOptions2["totalItems"] = $scope.myData2all.length;
$scope.myData2 = $scope.interceptMydata(
$scope.myData2all,
$scope.memoryfilterDatagui.idx,
10
);
$scope.model.consumables = $scope.myData2all;
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
$scope.model.consumables;
});
};
$scope.onDblClick = function (data, event) {
$scope.selectButtonClick(data, event);
};
$scope.memoryfilterData = {
idx: 0,
sum: 20,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
$scope.myData = {};
$scope.loadData = function (filterData) { };
// $scope.title = title;
$scope.loadData({
idx: 0,
sum: 20,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
});
$scope.selected = {
items: {},
};
},
],
});
//tab 列表
formlyConfigProvider.setType({
name: "ui-cmdbtab",
templateUrl: "assets/views/customform/tpl/cmdb/ui-cmdbtab.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
"api_user_data",
"i18nService",
"$modal",
"api_cmdb",
function ($scope, api_user_data, i18nService, $modal, api_cmdb) {
$scope.memoryfilterDatashe = {
idx: 0,
sum: 10,
};
$scope.myDataoneall = [];
var setAllInactive = function () {
angular.forEach($scope.workspaces, function (workspace) {
workspace.active = false;
});
};
//添加
var addNewWorkspace = function (name, contentUrl) {
var id = $scope.workspaces.length + 1;
$scope.workspaces.push({
id: id,
name: name,
active: true,
contentUrl: "main/html/content.html",
});
};
//关闭
$scope.remove = function (closedata) {
event.preventDefault();
angular.forEach($scope.workspaces, function (item, index) {
if (closedata.id == item.id) {
if (closedata.id == 1) {
$scope.$parent.$parent.$parent.model.gettype.gu = false;
} else {
$scope.$parent.$parent.$parent.model.gettype.hao = false;
}
$scope.workspaces.splice(index, 1);
}
});
};
$scope.workspaces = [];
$scope.options.templateOptions.getpush = function (item) {
$scope.workspaces = [];
if (item.gu) {
$scope.workspaces.push({
id: 1,
name: "领用设备",
active: true,
contentUrl: "assets/views/customform/tpl/cmdb/shebei.html",
});
}
if (item.hao) {
$scope.workspaces.push({
id: 2,
name: "领用耗材",
active: true,
contentUrl: "assets/views/customform/tpl/cmdb/haocai.html",
});
}
$scope.options.templateOptions.workspaces = $scope.workspaces;
};
$scope.addWorkspace = function (contentUrl, name) {
setAllInactive();
addNewWorkspace(name, contentUrl);
};
// $rootScope.addWorkspace = $scope.addWorkspace;
// $scope.remove = function(idNumber) {
// var index = 0; //记录当前元素下标
// angular.forEach($scope.workspaces, function(workspace) {
// if (workspace.id === idNumber.id) {
// $scope.workspaces.splice(index, 1); //删除当前下标的选项卡元素
// }
// index++;
// });
// };
// setInterval(function() {
// if ($scope.model.assets) {
// if ($scope.model.assets != $scope.modelass && typeof($scope.model.assets) == 'string') {
// $scope.modelass = $scope.model.assets;
// if (JSON.stringify($scope.model.assets) == "{}") {
// $scope.model.assets = []
// } else {
// $scope.model.assets = JSON.parse($scope.model.assets);
// }
// $scope.myDatalingbeiall = $scope.model.assets;
// for (var i = 0; i < $scope.myDatalingbeiall.length; i++) {
// $scope.myDatalingbeiall[i]['item'] = i + 1 + $scope.memoryfilterDatagui.idx * 10
// }
// $scope.gridOptions1['totalItems'] = $scope.myDatalingbeiall.length;
// $scope.myDatalingbei = $scope.interceptMydata($scope.myDatalingbeiall, 0, 10)
// }
// }
// if ($scope.model.consumables) {
// if ($scope.model.consumables != $scope.modelcons && typeof($scope.model.consumables) == 'string') {
// $scope.modelass = $scope.model.consumables;
// if (JSON.stringify($scope.model.consumables) == "{}") {
// $scope.model.consumables = [];
// } else {
// $scope.model.consumables = JSON.parse($scope.model.consumables);
// }
// $scope.myDatalingbeiall = $scope.model.consumables;
// for (var i = 0; i < $scope.myDatalingbeiall.length; i++) {
// $scope.myDatalingbeiall[i]['item'] = i + 1 + $scope.memoryfilterDatagui.idx * 10
// }
// $scope.gridOptions2['totalItems'] = $scope.myDatalingbeiall.length;
// $scope.myDatatwo = $scope.interceptMydata($scope.myDatalingbeiall, 0, 10)
// // $scope.model.consumables = $scope.myData2all;
// }
// }
// }, 100);
//grid1
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions1 = {};
$scope.gridOptions1.data = "myDatalingbei";
$scope.gridOptions1.enableColumnResizing = true;
$scope.gridOptions1.enableFiltering = false;
$scope.gridOptions1.enableGridMenu = false;
$scope.gridOptions1.showGridFooter = true;
$scope.gridOptions1.showColumnFooter = false;
$scope.gridOptions1.fastWatch = true;
$scope.gridOptions1.useExternalFiltering = true;
$scope.gridOptions1.useExternalPagination = true;
$scope.gridOptions1.paginationPageSizes = [10];
$scope.gridOptions1.paginationPageSize = 10;
$scope.gridOptions1.multiSelect = false;
// $scope.gridOptions.rowTemplate = "
";
$scope.gridOptions1.columnDefs = [
{
name: "item",
displayName: "序号",
width: 120,
},
{
name: "props.hw_cifilterClassic",
displayName: "设备类型",
width: 150,
enableFiltering: false,
},
{
name: "props.hw_mingcheng",
displayName: "设备名称",
width: 100,
enableFiltering: false,
},
{
name: "uuid",
displayName: "设备编号",
enableFiltering: false,
},
];
$scope.myDatalingbeiall = [];
$scope.gridOptions1.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// var filtersData = $scope.memoryfilterData;
// filtersData.idx = newPage - 1;
// filtersData.sum = pageSize;
// $scope.loadData(filtersData);
$scope.memoryfilterDatashe.idx = newPage - 1;
$scope.memoryfilterDatashe.sum = pageSize;
$scope.myDatalingbei = $scope.interceptMydata(
$scope.myDatalingbeiall,
$scope.memoryfilterDatashe.idx,
10
);
}
);
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.items = data.entity;
//console.log(data);
});
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 20,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
// console.log("item.filters[0]=" + JSON.stringify(item.filters));
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] = item.filters[0].term;
}
}
});
$scope.memoryfilterDatashe = filtersData;
// $scope.loadData(filtersData);
});
};
$scope.interceptMydata = function (mydate, idx, sum) {
return mydate.slice(idx * sum, (idx + 1) * sum);
};
$scope.removeshebei = function (item) {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/delete.html",
controller: function ($scope, $modalInstance, scope) {
$scope.title = "设备移除";
$scope.connect = "确定要移除此设备?";
$scope.consumptive = scope.selected.items;
$scope.ok = function () {
$modalInstance.close($scope.consumptive);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
angular.forEach($scope.myDatalingbeiall, function (items, index) {
if (items.id == selectedItem.id) {
$scope.myDatalingbeiall.splice(index, 1);
}
});
// $scope.myData3.push(selectedItem);
$scope.model.consumables = $scope.myDatalingbeiall;
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
$scope.myDatalingbeiall;
$scope.gridOptions1["totalItems"] = $scope.myDatalingbeiall.length;
for (var i = 0; i < $scope.myDatalingbeiall.length; i++) {
$scope.myDatalingbeiall[i]["item"] =
i +
1 +
$scope.memoryfilterDatashe.idx * $scope.memoryfilterDatashe.sum;
}
$scope.myDatalingbei = $scope.interceptMydata(
$scope.myDatalingbeiall,
0,
10
);
});
};
$scope.addshebei = function () {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/add_shebei.html",
controller: function (
$scope,
i18nService,
$modalInstance,
items,
title,
Restangular,
APIService,
onDataCallback,
parentScope,
api_configure_data,
api_configure_form
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myDatatwo";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = false;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = true;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
// $scope.gridOptions.rowTemplate = "
";
$scope.gridOptions.columnDefs = [
{
name: "item",
displayName: "序号",
width: 80,
enableFiltering: false,
},
{
name: "uuid",
displayName: "内部编号",
width: 175,
},
{
name: "props.hw_mingcheng",
displayName: "资产名称",
width: 120,
},
{
name: "props.hw_cifilterClassic",
displayName: "资产类型",
width: 80,
enableFiltering: false,
},
// { name: 'type', displayName: '资产型号', width: 100, enableFiltering: false },
{
name: "props.hw_state",
displayName: "资产状态",
width: 150,
enableFiltering: false,
},
{
name: "props.hwnw_area",
displayName: "资产地点",
width: 130,
enableFiltering: false,
},
{
name: "createtime",
displayName: "申请时间",
enableFiltering: false,
},
];
// $scope.selectButtonClick
var defaultFilterData = {
// "assignee":2,
// "sign":"basehwitndl",
// "applicationForm": { "hw_state": "在线" },
hw_state: "在库",
idx: 0,
sum: 10,
};
$scope.memoryfilterData = {
// "assignee":2,
// "sign":"basehwitndl",
// "applicationForm": { "hw_state": "在线" },
hw_state: "在库",
idx: 0,
sum: 10,
};
$scope.refreshData = function (style, filterData) {
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
$scope.myDatatwo = [];
// $scope.gridOptions['sum']=filterData.sum;
api_cmdb.query(filterData).then(
function (data) {
// $scope.callsPending--;
var filterData = $scope.memoryfilterData;
var myDatatwo = Restangular.stripRestangular(data);
$scope.gridOptions["totalItems"] = data.total;
for (var i = 0; i < myDatatwo.data.node.length; i++) {
myDatatwo.data.node[i].createtime = moment(
myDatatwo.data.node[i].createtime
).format("YYYY-MM-DD");
}
$scope.myDatatwo = myDatatwo.data.node;
for (var i = 0; i < $scope.myDatatwo.length; i++) {
$scope.myDatatwo[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
}
},
function () { }
);
};
$scope.refreshData("expand-right", defaultFilterData);
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
// $scope.loadData(filtersData);
$scope.refreshData("expand-right", filtersData);
//console.log(pageSize);
// $scope.loadData({"idx":newPage-1,"sum":pageSize});
}
);
// gridApi.selection.on.rowSelectionChanged($scope, function(data) {
// $scope.selected.items.push(data.entity);
//console.log(data);
gridApi.selection.on.rowSelectionChanged(
$scope,
function (scope, ect) {
if (scope.isSelected) {
scope.grid.appScope.selected.items.push(scope.entity);
} else {
for (
var i = 0;
i <= scope.grid.appScope.selected.items.length;
i++
) {
if (
scope.grid.appScope.selected.items[i].id ==
scope.entity.id
) {
scope.grid.appScope.selected.items.splice(i, 1);
break;
}
}
}
$scope.mySelectedRows =
$scope.gridApi.selection.getSelectedRows();
}
);
// });
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (rows) {
// $scope.selected.items = data.entity;
//console.log(data);
var selectitem = [];
selectitem = angular.copy($scope.selected.items);
for (var j = 0; j < rows.length; j++) {
if (rows[j].isSelected == true) {
selectitem.push(rows[j].entity);
} else {
delete selectitem[j];
// rows.splice(j, 1);
}
}
$scope.selected.items = [];
for (var i = 0; i < selectitem.length; i++) {
if (selectitem[i]) {
$scope.selected.items.push(selectitem[i]);
}
}
}
);
// gridApi.selection.on.selectAllRows = function(row) { //GridRow
// // if (row.entity.age > 45) {
// row.grid.api.selection.selectRow(row.entity); // 选中行
// // }
// };
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
// console.log("item.filters[0]=" + JSON.stringify(item.filters));
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] = item.filters[0].term;
}
}
});
$scope.memoryfilterData = filtersData;
// $scope.loadData(filtersData);
});
};
$scope.onDblClick = function (data, event) {
// $scope.selected.items = data.entity;
$scope.selectButtonClick(data, event);
};
// $scope.loadData = function(filterData) {
// // console.log("filtersData=111" + JSON.stringify(filterData))
// items.fetchItems(filterData, APIService).then(function(data) {
// var myDatatwo = Restangular.stripRestangular(data);
// $scope.gridOptions.totalItems = myDatatwo.totalNum;
// $scope.myDatatwo = myDatatwo.list;
// });
// };
$scope.title = title;
//树形图
var apple_selected, tree, treedata_avm, treedata_geography;
$scope.my_tree_handler = function (branch) {
//var _ref;
var classify = ($scope.classify =
branch.prefix.toLowerCase() + branch.sign);
api_cmdb
.query({
sign: classify,
})
.then(function (data) {
var myDatalingbei = Restangular.stripRestangular(data);
// console.log(myData.data.node);
if (myDatalingbei.data && myDatalingbei.status == 200) {
var ret = myDatalingbei.data;
redrawSvg(myDatalingbei);
}
});
};
$scope.my_data = [];
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
var parentNode = 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?
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;
}
function convertParentToChildList(data) {
var treeMap = {};
var list = [];
convertListToTree(data, treeMap);
angular.forEach(treeMap, function (item) {
list.push(item);
});
return list;
}
$scope.my_tree = tree = {};
$scope.try_async_load = function () {
$scope.my_data = [];
$scope.select_treedata = [];
$scope.doing_async = true;
api_configure_data
.fetchDataList("ciclassify", {
idx: 0,
sum: 100,
})
.then(function (result) {
//console.log(result['list']);
$scope.select_treedata = $scope.my_data =
convertParentToChildList(result["list"]);
$scope.doing_async = false;
// tree.expand_all();
//console.log(treelist);
});
};
$scope.select_treedata = [];
$scope.propTypeOptions = [];
$scope.try_async_load();
$scope.onFilterremove = function (item) {
console.log(item);
};
$scope.searchdata = {};
$scope.clear = function () {
$scope.searchdata = {};
$scope.cifilter_classic = {};
$scope.try_async_load();
var fildata = {
idx: 0,
sum: 10,
hw_state: "在库",
};
$scope.memoryfilterData = fildata;
$scope.refreshData("expand-right", fildata);
};
$scope.cifilter_classic = {};
$scope.chiceIncident = function (item) {
var fildata = defaultFilterData;
// fildata.applicationForm = {};
// sign: basehwnwswt
if (item && item.id) {
var classify = item.prefix.toLowerCase() + item.sign;
fildata.sign = classify;
} else {
delete fildata.sign;
}
$scope.gridOptions.paginationCurrentPage = 1;
var transitiondata = angular.copy(item);
$scope.refreshData("expand-right", fildata);
};
$scope.applicadata = [];
$scope.onFilterCallback = function (item) {
var tempclassify = item.prefix.toLowerCase() + item.sign;
api_configure_form
.renderTabForm(tempclassify)
.then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.applicadata = myData[0].form.fields;
});
// }
};
// $scope.loadData({
// idx: 0,
// sum: 10,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
// });
$scope.selected = {
items: [],
};
$scope.ok = function () {
// if(onDataCallback&&angular.isFunction(onDataCallback)){
// onDataCallback($scope.selected.item, parentScope);
// }
$modalInstance.close($scope.selected.items);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "lg",
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
}
return $scope.options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return $scope.options.templateOptions.label;
},
Restangular: function () {
return $scope.options.templateOptions.Restangular;
},
APIService: function () {
return $scope.options.templateOptions.ApiService;
},
onDataCallback: function () {
return $scope.options.templateOptions.callback;
},
parentScope: function () {
return $scope.options.templateOptions.that;
},
},
});
modalInstance.result.then(
function (selectedItem) {
// console.log(selectedItem);
// options.value(selectedItem);
var filterData = $scope.memoryfilterDatashe;
$scope.myDatalingbeiall = selectedItem;
$scope.gridOptions1["totalItems"] =
$scope.myDatalingbeiall.length;
for (var i = 0; i < $scope.myDatalingbeiall.length; i++) {
$scope.myDatalingbeiall[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
}
$scope.myDatalingbei = $scope.interceptMydata(
$scope.myDatalingbeiall,
0,
10
);
$scope.model.assets = $scope.myDatalingbeiall;
$scope.$parent.$parent.$parent.model.applicationForm.assets =
$scope.myDatalingbeiall;
// if (options.templateOptions.callback && angular.isFunction(options.templateOptions.callback)) {
// options.templateOptions.callback(selectedItem, options.templateOptions.that);
// }
// if (options.templateOptions.linkData && angular.isFunction(options.templateOptions.linkData)) {
// options.templateOptions.linkData(selectedItem, options.templateOptions.that);
// }
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
};
$scope.onDblClick = function (data, event) {
$scope.selectButtonClick(data, event);
};
// $scope.loadData = function(filterData) {};
// $scope.title = title;
// $scope.loadData({
// idx: 0,
// sum: 20,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
// });
$scope.selected = {
items: [],
};
//grid2
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions2 = {};
$scope.gridOptions2.data = "myDataone";
$scope.gridOptions2.enableColumnResizing = true;
$scope.gridOptions2.enableFiltering = false;
$scope.gridOptions2.enableGridMenu = false;
$scope.gridOptions2.showGridFooter = true;
$scope.gridOptions2.showColumnFooter = false;
$scope.gridOptions2.fastWatch = true;
$scope.gridOptions2.useExternalFiltering = true;
$scope.gridOptions2.useExternalPagination = true;
$scope.gridOptions2.paginationPageSizes = [10];
$scope.gridOptions2.paginationPageSize = 10;
$scope.gridOptions2.multiSelect = false;
// $scope.gridOptions.rowTemplate = "
";
$scope.gridOptions2.columnDefs = [
{
name: "item",
displayName: "序号",
width: 120,
},
{
name: "name",
displayName: "耗材名称",
width: 150,
enableFiltering: false,
},
{
name: "model",
displayName: "品牌/型号",
width: 100,
enableFiltering: false,
},
{
name: "Specifications",
displayName: "规格",
width: 150,
enableFiltering: false,
},
{
name: "sum",
displayName: "领用数量",
enableFiltering: false,
},
];
// $scope.selectButtonClick
$scope.gridOptions2.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// var filtersData = $scope.memoryfilterData;
// filtersData.idx = newPage - 1;
// filtersData.sum = pageSize;
// $scope.loadData(filtersData);
$scope.memoryfilterDatahao.idx = newPage - 1;
$scope.memoryfilterDatahao.sum = pageSize;
$scope.myDataone = $scope.interceptMydata(
$scope.myDataoneall,
$scope.memoryfilterDatahao.idx,
10
);
}
);
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
$scope.selected.items.push(data.entity);
//console.log(data);
});
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (data) {
$scope.selected.items.push(data.entity);
//console.log(data);
}
);
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
// console.log("item.filters[0]=" + JSON.stringify(item.filters));
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] = item.filters[0].term;
}
}
});
$scope.memoryfilterDatahao = filtersData;
$scope.loadData(filtersData);
});
};
$scope.removehaocai = function (item) {
event.preventDefault();
// var modalInstance = $modal.open({
// templateUrl: 'assets/views/customform/tpl/cmdb/changehaocai.html',
// controller: function($scope, $modalInstance) {
// $scope.title = "修改耗材数量";
// $scope.consumptive = item;
// $scope.ok = function() {
// $modalInstance.close($scope.consumptive);
// };
// $scope.cancel = function() {
// $modalInstance.dismiss('cancel');
// };
// },
// size: 'sm'
// });
var modalInstance = $modal.open({
templateUrl: "assets/views/delete.html",
controller: function ($scope, $modalInstance, scope) {
$scope.title = "耗材移除";
$scope.connect = "确定要移除此设备?";
$scope.consumptive = scope.selected.items[0];
$scope.ok = function () {
$modalInstance.close($scope.consumptive);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
// angular.forEach($scope.myData3, function(items, index) {
// if (items.id == selectedItem.id) {
// $scope.myData3[index] = selectedItem;
// }
// })
// $scope.model.applicationForm.consumables = $scope.myData3;
angular.forEach($scope.myDataoneall, function (items, index) {
if (items.id == selectedItem.id) {
$scope.myDataoneall.splice(index, 1);
}
});
for (var i = 0; i < $scope.myDataoneall.length; i++) {
$scope.myDataoneall[i]["item"] =
i + 1 + $scope.memoryfilterDatahao.idx * 10;
}
$scope.myDataone = $scope.interceptMydata(
$scope.myDataoneall,
0,
10
);
$scope.model.consumables = $scope.myDataoneall;
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
$scope.myDataoneall;
$scope.gridOptions2["totalItems"] = $scope.myDataoneall.length;
$scope.selected = {
items: [],
};
});
};
$scope.haocaiadd = function () {
event.preventDefault();
var modalInstance = $modal.open({
templateUrl: "assets/views/customform/tpl/cmdb/add_haocai.html",
controller: function (
$scope,
scope,
$modalInstance,
api_wechatfile,
SweetAlert,
api_cmdb3
) {
$scope.haocainame = [];
$scope.pinpai = [];
$scope.guige = [];
$scope.consumptive = {};
$scope.consumpall = {};
$scope.title = "添加耗材";
api_wechatfile
.getDictionaryForList({
key: "haocaifenlei",
})
.then(function (data) {
$scope.haocainame = data;
});
$scope.clearNoNum = function (obj, attr) {
//先把非数字的都替换掉,除了数字和.
obj[attr] = obj[attr].replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
obj[attr] = obj[attr].replace(/^\./g, "");
//保证只有出现一个.而没有多个.
obj[attr] = obj[attr].replace(/\.{2,}/g, "");
//保证.只出现一次,而不能出现两次以上
obj[attr] = obj[attr]
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
//小于最大值
if ($scope.maxsum && parseInt(obj[attr]) > $scope.maxsum) {
alert(
"输入数据超过库存数量" + $scope.maxsum + ",请重新输入!"
);
obj[attr] = "";
}
};
$scope.onChange = function (parent) {
$scope.consumptive.model = {};
$scope.consumptive.Specifications = {};
api_wechatfile
.getDictionaryForList({
key: "pinpai",
parent: parent.id,
})
.then(function (data) {
$scope.pinpai = data;
});
api_wechatfile
.getDictionaryForList({
key: "guige",
parent: parent.id,
})
.then(function (data) {
$scope.guige = data;
});
};
$scope.onChangesum = function (item) {
if (item.name && item.model.id && item.Specifications.id) {
$scope.consumptive.sum = "";
var data1 = {
idx: 0,
sum: 10,
consumable: {
name: item.name.name,
brandModel: item.model.name,
specification: item.Specifications.name,
},
};
api_cmdb3
.fetchDataList("consumable", data1)
.then(function (data) {
if (data.status == 200 && data.list.length > 0) {
var myData = data.list;
$scope.consumpall = myData[0];
$scope.maxsum = myData[0].inventoryNum;
} else {
SweetAlert.swal({
title: "不存在该耗材",
text: "请检查库存后重新填写!",
type: "error",
});
}
});
}
};
$scope.addhaocai = function () {
$modalInstance.dismiss("cancel");
scope.haocaiopen($scope.consumptive);
};
$scope.ok = function (item) {
var items = {};
// if (item.name && item.model && item.Specifications && item.sum) {
// // items = { "name": item.name.name, "model": item.model.name, "Specifications": item.Specifications.name, "sum": item.sum }
// $scope.consumpall.model = $scope.consumpall.brandModel;
// $scope.consumpall.Specifications = $scope.consumpall.specification;
// $scope.consumpall.sum = item.sum;
// delete $scope.consumpall.brandModel;
// delete $scope.consumpall.specification;
// $modalInstance.close($scope.consumpall);
// } else {
// SweetAlert.swal({
// title: "数据填写不完整!",
// text: "请检查数据然后提交!",
// type: "error"
// });
// }
var isold = false;
if (
item.name &&
item.model &&
JSON.stringify(item.model) != "{}" &&
item.Specifications &&
JSON.stringify(item.Specifications) != "{}" &&
item.sum
) {
for (var i = 0; i < scope.myDataoneall.length; i++) {
if (scope.myDataoneall[i].id == $scope.consumpall.id) {
isold = true;
}
}
if (isold) {
SweetAlert.swal({
title: "该耗材已添加!",
text: "请不要重复添加耗材!",
type: "error",
});
} else {
$scope.consumpall.model = $scope.consumpall.brandModel;
$scope.consumpall.Specifications =
$scope.consumpall.specification;
$scope.consumpall.sum = item.sum;
delete $scope.consumpall.brandModel;
delete $scope.consumpall.specification;
$modalInstance.close($scope.consumpall);
}
} else {
SweetAlert.swal({
title: "数据填写不完整!",
text: "请检查数据然后提交!",
type: "error",
});
}
// $modalInstance.close(item);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(function (selectedItem) {
$scope.myDataoneall.push(selectedItem);
for (var i = 0; i < $scope.myDataoneall.length; i++) {
$scope.myDataoneall[i]["item"] =
i + 1 + $scope.memoryfilterDatahao.idx * 10;
}
// $scope.model.consumables = $scope.myDataone;
$scope.gridOptions2["totalItems"] = $scope.myDataoneall.length;
$scope.myDataone = $scope.interceptMydata(
$scope.myDataoneall,
0,
10
);
$scope.model.consumables = $scope.myDataoneall;
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
$scope.myDataoneall;
});
};
$scope.onDblClick = function (data, event) {
$scope.selectButtonClick(data, event);
};
$scope.memoryfilterDatahao = {
idx: 0,
sum: 10,
// "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" }
};
$scope.myDataone = [];
$scope.loadData = function (filterData) { };
// $scope.title = title;
$scope.ldloading = {};
$scope.selected = {
items: [],
};
if ($scope.$parent.$parent.$parent.model.gettype) {
if ($scope.$parent.$parent.$parent.model.gettype.hao == "true") {
if ($scope.model.assets) {
if (JSON.stringify($scope.model.assets) == "{}") {
$scope.model.assets = [];
} else {
$scope.model.assets = JSON.parse($scope.model.assets);
}
$scope.myDatalingbeiall = $scope.model.assets;
for (var i = 0; i < $scope.myDatalingbeiall.length; i++) {
$scope.myDatalingbeiall[i]["item"] =
i + 1 + $scope.memoryfilterDatashe.idx * 10;
}
$scope.gridOptions1["totalItems"] =
$scope.myDatalingbeiall.length;
$scope.myDatalingbei = $scope.interceptMydata(
$scope.myDatalingbeiall,
0,
10
);
}
if ($scope.model.consumables) {
if (JSON.stringify($scope.model.consumables) == "{}") {
$scope.model.consumables = [];
} else {
$scope.model.consumables = JSON.parse($scope.model.consumables);
}
$scope.myDataoneall = $scope.model.consumables;
for (var i = 0; i < $scope.myDataoneall.length; i++) {
$scope.myDataoneall[i]["item"] =
i + 1 + $scope.memoryfilterDatahao.idx * 10;
}
$scope.gridOptions2["totalItems"] = $scope.myDataoneall.length;
$scope.myDataone = $scope.interceptMydata(
$scope.myDataoneall,
0,
10
);
}
if ($scope.$parent.$parent.$parent.model.gettype.gu == "true") {
$scope.options.templateOptions.getpush({
hao: true,
gu: true,
});
} else {
$scope.options.templateOptions.getpush({
hao: true,
});
}
} else {
if ($scope.$parent.$parent.$parent.model.gettype.gu == "true") {
$scope.options.templateOptions.getpush({
gu: true,
});
}
}
}
},
],
});
formlyConfigProvider.setType({
name: "ui-panel",
templateUrl: "assets/views/customform/tpl/ui-panel.html",
});
formlyConfigProvider.setType({
name: "ui-currentuser",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-username.html",
defaultOptions: function (options) {
return {
templateOptions: {
// link: function() {}
},
};
},
controller: [
"$scope",
function ($scope) {
if ($scope.options.templateOptions.user) {
if (angular.isFunction($scope.options.templateOptions.transform)) {
// if ($scope.options.templateOptions.transform($scope.options, $scope.model, $scope.options.templateOptions.user)) {
// $scope.$parent.$parent.$parent.model['start_code'] = $scope.options.templateOptions.transform($scope.options, $scope.model, $scope.options.templateOptions.user);
// }
$scope.$parent.$parent.$parent.model["directClose"] = false;
$scope.$parent.$parent.$parent.model["directClose"] = false;
$scope.$parent.$parent.$parent.model["isHandlerUser"] = false;
}
$scope.model[$scope.options.key] =
$scope.options.templateOptions.user;
$scope.options.initialValue = $scope.model[$scope.options.key];
}
},
],
});
//仪表盘
//待处理变更列表
formlyConfigProvider.setType({
name: "ui-ngpchangetable",
templateUrl: "assets/views/customform/tpl/ui-ngpchangetable.html",
defaultOptions: function (options) {
return {
templateOptions: {
// relationAction: function() {
// options.hideExpression = true
// }
},
};
},
controller: [
"$scope",
"$modal",
"$timeout",
"SweetAlert",
"api_bpm_domain",
"$rootScope",
"ngTableParams",
"$filter",
"$state",
function (
$scope,
$modal,
$timeout,
SweetAlert,
api_bpm_domain,
$rootScope,
ngTableParams,
$filter,
$state
) {
// var filterData = {
// "assignee": $rootScope.user.id,
// "searchtype": "all",
// "idx": "0",
// "sum": "10"
// };
var filterData = {
idx: "0",
sum: "10",
assignee: 2,
searchType: "todo",
};
$scope.incidentprocess = function (item) {
$state.go("app.wt_change.add", {
taskId: item.taskId,
processInstanceId: item.processInstanceId,
});
};
$scope.more = function () {
$state.go("app.wt_change.list", {});
};
api_bpm_domain
.fetchtask("bpm_change", filterData)
.then(function (data) {
if (data.data) {
$scope.myData = data.data;
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error",
});
}
});
$scope.removes = function () {
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 () {
console.log($scope.$parent.$parent.$parent.$parent);
for (
var i = 0;
i <
$scope.$parent.$parent.$parent.$parent.resonseform.fields.length;
i++
) {
if (
$scope.fields.type ==
$scope.$parent.$parent.$parent.$parent.resonseform.fields[i]
.type
) {
// $scope.resonseform.fields.push($scope.responseData.fields[i]);
$scope.$parent.$parent.$parent.$parent.resonseform.fields.splice(
i,
1
);
break;
}
}
var vmForm = $scope.$parent.$parent.$parent.$parent.resonseform;
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
$scope.$parent.$parent.$parent.$parent.decodeVMForm(vmForm);
$scope.$parent.$parent.$parent.$parent.vm.fields = vmForm.fields;
}
});
};
},
],
});
//待处理问题列表
formlyConfigProvider.setType({
name: "ui-ngproblemtable",
templateUrl: "assets/views/customform/tpl/ui-ngproblemtable.html",
defaultOptions: function (options) {
return {
templateOptions: {
// relationAction: function() {
// options.hideExpression = true
// }
},
};
},
controller: [
"$scope",
"$modal",
"$timeout",
"SweetAlert",
"api_bpm_data",
"$rootScope",
"ngTableParams",
"$filter",
"$state",
function (
$scope,
$modal,
$timeout,
SweetAlert,
api_bpm_data,
$rootScope,
ngTableParams,
$filter,
$state
) {
var filterData = {
assignee: $rootScope.user.id,
candidateGroups: $rootScope.user.group[0].id,
searchtype: "todo",
idx: 0,
sum: 10,
};
$scope.incidentprocess = function (item) {
$state.go("app.wt_change.add", {
taskId: item.taskId,
processInstanceId: item.processInstanceId,
});
};
$scope.more = function () {
$state.go("app.wt_change.list", {});
};
api_bpm_data
.fetchDataList("changeclassify", filterData)
.then(function (data) {
if (data.data) {
$scope.myData = data.data;
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error",
});
}
});
$scope.removes = function () {
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 () {
console.log($scope.$parent.$parent.$parent.$parent);
for (
var i = 0;
i <
$scope.$parent.$parent.$parent.$parent.resonseform.fields.length;
i++
) {
if (
$scope.fields.type ==
$scope.$parent.$parent.$parent.$parent.resonseform.fields[i]
.type
) {
// $scope.resonseform.fields.push($scope.responseData.fields[i]);
$scope.$parent.$parent.$parent.$parent.resonseform.fields.splice(
i,
1
);
break;
}
}
var vmForm = $scope.$parent.$parent.$parent.$parent.resonseform;
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
$scope.$parent.$parent.$parent.$parent.decodeVMForm(vmForm);
$scope.$parent.$parent.$parent.$parent.vm.fields = vmForm.fields;
}
});
};
},
],
});
//待处理工单列表
formlyConfigProvider.setType({
name: "ui-ngtable",
templateUrl: "assets/views/customform/tpl/ui-ngtable.html",
defaultOptions: function (options) {
return {
templateOptions: {
// relationAction: function() {
// options.hideExpression = true
// }
},
};
},
controller: [
"$scope",
"$modal",
"$timeout",
"SweetAlert",
"api_bpm_domain",
"$rootScope",
"ngTableParams",
"$filter",
"$state",
function (
$scope,
$modal,
$timeout,
SweetAlert,
api_bpm_domain,
$rootScope,
ngTableParams,
$filter,
$state
) {
var filterData = {
assignee: $rootScope.user.id,
candidateGroups: $rootScope.user.group[0].id,
searchtype: "done",
idx: 0,
sum: 10,
};
$scope.incidentprocess = function (item) {
$state.go("app.incident.editor", {
taskId: item.taskId,
processInstanceId: item.processInstanceId,
});
};
$scope.more = function () {
$state.go("app.incident.list", {});
};
api_bpm_domain
.fetchtask("bpm_incident", filterData)
.then(function (data) {
if (data.data) {
$scope.myData = data.data;
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error",
});
}
});
$scope.removes = function () {
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 () {
console.log($scope.$parent.$parent.$parent.$parent);
for (
var i = 0;
i <
$scope.$parent.$parent.$parent.$parent.resonseform.fields.length;
i++
) {
if (
$scope.fields.type ==
$scope.$parent.$parent.$parent.$parent.resonseform.fields[i]
.type
) {
// $scope.resonseform.fields.push($scope.responseData.fields[i]);
$scope.$parent.$parent.$parent.$parent.resonseform.fields.splice(
i,
1
);
break;
}
}
var vmForm = $scope.$parent.$parent.$parent.$parent.resonseform;
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
$scope.$parent.$parent.$parent.$parent.decodeVMForm(vmForm);
$scope.$parent.$parent.$parent.$parent.vm.fields = vmForm.fields;
}
});
};
},
],
});
//知识库列表
formlyConfigProvider.setType({
name: "ui-knowledge",
templateUrl: "assets/views/customform/tpl/ui-knowledgelist.html",
defaultOptions: function (options) {
return {
templateOptions: {
// relationAction: function() {
// options.hideExpression = true
// }
},
};
},
controller: [
"$scope",
"$modal",
"$timeout",
"api_solution",
"$rootScope",
"ngTableParams",
"$filter",
"$state",
function (
$scope,
$modal,
$timeout,
api_solution,
$rootScope,
ngTableParams,
$filter,
$state
) {
var filterData = {
key: "null",
pageIndex: 0,
pageSum: 6,
status: 0,
userId: $rootScope.user.id,
};
$scope.model.removereport = false;
$scope.removes = function () {
$scope.model.removereport = true;
};
$scope.more = function () {
$state.go("app.knowledge.manager", {});
};
api_solution.findSolutionByKeys(filterData).then(function (data) {
if (data.status == 200) {
$scope.myData = data.list;
}
});
$scope.removes = function () {
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.$parent.$parent.$parent.$parent.resonseform.fields.length;
i++
) {
if (
$scope.fields.type ==
$scope.$parent.$parent.$parent.$parent.resonseform.fields[i]
.type
) {
// $scope.resonseform.fields.push($scope.responseData.fields[i]);
$scope.$parent.$parent.$parent.$parent.resonseform.fields.splice(
i,
1
);
break;
}
}
var vmForm = $scope.$parent.$parent.$parent.$parent.resonseform;
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
$scope.$parent.$parent.$parent.$parent.decodeVMForm(vmForm);
$scope.$parent.$parent.$parent.$parent.vm.fields = vmForm.fields;
}
});
};
},
],
});
//公告列表
formlyConfigProvider.setType({
name: "ui-ngnotice",
templateUrl: "assets/views/customform/tpl/ui-ngnotice.html",
defaultOptions: function (options) {
return {
templateOptions: {
// relationAction: function() {
// options.hideExpression = true
// }
},
};
},
controller: [
"$scope",
"$modal",
"$timeout",
"SweetAlert",
"api_user_data",
"$rootScope",
"ngTableParams",
"$filter",
"$state",
function (
$scope,
$modal,
$timeout,
SweetAlert,
api_user_data,
$rootScope,
ngTableParams,
$filter,
$state
) {
var filterData = {
idx: 0,
sum: 10,
};
// $scope.$scope.model.className = "col-xs-12";
api_user_data.fetchDataList("notice", filterData).then(function (data) {
if (data) {
$scope.myData = data.data;
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error",
});
}
});
$scope.more = function () {
$state.go("app.system.notice.list", {});
};
$scope.removes = function () {
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.$parent.$parent.$parent.$parent.resonseform.fields.length;
i++
) {
if (
$scope.fields.type ==
$scope.$parent.$parent.$parent.$parent.resonseform.fields[i]
.type
) {
// $scope.resonseform.fields.push($scope.responseData.fields[i]);
$scope.$parent.$parent.$parent.$parent.resonseform.fields.splice(
i,
1
);
break;
}
}
var vmForm = $scope.$parent.$parent.$parent.$parent.resonseform;
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
$scope.$parent.$parent.$parent.$parent.decodeVMForm(vmForm);
$scope.$parent.$parent.$parent.$parent.vm.fields = vmForm.fields;
}
});
};
},
],
});
//事件统计图
formlyConfigProvider.setType({
name: "ui-incidentreport",
templateUrl: "assets/views/customform/tpl/ui-incidentreport.html",
defaultOptions: function (options) {
return {
templateOptions: {
// relationAction: function() {
// options.hideExpression = true
// }
},
};
},
controller: [
"$scope",
"$modal",
"moment",
"api_report",
"$cookieStore",
function ($scope, $modal, moment, api_report, $cookieStore) {
api_report.getLicenseKey().then(function (response) {
$cookieStore.put("Auth-Token", response.token);
$scope.try_async_load();
});
$scope.try_async_load = function () {
$scope.my_data = [];
api_report.list().then(function (response) {
var dataList = response;
getRepoRoot(dataList, "/homes/home:admin/ITSM报表");
$scope.repoRoot.name = "事件报表";
convertRepoObject($scope.repoRoot);
$scope.my_data.push($scope.repoRoot);
});
};
var workspace = {};
$scope.repoRoot = null;
function getRepoRoot(repo, path) {
angular.forEach(repo, function (value, key) {
if (value.path == path) {
$scope.repoRoot = value;
} else {
if (
$scope.repoRoot == null &&
angular.isDefined(value.repoObjects)
) {
getRepoRoot(value.repoObjects, path);
} else {
}
}
});
}
function convertRepoObject(repo) {
if (angular.isArray(repo)) {
angular.forEach(repo, function (value, key) {
convertRepoObject(value);
});
} else {
if (angular.isDefined(repo.name)) {
if (repo.name.indexOf(".") >= 0) {
repo.label = repo.name.substr(0, repo.name.lastIndexOf("."));
} else {
repo.label = repo.name;
}
//delete repo.name;
}
if (angular.isDefined(repo.repoObjects)) {
repo.children = [];
repo.children = repo.repoObjects;
delete repo.repoObjects;
convertRepoObject(repo.children);
}
}
}
function parseDateParameter(parameters) {
var result = undefined;
if (angular.isArray(parameters)) {
// angular.forEach(parmeters,function(param){
// param.
// })
} else {
result = {};
for (var k in parameters) {
if (k.indexOf("Date") > 0) {
if (angular.isString(parameters[k])) {
result[k] = moment(parameters[k], "YYYYMMDD").format(
"YYYY-MM-DD"
);
//result[k] = ''+parameters[k]+'';//= moment(parameters[k], "YYYYMMDD").toDate();
}
}
}
}
return result;
}
function ConvertDateParameter(parameters) {
var result = undefined;
if (angular.isArray(parameters)) {
//
} else {
result = {};
for (var k in parameters) {
if (k.indexOf("Date") > 0) {
if (angular.isDate(parameters[k])) {
result[k] = moment(parameters[k]).format("YYYYMMDD");
} else if (angular.isString(parameters[k])) {
result[k] = parameters[k];
}
}
}
}
return result;
}
var incidentchart =
"/homes/home:admin/ITSM报表/事件报表/日统计报表.saiku";
var queryUUID;
function genUUID() {
var uuid = "xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx"
.replace(/[xy]/g, function (c) {
var r = (Math.random() * 16) | 0,
v = c == "x" ? r : (r & 0x3) | 0x8;
return v.toString(16);
})
.toUpperCase();
return uuid;
}
queryUUID = genUUID();
var pathincidenttimekey = [];
var incidenttime = {
starttimes: moment(new Date().getTime() - 86400000 * 14).format(
"YYYYMMDD"
),
endtimes: moment(new Date()).format("YYYYMMDD"),
};
var thisday = moment(new Date().getTime() + 86400000).format(
"YYYYMMDD"
);
var thisdaymine = Date.parse(
thisday.substr(4, 2) +
"/" +
thisday.substr(6, 2) +
"/" +
thisday.substr(0, 4)
);
var averages = [
[thisdaymine - 86400000 * 14, 0],
[thisdaymine - 86400000 * 13, 0],
[thisdaymine - 86400000 * 12, 0],
[thisdaymine - 86400000 * 11, 0],
[thisdaymine - 86400000 * 10, 0],
[thisdaymine - 86400000 * 9, 0],
[thisdaymine - 86400000 * 8, 0],
[thisdaymine - 86400000 * 7, 0],
[thisdaymine - 86400000 * 6, 0],
[thisdaymine - 86400000 * 5, 0],
[thisdaymine - 86400000 * 4, 0],
[thisdaymine - 86400000 * 3, 0],
[thisdaymine - 86400000 * 2, 0],
[thisdaymine - 86400000 * 1, 0],
[thisdaymine, 0],
];
var getreportdata = function (incidenttime, path) {
api_report.getMdx(path, queryUUID).then(function (response) {
var mdxquery = response;
workspace.query = mdxquery;
workspace.query.parameters.paramDateFrom = incidenttime.starttimes;
workspace.query.parameters.paramDateTo = incidenttime.endtimes;
$scope.parameters = parseDateParameter(workspace.query.parameters);
weekuser(mdxquery);
});
};
getreportdata(incidenttime, incidentchart);
var weekuser = function (mdxquery) {
var key = [];
api_report.execute(mdxquery).then(function (data) {
$scope.rheaders = [];
$scope.rRows = [];
var reportData = data;
if (reportData.cellset == null || reportData.cellset.length == 0) {
$scope.shows = true;
$scope.empty = "数据为空!";
} else {
angular.forEach(reportData.cellset, function (item, i) {
angular.forEach(averages, function (index, j) {
// angular.forEach(averages, function(item, index) {
if (item.length > 1 && i > 0 && item[1].value != "") {
if (
index[0] ==
Date.parse(
item[0].value.substr(4, 2) +
"/" +
item[0].value.substr(6, 2) +
"/" +
item[0].value.substr(0, 4)
) +
86400000
) {
index[1] = Number(item[1].value);
}
// key.push([Date.parse(item[0].value.substr(4, 2) + "/" + item[0].value.substr(6, 2) + "/" + item[0].value.substr(0, 4)), Number(item[1].value)]);
}
// })
});
});
incidentchartfun(averages);
}
});
};
var incidentchartfun = function (incidentchartkey) {
// $scope.isMaskincident = false;
Highcharts.chart("incidentchart", {
title: {
text: "事件近15天趋势图",
},
xAxis: {
type: "datetime",
labels: {
align: "left",
step: 1,
},
},
yAxis: {
title: {
text: null,
},
},
tooltip: {
crosshairs: true,
shared: true,
valueSuffix: "条",
},
legend: {},
series: [
{
name: "生成事件",
data: incidentchartkey,
zIndex: 1,
marker: {
fillColor: "white",
lineWidth: 2,
lineColor: Highcharts.getOptions().colors[0],
},
},
],
});
};
$scope.data = {
labels: [
"1号",
"2号",
"3号",
"4号",
"5号",
"6号",
"7号",
"8号",
"9号",
"10号",
"11号",
"12号",
"13号",
"14号",
"15号",
],
datasets: [
{
label: "新增事件数量",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [
65, 59, 80, 81, 56, 55, 40, 84, 64, 120, 132, 87, 78, 23, 34,
],
},
{
label: "已解决事件数量",
fillColor: "rgba(151,187,205,0.2)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(151,187,205,1)",
data: [
48, 48, 78, 80, 86, 27, 90, 60, 60, 120, 60, 80, 83, 44, 20,
],
},
],
};
$scope.removes = function () {
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.$parent.$parent.$parent.$parent.resonseform.fields.length;
i++
) {
if (
$scope.fields.type ==
$scope.$parent.$parent.$parent.$parent.resonseform.fields[i]
.type
) {
// $scope.resonseform.fields.push($scope.responseData.fields[i]);
$scope.$parent.$parent.$parent.$parent.resonseform.fields.splice(
i,
1
);
break;
}
}
var vmForm = $scope.$parent.$parent.$parent.$parent.resonseform;
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
$scope.$parent.$parent.$parent.$parent.decodeVMForm(vmForm);
$scope.$parent.$parent.$parent.$parent.vm.fields = vmForm.fields;
}
});
};
var addDatas = 0;
var resolve = 0;
for (var i = 0; i < $scope.data.datasets[0].data.length; i++) {
addDatas = addDatas + $scope.data.datasets[0].data[i];
}
for (var i = 0; i < $scope.data.datasets[1].data.length; i++) {
resolve = resolve + $scope.data.datasets[1].data[i];
}
$scope.resolution = ((resolve / addDatas) * 100).toFixed(2);
$scope.opt = {
maintainAspectRatio: false,
// Sets the chart to be responsive
responsive: true,
///Boolean - Whether grid lines are shown across the chart
scaleShowGridLines: true,
//String - Colour of the grid lines
scaleGridLineColor: "rgba(0,0,0,.05)",
//Number - Width of the grid lines
scaleGridLineWidth: 1,
//Boolean - Whether the line is curved between points
bezierCurve: false,
//Number - Tension of the bezier curve between points
bezierCurveTension: 0.4,
//Boolean - Whether to show a dot for each point
pointDot: true,
//Number - Radius of each point dot in pixels
pointDotRadius: 4,
//Number - Pixel width of point dot stroke
pointDotStrokeWidth: 1,
//Number - amount extra to add to the radius to cater for hit detection outside the drawn point
pointHitDetectionRadius: 20,
//Boolean - Whether to show a stroke for datasets
datasetStroke: true,
//Number - Pixel width of dataset stroke
datasetStrokeWidth: 2,
//Boolean - Whether to fill the dataset with a colour
datasetFill: true,
// Function - on animation progress
onAnimationProgress: function () { },
// Function - on animation complete
onAnimationComplete: function () { },
//String - A legend template
legendTemplate:
'<% for (var i=0; i <%if(datasets[i].label){%><%=datasets[i].label%><%}%> <%}%> ',
};
angular.extend($scope.options, $scope.opt);
$scope.datamonth = {
labels: ["一月", "二月", "三月", "四月", "五月", "六月"],
datasets: [
{
label: "新增事件数量",
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 80, 81, 56, 55],
},
{
label: "已解决事件数量",
fillColor: "rgba(151,187,205,0.5)",
strokeColor: "rgba(151,187,205,0.8)",
highlightFill: "rgba(151,187,205,0.75)",
highlightStroke: "rgba(151,187,205,1)",
data: [28, 48, 40, 19, 86, 27],
},
],
};
// Chart.js Options
$scope.taption = {
maintainAspectRatio: false,
// Sets the chart to be responsive
responsive: true,
//Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
scaleBeginAtZero: true,
//Boolean - Whether grid lines are shown across the chart
scaleShowGridLines: true,
//String - Colour of the grid lines
scaleGridLineColor: "rgba(0,0,0,.05)",
//Number - Width of the grid lines
scaleGridLineWidth: 1,
//Boolean - If there is a stroke on each bar
barShowStroke: true,
//Number - Pixel width of the bar stroke
barStrokeWidth: 2,
//Number - Spacing between each of the X value sets
barValueSpacing: 5,
//Number - Spacing between data sets within X values
barDatasetSpacing: 1,
//String - A legend template
legendTemplate:
'<% for (var i=0; i <%if(datasets[i].label){%><%=datasets[i].label%><%}%> <%}%> ',
};
},
],
});
//排版日历
formlyConfigProvider.setType({
name: "ui-dashcalendar",
templateUrl: "assets/views/customform/tpl/ui-dashcalendar.html",
defaultOptions: function (options) {
return {
templateOptions: {
// relationAction: function() {
// options.hideExpression = true
// }
},
};
},
controller: [
"$rootScope",
"$scope",
"$modal",
"$aside",
"calendarConfig",
"moment",
"SweetAlert",
"Restangular",
"api_bpm_schedule",
"api_user_data",
"$state",
function (
$rootScope,
$scope,
$modal,
$aside,
calendarConfig,
moment,
SweetAlert,
Restangular,
api_bpm_schedule,
api_user_data,
$state
) {
var loginUser = $rootScope.user;
calendarConfig.dateFormatter = "moment";
calendarConfig.i18nStrings.eventsLabel = "排班描述";
calendarConfig.i18nStrings.timeLabel = "时间";
calendarConfig.i18nStrings.weekNumber = "{week}周";
calendarConfig.allDateFormats = {
angular: {
date: {
hour: "ha",
day: "d MMM",
month: "MMMM",
weekDay: "EEEE",
time: "HH:mm",
datetime: "MMM d, h:mm a",
},
title: {
day: "yyyy MMMM EEEE d",
week: "{year}年第{week}周",
month: "yyyy MMMM",
year: "yyyy",
},
},
moment: {
date: {
hour: "ha",
day: "MMMDD日",
month: "MMMM",
weekDay: "dddd",
time: "HH:mm",
datetime: "MMM D, h:mm a",
},
title: {
day: "YYYY年MMMMDD日, dddd ",
week: "{year}年第{week}周",
month: "YYYY年MMMM",
year: "YYYY",
},
},
};
moment.locale("zh_cn", {
months:
"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split(
"_"
),
monthsShort:
"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split(
"_"
),
weekdaysShort: "周日_周一_周二_周三_周四_周五_周六".split("_"),
weekdaysMin: "日_一_二_三_四_五_六".split("_"),
longDateFormat: {
LT: "Ah点mm分",
LTS: "Ah点m分s秒",
L: "YYYY-MM-DD",
LL: "YYYY年MMMD日",
LLL: "YYYY年MMMD日Ah点mm分",
LLLL: "YYYY年MMMD日ddddAh点mm分",
l: "YYYY-MM-DD",
ll: "YYYY年MMMD日",
lll: "YYYY年MMMD日Ah点mm分",
llll: "YYYY年MMMD日ddddAh点mm分",
},
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (
meridiem === "凌晨" ||
meridiem === "早上" ||
meridiem === "上午"
) {
return hour;
} else if (meridiem === "下午" || meridiem === "晚上") {
return hour + 12;
} else {
// '中午'
return hour >= 11 ? hour : hour + 12;
}
},
meridiem: function (hour, minute, isLower) {
var hm = hour * 100 + minute;
if (hm < 600) {
return "凌晨";
} else if (hm < 900) {
return "早上";
} else if (hm < 1130) {
return "上午";
} else if (hm < 1230) {
return "中午";
} else if (hm < 1800) {
return "下午";
} else {
return "晚上";
}
},
calendar: {
sameDay: function () {
return this.minutes() === 0 ? "[今天]Ah[点整]" : "[今天]LT";
},
nextDay: function () {
return this.minutes() === 0 ? "[明天]Ah[点整]" : "[明天]LT";
},
lastDay: function () {
return this.minutes() === 0 ? "[昨天]Ah[点整]" : "[昨天]LT";
},
nextWeek: function () {
var startOfWeek, prefix;
startOfWeek = moment().startOf("week");
prefix =
this.unix() - startOfWeek.unix() >= 7 * 24 * 3600
? "[下]"
: "[本]";
return this.minutes() === 0
? prefix + "dddAh点整"
: prefix + "dddAh点mm";
},
lastWeek: function () {
var startOfWeek, prefix;
startOfWeek = moment().startOf("week");
prefix = this.unix() < startOfWeek.unix() ? "[上]" : "[本]";
return this.minutes() === 0
? prefix + "dddAh点整"
: prefix + "dddAh点mm";
},
sameElse: "LL",
},
ordinalParse: /\d{1,2}(日|月|周)/,
ordinal: function (number, period) {
switch (period) {
case "d":
case "D":
case "DDD":
return number + "日";
case "M":
return number + "月";
case "w":
case "W":
return number + "周";
default:
return number;
}
},
relativeTime: {
future: "%s内",
past: "%s前",
s: "几秒",
m: "1 分钟",
mm: "%d 分钟",
h: "1 小时",
hh: "%d 小时",
d: "1 天",
dd: "%d 天",
M: "1 个月",
MM: "%d 个月",
y: "1 年",
yy: "%d 年",
},
week: {
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
dow: 1, // Monday is the first day of the week.
doy: 4, // The week that contains Jan 4th is the first week of the year.
},
});
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var filterData = {
userId: loginUser.id,
startTime: moment(new Date(y, m, 1, 0, 0)).format(
"YYYY-MM-DD HH:mm:ss"
),
endTime: moment(new Date(y, m + 1, 1, 0, 0)).format(
"YYYY-MM-DD HH:mm:ss"
),
};
var load = ($scope.load = function (filterData) {
api_bpm_schedule
.fetchSchedule(
filterData.userId,
filterData.startTime,
filterData.endTime
)
.then(function (response) {
if (response.status == 200) {
$scope.events = [];
var myData = response.list;
angular.forEach(myData, function (item) {
var eventTemp = {};
eventTemp.title = item.description;
eventTemp.type = item.scheduleClass.code;
eventTemp.startsAt = moment(
item["scheduleOrderDTO"].startTime
).toDate();
eventTemp.endsAtTime = moment(
item["scheduleOrderDTO"].endTime
).toDate();
eventTemp.startTime = item["scheduleOrderDTO"].startTime;
eventTemp.endTime = item["scheduleOrderDTO"].endTime;
//eventTemp.ends_at = moment(item.endTime).toDate();
eventTemp.id = item.id;
eventTemp.deletable = false;
eventTemp.user = item.user;
$scope.events.push(eventTemp);
});
}
});
});
// var load = $scope.load = function(filterData){
// api_bpm_schedule.fetchSchedule(filterData.userId, filterData.startTime, filterData.endTime).then(function(response){
// console.log("response="+JSON.stringify(response));
// if(response.status==200){
// $scope.events = [];
// console.log(response.list);
// var myData = response.list;
// angular.forEach(myData,function(item){
// var eventTemp = {};
// eventTemp.title = item.description;
// eventTemp.type = item.scheduleClass.code;
// eventTemp.startsAt = moment(item.startTime).toDate();
// eventTemp.endsAtTime = moment(item.endTime).toDate();
// eventTemp.startTime = item.startTime;
// eventTemp.endTime = item.endTime;
// //eventTemp.ends_at = moment(item.endTime).toDate();
// eventTemp.id = item.id;
// eventTemp.deletable = false;
// eventTemp.users = item.users;
// $scope.events.push(eventTemp);
// // console.log("eventTemp="+JSON.stringify(eventTemp));
// })
// }
// });
// }
$scope.scheduleClass = {};
var convertEvent = function (scheduleorder) {
var eventTemp = {};
eventTemp.title = scheduleorder.description;
eventTemp.type = scheduleorder.scheduleClass.code;
eventTemp.startsAt = moment(scheduleorder.startTime).toDate();
//eventTemp.ends_at = moment(scheduleorder.endTime).toDate();
eventTemp.id = scheduleorder.id;
eventTemp.user = scheduleorder.user;
eventTemp.deletable = false;
return eventTemp;
};
// var convertEvent = function(scheduleorder){
// var eventTemp = {};
// eventTemp.title = scheduleorder.description;
// eventTemp.type = scheduleorder.scheduleClass.code;
// eventTemp.starts_at = moment(scheduleorder.scheduleClass.startTime).toDate();
// eventTemp.ends_at = moment(scheduleorder.scheduleClass.endTime).toDate();
// eventTemp.id = scheduleorder.id;
// eventTemp.users = scheduleorder.users;
// eventTemp.deletable = false;
// return eventTemp;
// }
api_bpm_schedule.getScheduleClass().then(function (response) {
if (response.status == 200) {
var scheduleClassList = response.list;
angular.forEach(scheduleClassList, function (item) {
item.startsAt = moment(item.startTime).format("HH:mm:ss");
item.endsAt = moment(item.endTime).format("HH:mm:ss");
// console.log("item.startsAt="+JSON.stringify(item.startsAt))
// console.log("item.endsAt="+JSON.stringify(item.endsAt))
$scope.scheduleClass[item["code"]] = item;
});
}
});
$scope.events = [];
$scope.calendarView = "month";
//$scope.calendarDay = new Date();
$scope.calendarDate = moment().startOf("month").toDate();
$scope.timeLabel = "时间";
$scope.eventLabel = "描述";
function showModal(action, event) {
// console.log("action="+JSON.stringify(action))
var modalInstance = $aside.open({
templateUrl: "scheduleEvent.html",
placement: "right",
size: "sm",
backdrop: true,
controller: function (
$scope,
$modalInstance,
scheduleClass,
APIService,
MementFormat
) {
$scope.$modalInstance = $modalInstance;
$scope.action = action;
$scope.event = event;
$scope.scheduleClassic = scheduleClass;
$scope.$watch("event.type", function (newvalue, oldvalue) {
// if(oldvalue == newvalue) return;
// if(scheduleClass[newvalue]){
var sm = MementFormat(scheduleClass[newvalue].startTime);
var em = MementFormat(scheduleClass[newvalue].endTime);
console.log("sm=" + JSON.stringify(sm));
event.starts_at = MementFormat(event.startTime)
.startOf("day")
.add(sm.hour(), "hour")
.add(sm.minute(), "minute")
.add(sm.second(), "second")
.toDate();
console.log(
"event.starts_at=" + JSON.stringify(event.starts_at)
);
if (sm.hour() > em.hour()) {
event.ends_at = MementFormat(event.startTime)
.startOf("day")
.add(1, "day")
.add(em.hour(), "hour")
.add(em.minute(), "minute")
.add(em.second(), "second")
.toDate();
console.log(
"event.ends_at=" + JSON.stringify(event.starts_at)
);
} else {
event.ends_at = MementFormat(event.startTime)
.startOf("day")
.add(em.hour(), "hour")
.add(em.minute(), "minute")
.add(em.second(), "second")
.toDate();
console.log("event.ends_at=" + JSON.stringify(event.ends_at));
}
// }
});
// $scope.ok = function (event) {
// console.log("event="+JSON.stringify(event))
// event.action = action;
// $modalInstance.close(event);
// };
$scope.cancel = function (event) {
$modalInstance.dismiss();
};
var acUserSelect = ($scope.refreshUser = function (key) {
//for test
// $scope.users=[{"id":1,"phone":"13971293737","orgId":1,"name":"李静","role":[{"id":1,"rolecode":"admin","role":"主行管理员","flag":0}],"gender":"女","dept":{"id":3,"dept":"运行监控科"},"flag":0,"email":"","account":"005292","nickname":"lijing","group":[{"id":3,"groupName":"运行监控科"}]},{"id":2,"phone":"15807199490","orgId":1,"name":"李进","role":[{"id":1,"rolecode":"admin","role":"主行管理员","flag":0},{"id":7,"rolecode":"change manager","role":"变更流程经理","flag":1},{"id":8,"rolecode":"change coordinator","role":"协调员","flag":0},{"id":9,"rolecode":"configure manager","role":"配置管理员","flag":0},{"id":10,"rolecode":"release manager","role":"发布经理","flag":0}],"gender":"男","dept":{"id":3,"dept":"运行监控科"},"flag":0,"email":"","account":"005298","nickname":"lijin","group":[{"id":3,"groupName":"运行监控科"}]},{"id":3,"phone":"13507195958","orgId":1,"name":"杨代华","role":[{"id":2,"rolecode":"user","role":"主行员工","flag":1}],"gender":"男","dept":{"id":9,"dept":"管理层"},"flag":0,"email":"","account":"005241","group":[{"id":9,"groupName":"管理层"}]},{"id":4,"phone":"18717107255","orgId":1,"name":"朱红艳","role":[{"id":2,"rolecode":"user","role":"主行员工","flag":1}],"gender":"女","dept":{"id":9,"dept":"管理层"},"flag":0,"email":"","account":"005242","group":[{"id":9,"groupName":"管理层"}]},{"id":5,"phone":"13667282828","orgId":1,"name":"李喆","role":[{"id":2,"rolecode":"user","role":"主行员工","flag":1}],"gender":"男","dept":{"id":9,"dept":"管理层"},"flag":0,"email":"","account":"005243","group":[{"id":9,"groupName":"管理层"}]}];
// return;
var data = {
idx: "0",
sum: "5",
user: {
engineer: 1,
}
};
if (key) {
data.user.name = key;
}
APIService.fetchDataList("user", data).then(function (
response
) {
if (response) {
if ((response.status = 200)) {
$scope.users = response.list;
console.log($scope.users);
}
}
});
});
if (angular.isDefined(event.users) && event.users.length > 0) {
}
$scope.users = [event.user];
acUserSelect();
},
resolve: {
scheduleClass: function () {
return $scope.scheduleClass;
},
APIService: function () {
return api_user_data;
},
MementFormat: function () {
return moment;
},
},
});
modalInstance.result.then(function (selectedEvent) {
if (selectedEvent.action == "Clicked") {
// var data = {
// "scheduleorder":{
// "id":selectedEvent.id,
// "description":selectedEvent.title,
// "startTime":moment(selectedEvent.starts_at).format('YYYY-MM-DD HH:mm:ss'),
// "endTime":moment(selectedEvent.ends_at).format('YYYY-MM-DD HH:mm:ss'),
// "users":selectedEvent.users,
// "scheduleClass":{"id":$scope.scheduleClass[selectedEvent.type].id}
// }
// };
// api_bpm_schedule.update(data).then(function(response){
// if(response.status==200){
// SweetAlert.swal({
// title: "操作成功!",
// text: "排班更新成功!",
// type: "succes"
// });
// angular.forEach($scope.events,function(item){
// if(item.id==selectedEvent.id){
// item = selectedEvent;
// }
// })
// }else{
// SweetAlert.swal({
// title: "操作失败",
// text: "排班更新失败,请稍后重试!",
// type: "error"
// })
// }
// })
} else {
//
}
});
}
$scope.moment = function (string) {
return moment(string);
};
$scope.eventClicked = function (event) {
// console.log("event="+JSON.stringify(event))
showModal("Clicked", event);
};
$scope.eventEdited = function (event) {
showModal("Edited", event);
};
var updateView = function (newvalue, oldvalue) {
if (oldvalue == newvalue) return;
var timeStart, timeEnd, timeStartSpan, timeEndSpan;
if ($scope.calendarView == "year") {
} else if ($scope.calendarView == "month") {
timeStart = moment(newvalue).startOf("month");
timeEnd = moment(newvalue).endOf("month");
} else if ($scope.calendarView == "week") {
timeStart = moment(newvalue).startOf("week");
timeEnd = moment(newvalue).endOf("week");
} else if ($scope.calendarView == "Day") {
timeStart = moment(newvalue).startOf("day");
timeEnd = moment(newvalue).endOf("day");
}
timeStartSpan = timeStart.format("YYYY-MM-DD HH:mm:ss");
timeEndSpan = timeEnd.format("YYYY-MM-DD HH:mm:ss");
filterData["startTime"] = timeStartSpan;
filterData["endTime"] = timeEndSpan;
load(filterData);
};
$scope.$watch("calendarDate", updateView);
$scope.next = function () {
$scope.calendarControl.next();
};
$scope.prev = function () {
$scope.calendarControl.prev();
};
$scope.setCalendarToToday = function () {
$scope.calendarDay = new Date();
};
$scope.toggle = function ($event, field, event) {
$event.preventDefault();
$event.stopPropagation();
event[field] = !event[field];
};
$scope.load(filterData);
$scope.more = function () {
$state.go("app.scheduling.myscheduling", {});
};
$scope.removes = function () {
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.$parent.$parent.$parent.$parent.resonseform.fields.length;
i++
) {
if (
$scope.fields.type ==
$scope.$parent.$parent.$parent.$parent.resonseform.fields[i]
.type
) {
// $scope.resonseform.fields.push($scope.responseData.fields[i]);
$scope.$parent.$parent.$parent.$parent.resonseform.fields.splice(
i,
1
);
break;
}
}
var vmForm = $scope.$parent.$parent.$parent.$parent.resonseform;
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
$scope.$parent.$parent.$parent.$parent.decodeVMForm(vmForm);
$scope.$parent.$parent.$parent.$parent.vm.fields = vmForm.fields;
}
});
};
},
],
});
//空格组件
formlyConfigProvider.setType({
name: "ui-black",
/*extends: 'input',*/
template: '
',
});
//请求人最近事件
formlyConfigProvider.setType({
name: "ui-recentIncident",
templateUrl: "assets/views/customform/tpl/ui-recentincident.html",
controller: [
"$scope",
"$modal",
"api_solution",
function ($scope, $modal, api_solution) {
var filterData = {
incident: {
requester: {
id: "",
},
},
idx: 0,
sum: 3,
};
setInterval(function () {
if (
filterData.incident.requester.id == "" ||
filterData.incident.requester.id != $scope.model.requester.id
) {
var requester = $scope.model.requester;
if (requester != null && angular.isDefined(requester.id)) {
filterData.incident.requester.id = $scope.model.requester.id;
$scope.options.templateOptions
.getWorkernumber(
$scope.options.templateOptions.ApiService,
filterData
)
.then(function (result) {
var modelData =
$scope.options.templateOptions.Restangular.stripRestangular(
result
);
if (modelData.status == 200) {
$scope.lastrequst = modelData.list;
}
});
requester = null;
} else {
}
} else {
}
}, 1000);
$scope.detail = function (data) {
var modalInstance = $modal.open({
templateUrl: "assets/views/incident/tpl/detailincident.html",
controller: function ($scope, $modalInstance) {
$scope.entity = {};
$scope.entity = data;
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "lg",
});
};
},
],
});
//参数列表
formlyConfigProvider.setType({
name: "ui-listinput",
templateUrl: "assets/views/customform/tpl/ui-listinput.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: ["$scope", function ($scope) { }],
});
//时间段控件(分)
formlyConfigProvider.setType({
name: "ui-timeslot",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-responsetime.html",
controller: ["$scope", function ($scope) { }],
});
//优先级级联-逾期时间
formlyConfigProvider.setType({
name: "ui-overtime",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-overtime.html",
controller: [
"$scope",
"api_bpm_domain",
function ($scope, api_bpm_domain) {
var filteData = {};
var datas = {};
setInterval(function () {
if (
$scope.model.priority &&
$scope.model.priority.id != null &&
filteData &&
datas != $scope.model.priority.id
) {
filteData = "L" + $scope.model.priority.id;
datas = $scope.model.priority.id;
// console.log($scope.options.templateOptions)
api_bpm_domain.expectedTime(filteData).then(function (requester) {
// var overtime=requester.date;
if (requester.state == 200) {
// if($scope.options.key=="date"){
$scope.model[$scope.options.key] = requester.date;
// }
}
});
}
}, 1000);
},
],
});
formlyConfigProvider.setType({
name: "ui-responsetime",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-responsetime.html",
controller: [
"$scope",
"api_bpm_domain",
function ($scope, api_bpm_domain) {
var filteData = {};
var datas = {};
setInterval(function () {
if (
$scope.model.priority &&
$scope.model.priority.id != null &&
filteData &&
datas != $scope.model.priority.id
) {
filteData = "L" + $scope.model.priority.id;
datas = $scope.model.priority.id;
// console.log($scope.options.templateOptions)
api_bpm_domain.expectedTime(filteData).then(function (requester) {
// var overtime=requester.date;
if (requester.state == 200) {
var keyName = {};
// $scope.model.overdueTime = requester.date;
if ($scope.options.key == "expectIntroTime") {
keyName = "resolveTime";
} else if ($scope.options.key == "expectResponseTime") {
keyName = "responseTime";
}
$scope.model[$scope.options.key] =
requester.serviceLevelAgreement[keyName];
// }
console.log($scope.$parent.$parent.$parent.model);
}
if (requester.date1) {
$scope.$parent.$parent.$parent.model.incident.overdueTime =
requester.date;
$scope.$parent.$parent.$parent.model.incident.overdueResponseDate =
requester.date1;
$scope.$parent.$parent.$parent.model.incident.expectIntroTime =
requester.serviceLevelAgreement.resolveTime;
$scope.$parent.$parent.$parent.model.incident.expectResponseTime =
requester.serviceLevelAgreement.responseTime;
}
});
}
}, 1000);
},
],
});
//知识库按钮组件
formlyConfigProvider.setType({
name: "ui-discasecade",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-discasecade.html",
defaultOptions: function (options) {
return {
templateOptions: {
relationAction: function (fields, modelscope, item) { },
},
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
// return value = "true";
},
},
},
};
},
controller: [
"$scope",
"$rootScope",
"$modal",
"SweetAlert",
"api_bpm_data",
"api_solution",
"$aside",
"api_zsk",
"api_bpm_domain",
function (
$scope,
$rootScope,
$modal,
SweetAlert,
api_bpm_data,
api_solution,
$aside,
api_zsk,
api_bpm_domain
) {
// $scope.options.initialValue = $scope.model[$scope.options.key];
$scope.searchField = $scope.options.model[$scope.options.key];
$scope.searchData = "";
$scope.onChangeadd = function (searchData) {
$scope.searchKey = searchData.account;
// $scope.searchDataadd = searchData;
var requesdata = angular.copy(searchData);
$scope.requester = requesdata;
};
$scope.refreshUseradd = function (searchKey) {
//主题搜索
$scope.searchData = searchKey;
reashdata($scope.searchData);
};
$scope.getMydata = function (x) {
$scope.model[$scope.options.key] = JSON.parse(x).title;
$scope.searchField = $scope.model[$scope.options.key];
};
$scope.getMydataone = function (x) {
$scope.model[$scope.options.key] = x;
$scope.searchField = $scope.model[$scope.options.key];
};
$scope.fildata = {
idx: 0,
sum: 10,
// 'incident': { 'tilte': item }
};
function reashdata(item) {
if (item && item != "") {
angular.extend($scope.fildata, {
incident: {
title: item,
},
});
} else {
delete $scope.fildata.incident;
}
api_bpm_data
.fetchDataList("incident", $scope.fildata)
.then(function (response) {
if (response) {
if ((response.status = 200)) {
var myData = response;
$scope.myData = myData.list;
}
}
});
}
function delHtmlTag(str) {
return str.replace(/<[^>]+>/g, "");
}
// reashdata();
var changedata = {};
setInterval(function () {
if (
$scope.model.category != null &&
$scope.model.category.id != changedata.id &&
$scope.model.titles != $scope.model.category
) {
$scope.searchData = {};
changedata = angular.copy($scope.model.category);
if ($scope.options.key == "title") {
var filterData = {
idx: 0,
sum: 1000,
};
api_bpm_data
.fetchDataList("incidentcategory", filterData)
.then(function (data) {
var datalist = data.list;
angular.forEach(datalist, function (item) {
if (item.id == $scope.model.category.id) {
$scope.model[$scope.options.key] = item.category;
$scope.searchField =
$scope.options.model[$scope.options.key];
$scope.titles = item.category;
titles = $scope.model.category;
}
});
});
}
}
}, 1000);
$scope.open = function (key, options, fildata, $event, model) {
if (key && key.length > 1) {
api_zsk
.solutionData(
{
solution: {
searchWord: key,
},
idx: "0",
sum: "1000",
},
"solution"
)
.then(function (response) {
if (response && response.list.length > 0) {
$scope.dlideboxslide = true;
angular.forEach(response, function (item) {
console.log(response);
// api_solution.fetchDataList('solutionQuote', { "solutionQuote": { "solutionId": item.id }, "idx": "0", "sum": "1000" }).then(function (data) {
// if (response.status == 200) {
// var quote = { 'totalNum': response.totalNum }
// item = angular.extend(item, quote)
// }
// })
$scope.searchData = response.list;
console.log($scope.searchData);
});
$scope.changes = false;
// $('#navigation .pages').stop().animate({ 'marginLeft': '-500px' }, 1000);
// $scope.closepages = function(e) {
// $('#navigation .pages').stop().animate({ 'marginLeft': '500px' }, 1000);
// event.preventDefault();
// };
$scope.shows = false;
$scope.tempData = {};
$scope.showpage = function (item) {
item.content = delHtmlTag(item.content);
$scope.shows = true;
$scope.tempData = item;
if (item.content != null) {
$scope.tempData.content = $scope.tempData.content
.replace("", "")
.replace("
", "");
}
$scope.knowledgedata = item;
$scope.pageid = item.id;
$scope.changes = !$scope.changes;
api_bpm_domain
.listAttachments(item.id)
// api_solution.fetchDataList('file', {
// "file": {
// "solutionId": item.id
// },
// "idx": "0",
// "sum": "1000"
// })
.then(function (data) {
if (data) {
$scope.attachments = data.list;
$scope.view = function (attachmentId) {
for (
var i = 0;
i < $scope.attachments.length;
i++
) {
if ($scope.attachments[i].id == attachmentId) {
window.open($scope.attachments[i].previewUrl);
}
}
};
$scope.download = function (contentId, filename) {
api_solution
.getSolutionDowpath(contentId)
.then(function (response) {
var file = new Blob([response], {
type: "application/octet-stream",
});
// var filename = filename;
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
});
};
}
});
};
$scope.related = function (item) {
if (item.content != null) {
item.content = item.content
.replace("", "")
.replace("
", "");
}
// fildata.$parent.$parent.$parent.model.directClose = 0;
options.model.handleDescription = item.content;
var data = {
solutionQuote: {
solutionId: item.id,
incidentsign: options.model.incidentsign,
},
};
api_zsk.solutionQuote(item.id).then(function (response) {
if (response.status == 200) {
SweetAlert.swal("引用成功", "知识库已引用", "success");
fildata.$parent.$parent.$parent.$parent.model.start_code =
"close";
fildata.$parent.$parent.$parent.$parent.model.directClose = 0;
} else {
SweetAlert.swal("引用失败", "知识库未引用", "error");
}
});
};
$scope.close = function () {
$scope.changes = !$scope.changes;
event.preventDefault();
};
}
});
}
};
},
],
});
//侧滑选择重复事件
formlyConfigProvider.setType({
name: "ui-repeatIncidentbtn",
templateUrl: "assets/views/customform/tpl/ui-repeatIncidentbtn.html",
defaultOptions: function (options) {
return {
templateOptions: {
relationAction: function (fields, modelscope, item) { },
},
validators: {
required: {
expression: function (viewValue, modelValue) {
// var value = modelValue || viewValue;
},
},
},
};
},
controller: [
"$scope",
"$rootScope",
"$modal",
"SweetAlert",
"api_bpm_data",
"api_solution",
"$aside",
"api_zsk",
"api_bpm_domain",
"api_webservice1",
function (
$scope,
$rootScope,
$modal,
SweetAlert,
api_bpm_data,
api_solution,
$aside,
api_zsk,
api_bpm_domain,
api_webservice1
) {
console.log($scope);
$scope.selection = {
id: "",
};
//认证计费数据获取
$scope.sumInfo = {};
function getSumInfo() {
$scope.isHk = $rootScope.isHk;
if($rootScope.isHk){
//用户信息
api_webservice1.fetchDataList("queryUser", { "userId": $scope.model.incident.account }).then(function(response) {
// if (response.status == 200) {
if (response && response.data) {
angular.extend($scope.sumInfo, response.data[0]);
// $scope.sumInfo = response.data[0];
$scope.sumInfo.autologicDestroyTime = moment(response.data[0].autologicDestroyTime).format('YYYY-MM-DD');
$scope.sumInfo.periodStartTime = moment(response.data[0].periodStartTime).format('YYYY-MM-DD');
$scope.sumInfo.nextBillingTime = moment(response.data[0].nextBillingTime).format('YYYY-MM-DD');
} else if (response.err) {
SweetAlert.swal("系统错误!", "用户信息未取到,请刷新重试", "error");
}
// }
})
//上网明细
api_webservice1.fetchDataList("queryOnlineDetail", { "userId": $scope.model.incident.account, "limit": "10", "fromLoginTime": moment(new Date().getTime() - 86400000 * 6).format('YYYY-MM-DD HH:mm:ss'), "toLogoutTime": moment(new Date().getTime()).format('YYYY-MM-DD HH:mm:ss') }).then(function(response) {
// if (response.status == 200) {
if (response && response.data) {
angular.forEach(response.data, function(item, index) {
if (item.logoutTime) {
response.data[index].logoutTime = moment(item.logoutTime).format('YYYY-MM-DD HH:mm:ss');
}
if (item.loginTime) {
response.data[index].loginTime = moment(item.loginTime).format('YYYY-MM-DD HH:mm:ss');
}
})
$scope.logininform_sumInfo = response.data;
} else if (response.err) {
SweetAlert.swal("上网明细未取到", "该用户暂无上网明细", "error");
}
})
//黑名单
// $scope.sumInfo.blacklist = "否"
api_webservice1.fetchDataList("queryInhibit", { "userId": $scope.model.incident.account }).then(function(response) {
// if (response.status == 200) {
// $scope.loginsumInfo = response.data;
if (response) {
if (response.data || response.data != null) {
$scope.sumInfo.blacklist = "是"
} else {
if (response.err) {
// SweetAlert.swal("系统错误!", "黑名单未取到,请刷新重试", "error");
} else {
$scope.sumInfo.blacklist = "否"
}
}
}
// }
})
}else{
// api_bpm_data
// .sumInfo($scope.model.incident.account)
// .then(function (data) {
// console.log(data);
// if (data) {
// $scope.sumInfo = data.data || {};
// }
// });
// 取消sum
$scope.sumInfo = {};
}
}
getSumInfo();
// 收起重复事件侧滑框
function reashdata(item) {
var fildata = {
idx: 0,
incident: {
department: {
id: $scope.model.incident.department.id,
},
},
sum: 3,
};
api_bpm_data.fetchDataList("incident", fildata).then(function (data) {
console.log(data);
if (data) {
$scope.repeatData = data.list;
}
});
}
reashdata();
// 确认选中的重复事件
$scope.repeatIncidentOk = function () {
if ($scope.selection.id) {
$scope.model.incident.repeat = $scope.selection;
$scope.model.isRepeat = true; //隐藏处理信息
console.log($scope.model);
}
angular.element("#repeatIncident").removeClass("active");
};
// 取消选中的重复事件
$scope.repeatIncidentCancle = function () {
angular.element("#repeatIncident").removeClass("active");
return;
};
},
],
});
//侧滑选择知识库查询
formlyConfigProvider.setType({
name: "ui-knowledgebtn",
templateUrl: "assets/views/customform/tpl/ui-knowledgebtn.html",
defaultOptions: function (options) {
return {
templateOptions: {
relationAction: function (fields, modelscope, item) { },
},
validators: {
required: {
expression: function (viewValue, modelValue) {
// var value = modelValue || viewValue;
},
},
},
};
},
controller: [
"$scope",
"$rootScope",
"$modal",
"SweetAlert",
"api_bpm_data",
"api_solution",
"$aside",
"api_zsk",
"api_bpm_domain",
"api_wechatfile",
"up_down_file",
function (
$scope,
$rootScope,
$modal,
SweetAlert,
api_bpm_data,
api_solution,
$aside,
api_zsk,
api_bpm_domain,
api_wechatfile,
up_down_file
) {
$scope.keypressModel = function (e, key) {
if (e.keyCode === 13) {
$scope.openModel(key);
}
};
// 引用知识库点击
$scope.searchKeyWord = "";
$scope.openModel = function (key) {
// alert(1)//重点
$scope.searchKeyWord = key;
if (key) {
api_zsk
.solutionData(
{
solution: {
threeSearch: key,
status: { id: 72 }, //已发布
selectType: "keySearch",
},
idx: "0",
sum: "1000",
},
"solution"
)
.then(function (response) {
$scope.searchData = response.list;
});
}
};
$scope.openModel($scope.model.incident.description);
// 展开/收起
$scope.showId = "";
$scope.ifshow = false;
$scope.showAll = function (id) {
$scope.attachments = [];
if ($scope.showId == id) {
$scope.ifshow = !$scope.ifshow;
} else {
$scope.ifshow = true;
}
$scope.showId = id;
// 获取附件
api_wechatfile
.listAttachments("knowledge", $scope.showId)
.then(function (data) {
$scope.attachments = data.data;
$scope.download = function (token, filename) {
var downUrl = up_down_file
.downloadAttachment("common/common/downloadAttachment", token)
.getRequestedUrl();
// window.open(downUrl);
var a = document.createElement("a");
a.href = downUrl;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
};
});
};
// 引用
$scope.related = function (item) {
console.log(item, "引用名");
if (item.content) {
item.content = item.content
.replace(//g, "")
.replace(/<\/p>/g, "")
.replace(/ /g, "");
}
$scope.model.incident.handleDescription = item.content;
$scope.model.incident.title = $scope.model.incident.description =
item.title;
$scope.model.incident.category = item.category;
if (item.category) {
$scope.model.incident.priority.id = item.category.priority.id;
item.category.label = item.category.category;
}
var categoryId = item.category ? item.category.id : "";
// 引用知识库故障现象后,修改故障现象选中状态,故障现象列表重载
function getres(nodes) {
if (!nodes || nodes.length == 0) {
return;
}
nodes.forEach((e) => {
e.selected = false;
if (e.id == categoryId) {
e.selected = true;
return false;
}
getres(e.children);
});
}
var categorys = [];
$scope.fields.forEach((e, i) => {
if (e.key == "category") {
categorys = e.templateOptions.options;
if (categorys.length) {
getres(categorys);
$scope.fields[i].templateOptions.options = categorys;
$scope.$root.refreshSelectedItems();
}
return false;
}
});
// field.$parent.$parent.$parent.model.candidateGroups=item.category.group
$scope.model.candidateGroups = item.category
? item.category.group
: {};
// 携带关联优先级,事件工单信息的时间
if (
$scope.model &&
$scope.model.incident &&
item.category &&
item.category.priority &&
item.category.priority.id
) {
api_bpm_domain
.expectedTime("L" + (item.category.priority.id - 1559))
.then(function (res) {
$scope.model.incident.expectResponseTime =
$scope.$parent.$parent.$parent.model.incident.expectResponseTime =
res.serviceLevelAgreement.responseTime;
$scope.model.incident.expectIntroTime =
$scope.$parent.$parent.$parent.model.incident.expectIntroTime =
res.serviceLevelAgreement.resolveTime;
$scope.model.incident.overdueTime =
$scope.$parent.$parent.$parent.model.incident.overdueTime =
res.date;
});
}
api_zsk.solutionQuote(item.id).then(function (response) {
if (response.status == 200) {
$("#seachknowledge").removeClass("active");
SweetAlert.swal("引用成功", "知识库已引用", "success");
$scope.$parent.$parent.$parent.model.start_code = "close";
$scope.$parent.$parent.$parent.model.directClose = 0;
console.log($scope.model);
} else {
SweetAlert.swal("引用失败", "知识库未引用", "error");
}
});
};
},
],
});
//下拉输入组件
formlyConfigProvider.setType({
name: "ui-selectinput",
extends: "input",
templateUrl: "assets/views/customform/tpl/selectinput.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
linkage: function (modelName, data) { },
},
};
},
controller: [
"$scope",
"$rootScope",
"$modal",
"SweetAlert",
"api_bpm_data",
"api_solution",
"$aside",
function (
$scope,
$rootScope,
$modal,
SweetAlert,
api_bpm_data,
api_solution,
$aside
) {
$scope.searchData = "";
$scope.onChangeadd = function (searchData) {
// $scope.searchKey = searchData.account;
// var requesdata = angular.copy(searchData)
// $scope.requester = requesdata;
};
$scope.refreshUseradd = function (searchKey) {
//主题搜索
// $scope.searchData = searchKey;
// reashdata($scope.searchData);
};
$scope.getMydata = function (x) {
$scope.model[$scope.options.key] =
JSON.parse(x)[$scope.options.templateOptions.labelProp];
$scope.searchField = $scope.model[$scope.options.key];
};
$scope.getMydataone = function (x) {
$scope.model[$scope.options.key] = x;
$scope.searchField = $scope.model[$scope.options.key];
if (
$scope.model[$scope.options.key] &&
$scope.model[$scope.options.key] != ""
) {
$scope.hidden = false;
} else {
$scope.hidden = true;
}
};
function reashdata(item) {
$scope.myData = $scope.options.templateOptions.mydata;
}
reashdata();
if (angular.isFunction($scope.options.templateOptions.fetchItems)) {
$scope.options.templateOptions.fetchItems($scope);
}
},
],
});
//重构组件模板
//获取当前人
formlyConfigProvider.setType({
name: "ui-users",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-label.html",
defaultOptions: function (options) {
return {
templateOptions: {
translate: "",
refreshDelay: 0,
},
};
},
controller: [
"$scope",
function ($scope) {
// $scope.model[$scope.options.key]=$scope.$root.user.name;
$scope.options.templateOptions.translate = $scope.$root.user.name;
},
],
});
//只读控件
formlyConfigProvider.setType({
name: "ui-label",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-label.html",
defaultOptions: function (options) {
return {
templateOptions: {
translate: "",
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$rootScope",
function ($scope, $rootScope) {
// console.log($scope.options.templateOptions)
// console.log($scope.options,'options1122');
$scope.isSolutionLabel = false;
$scope.solutionLabelStr = "";
// console.log($scope.options.templateOptions.solotinLabel);
if ($scope.options.templateOptions.solotinLabel) {
$scope.isSolutionLabel = true;
if ($scope.model[$scope.options.key]) {
var solutionArr = $scope.model[$scope.options.key].split("/");
$scope.solutionLabelStr = solutionArr.join(" ");
}
}
var value = $scope.model[$scope.options.key];
// ----------------
// ----------------
// console.log(value, 'pppp')
function treeDesc(children, key, label) {
if (label == "") {
label = children[key];
} else {
label = children[key] + "-" + label;
}
if (angular.isDefined(children.parent)) {
treeDesc(children.parent, key, label);
} else {
return label;
}
}
if (angular.isArray(value)) {
var tempValue = "";
angular.forEach(value, function (item) {
if (tempValue != "") {
tempValue = tempValue + ",";
}
tempValue =
tempValue + item[$scope.options.templateOptions.labelProp] ||
item;
});
$scope.options.templateOptions.translate = tempValue;
} else if (angular.isObject(value)) {
if (
angular.isDefined(value.children) ||
angular.isDefined(value.parent)
) {
//tree
// console.log("value.parent="+JSON.stringify(value.parent))
var nameLabel = value[$scope.options.templateOptions.labelProp];
nameLabel = treeDesc(
value.parent,
$scope.options.templateOptions.labelProp,
nameLabel
);
$scope.options.templateOptions.translate = nameLabel;
} else {
$scope.options.templateOptions.translate = value;
}
} else if (
angular.isString(value) &&
value.indexOf("yyyy-MM-ddTHH:mm:sssZ") > 0
) {
// console.log("value=" + value);
$scope.options.templateOptions.translate = value;
// }else if(angular.isString(value)&&value.indexOf('yyyy-MM-ddTHH:mm:sssZ')>0){
// console.log("value="+value);
// $scope.options.templateOptions.translate = value;
} else {
// var datasdf = JSON.parse(value);
// console.log("$scope.options.templateOptions.translate="+JSON.stringify($scope.options.templateOptions.translate))
$scope.options.templateOptions.translate = value;
}
if (angular.isFunction($scope.options.templateOptions.transform)) {
// console.log("$scope.options.templateOptions.transform22="+JSON.stringify($scope.options.templateOptions.transform))
$scope.options.templateOptions.translate =
$scope.options.templateOptions.transform(
$scope.originalModel,
value,
$rootScope,
$scope
);
}
// console.log($scope.options.templateOptions.translate,99999);
},
],
});
//小标题组件
formlyConfigProvider.setType({
name: "ui-header",
template:
'
',
});
//标题组件
formlyConfigProvider.setType({
name: "ui-title",
template:
'
{{options.templateOptions.label}} ',
});
//标栏是否展示
formlyConfigProvider.setType({
name: "ui-orshow",
template:
'{{options.templateOptions.label}} 隐藏 展示 ',
controller: [
"$scope",
function ($scope) {
$scope.clickshow = function (key) {
// $scope.model[$scope.options.key] != key;
if (key == false) {
$scope.model[$scope.options.key] = true;
} else {
$scope.model[$scope.options.key] = false;
}
};
},
],
});
//按钮组
formlyConfigProvider.setType({
name: "ui-button",
templateUrl: "assets/views/customform/tpl/ui-button.html",
defaultOptions: function (options) {
return {
noFormControl: true,
};
},
});
//3d组link
formlyConfigProvider.setType({
name: "ui-link",
templateUrl: "assets/views/customform/tpl/ui-link.html",
defaultOptions: function (options) {
return {
noFormControl: true,
};
},
});
//隐藏域组件
formlyConfigProvider.setType({
name: "ui-hidden",
extends: "input",
template:
' ',
defaultOptions: function (options) {
return {
// noFormControl: true
};
},
});
//文本框组件
formlyConfigProvider.setType({
name: "ui-input",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-input.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (value) { },
},
};
},
controller: [
"$scope",
"$timeout",
function ($scope, $timeout) {
// console.log($scope.model[$scope.options.key]);
// console.log($scope.options)
if (angular.isFunction($scope.options.templateOptions.linkData)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.linkData($scope.model);
}
},
],
});
//搜索下拉框-故障地点seimin
formlyConfigProvider.setType({
name: "ui-select-search",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-select-search.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (value) { },
},
};
},
controller: [
"$scope",
"$rootScope",
"api_search_area",
function ($scope, $rootScope, api_search_area) {
// console.log($scope.options, $scope.model)
// ----------------分割线 start-----------------
// 故障地点下拉
$scope.address_arr = []; //故障地点所有数据
$scope.addressFlag = false; //默认下拉框列表隐藏
//点击文本框
$scope.AddressClickHandle = function () {
$scope.getDepartmentList();
angular.element("#bx_address_ul").scrollTop(0);
};
//修改文字,实时监听
$scope.ksChangeHandle = _.debounce(function () {
$scope.model[$scope.options.key] =
$scope.model[$scope.options.key] === undefined
? ""
: $scope.model[$scope.options.key];
$scope.getDepartmentList();
angular.element("#bx_address_ul").scrollTop(0);
}, 500);
//获取故障地点seimin
$scope.getDepartmentList = function () {
$scope.model[$scope.options.key] =
$scope.model[$scope.options.key] === null
? ""
: $scope.model[$scope.options.key];
api_search_area
.getAreaList({ searchKey: $scope.model[$scope.options.key] })
.then((res) => {
if (res.state == 200) {
$scope.address_arr = res.result;
$scope.addressFlag = true; //显示
}
})
.catch((err) => {
console.log(err);
});
};
// $scope.getDepartmentList();
// console.log($scope.model[$scope.options.key])
//下拉框列表选中
$scope.addressItemClick = function (obj) {
$scope.addressFlag = false; //隐藏
$scope.model[$scope.options.key] = obj.place
? obj.area.area + obj.place
: obj.area;
//选择故障地点后带入区域地点2020年4月23日15:20:44
$scope.model.selecthouseNumber = obj;
console.log($scope, 77777);
$scope.$root.selecthouseNumber = obj;
};
//点击空白处隐藏
angular.element(document).on("click", function (e) {
if (e.target !== angular.element("#bx_address").get(0)) {
$scope.addressFlag = false; //隐藏
//模拟placeholder
// if ($('#bx_address').val() == '') {
// $('#bx_address').val('请选择报修科室');
// }
}
});
// -----------------分割线 end----------------
},
],
});
//知识库关键字组件
formlyConfigProvider.setType({
name: "ui-knowledgeKeywords",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-knowledgeKeywords.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (value) { },
},
};
},
controller: [
"$scope",
"$timeout",
"SweetAlert",
function ($scope, $timeout, SweetAlert) {
$scope.valueLength = [
{
value: "",
},
];
$scope.valueAll = [];
if ($scope.model[$scope.options.key]) {
var valueArr = $scope.model[$scope.options.key].split("/");
$scope.valueLength = [];
for (var i = 0; i < valueArr.length; i++) {
$scope.valueLength.push({
value: valueArr[i],
});
}
}
$scope.addIpt = function () {
if ($scope.valueLength.length < 5) {
$scope.valueLength.push({
value: "",
});
} else {
SweetAlert.swal({
title: "添加失败",
text: "关键字不能超过5个!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
};
$scope.closeIpt = function (data) {
$scope.valueLength.splice(data, 1);
};
$scope.toOption = function () {
$scope.valueAll = [];
for (var i = 0; i < $scope.valueLength.length; i++) {
if ($scope.valueLength[i].value != "") {
$scope.valueAll.push($scope.valueLength[i].value);
}
}
$scope.model.label = $scope.valueAll.join("/");
};
},
],
});
//文本框组件
formlyConfigProvider.setType({
name: "ui-num",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-num.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (value) { },
},
};
},
controller: [
"$scope",
"$timeout",
function ($scope, $timeout) {
if (angular.isFunction($scope.options.templateOptions.linkData)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.linkData($scope.model);
}
$scope.clearNoNum = function (obj, attr) {
//先把非数字的都替换掉,除了数字和.
obj[attr] = obj[attr].replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
obj[attr] = obj[attr].replace(/^\./g, "");
//保证只有出现一个.而没有多个.
obj[attr] = obj[attr].replace(/\.{2,}/g, "");
//保证.只出现一次,而不能出现两次以上
obj[attr] = obj[attr]
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
//小于最大值
// if ($scope.maxsum && parseInt(obj[attr]) > $scope.maxsum) {
// alert('输入数据超过库存数量' + $scope.maxsum + ',请重新输入!');
// obj[attr] = '';
// }
};
},
],
});
// //关联请求人文本框组件
// formlyConfigProvider.setType({
// name: 'ui-requestinput',
// extends: 'input',
// templateUrl: 'assets/views/customform/tpl/ui-input.html',
// defaultOptions: function(options) {
// return {
// templateOptions: {
// transform: function(value) {},
// linkData: function(options) {}
// }
// };
// }
// });
//只读文本
formlyConfigProvider.setType({
name: "ui-disableinput",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-disableinput.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (value) {
var ret = "";
if (value) {
ret = "已删除";
} else {
ret = "正常";
}
return ret;
},
},
};
},
});
formlyConfigProvider.setType({
name: "ui-disinput",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-disinput.html",
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
});
//数字组件
formlyConfigProvider.setType({
name: "ui-number",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-number.html",
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: ["$scope", function ($scope) { }],
});
//含有周的日期
formlyConfigProvider.setType({
name: "ui-datepickerweek",
templateUrl: "assets/views/customform/tpl/ui-datepicker.html",
extends: "input",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: {
ngModelAttrs: getNgModelAttr(datepicker_attr, datepicker_bindings),
templateOptions: {
datepickerPopup: "yyyy-MM-dd HH:mm:ss",
},
},
controller: [
"$scope",
"$filter",
function ($scope, $filter) {
$scope.mindata = new Date(
$scope.options.templateOptions.transform($scope.model).getTime() +
5 * 60 * 1000
);
if ($scope.model[$scope.options.key]) {
} else {
$scope.model[$scope.options.key] = $filter("date")(
new Date(new Date().getTime()),
$scope.options.templateOptions.datepickerPopup
);
}
$scope.options.initialValue = $scope.model[$scope.options.key];
$scope.endOpen = true;
$scope.datepicker = {};
$scope.datepicker.opened = false;
$scope.datepicker.open = function ($event) {
$scope.datepicker.opened = true;
};
},
],
});
//lmm
//分配任务列表
formlyConfigProvider.setType({
name: "jry_taskDistributionList",
templateUrl: "assets/views/customform/tpl/jry_taskDistributionList.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {},
};
},
controller: function (
$rootScope,
$scope,
api_user_data,
$modal,
api_doc_data,
i18nService,
SweetAlert,
api_wechatfile
) {
// 获取状态
$scope.stateListData = {};
$scope.getStateData = function () {
//lyl
var data = {
key: "task_sub_state",
type: "list",
};
api_wechatfile.getDictionary(data).then(function (res) {
angular.forEach(res, function (v, i) {
$scope.stateListData[v.value] = v.id;
});
});
};
$scope.getStateData();
var loginUser = $rootScope.user;
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = true;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
// console.log($scope.model);//lmmmm
$scope.gridOptions.columnDefs = [
{
name: "item",
displayName: "序号",
width: "10%",
cellTemplate:
"" +
'
{{row.entity.item}}
' +
"
",
},
{
name: "taskDescribe",
displayName: "任务说明",
width: "25%",
enableFiltering: false,
cellTemplate:
"" +
'
{{row.entity.taskDescribe}}
' +
"
",
},
{
name: "assign.name",
displayName: "指派人",
width: "5%",
enableFiltering: false,
cellTemplate:
"" +
'
{{row.entity.assign.name}}
' +
"
",
},
{
name: "startTime",
displayName: "开始时间",
width: "13%",
enableFiltering: false,
cellTemplate:
"" +
'
{{row.entity.startTime}}
' +
"
",
},
{
name: "endTime",
displayName: "结束时间",
width: "13%",
enableFiltering: false,
cellTemplate:
"" +
'
{{row.entity.endTime}}
' +
"
",
},
{
name: "priority.name",
displayName: "优先级",
width: "5%",
enableFiltering: false,
cellTemplate:
"" +
'
{{row.entity.priority.name}}
' +
"
",
},
{
name: "state.name",
displayName: "状态",
width: "5%",
enableFiltering: false,
cellTemplate:
"" +
'
{{row.entity.state.name}}
' +
"
",
},
{
name: "操作", //lmmm
cellTemplate:
'",
enableFiltering: false,
},
];
// 查看
$scope.see = function (data) {
$scope.seeData = data;
var modalInstance = $modal.open({
backdrop: false,
templateUrl: "assets/views/customform/tpl/newTaskDistribution.html",
controller: function (
$scope,
scope,
$modalInstance,
api_doc_data,
SweetAlert,
api_user_data,
api_wechatfile
) {
$scope.personData = {}; //指派人
$scope.priorityData = {}; //优先级
$scope.personListData = {}; //指派人下拉数据
$scope.priorityListData = {}; //优先级下拉数据
$scope.startTime = ""; //开始时间
$scope.releaseShow = "no";
$scope.subShow = "no";
$scope.onlySee = "ok";
$scope.endTime = ""; //结束时间
$scope.taskDescribe = ""; //任务描述
$scope.taskDescribe = scope.seeData.taskDescribe;
$scope.personData.data = scope.seeData.assign;
$scope.priorityData.data = scope.seeData.priority;
$scope.startTime = scope.seeData.startTime;
$scope.endTime = scope.seeData.endTime;
$scope.done = scope.seeData.done;
$scope.feedback = scope.seeData.feedback;
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
backdrop: true,
});
};
// 编辑
$scope.edit = function (data) {
$scope.editData = data;
var modalInstance = $modal.open({
backdrop: false,
templateUrl: "assets/views/customform/tpl/newTaskDistribution.html",
controller: function (
$scope,
scope,
$modalInstance,
api_doc_data,
SweetAlert,
api_user_data,
api_wechatfile
) {
console.log(scope.editData);
$scope.personData = {}; //指派人
$scope.priorityData = {}; //优先级
$scope.personListData = {}; //指派人下拉数据
$scope.priorityListData = {}; //优先级下拉数据
$scope.startTime = ""; //开始时间
$scope.releaseShow = "no";
$scope.endTime = ""; //结束时间
$scope.taskDescribe = ""; //任务描述
$scope.taskDescribe = scope.editData.taskDescribe;
$scope.personData.data = scope.editData.assign;
$scope.priorityData.data = scope.editData.priority;
$scope.startTime = scope.editData.startTime;
$scope.endTime = scope.editData.endTime;
// 指派人下拉框数据
$scope.getPersonData = function () {
var data = {
idx: 0,
sum: 1000,
user: {
engineer: 1,
}
};
api_user_data.fetchDataList("user", data).then(function (res) {
$scope.personListData = res.list;
});
};
$scope.getPersonData();
//优先级下拉数据
$scope.getPriorityData = function () {
var data = {
key: "change_rick_level",
type: "list",
};
api_wechatfile.getDictionary(data).then(function (res) {
$scope.priorityListData = res;
});
};
$scope.getPriorityData();
// 获取状态-lmm
$scope.stateListData = {};
$scope.getStateData = function () {
//lyl
var data = {
key: "task_sub_state",
type: "list",
};
api_wechatfile.getDictionary(data).then(function (res) {
angular.forEach(res, function (v, i) {
$scope.stateListData[v.value] = v.id;
});
});
};
$scope.getStateData();
//时间控件
$scope.open = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = !$scope.opened;
};
$scope.endOpen = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.startOpened = false;
$scope.endOpened = !$scope.endOpened;
};
$scope.startOpen = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.endOpened = false;
$scope.startOpened = !$scope.startOpened;
};
// 确定
$scope.ok = function (item) {
if (
$scope.taskDescribe &&
$scope.personData.data &&
$scope.priorityData.data &&
$scope.startTime &&
$scope.endTime
) {
$scope.startTime = moment(
new Date($scope.startTime).getTime()
).format("YYYY-MM-DD HH:mm:ss");
$scope.endTime = moment(
new Date($scope.endTime).getTime()
).format("YYYY-MM-DD HH:mm:ss");
$scope.addData = {
taskSub: {
taskDescribe: $scope.taskDescribe,
assign: $scope.personData.data,
priority: $scope.priorityData.data,
startTime: $scope.startTime,
endTime: $scope.endTime,
taskMonth: {
id: scope.model.taskMonth.id,
},
id: scope.editData.id,
},
};
$scope.addData.taskSub["state"] = {
id: $scope.stateListData[1],
};
api_user_data
.updData("taskSub", $scope.addData)
.then(function (res) {
if (res.status == 200) {
SweetAlert.swal({
title: "修改成功!",
type: "success",
confirmButtonColor: "#007AFF",
});
scope.refreshData(scope.jry_filterdata);
$modalInstance.dismiss("cancel");
} else {
SweetAlert.swal({
title: "修改失败",
text: "系统错误,请重试!",
type: "error",
});
$modalInstance.dismiss("cancel");
}
});
} else {
SweetAlert.swal({
title: "修改失败",
text: "必填项不能为空!",
type: "error",
});
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
backdrop: true,
});
};
// 发布
$scope.release = function (data) {
SweetAlert.swal(
{
title: "确认发布?",
text: "请确定发布操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnConfirm: false,
closeOnCancel: false,
},
function (isConfirm) {
if (isConfirm) {
data.state.id = $scope.stateListData[2];
delete data.item;
api_user_data
.updData("taskSub", {
taskSub: data,
})
.then(function (res) {
if (res.status == 200) {
SweetAlert.swal({
title: "发布成功!",
type: "success",
confirmButtonColor: "#007AFF",
});
$scope.refreshData($scope.jry_filterdata);
} else {
SweetAlert.swal({
title: "删除失败",
text: "系统错误,请重试!",
type: "error",
});
}
});
} else {
SweetAlert.swal("操作取消", "发布取消", "error");
}
}
);
};
// 删除
$scope.remove = function (data) {
SweetAlert.swal(
{
title: "确认删除?",
text: "删除的数据不可恢复,请确认继续操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "继续删除",
cancelButtonText: "取消操作",
closeOnConfirm: false,
closeOnCancel: false,
},
function (isConfirm) {
if (isConfirm) {
api_user_data.rmvData("taskSub", [data.id]).then(function (res) {
if (res.status == 200) {
SweetAlert.swal({
title: "删除成功!",
type: "success",
confirmButtonColor: "#007AFF",
});
$scope.refreshData($scope.jry_filterdata);
} else {
SweetAlert.swal({
title: "删除失败",
text: "系统错误,请重试!",
type: "error",
});
}
});
} else {
SweetAlert.swal("操作取消", "数据安全", "error");
}
}
);
};
$scope.refreshData = function (filterData) {
// $scope.ldloading[style.replace('-', '_')] = true;
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
$scope.myData = [];
$scope.memoryfilterData = filterData;
api_doc_data.fetchDataList("taskSub", filterData).then(
function (data) {
var myData = data;
$scope.gridOptions.totalItems = myData.totalNum;
$scope.removeFileNum = myData.totalNum;
if (angular.isArray(myData.list)) {
$scope.myData = myData.list;
for (var i = 0; i < $scope.myData.length; i++) {
//添加序号
$scope.myData[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
$scope.myData[i].startTime = moment(
$scope.myData[i].startTime
).format("YYYY-MM-DD HH:mm:ss");
$scope.myData[i].endTime = moment(
$scope.myData[i].endTime
).format("YYYY-MM-DD HH:mm:ss");
}
}
},
function () {
// $scope.ldloading[style.replace('-', '_')] = false;
}
);
};
//分页控制
$scope.gridOptions.onRegisterApi = function (gridApi) {
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
$scope.jry_filterdata.idx = newPage - 1;
$scope.fenye = newPage - 1;
$scope.jry_filterdata.sum = pageSize;
$scope.refreshData($scope.jry_filterdata);
}
);
};
$scope.fenye = 0;
if ($scope.model.label == "分配任务") {
$scope.jry_filterdata = {
idx: $scope.fenye,
sum: 10,
taskSub: {
taskMonth: {
id: $scope.model.taskMonth.id,
},
userid: loginUser.id,
role: loginUser.role,
},
};
} else {
$scope.jry_filterdata = {
idx: $scope.fenye,
sum: 10,
taskSub: {
taskMonth: {
id: $scope.model.taskMonth.id,
},
userid: loginUser.id,
role: loginUser.role,
type: 1,
},
};
}
$scope.refreshData($scope.jry_filterdata);
//新增模态框
$scope.newDistribution = function () {
var modalInstance = $modal.open({
backdrop: false,
templateUrl: "assets/views/customform/tpl/newTaskDistribution.html",
controller: function (
$scope,
scope,
$modalInstance,
api_doc_data,
SweetAlert,
api_user_data,
api_wechatfile
) {
$scope.personData = {}; //指派人
$scope.priorityData = {}; //优先级
$scope.personListData = {}; //指派人下拉数据
$scope.priorityListData = {}; //优先级下拉数据
$scope.startTime = ""; //开始时间
$scope.endTime = ""; //结束时间
$scope.taskDescribe = ""; //任务描述
$scope.motaikuang = "";
$scope.shijian = "哈哈";
// 指派人下拉框数据
$scope.getPersonData = function () {
var data = {
idx: 0,
sum: 1000,
user: {
engineer: 1,
}
};
api_user_data.fetchDataList("user", data).then(function (res) {
$scope.personListData = res.list;
});
};
$scope.getPersonData();
//优先级下拉数据
$scope.getPriorityData = function () {
var data = {
key: "change_rick_level",
type: "list",
};
api_wechatfile.getDictionary(data).then(function (res) {
$scope.priorityListData = res;
});
};
// 控制结束时间的最大时间
$scope.jryEndMaxTime = scope.model.taskMonth.endTime;
// 控制结束时间的最小时间
$scope.jryEndMinTime = scope.model.taskMonth.startTime;
$scope.$watch("startTime", function (n, o) {
if (n) {
if (n > scope.model.taskMonth.startTime) {
$scope.jryEndMinTime = n;
}
}
});
// 控制开始时间的最小时间
$scope.jryStartMinTime = scope.model.taskMonth.startTime;
// 控制开始时间的最大时间
$scope.jryStartMaxTime = scope.model.taskMonth.endTime;
$scope.$watch("endTime", function (n, o) {
if (n) {
if (n < scope.model.taskMonth.endTime) {
$scope.jryStartMaxTime = n;
}
}
});
$scope.getPriorityData();
//时间控件
$scope.open = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = !$scope.opened;
};
$scope.endOpen = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.startOpened = false;
$scope.endOpened = !$scope.endOpened;
};
$scope.startOpen = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.endOpened = false;
$scope.startOpened = !$scope.startOpened;
};
$scope.datepickerPopup = "yyyy-MM-dd HH:mm:ss";
// 获取状态-lmm
$scope.stateListData = {};
$scope.getStateData = function () {
//lyl
var data = {
key: "task_sub_state",
type: "list",
};
api_wechatfile.getDictionary(data).then(function (res) {
angular.forEach(res, function (v, i) {
$scope.stateListData[v.value] = v.id;
});
});
};
$scope.getStateData();
// 草稿保存
$scope.ok = function (item) {
if (
$scope.taskDescribe &&
$scope.personData.data &&
$scope.priorityData.data &&
$scope.startTime &&
$scope.endTime
) {
$scope.startTime = moment(
new Date($scope.startTime).getTime()
).format("YYYY-MM-DD HH:mm:ss");
$scope.endTime = moment(
new Date($scope.endTime).getTime()
).format("YYYY-MM-DD HH:mm:ss");
$scope.addData = {
taskSub: {
taskDescribe: $scope.taskDescribe,
assign: $scope.personData.data,
priority: $scope.priorityData.data,
startTime: $scope.startTime,
endTime: $scope.endTime,
taskMonth: {
id: scope.model.taskMonth.id,
},
},
};
$scope.addData.taskSub["state"] = {
id: $scope.stateListData[1],
};
api_user_data
.addData("taskSub", $scope.addData)
.then(function (res) {
if (res.status == 200) {
SweetAlert.swal({
title: "保存成功!",
type: "success",
confirmButtonColor: "#007AFF",
});
scope.refreshData(scope.jry_filterdata);
$modalInstance.dismiss("cancel");
} else {
SweetAlert.swal({
title: "保存失败",
text: "系统错误,请重试!",
type: "error",
});
$modalInstance.dismiss("cancel");
}
});
} else {
SweetAlert.swal({
title: "保存失败",
text: "必填项不能为空!",
type: "error",
});
}
};
// 发布
$scope.release = function () {
if (
$scope.taskDescribe &&
$scope.personData.data &&
$scope.priorityData.data &&
$scope.startTime &&
$scope.endTime
) {
$scope.startTime = moment(
new Date($scope.startTime).getTime()
).format("YYYY-MM-DD HH:mm:ss");
$scope.endTime = moment(
new Date($scope.endTime).getTime()
).format("YYYY-MM-DD HH:mm:ss");
$scope.addData = {
taskSub: {
taskDescribe: $scope.taskDescribe,
assign: $scope.personData.data,
priority: $scope.priorityData.data,
startTime: $scope.startTime,
endTime: $scope.endTime,
taskMonth: {
id: scope.model.taskMonth.id,
},
},
};
$scope.addData.taskSub["state"] = {
id: $scope.stateListData[1],
};
api_user_data
.addData("taskSub", $scope.addData)
.then(function (res) {
if (res.status == 200) {
SweetAlert.swal({
title: "保存成功!",
type: "success",
confirmButtonColor: "#007AFF",
});
scope.refreshData(scope.jry_filterdata);
$modalInstance.dismiss("cancel");
} else {
SweetAlert.swal({
title: "保存失败",
text: "系统错误,请重试!",
type: "error",
});
$modalInstance.dismiss("cancel");
}
});
} else {
SweetAlert.swal({
title: "保存失败",
text: "必填项不能为空!",
type: "error",
});
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: "sm",
resolve: {
scope: function () {
return $scope;
},
},
backdrop: true,
});
};
},
});
// 多次反馈文本域组件--jry
formlyConfigProvider.setType({
name: "ui-feedbacktTextarea",
extends: "textarea",
templateUrl: "assets/views/customform/tpl/ui-feedbacktTextarea.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
maxlength: function (viewValue, modelValue, scope) {
if (viewValue != null) {
if (viewValue.length > scope.to.maxlength) {
return (
scope.to.label +
" 字数(" +
viewValue.length +
")超限(" +
scope.to.maxlength +
")"
);
} else {
return "";
}
}
},
},
},
};
},
controller: [
"$scope",
"moment",
function ($scope, moment) {
// console.log($scope);
var timeKey = $scope.options.templateOptions.time;
$scope.time = moment($scope.model[timeKey]).format(
"YYYY-MM-DD HH:mm:ss"
);
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
if (angular.isFunction($scope.options.templateOptions.felditem)) {
$scope.options.templateOptions.felditem($scope);
}
},
],
});
//任务管理开始时间--jry
formlyConfigProvider.setType({
name: "ui-jryStartdatepicker",
templateUrl: "assets/views/customform/tpl/ui-jryStartdatepicker.html",
extends: "input",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: {
ngModelAttrs: getNgModelAttr(datepicker_attr, datepicker_bindings),
templateOptions: {
datepickerPopup: "yyyy-MM-dd HH:mm:ss",
},
},
controller: [
"$scope",
"$filter",
function ($scope, $filter) {
// console.log($scope.model[$scope.options.key],'lmm');
$scope.mindata = new Date(
$scope.options.templateOptions.transform($scope.model).getTime() +
5 * 60 * 1000
);
if ($scope.model[$scope.options.key]) {
$scope.model[$scope.options.key] = $filter("date")(
$scope.model[$scope.options.key],
$scope.options.templateOptions.datepickerPopup
);
}
// console.log($scope.model[$scope.options.key],'lmm');
// console.log($scope.model,'lmm',$scope.options.key);
$scope.options.initialValue = $scope.model[$scope.options.key];
$scope.endOpen = true;
$scope.datepicker = {};
$scope.datepicker.opened = false;
$scope.datepicker.open = function ($event) {
$scope.datepicker.opened = true;
};
},
],
});
//任务管理结束时间--jry
formlyConfigProvider.setType({
name: "ui-jryEnddatepicker",
templateUrl: "assets/views/customform/tpl/ui-jryEnddatepicker.html",
extends: "input",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: {
ngModelAttrs: getNgModelAttr(datepicker_attr, datepicker_bindings),
templateOptions: {
datepickerPopup: "yyyy-MM-dd HH:mm:ss",
},
},
controller: [
"$scope",
"$filter",
function ($scope, $filter) {
$scope.mindata = new Date(
$scope.options.templateOptions.transform($scope.model).getTime() +
5 * 60 * 1000
);
if ($scope.model[$scope.options.key]) {
$scope.model[$scope.options.key] = $filter("date")(
$scope.model[$scope.options.key],
$scope.options.templateOptions.datepickerPopup
);
}
$scope.options.initialValue = $scope.model[$scope.options.key];
$scope.endOpen = true;
$scope.datepicker = {};
$scope.datepicker.opened = false;
$scope.datepicker.open = function ($event) {
$scope.datepicker.opened = true;
};
},
],
});
//下拉多选框灵活组件--jry
formlyConfigProvider.setType({
name: "ui-jry_multiselectplus",
extends: "multiCheckbox",
templateUrl: "assets/views/customform/tpl/ui-multiselectplus.html",
defaultOptions: function (options) {
return {
templateOptions: {
refreshData: function (search, options, model, that) {
// var process = options.templateOptions.ApiService.all("");
if (search) {
} else {
}
var postData = options.templateOptions.optionsPostData;
if (angular.isFunction(options.templateOptions.optionsPostData)) {
postData = options.templateOptions.optionsPostData(
options,
model,
that
);
}
options.templateOptions.ApiService.fetchDataList(
options.templateOptions.optionsUrl,
options.templateOptions.optionsPostData
).then(function (result) {
// if (!options.templateOptions.options) {
// options.templateOptions.options = [];
// }
if (options.templateOptions.optionsDataKey) {
options.templateOptions.options =
result[options.templateOptions.optionsDataKey];
} else {
options.templateOptions.options = result;
}
if (options.templateOptions.optionsChecked) {
// return options.value = null;
options.value(options.model[options.key]);
}
});
},
refreshDelay: 0,
// },
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
return value != null;
// return value.length>=1;
// if (modelValue && viewValue) {
// return value != null;
// } else {
// var value = modelValue || viewValue;
// return value.length > 0;
// }
},
},
},
},
};
},
controller: [
"$scope",
function ($scope) {
console.log($scope.to);
if (angular.isArray($scope.model[$scope.options.key])) {
} else {
$scope.model[$scope.options.key] = [];
}
},
],
});
//下拉框组件
formlyConfigProvider.setType({
name: "ui-select",
extends: "select",
templateUrl: "assets/views/customform/tpl/ui-select.html",
defaultOptions: function (options, scope) {
return {
templateOptions: {
// refresh: function() {},
getScope: function () {
return scope;
},
refreshDelay: 0,
linkage: function (modelName, data, model, modelKey, key, timekey) {
//POST
console.log(model, "model");
angular.extend(data, {
idx: 0,
sum: 1000,
});
options.templateOptions.APIService.fetchDataList(
modelName,
data
).then(function (response) {
var myData =
options.templateOptions.Restangular.stripRestangular(response);
var list = myData.list;
console.log(myData);
// api_bpm_domain.expectedTime("L" + item).then(function(res){
// console.log('balabalabala');
// console.log(res);
// })
if (list.length == 1) {
if (options.templateOptions.APIport) {
options.templateOptions.APIport.expectedTime(
"L" + list[0][key].id
).then(function (response) {
if (response.state == "200") {
// if (model.$parent.model && model.$parent.model.incident) {
// } else {
// model.$parent.model = { 'incident': {} };
// }
var myDatas = response.serviceLevelAgreement;
//逾期
scope.$parent.$parent.$parent.model.incident.overdueTime =
response.date;
//解决
scope.$parent.$parent.$parent.model.incident.expectIntroTime =
myDatas.resolveTime;
//响应
scope.$parent.$parent.$parent.model.incident.expectResponseTime =
myDatas.responseTime;
} else {
}
});
}
angular.forEach(model.fields, function (item) {
angular.forEach(model.fields, function (item) {
if (item.templateOptions.pkey == modelKey + "." + key) {
item.model.id = "";
if (key == "place") {
item.templateOptions.options = list;
} else if (key == "placeDTO") {
item.templateOptions.options = list;
} else if (key == "requester") {
} else {
item.value(list[0][key][item.key]);
}
}
});
});
} else {
if (model.fields) {
angular.forEach(model.fields, function (item) {
angular.forEach(model.fields, function (item) {
if (item.templateOptions.pkey == modelKey + "." + key) {
item.model.id = "";
if (key == "place") {
item.templateOptions.isnosearch = true;
item.templateOptions.options = list;
}
if (key == "placeDTO") {
item.templateOptions.options = list;
}
if (key == "requester") {
}
if (key == "room") {
item.templateOptions.options = list;
}
}
});
});
} else {
angular.forEach(
scope.$parent.$parent.$parent.fields,
function (item) {
angular.forEach(
scope.$parent.$parent.$parent.fields,
function (item) {
if (
item.templateOptions.pkey ==
modelKey + "." + key
) {
if (key == "place") {
item.templateOptions.isnosearch = true;
item.templateOptions.options = list;
scope.$parent.$parent.$parent.model.incident.place =
model.incident.place;
}
if (key == "placeDTO") {
item.templateOptions.options = list;
}
if (key == "requester") {
}
}
}
);
}
);
}
}
console.log(key);
//报修科室
if (key == "dept") {
// 报修科室单选
scope.$parent.$parent.$parent.model.incident.department =
response.list[0];
scope.$parent.$parent.$parent.model.incident.contactsInformation =
response.list[0].phone;
// scope.$parent.$parent.$parent.model.incident.houseNumber = response.list[0].place.area.area + response.list[0].place.place;
// 选择重复事件侧滑框
scope.$parent.$parent.$parent.model[
"repeatIncidentShow"
] = false;
setTimeout(() => {
scope.$parent.$parent.$parent.model[
"repeatIncidentShow"
] = true;
}, 500);
}
// 报修人
if (key == "requester") {
// 报修人单选
scope.$parent.$parent.$parent.model.incident.requester =
response.list[0];
console.log(scope.$parent.$parent.$parent.model);
scope.$parent.$parent.$parent.model.incident.account =
response.list[0].account;
var selectedItem = response.list[0];
var data = {
requester: selectedItem,
};
scope.$parent.$parent.$parent.model["requestershow"] =
selectedItem;
console.log(selectedItem, "----------------------");
// if (selectedItem.dept.place.place) {
// scope.$parent.$parent.$parent.model.incident.houseNumber = selectedItem.dept.place.area.area + selectedItem.dept.place.place
// }
scope.$parent.$parent.$parent.model.incident.houseNumber =
selectedItem.houseNumber ? selectedItem.houseNumber : "";
scope.$parent.$parent.$parent.model.incident.area.id =
selectedItem.place ? selectedItem.place.area.id : null;
scope.$parent.$parent.$parent.model.incident.place.id =
selectedItem.place ? selectedItem.place.id : null;
if(scope.$parent.$parent.$parent.model.incident.area.id){
options.templateOptions.APIService.fetchDataList(
'place',
{"place":{"areaId":scope.$parent.$parent.$parent.model.incident.area.id},"idx":0,"sum":1000}
).then(function (response1) {
for (var i = 0; i < scope.fields.length; i++) {
if(scope.fields[i].templateOptions.onlyKey == 'place_start'){
scope.fields[i].templateOptions.options = response1.status == 200?response1.list:[];
}
}
})
}
console.log(scope, 89898998);
// console.log(scope.formData,'接单页面');
//1,选择报修人后带入区域地点2020年4月23日19:34:17
scope.model.selecthouseNumber = selectedItem.place
? selectedItem.place
: {};
scope.$root.selecthouseNumber = selectedItem.place
? selectedItem.place
: {};
// options.templateOptions.ApiService.addData(
// "requester",
// data
// ).then(function (response) {
// if (response.status == 200) {
if (scope.$parent.$parent.$parent) {
if (scope.$parent.$parent.$parent.place) {
scope.$parent.$parent.$parent.place.id = "";
}
if (scope.$parent.$parent.$parent.area) {
scope.$parent.$parent.$parent.area.id = "";
}
scope.$parent.$parent.$parent.model.incident.contacts =
selectedItem.name;
if (
selectedItem.phone &&
selectedItem.phone != null &&
selectedItem.phone != ""
) {
scope.$parent.$parent.$parent.model.incident.contactsInformation =
selectedItem.phone;
} else {
scope.$parent.$parent.$parent.model.incident.contactsInformation =
selectedItem.telephone;
}
if (
selectedItem.requesterTypeDTO &&
selectedItem.requesterTypeDTO.id == 2
) {
scope.$parent.$parent.$parent.model.incident.priority.id = 2;
}
}
// if (!response.data.id) {
// response.data.id = selectedItem.id;
// }
console.log(scope);
// if (scope.$parent.$parent.$parent.model.saveAgain) {
// if (selectedItem.place && selectedItem.place.id) {
// scope.$parent.$parent.$parent.model.incident.place.id = selectedItem.place.id
// scope.$parent.$parent.$parent.model.incident.place.area.id = selectedItem.place.area.id
// };
// } else {
// if (selectedItem.place && selectedItem.place.id) {
// scope.$parent.$parent.$parent.model.incident.place.id = selectedItem.place.id
// scope.$parent.$parent.$parent.model.incident.area.id = selectedItem.place.area.id
// };
// }
// if(scope.$parent.$parent.$parent.model.incident.area){
// scope.$parent.$parent.$parent.model.incident.area.id = 1;//teshu
// }
if (selectedItem.id) {
scope.$parent.$parent.$parent.model.incident.account =
selectedItem.account;
}
// 选择重复事件侧滑框
// if (scope.$parent.$parent.$parent.model.incident.category && scope.$parent.$parent.$parent.model.incident.category.id) {
scope.$parent.$parent.$parent.model[
"repeatIncidentShow"
] = false;
setTimeout(() => {
scope.$parent.$parent.$parent.model[
"repeatIncidentShow"
] = true;
}, 500);
// }
// }
// });
}
//新建事件,选择派单,选择工作组查找处理人baba
if (key == "handlerUser") {
model.fields.forEach(function (v) {
if (v.templateOptions.pkey == "incident.handlerUser") {
v.templateOptions.options = list;
if (model.model.incident.handlerUser) {
if (model.model.incident.handlerUser.id) {
var flag = list.some(function (v) {
return v.id == model.model.incident.handlerUser.id;
});
if (flag) {
v.model.id = model.model.incident.handlerUser.id;
}
}
}
}
});
}
});
},
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
return value != null;
// return value.length>=1;
// if (modelValue && viewValue) {
// return value != null;
// } else {
// var value = modelValue || viewValue;
// return value.length > 0;
// }
},
},
},
},
controller: [
"$scope",
"$rootScope",
"api_bpm_domain",
"$stateParams",
function ($scope, $rootScope, api_bpm_domain, $stateParams) {
// $scope.myFilter = function(item) {
// return !$scope.search || $select.selected[to.labelProp || 'name'] == $scope.search;
// }
console.log($scope, "风浪");
if($scope.to.onlyKey === 'inspection.dictionary'){
//巡检列表-新增-巡检类型baba
console.log(location)
var loc = location.href.split('api_bpm_data')[1] || '';
if(loc.length <= 2){
// 新增轮询计划的时候
$scope.model.id = 1715;//默认系统默认
}
}
//工作组添加全部选项
// if($scope.options.templateOptions.label == '工作组'){
// $scope.options.templateOptions.options.unshift({id:0,groupName:'全部'});
// $scope.model._group = 0;
// }
if (
$scope.options.templateOptions.pkey &&
$scope.options.templateOptions.pkey == "incident.place"
) {
if (
$scope.$parent &&
$scope.$parent.$parent.$parent.model &&
$scope.$parent.$parent.$parent.model.incident.area &&
$scope.$parent.$parent.$parent.model.incident.area.id
) {
$scope.options.templateOptions.linkage(
"place",
{
place: {
areaId:
$scope.$parent.$parent.$parent.model.incident.area.id,
// area:{
// id:$scope.$parent.$parent.$parent.model.incident.area.id
// }
},
},
$scope.$parent.$parent.$parent.model,
"incident",
"place"
);
}
}
$scope.myFilter = $scope;
// console.log($scope.options.templateOptions)
console.log($scope, 77777);
if (angular.isDefined($stateParams.model) && $stateParams.model != "") {
var paramsModel = JSON.parse($stateParams.model)
if ($scope.options.templateOptions.onlyKey == "c_account" && paramsModel.model.incident.requester.account) {
$scope.$parent.$parent.$parent.model.repeatIncidentShow = true;
$scope.$parent.$parent.$parent.model.incident.account = paramsModel.model.incident.requester.account;
}
}
//处理人根据故障现象自动带入baba
if ($scope.options.templateOptions.onlyKey == "c_handlerUser") {
console.log($scope.options.templateOptions.pkey);
if ($scope.$parent.$parent.$parent.model.incident.handlerUser) {
if (
$scope.$parent.$parent.$parent.model.incident.handlerUser.id
) {
$scope.$parent.$parent.$parent.model.assignee =
$scope.$parent.$parent.$parent.model.incident.handlerUser.id;
$scope.options.model.id =
$scope.$parent.$parent.$parent.model.incident.handlerUser.id;
}
}
}
// 关闭事件页面满意度评价下拉框处理
if ($scope.options.templateOptions.onlyKey == "close_degree") {
$scope.model.id =
$scope.$parent.$parent.$parent.$parent.$parent.$parent.formData.model.incident.wxdegree.id;
}
if ($scope.options.templateOptions.initData == 1) {
$scope.options.templateOptions.onChange(
$scope.model.id,
$scope.options,
$scope
);
}
if ($scope.options.templateOptions.transform) {
$scope.options.templateOptions.onChange(
$scope.model.id,
$scope.options,
$scope
);
}
if (angular.isFunction($scope.options.templateOptions.translate)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.translate(
$scope.options,
$rootScope,
$scope
);
}
if (
angular.isFunction($scope.options.templateOptions.translatefunc)
) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.translatefunc(
$scope.options,
$rootScope,
$scope
);
}
if (
angular.isFunction($scope.options.templateOptions.onlyfunction)
) {
$scope.options.templateOptions.onlyfunction(
$scope.options,
$rootScope,
$scope
);
}
},
],
};
},
});
//下拉框组件(巡检计划-查看)
formlyConfigProvider.setType({
name: "ui-select-xj",
extends: "select",
templateUrl: "assets/views/customform/tpl/ui-select-xj.html",
defaultOptions: function (options, scope) {
return {
templateOptions: {
getScope: function () {
return scope;
},
refreshDelay: 0,
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
return value != null;
},
},
},
},
controller: [
"$scope",
"$rootScope",
"api_bpm_domain",
"$stateParams",
function ($scope, $rootScope, api_bpm_domain, $stateParams) {
$scope.model[$scope.options.key] = '0';//默认全部
var arr = [];
if($scope.model.inspection.batchNos){
arr = $scope.model.inspection.batchNos.map(v=>({value:v,name:v}));
}
arr.unshift({value:'0',name:'全部'});
$scope.options.templateOptions.options = arr;
console.log($scope)
// ts.$parent.fields.forEach(v=>{
// if(v.templateOptions.onlyKey === "batchNos"){
// //巡检计划-批次号
// var batchNos = $scope.model.batchNos === "0"?"":$scope.model.batchNos;
// v.templateOptions.getScope().refreshData(batchNos)
// }
// })
// ts.$parent.fields.forEach(v=>{if(v.templateOptions.onlyKey === "batchNos"){var batchNos = item == "0"?"":item;v.templateOptions.getScope().refreshData(batchNos);}})
// console.log($scope.options)
// console.log($scope.model)
},
],
};
},
});
//下拉多选框组件
formlyConfigProvider.setType({
name: "ui-multiselect",
extends: "select",
templateUrl: "assets/views/customform/tpl/ui-multiselect.html",
defaultOptions: function (options, $scope) {
return {
templateOptions: {
getLoginUser: function () {
return $scope.$root.user;
},
refresh: function () { },
refreshDelay: 1000,
},
};
},
controller: [
"$scope",
function ($scope) {
$scope.model[$scope.options.key] = [];
},
],
});
//下拉多选全选组件
formlyConfigProvider.setType({
name: "ui-isteven",
extends: "select",
templateUrl: "assets/views/customform/tpl/ui-isteven.html",
defaultOptions: function (options,$scope) {
return {
templateOptions: {
refresh: function () {
console.log(options)
options.templateOptions
.refreshData(options.templateOptions.APIService)
.then(function (result) {
if(result.status == 200){
console.log(result.list)
//树形结构转换
function formatDataTree2(json){
var _json = JSON.parse(JSON.stringify(json));
return _json.filter(p=>{
var _arr = _json.filter(c=>(c.parent?c.parent.id === p.id:false));
_arr.length && (p.children = _arr);
return !p.parent;
})
}
console.log(result.list)
var list = formatDataTree2(result.list);
console.log(list)
// $scope.treeList = angular.copy(list);
var resultList = [];
//转换数据
function trasData(list,obj){
if(obj){
//有父级
list.forEach(v=>{
var type = ""+ v.parent.type +" ";//父级type
var i = resultList.findIndex(c=>c.type == type);
if(v.children){
resultList.splice(i+1,0,{
type: ""+ v.type +" ",
msId: v.id,
msGroup: true,
},{msGroup: false})
trasData(v.children,v);
}else{
resultList.splice(i+1,0,{...v,...{ticked:false}});
}
})
}else{
//顶级
list.forEach(v=>{
if(v.children){
resultList.push({
type: ""+ v.type +" ",
msId: v.id,
msGroup: true,
},{msGroup: false})
trasData(v.children,v);
}else{
resultList.push(...v,...{ticked:false});
}
})
}
return resultList;
}
var __arr = trasData(list,null);
// console.log(__arr,options.model.typeIds.split(','))
if(options.model.typeIds){
//有巡检类型,则需要回显
__arr.forEach(w=>{
w.ticked = options.model.typeIds.split(',').includes(w.id+'');
})
}
$scope.webBrowsersGrouped = __arr;
console.log($scope.webBrowsersGrouped);
}
})
},
refreshDelay: 1000,
},
};
},
controller: [
"$scope",
function ($scope) {
console.log($scope)
$scope.to.refresh();//获取列表数据
// $scope.model[$scope.options.key] = [];
//单项点击或菜单
$scope.fClick = function(data){
console.log($scope.outputBrowsers)
$scope.$parent.$parent.$parent.model.inspection.typeIds = $scope.outputBrowsers.map(v=>v.id).join();
console.log($scope.$parent.$parent.$parent.model.inspection.typeIds)
// if(data.id){
// //单项点击
// if($scope.$parent.$parent.$parent.model.inspection.typeIds){
// //有巡检类型
// var arr = $scope.$parent.$parent.$parent.model.inspection.typeIds.split(',');
// if(data.ticked){
// arr.push(data.id);
// }else{
// arr = arr.filter(v=>v != data.id);
// }
// $scope.$parent.$parent.$parent.model.inspection.typeIds = arr.join();
// }else{
// //无巡检类型
// $scope.$parent.$parent.$parent.model.inspection.typeIds = 1;
// if(data.ticked){
// $scope.$parent.$parent.$parent.model.inspection.typeIds = data.id + '';
// }else{
// $scope.$parent.$parent.$parent.model.inspection.typeIds = '';
// }
// }
// }else{
// // 菜单点击
// console.log($scope.webBrowsersGrouped,data.msId);
// var treeResultArr = $scope.webBrowsersGrouped.filter(v=>{
// return v.parent?v.parent.id == data.msId:false;
// })
// if(treeResultArr.every(v=>v.ticked)){
// //全部都是true的情况下,需要移除,否则增加
// }
// console.log(treeResultArr)
// // --------------------------------------
// // var treeArr = [];
// // function findParent(treeList){
// // treeList.forEach(v=>{
// // if(v.id == data.msId){
// // treeArr = v.children;
// // }else{
// // if(v.children){
// // findParent(v.children);
// // }
// // }
// // })
// // return treeArr;
// // }
// // var treeResultArr = findParent($scope.treeList);
// // console.log(treeResultArr)
// // -----------------------------------
// }
}
// 全选
$scope.fSelectAll = function(){
// console.log($scope.webBrowsersGrouped)
var arr = $scope.webBrowsersGrouped.filter(v=>v.id).map(v=>v.id);
// console.log(arr);
$scope.$parent.$parent.$parent.model.inspection.typeIds = arr.join();
console.log($scope.$parent.$parent.$parent.model.inspection.typeIds)
}
// 全不选
$scope.fSelectNone = function(){
$scope.$parent.$parent.$parent.model.inspection.typeIds = '';
console.log($scope.$parent.$parent.$parent.model.inspection.typeIds)
}
// 配置信息
$scope.outputBrowsers = [];
$scope.localLang = {
selectAll: "全选",
selectNone: "全不选",
nothingSelected: "请选择"
}
},
],
});
//下拉多选框灵活组件
formlyConfigProvider.setType({
name: "ui-multiselectplus",
extends: "multiCheckbox",
templateUrl: "assets/views/customform/tpl/ui-multiselectplus.html",
defaultOptions: function (options, $scope) {
return {
templateOptions: {
getLoginUser: function () {
return $scope.$root.user;
},
refreshData: function (search, options, model, that) {
console.log(search, options, model, that)
var process = options.templateOptions.ApiService.all("");
if (search) {
} else {
}
var postData = options.templateOptions.optionsPostData;
if (angular.isFunction(options.templateOptions.optionsPostData)) {
postData = options.templateOptions.optionsPostData(
options,
model,
that
);
}
if (options.templateOptions.modelreasondata) {
postData = options.templateOptions.modelreasondata;
}
if (options.templateOptions.isnosearch) {
return;
}
process
.customPOST(postData, options.templateOptions.optionsUrl)
.then(function (result) {
// if (!options.templateOptions.options) {
// options.templateOptions.options = [];
// }
// 过滤下拉列表已选择的值
var modelVal = $scope.model[$scope.options.key];
var ides = [];
var rList = result.list || result;
if ($scope.options.key == "serviceTypeIds") {
modelVal = modelVal.map(function (v) {
if (typeof v !== 'object') {
return { id: v };
} else {
return v;
}
})
}
for (var i = 0; i < modelVal.length; i++) {
for (var j = 0; j < rList.length; j++) {
if (rList[j].id == modelVal[i].id) {
ides.push(rList[j].id);
}
}
}
ides.forEach(function (v1) {
rList.forEach(function (v2) {
if (v1 == v2.id) {
rList = rList.filter(v => v.id != v2.id);
}
})
})
options.templateOptions.options = rList;
// if (options.templateOptions.optionsDataKey) {
// options.templateOptions.options =
// result[options.templateOptions.optionsDataKey];
// } else {
// options.templateOptions.options = result;
// }
if (options.templateOptions.optionsChecked) {
// return options.value = null;
options.value(options.model[options.key]);
}
});
},
refreshDelay: 0,
// },
// validators: {
// required: {
// expression: function(viewValue, modelValue) {
// var value = modelValue || viewValue;
// // return value.length>=1;
// // if (modelValue && viewValue) {
// // return value != null;
// // } else {
// // var value = modelValue || viewValue;
// // return value.length > 0;
// // }
// }
// }
},
};
},
controller: [
"$scope",
function ($scope) {
if (angular.isArray($scope.model[$scope.options.key])) {
} else {
$scope.model[$scope.options.key] = [];
}
},
],
});
//下拉树形多选组件
formlyConfigProvider.setType({
name: "ui-multiselect-tree",
extends: "multiCheckbox",
templateUrl: "assets/views/customform/tpl/ui-multi-select-tree.html",
defaultOptions: function (options) {
return {
templateOptions: {
linkage: function (modelName, data, model, modelKey, key) {
angular.extend(data, {
idx: 0,
sum: 10,
});
options.templateOptions.APIService.fetchDataList(
modelName,
data
).then(function (response) {
var myData =
options.templateOptions.Restangular.stripRestangular(response);
var list = myData.list;
if (list.length == 1) {
angular.forEach(model.fields, function (item) {
angular.forEach(model.fields, function (item) {
if (item.templateOptions.pkey == modelKey + "." + key) {
item.model.id = "";
if (key == "place") {
item.templateOptions.options = list;
} else {
item.value(list[0][key][item.key]);
}
}
});
});
}
});
},
// my_tree_handler : function(items) {
// },
// onFilterCallback : function(items) {
// },
// onFilterCallback : function(items) {
// },
refresh: function (items) {
var treedata = [];
function convertListToTree(data, treeMap) {
treedata = data;
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data.length; j++) {
if (data[i].pid && data[i].id && data[i].pid != 0) {
if (data[i].pid == data[j].id) {
data[i].parent = data[j];
}
}
}
}
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?
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;
}
function convertParentToChildList(data) {
// console.log("data="+JSON.stringify(data))
var treeMap = {};
var list = [];
convertListToTree(data, treeMap);
angular.forEach(treeMap, function (item) {
list.push(item);
});
return list;
}
function selectItem(pmodel, childrens) {
if (angular.isArray(pmodel)) {
angular.forEach(pmodel, function (index) {
if (index && index.id) {
angular.forEach(childrens, function (item) {
if (item.id == index.id) {
item.selected = true;
}
if (item && item.children) {
selectItem(pmodel, item.children);
}
});
}
});
} else {
if (pmodel && pmodel.id) {
angular.forEach(childrens, function (item) {
if (item.id == pmodel.id) {
item.selected = true;
}
if (item && item.children) {
selectItem(pmodel, item.children);
}
});
}
}
}
// if(angular.isUndefined(options.model[options.key])||options.model[options.key]==null){
options.templateOptions
.refreshData(options.templateOptions.APIService)
.then(function (result) {
if (result.status == 200) {
if (!options.templateOptions.options) {
options.templateOptions.options = [];
}
if (options.templateOptions.optionsDataKey) {
options.templateOptions.options = convertParentToChildList(
result[options.templateOptions.optionsDataKey]
);
} else {
options.templateOptions.options =
convertParentToChildList(result);
}
//set default value
var pmodel,
i = 0;
if (options.templateOptions.pkey) {
if (options.templateOptions.pkey.indexOf(".") > 0) {
angular.forEach(
options.templateOptions.pkey.split("."),
function (p) {
if (i == 0) {
if (options.model[p] == null) {
options.model[p] = {};
}
pmodel = options.model[p];
i++;
} else {
if (pmodel[p] == null) {
pmodel[p] = {};
}
pmodel = pmodel[p];
}
}
);
} else {
pmodel = options.model;
}
}
if (pmodel) {
pmodel = pmodel[options.key];
} else if (options.model) {
pmodel = options.model[options.key];
} else {
pmodel = options.templateOptions.options;
}
if (angular.isArray(pmodel)) {
if (pmodel) {
// if(options.templateOptions.isMultiSelect==true){
// options.templateOptions.refreshData(options.templateOptions.APIService).then(function(rep){
// selectParent(pmodel,rep[options.templateOptions.optionsDataKey]);
// })
// }else{
selectItem(pmodel, options.templateOptions.options);
// }
}
} else {
if (pmodel && pmodel.id) {
selectItem(pmodel, options.templateOptions.options);
}
}
items.inputModel = options.templateOptions.options;
}
});
},
},
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
if (angular.isArray(value)) {
for (var i = 0; i < value.length; i++) {
value[i] = {
id: value[i].id,
};
}
return value.length > 0;
} else {
// console.log(options)
// return value = "true";
return value != null;
}
},
},
},
};
},
controller: [
"$scope",
"api_configure_form",
function ($scope, api_configure_form) {
if ($scope.options.templateOptions.isMultiSelect) {
// console.log($scope);
} else {
if ($scope.model[$scope.options.key]) {
}
}
},
],
});
//多选下拉框组件
formlyConfigProvider.setType({
name: "ui-multi-select-tree",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-multi-select-tree.html",
defaultOptions: function (options,scope) {
return {
templateOptions: {
linkage: function (modelName, data, model, modelKey, key) {
angular.extend(data, {
idx: 0,
sum: 10,
});
options.templateOptions.APIService.fetchDataList(
modelName,
data
).then(function (response) {
var myData =
options.templateOptions.Restangular.stripRestangular(response);
var list = myData.list;
if (list.length == 1) {
angular.forEach(model.fields, function (item) {
angular.forEach(model.fields, function (item) {
if (item.templateOptions.pkey == modelKey + "." + key) {
item.model.id = "";
if (key == "place") {
item.templateOptions.options = list;
} else {
item.value(list[0][key][item.key]);
}
}
});
});
}
});
},
getparentdata: function (items) {
// console.log(items)
},
refresh: function (items, search, fn) {
console.log(items, options);
var treedata = [];
function convertListToTree(data, treeMap) {
console.log(data, treeMap)
treedata = data;
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data.length; j++) {
if (data[i].pid && data[i].id && data[i].pid != 0) {
if (data[i].pid == data[j].id) {
data[i].parent = data[j];
}
}
// if (data[i].id) {
// if (data[i].id== data[j].id) {
// data[i].parent = data[j];
// }
// }
}
}
var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup
var root = []; //Initially set our loop to null
if (search == "search" && items.filterKeyword) {
function transform(nodes) {
var treeConverter = {
result: null, //转化后的结果,是根节点,所有节点都是从根节点长出来的
attributeName: "id", //节点唯一标识符
needFind: true, //是否查询节点在result中已经存在,为了优化效率
transform: function (node) {
//转化递归函数,参数:一个待插入节点
if (node.parent != null) {
//该节点有父节点
var newNode = this.transform(node.parent); //递归进入,返回值为一个节点,用作父节点,该父节点必然存在于result中,这点由下面的算法可以控制
if (this.needFind) {
for (var i = 0; i < newNode.children.length; i++) {
//查找要插入的node子节点是否在newNode这个父节点中存在
if (
newNode.children[i][this.attributeName] ===
node[this.attributeName]
) {
return newNode.children[i]; //存在的话直接返回newNode父节点内的该子节点,该子节点必然存在于result中,作为返回值它将被用作上级递归的newNode,因此newNode必然存在于result中
}
}
}
this.needFind = false; //不存在的话,关闭之后递归的循环判断,因为待插入node节点不存在于result中,故而它的子节点一定不存在于result中,不用再循环判断
// delete node.parent; //删除该节点的parent属性,如果有的话
node.children = []; //因为确定是要新插入的节点,没有children:[]属性,故给该节点增加children:[]属性
newNode.children.push(node); //将该node节点push进newNode的子节点数组中
return node; //return该新插入节点,作为递归返回值给上层,用作newNode父节点,node存在于result中故newNode存在于result中
} else if (node.parent == null) {
//该叶节点没有父节点,即为根节点
// delete node.parent; //删除该节点的parent属性,如果有的话
if (this.result == null) {
//根节点不存在
node.children = []; //给该节点增加children:[]属性
return (this.result = node); //该节点赋给result,并return根节点,作为返回值它将被用作上级递归的newNode,因此newNode必然存在于result中
} else {
node.children = [];
// 顶级去重
for (
var i = 0;
i < this.result.children.length;
i++
) {
if (
this.result.children[i][this.attributeName] ===
node[this.attributeName]
) {
return this.result.children[i];
}
}
this.result.children.push(node);
return node; // 直接return根节点,作为返回值它将被用作上级递归的newNode,因此newNode必然存在于result中
}
}
},
getWhole: function (nodes, attributeName) {
//传入整个叶子节点数组,attributeName作为节点唯一标识符属性,返回整个转化结果
var _node = {};
_node.children = [];
this.result = _node; //重置根节点
this.attributeName =
attributeName == null ? "id" : attributeName; //唯一标识符默认为“id”
nodes = JSON.parse(JSON.stringify(nodes)); //复制出一个新的节点对象作为参数,保证不改变原有数据
nodes.forEach((item) => {
//循环调用转化方法
this.needFind = true; //重置开启节点是否已存在判断,保证不插入重复节点
this.transform(item);
});
return this.result; //返回根节点
},
};
var result = treeConverter.getWhole(nodes); //调用
return result;
}
var li = transform(data).children;
// li=[...new Set(li)]
console.log(li);
treeMap = li;
fn(li);
return li;
} else {
//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?
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);
}
}
}
console.log(root);
return root;
}
function convertParentToChildList(data) {
var treeMap = {};
var list = [];
if (search == "search" && items.filterKeyword) {
var lis = convertListToTree(data, treeMap);
return lis;
} else {
if (data[0] && data[0].orders) {
list = data;
} else {
convertListToTree(data, treeMap);
angular.forEach(treeMap, function (item) {
// console.log("item="+JSON.stringify(item))
list.push(item);
});
}
console.log(list);
return list;
}
}
function selectItem(pmodel, childrens) {
if (angular.isArray(pmodel)) {
angular.forEach(pmodel, function (index) {
if (index && index.id) {
angular.forEach(childrens, function (item) {
if (item.id == index.id) {
item.selected = true;
}
if (item && item.children) {
selectItem(pmodel, item.children);
}
});
// angular.forEach(treedata,function(parentdata){
// if(parentdata.id == index.id){
// if(parentdata.parent&&parentdata.parent.id){
// parentdata.parent.$
// }
// item.selected = true;
// }
// if (item && item.children) {
// selectItem(pmodel ,item.children);
// }
// });
}
});
} else {
if (pmodel && pmodel.id) {
angular.forEach(childrens, function (item, index) {
if (item.id == pmodel.id) {
item.selected = true;
// delete item.children;
}
if (item && item.children) {
selectItem(pmodel, item.children);
}
});
}
}
}
function selectItemchild(pmodel, childrens) {
if (angular.isArray(pmodel)) {
angular.forEach(pmodel, function (index) {
if (index && index.id) {
angular.forEach(childrens, function (item) {
if (item.id == index.id) {
item.selected = true;
}
if (item && item.children) {
selectItem(pmodel, item.children);
}
});
}
});
} else {
if (pmodel && pmodel.id) {
angular.forEach(childrens, function (item, index) {
if (item.id == pmodel.id) {
item.selected = true;
childrens[index].selected = true;
}
if (item && item.children) {
selectItem(pmodel, item.children);
}
});
}
}
}
// if(angular.isUndefined(options.model[options.key])||options.model[options.key]==null){
if (search === "search" && items.filterKeyword) {
// bala:树形模糊搜索
options.templateOptions
.bala(options.templateOptions.APIService, items.filterKeyword)
.then(function (result) {
result.list = [...new Set(result.list)]; //去重
if (!options.templateOptions.options) {
options.templateOptions.options = [];
}
if (options.templateOptions.optionsDataKey) {
options.templateOptions.options = convertParentToChildList(
result[options.templateOptions.optionsDataKey]
);
} else {
options.templateOptions.options =
convertParentToChildList(result);
}
//set default value
var pmodel,
i = 0;
if (
options.templateOptions.pkey ||
options.templateOptions.pkey != ""
) {
if (options.templateOptions.pkey.indexOf(".") > 0) {
angular.forEach(
options.templateOptions.pkey.split("."),
function (p) {
if (i == 0) {
if (options.model[p] == null) {
options.model[p] = {};
}
pmodel = options.model[p];
i++;
} else {
if (pmodel[p] == null) {
pmodel[p] = {};
}
pmodel = pmodel[p];
}
}
);
} else {
pmodel = options.model;
}
}
var topdata = angular.copy(options.templateOptions.options);
if (pmodel) {
pmodel = pmodel[options.key];
} else if (options.model) {
pmodel = options.model[options.key];
}
if (angular.isArray(pmodel)) {
if (pmodel) {
items.inputModel = angular.copy(
options.templateOptions.options
);
selectItem(pmodel, options.templateOptions.options);
}
} else {
if (pmodel && pmodel.id) {
items.inputModel = angular.copy(
options.templateOptions.options
);
selectItem(pmodel, options.templateOptions.options);
} else {
// items.inputModel = options.templateOptions.options;
}
}
// items.inputModel = options.templateOptions.options;
items.selectModel = options.templateOptions.options;
// 可在此展开
if (!items.inputModel) {
items.inputModel = items.selectModel;
} else {
selectItemchild(pmodel, items.inputModel);
// for (var i = 0; i < items.inputModel.length; i++) {
// items.inputModel[i].
// for (var j = 0; j < items.selectModel.length; j++) {
// if (items.selectModel[j].id == items.inputModel[i].id) {
// items.inputModel[i].selected = true;
// }
// }
// }
}
return items.inputModel;
// options.templateOptions.options = angular.copy(topdata);
// console.log(model);
// console.log(options);
});
} else {
options.templateOptions
.refreshData(options.templateOptions.APIService,scope.$root.user)
.then(function (result) {
//回显故障现象,带出绑定的人或组start caocao
if (options.templateOptions.onlyKey == 'cate_start' && items.$parent.originalModel.incident && items.$parent.originalModel.incident.category) {
console.log(result[options.templateOptions.optionsDataKey], items.$parent.model.category.id)
var item = result[options.templateOptions.optionsDataKey].find(function (v) {
return v.id == items.$parent.originalModel.incident.category.id;
})
console.log(item)//11615
if (item) {
items.$parent.originalModel.incident.branchType = item.branchType;
if(item.branchType == 0){
if (item.userOrGroupType === 1) {
items.$parent.originalModel.start_code = 'assignment';
items.$parent.originalModel.incident.handlerUser = { id: item.handleUser ? item.handleUser.id : undefined };
items.$parent.originalModel.directClose = true;
items.$parent.originalModel.isHandlerUser = false;
setTimeout(function () { items.$parent.originalModel.isHandlerUser = true; }, 0)
} else if (item.userOrGroupType === 2) {
items.$parent.originalModel.start_code = 'assignment';
items.$parent.originalModel.candidateGroups = item.group;
items.$parent.originalModel.directClose = true;
items.$parent.originalModel.isHandlerUser = false;
} else {
items.$parent.originalModel.start_code = 'close';
items.$parent.originalModel.directClose = false;
items.$parent.originalModel.isHandlerUser = false;
delete items.$parent.originalModel.candidateGroups;
delete items.$parent.originalModel.incident.handlerUser
}
}else if(item.branchType == 1){
items.$parent.originalModel.incident.branchUserGroups = item.branchUserGroups;
// items.$parent.originalModel.incident.area.id
options.templateOptions.APIService.fetchData('area',items.$parent.originalModel.incident.area.id).then(res=>{
console.log(res)
if(res.status == 200){
items.$parent.originalModel.incident.branchId = res.data.branch;
// res.data.branch
var branchUserGroup=item.branchUserGroups.find(v=>v.branchId==res.data.branch)||{};
if(branchUserGroup.branchUserOrGroupType==1){
items.$parent.originalModel.start_code='assignment';
items.$parent.originalModel.incident.handlerUser={id:branchUserGroup.userId?branchUserGroup.userId:undefined};
items.$parent.originalModel.directClose=true;
items.$parent.originalModel.isHandlerUser=false;
setTimeout(function(){items.$parent.originalModel.isHandlerUser=true;},0)
}else if(branchUserGroup.branchUserOrGroupType===2){
items.$parent.originalModel.start_code='assignment';
items.$parent.originalModel.candidateGroups=branchUserGroup.groupId?branchUserGroup.groupId:undefined;
items.$parent.originalModel.directClose=true;
items.$parent.originalModel.isHandlerUser=false;
}else{
items.$parent.originalModel.start_code='close';
items.$parent.originalModel.directClose=false;
items.$parent.originalModel.isHandlerUser=false;
delete items.$parent.originalModel.candidateGroups;
delete items.$parent.originalModel.incident.handlerUser
}
}
})
}
}
}
//回显故障现象,带出绑定的人或组end
if (!options.templateOptions.options) {
options.templateOptions.options = [];
}
if(options.templateOptions.uuKey == 'knowledge_leve.dutyDepartment'){
let data = result[options.templateOptions.optionsDataKey];
for (var i = 0; i < data.length; i++) {
data[i].parent = {id: -data[i].branch, name: data[i].branchName};
data[i].name = data[i].dept;
}
var parentList = []
var idToNodeMap = {}
for (var i = 0; i < data.length; i++) {
idToNodeMap[data[i].parent.id] = [];
parentList.push(data[i].parent);
}
let map = new Map();
for (let item of parentList) {
if (!map.has(item.id)) {
map.set(item.id, item);
};
};
parentList = [...map.values()];
// console.log(parentList);
console.log(data);
//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
if(idToNodeMap[datum.parent.id]){
idToNodeMap[datum.parent.id].push(JSON.parse(JSON.stringify(datum)));
}
//Does this node have a parent?
}
for (let key in idToNodeMap) {
let index = parentList.findIndex(v => v.id == key);
if (index > -1) {
parentList[index].children = idToNodeMap[key];
};
};
console.log(parentList)
options.templateOptions.options = parentList;
}else{
if (options.templateOptions.optionsDataKey) {
options.templateOptions.options = convertParentToChildList(
result[options.templateOptions.optionsDataKey]
);
} else {
options.templateOptions.options =
convertParentToChildList(result);
}
}
//set default value
var pmodel,
i = 0;
if (
options.templateOptions.pkey ||
options.templateOptions.pkey != ""
) {
if (options.templateOptions.pkey.indexOf(".") > 0) {
angular.forEach(
options.templateOptions.pkey.split("."),
function (p) {
if (i == 0) {
if (options.model[p] == null) {
options.model[p] = {};
}
pmodel = options.model[p];
i++;
} else {
if (pmodel[p] == null) {
pmodel[p] = {};
}
pmodel = pmodel[p];
}
}
);
} else {
pmodel = options.model;
}
}
var topdata = angular.copy(options.templateOptions.options);
if (pmodel) {
pmodel = pmodel[options.key];
} else if (options.model) {
pmodel = options.model[options.key];
}
if (angular.isArray(pmodel)) {
if (pmodel) {
items.inputModel = angular.copy(
options.templateOptions.options
);
selectItem(pmodel, options.templateOptions.options);
}
} else {
if (pmodel && pmodel.id) {
items.inputModel = angular.copy(
options.templateOptions.options
);
selectItem(pmodel, options.templateOptions.options);//baba
} else {
// items.inputModel = options.templateOptions.options;
}
}
// items.inputModel = options.templateOptions.options;
items.selectModel = options.templateOptions.options;
if (!items.inputModel) {
items.inputModel = items.selectModel;
} else {
selectItemchild(pmodel, items.inputModel);
// for (var i = 0; i < items.inputModel.length; i++) {
// for (var j = 0; j < items.selectModel.length; j++) {
// if (items.selectModel[j].id == items.inputModel[i].id) {
// items.inputModel[i].selected = true;
// }
// }
// }
}
// options.templateOptions.options = angular.copy(topdata);
// console.log(model);
// console.log(options);
});
}
},
},
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
if (angular.isArray(value)) {
return value.length > 0;
} else {
// console.log(options)
if (options.templateOptions.required && !value) {
// return value != null;
} else {
return value;
}
// return value = "true";
}
},
},
},
};
},
controller: [
"$scope",
"$rootScope",
"api_configure_form",
"api_bpm_domain",
"api_category",
function ($scope, $rootScope, api_configure_form, api_bpm_domain, api_category) {
// // 知识库-责任科室
// if ($scope.to.uuKey === 'knowledge_leve.dutyDepartment') {
// //处理远程获取数据控件方法调用
// $scope.to.refresh = function(searchVal){
// api_category.getOwnDuty({}).then(function(res){
// if (!$scope.to.options) {
// $scope.to.options = res.data || [];
// }
// })
// };
// }
$rootScope.checkClicked = function (item) {
angular.forEach($scope.to.options, function (itemone) {
if (!item.parent) {
if (item.id == itemone.id) {
// itemone.isExpanded = true;
} else {
itemone.isExpanded = false;
}
} else {
if (item.parent.id == itemone.id) {
angular.forEach(itemone.children, function (itemtwo) {
if (item.id == itemtwo.id) {
} else {
itemtwo.isExpanded = false;
}
});
}
}
});
// 故障现象带出优先级对应的事件工单信息(预计响应时间,解决时间,逾期时间)
console.log($scope, "gsm");
if (
$scope.originalModel &&
$scope.originalModel.incident &&
item.category &&
(!item.children || !item.children.length) &&
item.priority &&
item.priority.id
) {
api_bpm_domain
.expectedTime("L" + (item.priority.id - 1559))
.then(function (res) {
$scope.originalModel.incident.expectResponseTime =
res.serviceLevelAgreement.responseTime;
$scope.originalModel.incident.expectIntroTime =
res.serviceLevelAgreement.resolveTime;
$scope.originalModel.incident.overdueTime = res.date;
});
// $scope.$parent.$parent.$parent.model['knowledgeShow'] = false;
// setTimeout(() => {
// $scope.$parent.$parent.$parent.model['knowledgeShow'] = true;
// }, 500);
// console.log($scope.$parent.$parent.$parent)
}
};
if ($scope.options.templateOptions.isMultiSelect) {
// console.log($scope);
} else {
if ($scope.model[$scope.options.key]) {
}
}
// $scope.options.templateOptions.onDataCallback=function(item,selectItems,options, field, model){
// console.log(item)
// // if(){
// // }
// // $scope.model[$scope.options.key]=item.id;
// api_configure_form.renderTabForm(item.prefix).then(function(data){
// $scope.propTypeOptions = data;
// });
// }
// $scope.model[$scope.options.key]=[];
// $scope.fn
$rootScope.bala1 = function (items, fn) {
// $scope.fn = fn;
console.log(items);
// console.log($scope.options.templateOptions.refresh(items, 'search', fn))
$scope.options.templateOptions.refresh(items, "search", fn);
// $scope.options.templateOptions.bala($scope.options.templateOptions.APIService,items.filterKeyword).then(function(res){
// // return res.list;
// console.log(666)
// fn(res.list)
// })
};
},
],
});
//勾选组件
formlyConfigProvider.setType({
name: "ui-checkbox",
extends: "checkbox",
templateUrl: "assets/views/customform/tpl/ui-checkbox.html",
controller: [
"$scope",
function ($scope) {
console.log($scope)
if($scope.options.templateOptions.isTrue){
//是否默认打开
$scope.model[$scope.options.key] = true;
}
// 巡检生成事件,默认派单
if ($scope.model.isInspection) {
$scope.model[$scope.options.key] = true;
}
if ($scope.model[$scope.options.key] == "true") {
$scope.model[$scope.options.key] = true;
}
if ($scope.model[$scope.options.key] == "false") {
$scope.model[$scope.options.key] = false;
}
},
],
});
//勾选组件(禁用)--yeye
formlyConfigProvider.setType({
name: "ui-checkbox-disabled",
extends: "checkbox",
templateUrl: "assets/views/customform/tpl/ui-checkbox-disabled.html",
controller: [
"$scope",
function ($scope) {
// 巡检生成事件,默认派单
// if ($scope.model.isInspection) {
// $scope.model[$scope.options.key] = true;
// }
// if ($scope.model[$scope.options.key] == "true") {
// $scope.model[$scope.options.key] = true;
// }
// if ($scope.model[$scope.options.key] == "false") {
// $scope.model[$scope.options.key] = false;
// }
},
],
});
//换行组件
formlyConfigProvider.setType({
name: "ui-nextLine",
/*extends: 'input',*/
template: "
",
});
//多选框组件
formlyConfigProvider.setType({
name: "ui-checklist",
extends: "multiCheckbox",
templateUrl: "assets/views/customform/tpl/ui-checklist.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () { },
refreshDelay: 0,
},
};
},
});
//单选框组件
formlyConfigProvider.setType({
name: "ui-radio",
extends: "radio",
templateUrl: "assets/views/customform/tpl/ui-radio.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function () {},
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"api_wechatfile",
function ($scope,api_wechatfile) {
// 新增巡检计划-巡检方式baba
if($scope.to.onlyKey === 'onlineType'){
api_wechatfile.getDictionary($scope.to.modelreasondata).then(function (result) {
$scope.to.options = result;
if(!$scope.model[$scope.options.key]){
$scope.model[$scope.options.key] = result[0]?result[0].id:null;
}
});
}
// 巡检生成事件,默认派单
if ($scope.model.isInspection) {
$scope.model[$scope.options.key] = true;
// $scope.model.isHandlerUser=true;
$scope.model.start_code = "assignment";
console.log($scope.model);
}
//多次暂存配置
// console.log($scope);
if ($scope.model.saveAgain) {
if (
$scope.model.directClose == "1" ||
$scope.model.directClose == true
) {
$scope.model[$scope.options.key] = true;
// if($scope.model.incident.handlingPersonnelUser){
// delete $scope.model.incident.handlingPersonnelUser;
// };
if ($scope.model.incident.handleDescription) {
delete $scope.model.incident.handleDescription;
}
if ($scope.model.incident.closecode) {
delete $scope.model.incident.closecode;
}
if ($scope.model.incident.degree) {
delete $scope.model.incident.degree;
}
} else {
$scope.model.incident.handlingPersonnelUser =
$scope.model.incident.acceptUser;
$scope.model[$scope.options.key] = false;
}
}
},
],
});
//文本域组件
formlyConfigProvider.setWrapper({
name: "validation",
types: ["ui-textarea"],
template:
'{{message(fc.$viewValue, fc.$modelValue, this)}}
',
});
formlyConfigProvider.setType({
name: "ui-textarea",
extends: "textarea",
templateUrl: "assets/views/customform/tpl/ui-textarea.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
maxlength: function (viewValue, modelValue, scope) {
if (viewValue != null) {
if (viewValue.length > scope.to.maxlength) {
return (
scope.to.label +
" 字数(" +
viewValue.length +
")超限(" +
scope.to.maxlength +
")"
);
} else {
return "";
}
}
},
},
},
};
},
controller: [
"$scope",
function ($scope) {
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
if (angular.isFunction($scope.options.templateOptions.felditem)) {
$scope.options.templateOptions.felditem($scope);
}
},
],
});
// div版的textarea(展示富文本框内容用)
formlyConfigProvider.setType({
name: "ui-divTextarea",
extends: "textarea",
templateUrl: "assets/views/customform/tpl/ui-divTextarea.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
// maxlength: function (viewValue, modelValue, scope) {
// if (viewValue != null) {
// if (viewValue.length > scope.to.maxlength) {
// return scope.to.label + ' 字数(' + viewValue.length + ')超限(' + scope.to.maxlength + ')'
// } else {
// return "";
// }
// }
// },
},
},
};
},
controller: [
"$scope",
function ($scope) {
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
if (angular.isFunction($scope.options.templateOptions.felditem)) {
$scope.options.templateOptions.felditem($scope);
}
},
],
});
// 带有知识库引用的textarea
formlyConfigProvider.setType({
name: "ui-textAreaKnowledge",
// extends: 'textarea',
templateUrl: "assets/views/customform/tpl/ui-textAreaKnowledge.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
maxlength: function (viewValue, modelValue, scope) {
if (viewValue != null) {
if (viewValue.length > scope.to.maxlength) {
return (
scope.to.label +
" 字数(" +
viewValue.length +
")超限(" +
scope.to.maxlength +
")"
);
} else {
return "";
}
}
},
},
},
};
},
controller: [
"$scope",
"$rootScope",
"$modal",
"SweetAlert",
"api_bpm_data",
"api_bpm_domain",
"api_solution",
"$aside",
"api_zsk",
"up_down_file",
"api_wechatfile",
function (
$scope,
$rootScope,
$modal,
SweetAlert,
api_bpm_data,
api_bpm_domain,
api_solution,
$aside,
api_zsk,
up_down_file,
api_wechatfile
) {
// console.log($scope);
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
if (angular.isFunction($scope.options.templateOptions.felditem)) {
$scope.options.templateOptions.felditem($scope);
}
// 引用知识库点击
$scope.openSolution = function () {
$scope.$parent.$parent.$parent.model["knowledgeShow"] = false;
setTimeout(() => {
$scope.$parent.$parent.$parent.model["knowledgeShow"] = true;
}, 100);
};
},
],
});
//常用语句选择textarea
formlyConfigProvider.setType({
name: "ui-textselect",
extends: "textarea",
templateUrl: "assets/views/customform/tpl/ui-textselect.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
maxlength: function (viewValue, modelValue, scope) {
if (viewValue != null) {
if (viewValue.length > scope.to.maxlength) {
return (
scope.to.label +
" 字数(" +
viewValue.length +
")超限(" +
scope.to.maxlength +
")"
);
} else {
return "";
}
}
},
},
},
};
},
controller: [
"$scope",
function ($scope) {
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
},
],
});
//改动的组件 ckeditor封装后的组件
formlyConfigProvider.setType({
name: "ui-text-check",
extends: "textarea",
templateUrl: "assets/views/customform/tpl/ui-text-check.html",
defaultOptions: function (options) {
return {
templateOptions: {
extraPlugins: "uploadimage",
uploadimageConfig: {
backend: "basic",
settings: {
uploadUrl:
options.templateOptions.APIService.upload().getRequestedUrl(),
headers: "",
downloadUrl:
options.templateOptions.APIService.uploadResponseUri().getRequestedUrl(),
},
},
refresh: function (APIService, contentId, data) {
return APIService.fetchDataList(contentId, data);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(contentId).getRequestedUrl();
},
upload: function (APIService, contentId) {
return APIService.getSolutionDowpath(contentId);
},
view: function (attachmentId) {
// return APIService.attachmentsPreviewUrl(contentId);
},
refreshDelay: 0,
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
maxlength: function (viewValue, modelValue, scope) {
if (viewValue != null) {
if (viewValue.length > scope.to.maxlength) {
return (
scope.to.label +
" 字数(" +
viewValue.length +
")超限(" +
scope.to.maxlength +
")"
);
} else {
return "";
}
}
},
},
},
};
},
controller: [
"$scope",
"$rootScope",
function ($scope, $rootScope) {
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
$scope.options.templateOptions.uploadimageConfig.settings.headers =
$rootScope.getSession();
//var expiry={'expiry':14804244006};
//angular.extend($scope.options.templateOptions.uploadimageConfig.settings.headers,expiry)
//$scope.options.templateOptions.uploadimageConfig.settings.headers
$scope.upload = function (contentId, filename) {
var filename = filename;
$scope.options.templateOptions
.upload($scope.options.templateOptions.ApiService, contentId)
.then(function (response) {
var file = new Blob([response], {
type: "application/octet-stream",
});
// var filename = filename;
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
});
};
},
],
});
//改动的组件 ckeditor封装后的附文本组件
formlyConfigProvider.setType({
name: "ui-fuwenben",
extends: "textarea",
templateUrl: "assets/views/customform/tpl/ui-fuwenben.html",
defaultOptions: function (options) {
return {
templateOptions: {
allowedContent: "img[!src]", //允许展示源码的标签,否则会被富文本框强制删除
extraPlugins: "uploadimage",
uploadimageConfig: {
backend: "basic",
settings: {
uploadUrl:
options.templateOptions.APIService.upload(
-110
).getRequestedUrl(),
headers: "",
downloadUrl:
options.templateOptions.APIService.uploadResponseUri(),
},
},
refresh: function (APIService, contentId, data) {
return APIService.fetchDataList(-110, data);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(-110).getRequestedUrl();
},
upload: function (APIService, contentId) {
return APIService.getSolutionDowpath(-110);
},
view: function (attachmentId) {
// return APIService.attachmentsPreviewUrl(contentId);
},
refreshDelay: 0,
transform: function (model, value) {
return value;
},
},
validation: {
messages: {
maxlength: function (viewValue, modelValue, scope) {
if (viewValue != null) {
if (viewValue.length > scope.to.maxlength) {
return (
scope.to.label +
" 字数(" +
viewValue.length +
")超限(" +
scope.to.maxlength +
")"
);
} else {
return "";
}
}
},
},
},
};
},
controller: [
"$scope",
"$rootScope",
function ($scope, $rootScope) {
var value = $scope.model[$scope.options.key];
if (angular.isFunction($scope.options.templateOptions.transform)) {
$scope.model[$scope.options.key] =
$scope.options.templateOptions.transform(
$scope.originalModel,
value
);
}
$scope.options.templateOptions.uploadimageConfig.settings.headers =
$rootScope.getSession();
//var expiry={'expiry':14804244006};
//angular.extend($scope.options.templateOptions.uploadimageConfig.settings.headers,expiry)
//$scope.options.templateOptions.uploadimageConfig.settings.headers
$scope.upload = function (contentId, filename) {
var filename = filename;
$scope.options.templateOptions
.upload($scope.options.templateOptions.ApiService, -110)
.then(function (response) {
var file = new Blob([response], {
type: "application/octet-stream",
});
// var filename = filename;
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
});
};
},
],
});
//ui-grid展示控件
formlyConfigProvider.setType({
name: "ui-grid-show",
extends: "multiCheckbox",
templateUrl: "assets/views/customform/tpl/ui-grid-show.html",
defaultOptions: function (options,scope) {
return {
templateOptions: {
linkage: function () { },
getScope: function () {
return scope;
},
},
};
},
controller: function (
$scope,
$rootScope,
i18nService,
Restangular,
api_bpm_data
) {
var loginUser = $rootScope.user;
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
// $scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = true;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
//{"id":1,"phone":"15071189091","name":"管理员","gender":"男","flag":1,"email":"asda@qq.com","account":"000001","group":[{"id":3,"groupName":"运行监控科"}]}
$scope.gridOptions.columnDefs = [
// { name:'id', width:80, enableFiltering:false},
// { name: 'item', displayName: '序号', width: 50, enableFiltering: false },
// { name: 'inspectionDTO.title', displayName: '计划主题', width: 150, enableFiltering: false },
// { name: 'startDate', displayName: '巡检执行时间', width: 200, enableFiltering: false },
// { name: 'inspectionDTO.executeUser.name', displayName: '计划执行人', width: 100, enableFiltering: false },
// { name: 'inspectionDTO.createTime', displayName: '巡检创建时间', width: 200, enableFiltering: false },
{
name: "inspection.title",
displayName: "计划主题",
width: 120,
enableFiltering: false,
},
{
name: "sign",
displayName: "单号",
width: 140,
enableFiltering: false,
},
{
name: "inspectionType.type",
displayName: "巡检分类",
width: 200,
enableFiltering: false,
cellTemplate: '' +
'
{{row.entity.online?"线上巡检-":(row.entity.online===false?"线下巡检-":"")}}{{row.entity.inspectionType.type}}
' +
'
'
},
{
name: "stateName",
displayName: "状态",
width: 80,
enableFiltering: false,
},
{
name: "processUser.name",
displayName: "处理人/组",
width: 120,
enableFiltering: false,
cellTemplate: '' +
'
{{row.entity.processUser.name}}
' +
'
{{row.entity.group.groupName}}
' +
'
'
},
{
name: "startDate",
displayName: "开始时间",
width: 160,
enableFiltering: false,
},
{
name: "endTime",
displayName: "结束时间",
width: 160,
enableFiltering: false,
cellTemplate: '' +
'
{{row.entity.endTime?grid.appScope.transferTime(row.entity.endTime):""}}
' +
'
'
},
// {
// name: "batchNo",
// displayName: "批次号",
// width: 160,
// enableFiltering: false,
// },
];
var defaultFilterData = {
idx: 0,
sum: 10,
};
$scope.transferTime = function (time) {
return moment(time).format("YYYY-MM-DD HH:mm");
};
//分页控制
$scope.gridOptions.onRegisterApi = function (gridApi) {
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
$scope.refreshData("expand-right", filtersData);
}
);
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
data.grid.appScope.selected.items = data.entity;
});
};
//页面获取数据
$scope.refreshData = function (style, filterData) {
// $scope.ldloading[style.replace('-', '_')] = true;
console.log(angular.isUndefined(filterData))
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
$scope.myData = [];
console.log(filterData)
if(filterData.inspectionProcessActual && filterData.inspectionProcessActual.batchNo){
filterData.inspectionProcessActual = {
inspectionid: $scope.model.id,
batchNo:filterData.inspectionProcessActual.batchNo
}
}else{
filterData.inspectionProcessActual = {
inspectionid: $scope.model.id
}
}
// angular.extend(filterData, {
// inspectionProcessActual: {
// inspectionid: $scope.model.id,
// },
// });
console.log(filterData)
api_bpm_data.fetchDataList("inspectionProcessActual", filterData).then(
function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
$scope.myData = myData.list;
for (var i = 0; i < $scope.myData.length; i++) {
//添加序号
$scope.myData[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
}
// $scope.ldloading[style.replace('-', '_')] = false;
},
function () {
// $scope.ldloading[style.replace('-', '_')] = false;
}
);
};
$scope.refreshData("expand-right", defaultFilterData);
},
});
//文本框自定义选择面板组件
formlyConfigProvider.setType({
name: "ui-input-selectmodal",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-input-selectmodal.html",
defaultOptions: function (options) {
return {
templateOptions: {
openModal: function (size, options, modal) {
var modalInstance = modal.open({
templateUrl: "assets/views/customform/tpl/modal-content.html",
controller: "ModalInstanceCtrl", //'CustomformCtrl',//
size: size,
resolve: options.templateOptions.modalParam,
});
modalInstance.result.then(
function (selectedItem) {
options.value(selectedItem);
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
},
},
};
},
});
//日期控件
var datepicker_attr = [
"date-disabled",
"custom-class",
"show-weeks",
"starting-day",
"init-date",
"min-mode",
"max-mode",
"format-day",
"format-month",
"format-year",
"format-day-header",
"format-day-title",
"format-month-title",
"year-range",
"shortcut-propagation",
"datepicker-popup",
"show-button-bar",
"current-text",
"clear-text",
"close-text",
"close-on-date-selection",
"datepicker-append-to-body",
];
var datepicker_bindings = ["datepicker-mode", "min-date", "max-date"];
formlyConfigProvider.setType({
name: "ui-datetime",
templateUrl: "assets/views/customform/tpl/ui-datetime.html",
extends: "input",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: {
ngModelAttrs: getNgModelAttr(datepicker_attr, datepicker_bindings),
templateOptions: {
datepickerPopup: "yyyy-MM-dd HH:mm:ss",
},
},
controller: [
"$scope",
"$filter",
function ($scope, $filter) {
$scope.model[$scope.options.key] = $filter("date")(
new Date(),
$scope.options.templateOptions.datepickerPopup
);
$scope.options.initialValue = $scope.model[$scope.options.key];
},
],
});
//日期控件
formlyConfigProvider.setType({
name: "ui-datepicker",
templateUrl: "assets/views/customform/tpl/ui-datepicker.html",
extends: "input",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: {
ngModelAttrs: getNgModelAttr(datepicker_attr, datepicker_bindings),
templateOptions: {
datepickerPopup: "yyyy-MM-dd HH:mm:ss",
},
},
controller: [
"$scope",
"$filter",
function ($scope, $filter) {
// $scope.mindata=new Date(new Date().getTime() + 24*60*60*1000);
if ($scope.model[$scope.options.key]) {
} else {
$scope.model[$scope.options.key] = $filter("date")(
new Date(),
$scope.options.templateOptions.datepickerPopup
);
}
$scope.options.initialValue = $scope.model[$scope.options.key];
$scope.endOpen = true;
$scope.datepicker = {};
$scope.datepicker.opened = false;
$scope.datepicker.open = function ($event) {
$scope.datepicker.opened = true;
};
},
],
});
//时分控件
formlyConfigProvider.setType({
name: "ui-datehourtime",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-datehourtime.html",
defaultOptions: function (options) {
return {
noFormControl: true,
// validators:{
// required:{
// expression:function(viewValue, modelValue){
// console.log(options)
// var value = modelValue.getHours().toString()+":"+modelValue.getMinutes().toString()+":"+"59"||viewValue.getHours().toString()+":"+viewValue.getMinutes().toString()+":"+"59"
// // var value = modelValue.getHours() || viewValue.getHours();
// return value.length>=1;
// }
// }
// }
};
},
controller: [
"$scope",
"$log",
function ($scope, $log) {
$scope.hstep = new Date(
Date.parse($scope.model[$scope.options.key])
).getHours();
$scope.minutes = new Date(
Date.parse($scope.model[$scope.options.key])
).getMinutes();
$scope.model[$scope.options.key] = new Date(
Date.parse($scope.model[$scope.options.key])
);
},
],
});
//状态追踪
formlyConfigProvider.setType({
name: "ui-followStatus",
templateUrl: "assets/views/customform/tpl/ui-followStatus.html",
controller: [
"$scope",
"api_bpm_data",
"Restangular",
function ($scope, api_bpm_data, Restangular) {
setTimeout(function () {
var pkey = $scope.options.templateOptions.pkey;
var dataId = $scope.model.id;
if (dataId) {
api_bpm_data.fetchData(pkey, dataId).then(function (response) {
if (response) {
var myData = Restangular.stripRestangular(response);
var processInstanceId = myData.data.processInstanceId;
$scope.options.templateOptions
.getData(
$scope.model,
$scope.options.templateOptions.ApiService,
processInstanceId
)
.then(function (result) {
if (result.status == 200) {
var newData = Restangular.stripRestangular(result);
$scope.followData = newData.data;
}
});
}
});
}
}, 10);
},
],
});
//状态追踪2-事件id
formlyConfigProvider.setType({
name: "ui-followStatus2",
templateUrl: "assets/views/customform/tpl/ui-followStatus2.html",
controller: [
"$scope",
"api_bpm_data",
"Restangular",
function ($scope, api_bpm_data, Restangular) {
setTimeout(function () {
var pkey = $scope.options.templateOptions.pkey;
var dataId = $scope.model.id;
if (dataId) {
api_bpm_data.fetchData(pkey, dataId).then(function (response) {
if (response) {
var myData = Restangular.stripRestangular(response);
var incidentId = myData.data.id;
$scope.options.templateOptions
.getData(
$scope.model,
$scope.options.templateOptions.ApiService,
incidentId
)
.then(function (result) {
if (result.status == 200) {
var newData = Restangular.stripRestangular(result);
$scope.followData = newData.list || [];
}
});
}
});
}
}, 10);
},
],
});
//维修记录
formlyConfigProvider.setType({
name: "ui-handlerLog",
templateUrl: "assets/views/customform/tpl/ui-handlerLog.html",
controller: [
"$scope",
"api_bpm_data",
"Restangular",
function ($scope, api_bpm_data, Restangular) {
console.log($scope, 'ui-handlerLog')
},
],
});
//资产
formlyConfigProvider.setType({
name: "ui-zc",
templateUrl: "assets/views/customform/tpl/ui-zc.html",
controller: [
"$scope",
"api_bpm_data",
"Restangular",
function ($scope, api_bpm_data, Restangular) {
console.log($scope, 'ui-zc');
$scope.wxIncidentWithCmdb = JSON.parse(sessionStorage.getItem("wxIncidentWithCmdb"));//资产
},
],
});
//绑定的耗材
formlyConfigProvider.setType({
name: "ui-hc",
templateUrl: "assets/views/customform/tpl/ui-hc.html",
controller: [
"$scope",
"api_cmdb2",
"Restangular",
function ($scope, api_cmdb2, Restangular) {
console.log($scope, 'ui-hc')
$scope.incidentWithConsumable = JSON.parse(sessionStorage.getItem("incidentWithConsumable"));//耗材
$scope.list = [];
var sjId = $scope.model.incident.id;
api_cmdb2.getHc(sjId).then(function (response) {
console.log(response)
if (response.status == 200) {
$scope.list = response.data;
}
})
},
],
});
//历史记录
formlyConfigProvider.setType({
name: "ui-history",
templateUrl: "assets/views/customform/tpl/ui-history.html",
controller: [
"$scope",
"api_bpm_data",
"Restangular",
function ($scope, api_bpm_data, Restangular) {
setTimeout(function () {
var pkey = $scope.options.templateOptions.pkey;
var dataId = $scope.model.id;
api_bpm_data.fetchData(pkey, dataId).then(function (response) {
if (response) {
var myData = Restangular.stripRestangular(response);
var processInstanceId = myData.data.processInstanceId;
$scope.options.templateOptions
.getData(
$scope.model,
$scope.options.templateOptions.ApiService,
processInstanceId
)
.then(function (result) {
if (result.status == 200) {
var newData = Restangular.stripRestangular(result);
var long = newData.data.length - 1;
$scope.followData = newData.data[long];
}
});
}
});
}, 10);
},
],
});
// //请求人信息显示
// formlyConfigProvider.setType({
// name: "ui-disrequester",
// templateUrl: 'assets/views/customform/tpl/ui-disrequester.html',
// wrapper: ['bootstrapLabel', 'bootstrapHasError'],
// defaultOptions: function(options) {
// return {
// templateOptions: {}
// };
// },
// controller: ['$scope', function($scope) {
// $scope.options.templateOptions.that = $scope;
// }]
// });
//退回人信息显示
formlyConfigProvider.setType({
name: "ui-returnperson",
templateUrl: "assets/views/customform/tpl/ui-returnperson.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
function ($scope) {
$scope.group = "";
$scope.role = "";
if (
angular.isDefined($scope.model.handlingPersonnelUser.group) &&
$scope.model.handlingPersonnelUser.group.length == 1
) {
$scope.group = $scope.model.handlingPersonnelUser.group[0].groupName;
} else {
for (
var i = 0;
i < $scope.model.handlingPersonnelUser.group.length;
i++
) {
$scope.group +=
$scope.model.handlingPersonnelUser.group[i].groupName + ",";
}
}
if (
angular.isDefined($scope.model.handlingPersonnelUser.role) &&
$scope.model.handlingPersonnelUser.role.length == 1
) {
$scope.role = $scope.model.handlingPersonnelUser.role[0].role;
} else {
for (
var i = 0;
i < $scope.model.handlingPersonnelUser.role.length;
i++
) {
$scope.role +=
$scope.model.handlingPersonnelUser.role[i].role + ",";
}
}
$scope.options.templateOptions.that = $scope;
$scope.options.templateOptions.that = $scope;
},
],
});
//退回人信息显示(去掉工作组&角色)
formlyConfigProvider.setType({
name: "ui-returnpersonNoGroup",
templateUrl: "assets/views/customform/tpl/ui-returnpersonNoGroup.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
function ($scope) {
$scope.group = "";
$scope.role = "";
if (
angular.isDefined($scope.model.handlingPersonnelUser.group) &&
$scope.model.handlingPersonnelUser.group.length == 1
) {
$scope.group = $scope.model.handlingPersonnelUser.group[0].groupName;
} else {
for (
var i = 0;
i < $scope.model.handlingPersonnelUser.group.length;
i++
) {
$scope.group +=
$scope.model.handlingPersonnelUser.group[i].groupName + ",";
}
}
if (
angular.isDefined($scope.model.handlingPersonnelUser.role) &&
$scope.model.handlingPersonnelUser.role.length == 1
) {
$scope.role = $scope.model.handlingPersonnelUser.role[0].role;
} else {
for (
var i = 0;
i < $scope.model.handlingPersonnelUser.role.length;
i++
) {
$scope.role +=
$scope.model.handlingPersonnelUser.role[i].role + ",";
}
}
$scope.options.templateOptions.that = $scope;
$scope.options.templateOptions.that = $scope;
},
],
});
//指派技术人员
formlyConfigProvider.setType({
name: "ui-apiontperson",
templateUrl: "assets/views/customform/tpl/ui-apiontperson.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {
transtlara: function (value, $scope) { },
},
};
},
controller: [
"$scope",
"api_user_data",
"Restangular",
function ($scope, api_user_data, Restangular) {
var filterData = {
idx: 0,
sum: 1000,
};
api_user_data
.fetchDataList("group", filterData)
.then(function (response) {
if (response.status == 200) {
$scope.select = {};
$scope.multipleDemo = {};
$scope.userdata = {};
var data = response.list;
var item = [];
$scope.multipleDemo = data;
$scope.multipleDemo;
}
});
$scope.options.templateOptions.onChange = function (
id,
options,
groupdata,
$event,
model
) {
if (groupdata.option) {
$scope.model[$scope.options.key] = {};
var fildate = {
idx: 0,
sum: 1000,
user: {
roledata: {
rolecode: model.currentRole,
},
selectType: "1",
groupdata: {
id: groupdata.option.id,
},
engineer: 1,
},
};
api_user_data
.fetchDataList("user", fildate)
.then(function (response) {
if (response.status == 200) {
$scope.userdata = {};
$scope.userdata = response.list;
}
});
} else {
$scope.model[$scope.options.key] = {
id: groupdata.id.id,
};
$scope.options.templateOptions.transtlara(
$scope.model[$scope.options.key],
$scope
);
}
};
// }
},
],
});
//请求科室信息(小蓝框) lmm
formlyConfigProvider.setType({
name: "ui-deptinformation",
templateUrl: "assets/views/customform/tpl/ui-deptinformation.html",
defaultOptions: function (options, $scope, $rootScope, api_statistic) {
return {
templateOptions: {
checkform: function (options) { },
},
};
},
controller: [
"$scope",
"api_statistic",
function ($scope, api_statistic) {
// console.log($scope)
},
],
});
//请求人信息
formlyConfigProvider.setType({
name: "ui-requesterinformation",
templateUrl: "assets/views/customform/tpl/ui-requesterinformation.html",
defaultOptions: function (options, $scope, $rootScope, api_statistic) {
return {
templateOptions: {
checkform: function (options) {
if (options.model.requester) {
options.value(options.model.requester);
}
},
addRequeter: function (size, options, modal, e) {
if (e) {
if (e.clientX === 0) {
return;
}
e.preventDefault();
}
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/modal-add-callrequester.html",
controller: function (
$scope,
sco,
$rootScope,
$modalInstance,
items,
SweetAlert,
title,
Restangular,
APIService,
UserService,
api_user_data,
api_statistic,
api_wechatfile,
$stateParams
) {
$modalInstance.SweetAlert = SweetAlert;
$scope.title = "新增报修人";
$scope.requester = {};
$scope.searchData = {};
$scope.isRoom = sessionStorage.getItem('ifRoom') == 1;
if (angular.isDefined($stateParams.model) && $stateParams.model != "") {
var paramsModel = JSON.parse($stateParams.model)
//来电-添加报修人-回显电话
if (paramsModel.model.incident.requester.hjzxPhone) {
$scope.requester.phone = paramsModel.model.incident.requester.hjzxPhone;
}
}
$scope.onChangeadd = function (searchData) {
$scope.searchKey = searchData.account;
// $scope.searchDataadd = searchData;
var requesdata = angular.copy(searchData);
if (requesdata.phone) {
delete requesdata.phone;
}
$scope.requester = requesdata;
console.log($scope.requester);
};
$scope.refreshUseradd = function (searchKey) {
//请求人搜索
$scope.requester.account = searchKey;
$scope.searchData = searchKey;
serchdataadd(searchKey);
};
$scope.getMydata = function (x) {
$scope.searchField = JSON.parse(x[0]).account;
$scope.requester = JSON.parse(x[0]);
console.log($scope.requester);
};
$scope.getMydataone = function (x) {
$scope.searchField = x;
$scope.requester.account = x;
};
serchdataadd();
api_wechatfile
.getDictionary({
type: "list",
key: "male",
})
.then(function (data) {
if (data.status == 200) {
requester.gender = data.list;
}
});
function serchdataadd(searchKey) {
if (searchKey) {
var filterData = {
user: {
name: searchKey,
selectType: "pinyin_all",
engineer: 0,
},
idx: 0,
sum: 10,
};
} else {
var filterData = {
idx: 0,
sum: 10,
user: {
engineer: 0,
},
};
}
api_user_data
.fetchDataList("user", filterData)
.then(function (response) {
var myData = response;
$scope.myData = myData.list;
});
}
api_user_data
.fetchDataList("area", {
idx: 0,
sum: 1000,
})
.then(function (response) {
if (response.status == 200) {
$scope.areas = response.list;
}
});
api_wechatfile
.getDictionary(
{
key: "requester_type",
type: "list",
},
{
idx: 0,
sum: 100,
}
)
.then(function (response) {
if (response) {
$scope.networktypes = response;
}
});
$scope.requesterAreaid = "";
$scope.onChange = function (item) {
$scope.requesterAreaid = item.id;
api_user_data
.fetchDataList("place", {
place: {
area: {
id: item.id,
},
},
idx: 0,
sum: 1000,
})
.then(function (response) {
if (response.status == 200) {
$scope.places = response.list;
delete $scope.requester.placeDTO;
}
});
};
// 修改地点
$scope.requesterPlaceid = "";
$scope.onChangePlace = function (item) {
$scope.requesterPlaceid = item.id;
api_user_data
.fetchDataList("room", {
room: {
place: {
id: item.id,
},
},
idx: 0,
sum: 1000,
})
.then(function (response) {
if (response.status == 200) {
$scope.rooms = response.list;
}
});
};
$scope.refresh = function (searchVal) {
var faildata = {};
if ($scope.requesterAreaid) {
faildata = {
idx: 0,
sum: 1000,
place: {
areaId: $scope.requesterAreaid,
place: searchVal,
selectType: "pinyin_qs",
},
};
} else {
faildata = {
idx: 0,
sum: 1000,
place: {
place: searchVal,
selectType: "pinyin_qs",
},
};
}
api_user_data
.fetchDataList("place", faildata)
.then(function (response) {
$scope.places = response.list;
delete $scope.requester.placeDTO;
});
};
// 初始化房间号
$scope.refreshPlace = function () {
var faildata = {};
if ($scope.requesterPlaceid) {
faildata = {
idx: 0,
sum: 1000,
room: {
place: {id:$scope.requesterPlaceid},
},
};
} else {
faildata = {
idx: 0,
sum: 1000,
room: {
place: {id:$scope.requesterPlaceid},
},
};
}
api_user_data
.fetchDataList("room", faildata)
.then(function (response) {
$scope.rooms = response.list;
});
};
$scope.refreshDepts = function (key) {
var filterData = {
idx: 0,
sum: 5,
dept: {
name: key,
},
};
UserService.fetchDataList("department", filterData).then(
function (response) {
if (response.status == 200) {
$scope.depts = response.list;
}
}
);
};
$scope.ok = function () {
if (
angular.isUndefined($scope.requester.account) ||
$scope.requester.account == null ||
$scope.requester.account == ""
) {
SweetAlert.swal(
"报修人员编号未填!",
"请填写报修人员编号",
"error"
);
} else if (
angular.isUndefined($scope.requester.name) ||
$scope.requester.name == null ||
$scope.requester.name == ""
) {
SweetAlert.swal(
"报修人姓名未填!",
"请填写报修人姓名",
"error"
);
} else if (
angular.isUndefined($scope.requester.requesterType) ||
$scope.requester.requesterType == null ||
$scope.requester.requesterTypeDTO == ""
) {
SweetAlert.swal("人员类型未填!", "请填写人员类型", "error");
} else if (
angular.isUndefined($scope.requester.phone) ||
$scope.requester.phone == null ||
$scope.requester.phone == ""
) {
SweetAlert.swal(
"报修人联系电话未填!",
"请填写报修人联系电话",
"error"
);
} else {
$scope.requesterId = $scope.requester.id;
var data = {
incident: {
requester: {
id: $scope.requesterId,
},
},
idx: 0,
sum: 3,
};
api_statistic
.tableData(data, "incident")
.then(function (data) {
sco.$parent.$parent.$parent.model.incident.tableList =
data.list;
});
$scope.$watch(
sco.$parent.$parent.$parent.model.incident.tableList,
function (oldObj, newObj) {
if (newObj != oldObj) {
sco.$parent.$parent.$parent.model.incident.tableList =
newObj;
}
}
);
console.log($scope.requester);
$modalInstance.close($scope.requester);
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (!filterData.idx) {
filterData = {
idx: 0,
sum: 10,
};
}
return options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return options.templateOptions.modalTitle;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
UserService: function () {
return options.templateOptions.UserService;
},
sco: function () {
return $scope;
},
},
});
modalInstance.result.then(
function (selectedItem) {
console.log(selectedItem);
if (selectedItem) {
var data = {
requester: selectedItem,
};
$scope.searchKey = selectedItem.account;
// $scope.$parent.$parent.$parent.model['requestershow'] = selectedItem;
// if (selectedItem.place && selectedItem.place.place) {
// $scope.$parent.$parent.$parent.model.incident.houseNumber = selectedItem.place.area.area + selectedItem.place.place
// }
options.templateOptions.UserService.addData(
"requester",
data
).then(function (response) {
if (response.status == 200) {
if (options.model) {
options.model.requester = response.data;
$scope.$parent.$parent.$parent.model.incident.requester =
response.data;
$scope.$parent.$parent.$parent.model.requestershow =
response.data;
if (options.model.place) {
options.model.place.id = "";
}
if (options.model.area) {
options.model.area.id = "";
}
options.model.contacts = selectedItem.name;
if (
selectedItem.phone &&
selectedItem.phone != null &&
selectedItem.phone != ""
) {
options.model.contactsInformation =
selectedItem.phone;
} else {
options.model.contactsInformation =
selectedItem.telephone;
}
if (
selectedItem.requesterTypeDTO &&
selectedItem.requesterTypeDTO.id == 2
) {
$scope.$parent.$parent.$parent.model.incident.priority.id = 2;
// $scope.$parent.$parent.$parent.model.incident.emergency.id = 2;
// $scope.$parent.$parent.$parent.model.incident.influence.id = 1
}
}
if (!response.data.id) {
response.data.id = selectedItem.id;
}
options.value(response.data);
options.value(response.data);
console.log($scope, "0000000");
//新增报修人带入区域地点2020年4月23日19:48:15
$scope.model.selecthouseNumber = selectedItem.place
? selectedItem.place
: {};
$scope.$root.selecthouseNumber = selectedItem.place
? selectedItem.place
: {};
if ($scope.$parent.$parent.$parent.model.saveAgain) {
if (selectedItem.place && selectedItem.place.id) {
options.model.place.id = selectedItem.place.id;
options.model.place.area.id =
selectedItem.place.area.id;
}
} else {
if (selectedItem.place && selectedItem.place.id) {
options.model.place.id = selectedItem.place.id;
options.model.area.id = selectedItem.place.area.id;
}
}
// if (selectedItem.areaDTO && selectedItem.place.area.id) {
// options.model.area.id = selectedItem.place.area.id
// }
if (selectedItem.houseNumber) {
options.model.houseNumber = selectedItem.houseNumber;
}
if (selectedItem.room) {
options.model.room.id = selectedItem.room.id;
}
// if (selectedItem.id) {
options.model.account = selectedItem.account;
// 找到表单报修人组件,并使用组件内部方法重新获取增加报修人后的报修人下拉选项
var baoxiuFields =
$scope.$parent.$parent.$parent.$parent.$parent.vm
.fields[1].fields;
var baoxiurenTo;
baoxiuFields.forEach((e, i) => {
if (e.key == "account") {
baoxiurenTo = e.templateOptions;
baoxiurenTo.APIService.fetchDataList("user", {
idx: 0,
sum: 20,
user: {
name: selectedItem.account,
selectType: "pinyin_all",
engineer: 0,
},
}).then((res) => {
baoxiurenTo.options = res.list;
options.model.account = selectedItem.account;
});
}
});
// }
// $scope.$parent.$parent.$parent.model.incident.requester = selectedItem
// 选择重复事件侧滑框
// if ($scope.$parent.$parent.$parent.model.incident.category && $scope.$parent.$parent.$parent.model.incident.category.id) {
$scope.$parent.$parent.$parent.model[
"repeatIncidentShow"
] = false;
setTimeout(() => {
$scope.$parent.$parent.$parent.model[
"repeatIncidentShow"
] = true;
}, 500);
// }
} else {
modalInstance.SweetAlert.swal({
title: "系统错误",
text: "账号重复!",
type: "error",
});
}
});
}
},
function () { }
);
},
changeRequeter: function (
size,
options,
modal,
modeldata,
$rootScope
) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/modal-change-requester.html",
controller: function (
$scope,
$modalInstance,
items,
SweetAlert,
title,
Restangular,
APIService,
UserService,
api_user_data,
$rootScope
) {
$scope.title = "修改报修人";
$scope.requester = {
id: modeldata.requester.id,
account: modeldata.requester.account,
name: modeldata.requester.name,
gender: modeldata.requester.gender,
email: modeldata.requester.email,
deptName: modeldata.requester.deptName,
phone: modeldata.requester.phone,
telephone: modeldata.requester.telephone,
studentNo: modeldata.requester.studentNo,
areaDTO: modeldata.requester.areaDTO,
placeDTO: modeldata.requester.placeDTO,
requesterTypeDTO: modeldata.requester.requesterTypeDTO,
};
$scope.onChangeadd = function (searchData) {
console.log(searchData);
$scope.searchKey = searchData.account;
var requesdata = angular.copy(searchData);
if (requesdata.phone) {
delete requesdata.phone;
}
$scope.requester = requesdata;
};
$scope.refreshUseradd = function (searchKey) {
//请求人搜索
$scope.requester.account = searchKey;
$scope.searchData = searchKey;
serchdataadd(searchKey);
};
$scope.getMydata = function (x) {
$scope.searchField = JSON.parse(x[0]).account;
$scope.requester = JSON.parse(x[0]);
};
$scope.getMydataone = function (x) {
$scope.searchField = x;
$scope.requester.account = x;
};
serchdataadd();
function serchdataadd(searchKey) {
if (searchKey) {
var filterData = {
user: {
name: searchKey,
selectType: "pinyin_all",
engineer: 0,
},
idx: 0,
sum: 10,
};
} else {
var filterData = {
idx: 0,
sum: 10,
user:{
engineer: 0,
}
};
}
api_user_data
.fetchDataList("user", filterData)
.then(function (response) {
var myData = response;
$scope.myData = myData.list;
});
}
api_user_data
.fetchDataList("area", {
idx: 0,
sum: 1000,
})
.then(function (response) {
if (response.status == 200) {
$scope.areas = response.list;
}
});
api_user_data
.fetchDataList("requesterType", {
idx: 0,
sum: 100,
})
.then(function (response) {
if (response.status == 200) {
$scope.networktypes = response.list;
}
});
if (
$scope.requester.areaDTO &&
$scope.requester.areaDTO.id &&
$scope.requester.areaDTO.id != ""
) {
api_user_data
.fetchDataList("place", {
place: {
areaId: $scope.requester.areaDTO.id,
},
idx: 0,
sum: 1000,
})
.then(function (response) {
if (response.status == 200) {
$scope.places = response.list;
}
});
}
$scope.onChange = function (item) {
$scope.requester.placeDTO = {};
api_user_data
.fetchDataList("place", {
place: {
areaId: item.id,
},
idx: 0,
sum: 1000,
})
.then(function (response) {
if (response.status == 200) {
$scope.places = response.list;
}
});
};
$scope.refreshDepts = function (key) {
var filterData = {
idx: 0,
sum: 5,
dept: {
name: key,
},
};
UserService.fetchDataList("department", filterData).then(
function (response) {
if (response.status == 200) {
$scope.depts = response.list;
}
}
);
};
$scope.ok = function () {
if (
$scope.requester.account == "" ||
$scope.requester.name == ""
) {
SweetAlert.swal(
"报修人姓名或人员编号号未填!",
"请补全报修人信息",
"error"
);
} else {
$modalInstance.close($scope.requester);
}
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (!filterData.idx) {
filterData = {
idx: 0,
sum: 10,
};
}
return options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return options.templateOptions.modalTitle;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
UserService: function () {
return options.templateOptions.UserService;
},
},
});
modalInstance.result.then(
function (selectedItem) {
console.log(selectedItem);
if (selectedItem) {
if (options.model) {
if (options.model.place) {
options.model.place.id = "";
}
if (options.model.area) {
options.model.area.id = "";
}
options.model.contacts = selectedItem.name;
if (
selectedItem.phone &&
selectedItem.phone != null &&
selectedItem.phone != ""
) {
options.model.contactsInformation = selectedItem.phone;
} else {
options.model.contactsInformation =
selectedItem.telephone;
}
if (selectedItem.placeDTO && selectedItem.placeDTO.id) {
options.model.place.id = selectedItem.placeDTO.id;
}
if (selectedItem.areaDTO && selectedItem.areaDTO.id) {
options.model.area.id = selectedItem.areaDTO.id;
}
if (
selectedItem.requesterTypeDTO &&
selectedItem.requesterTypeDTO.id == 2
) {
$scope.$parent.$parent.$parent.model.incident.priority.id = 2;
$scope.$parent.$parent.$parent.model.incident.emergency.id = 2;
$scope.$parent.$parent.$parent.model.incident.influence.id = 1;
}
}
var data = {
requester: selectedItem,
};
options.templateOptions.UserService.addData(
"requester",
data
).then(function (response) {
if (response.status == 200) {
$scope.$parent.$parent.$parent.model["requestershow"] =
selectedItem;
options.value(response.data);
} else {
}
});
}
},
function () { }
);
event.preventDefault();
},
},
};
},
controller: [
"$scope",
"api_user_data",
"api_statistic",
"$stateParams",
"api_bpm_data",
function ($scope, api_user_data, api_statistic, $stateParams,api_bpm_data) {
console.log($stateParams)
// 一键复制
$scope.quickCopy = function(model){
// 姓名,工号,来电电话,地点,详细地址,故障描述 liaomingming
console.log(model);
var text = '';
if(model.place.id){
api_bpm_data.fetchData("place", model.place.id)
.then(function (response) {
if (response.status == 200) {
text = `姓名:${model.requester?model.requester.name:''}\r\n工号:${model.requester?model.requester.account:''}\r\n来电电话:${model.contactsInformation||''}\r\n地点:${response.data.place||''}\r\n详细地址:${model.houseNumber||''}\r\n故障描述:${model.description||''}`;
var textarea = document.createElement('textarea');
document.body.appendChild(textarea);
// 隐藏此输入框
textarea.style.position = 'fixed';
textarea.style.clip = 'rect(0 0 0 0)';
textarea.style.top = '10px';
// 赋值
textarea.value = text;
// 选中
textarea.select();
// 复制
document.execCommand('copy', true);
// 移除输入框
document.body.removeChild(textarea);
}
});
}else{
text = `姓名:${model.contacts||''}\r\n工号:${model.account||''}\r\n来电电话:${model.contactsInformation||''}\r\n地点:${''}\r\n详细地址:${model.houseNumber||''}\r\n故障描述:${model.description||''}`;
var textarea = document.createElement('textarea');
document.body.appendChild(textarea);
// 隐藏此输入框
textarea.style.position = 'fixed';
textarea.style.clip = 'rect(0 0 0 0)';
textarea.style.top = '10px';
// 赋值
textarea.value = text;
// 选中
textarea.select();
// 复制
document.execCommand('copy', true);
// 移除输入框
document.body.removeChild(textarea);
}
event.preventDefault();
//提示
alert('复制成功');
}
if (angular.isDefined($stateParams.model) && $stateParams.model != "") {
var paramsModel = JSON.parse($stateParams.model)
//来电-添加报修人
if (paramsModel.model.incident.requester.hjzxPhone) {
$scope.options.templateOptions['addRequeter']('lg', $scope.options, $scope.to.modal);
}
}
$scope.options.initialValue = $scope.model[$scope.options.key];
$scope.saveReqPlace = false;
$scope.model.saveReqPlace = false;
$scope.selectGradeBox = function () {
$scope.saveReqPlace = !$scope.saveReqPlace;
console.log($scope);
$scope.model.saveReqPlace = $scope.saveReqPlace;
};
if (
$scope.model.requester &&
$scope.model.requester.requesterTypeDTO &&
$scope.model.requester.requesterTypeDTO.id == 2
) {
$scope.$parent.$parent.$parent.model.incident.priority.id = 2;
$scope.$parent.$parent.$parent.model.incident.emergency.id = 2;
$scope.$parent.$parent.$parent.model.incident.influence.id = 1;
}
},
],
});
// 请求人选控件
formlyConfigProvider.setType({
name: "ui-requesterselect",
templateUrl: "assets/views/customform/tpl/ui-requester.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options, $scope) {
return {
templateOptions: {
// checkform: function(options) {
// if (options.model.requestershow) {
// options.value(options.model.requestershow);
// }
// },
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
return value.length >= 1;
},
},
},
openModal: function (size, options, modal) {
//查找弹出框
var modelObject = options.value();
var searchModal = function (filterSearchData) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/checktable-modal-content.html",
controller: function (
$scope,
scope,
i18nService,
$modalInstance,
items,
title,
Restangular,
APIService,
language,
searchDatas,
api_bpm_data
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.columnDefs = [
{
name: "account",
displayName: "人员编号",
width: 140,
},
{
name: "name",
displayName: "姓名",
width: 100,
},
{
name: "gender.name",
displayName: "性别",
width: 80,
enableFiltering: false,
},
{
name: "phone",
displayName: "电话",
width: 100,
enableFiltering: false,
},
{
name: "email",
displayName: "邮件",
width: 100,
},
{
name: "areaDTO.area",
displayName: "区域",
width: 100,
enableFiltering: false,
},
{
name: "placeDTO.place",
displayName: "地点",
enableFiltering: false,
},
];
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
// var filtersData = $scope.memoryfilterData;
// filtersData.idx = newPage - 1;
// filtersData.sum = pageSize;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
$scope.loadData(filtersData);
}
);
gridApi.selection.on.rowSelectionChanged(
$scope,
function (data) {
// if(angular.isDefined(data.entity.account)&&data.entity.account.length==6){
$scope.selected.item = data.entity;
// }else{alert ("工号格式不对,账号应为6位数,请重新填写!")}
}
);
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
// 'requester': { 'userType': 1 }
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["requester"])) {
filtersData["requester"] = {};
}
filtersData["requester"][item.field] =
item.filters[0].term;
}
}
});
$scope.memoryfilterData = filtersData;
$scope.loadData(filtersData);
});
};
$scope.memoryfilterData = defaultFilterData = {
idx: 0,
sum: 10,
};
$scope.loadData = function (filterData) {
if (!filterData.requester) {
filterData.requester = {};
}
if (scope.roleidcode) {
angular.extend(filterData["requester"], {
userType: 1,
});
}
items
.fetchItems(filterData, APIService)
.then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
$scope.myData = myData.list;
});
};
// $scope.title = title;
if (searchDatas) {
$scope.loadData(searchDatas);
} else {
$scope.loadData({
idx: 0,
sum: 10,
});
}
$scope.selected = {
item: {},
};
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: size,
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (
angular.isUndefined(filterData.idx) ||
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
};
}
return options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return options.templateOptions.modalTitle;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
language: function () {
return options.templateOptions.language;
},
searchDatas: function () {
return filterSearchData;
},
scope: function () {
return $scope;
},
},
});
modalInstance.result.then(
function (selectedItem) {
if ($scope.$parent.$parent.$parent.model.incident.callID) {
selectedItem.telephone =
$scope.model.incident.contactsInformation;
}
$scope.$parent.$parent.$parent.model.incident["requester"] =
selectedItem;
// $scope.$parent.$parent.$parent.model.incident['requester'] = angular.copy(selectedItem)
// delete $scope.$parent.$parent.$parent.model.incident.requester.telephone;
if ($scope.model) {
if ($scope.model.incident.place) {
$scope.model.incident.place.id = "";
}
if ($scope.model.area) {
$scope.model.incident.area.id = "";
}
$scope.model.incident.contacts = selectedItem.name;
if (
selectedItem.phone &&
selectedItem.phone != null &&
selectedItem.phone != ""
) {
$scope.model.incident.contactsInformation =
selectedItem.phone;
} else {
$scope.model.incident.contactsInformation =
selectedItem.telephone;
}
$scope.model.incident.houseNumber = "";
if (
selectedItem.requesterTypeDTO &&
selectedItem.requesterTypeDTO.id == 2
) {
$scope.$parent.$parent.$parent.model.incident.priority.id = 2;
$scope.$parent.$parent.$parent.model.incident.emergency.id = 2;
$scope.$parent.$parent.$parent.model.incident.influence.id = 1;
}
}
$scope.options.value(selectedItem);
$scope.searchData = selectedItem.account;
if (selectedItem.placeDTO && selectedItem.placeDTO.id) {
$scope.model.incident.place.id = selectedItem.placeDTO.id;
}
if (selectedItem.areaDTO && selectedItem.areaDTO.id) {
$scope.model.incident.area.id = selectedItem.areaDTO.id;
}
if (selectedItem.houseNumber) {
$scope.model.incident.houseNumber =
selectedItem.houseNumber;
}
if (
selectedItem.requesterTypeDTO &&
selectedItem.requesterTypeDTO.id == 2
) {
$scope.$parent.$parent.$parent.model.incident.priority.id = 2;
$scope.$parent.$parent.$parent.model.incident.emergency.id = 2;
$scope.$parent.$parent.$parent.model.incident.influence.id = 1;
}
if (
options.templateOptions.callback &&
angular.isFunction(options.templateOptions.callback)
) {
options.templateOptions.callback(selectedItem, options);
}
if (!$scope.roleidcode) {
$scope.charging(selectedItem, modal);
}
$scope.recentlyincident(selectedItem);
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
};
searchModal();
// }
},
},
};
},
controller: [
"$rootScope",
"$scope",
"ngTableParams",
"$filter",
"SweetAlert",
"moment",
function (
$rootScope,
$scope,
ngTableParams,
$filter,
SweetAlert,
moment
) {
$scope.isHk = $rootScope.isHk;
$scope.roleidcode = true;
// $scope.options.initialValue = undefined;
if ($rootScope.user && $rootScope.user.role) {
angular.forEach($rootScope.user.role, function (item) {
if (item.rolecode == "call center") {
$scope.roleidcode = false;
}
});
}
$scope.recently = false;
$scope.recentlyincident = function (key, model) {
//关联事件
$scope.options.templateOptions.ApiRecently.fetchDataList("incident", {
idx: 0,
sum: 4,
incident: {
requester: {
id: key.id,
},
},
}).then(function (response) {
if (response.status == 200) {
$scope.recently = true;
$scope.recentincident = response.list;
} else {
$scope.recently = false;
}
});
$scope.bodyHeight = window.innerHeight - 100;
$(window).resize(function () {
$scope.bodyHeight = window.innerHeight - 100;
});
// $scope.shows = false;
$scope.tempData = {};
$scope.close = function () {
$scope.changes = !$scope.changes;
event.preventDefault();
};
};
$scope.charging = function (key, model) {
//计费弹出框
//用户信息
$scope.information = {};
$scope.options.templateOptions.ApiSer.fetchDataList("queryUser", {
userId: key.account,
}).then(function (response) {
// if (response.status == 200) {
if (response && response.data) {
angular.extend($scope.information, response.data[0]);
// $scope.information = response.data[0];
$scope.information.autologicDestroyTime = moment(
response.data[0].autologicDestroyTime
).format("YYYY-MM-DD");
$scope.information.periodStartTime = moment(
response.data[0].periodStartTime
).format("YYYY-MM-DD");
$scope.information.nextBillingTime = moment(
response.data[0].nextBillingTime
).format("YYYY-MM-DD");
} else if (response.err) {
SweetAlert.swal(
"系统错误!",
"用户信息未取到,请刷新重试",
"error"
);
}
// }
});
//上网明细
$scope.options.templateOptions.ApiSer.fetchDataList(
"queryOnlineDetail",
{
userId: key.account,
limit: "10",
fromLoginTime: moment(new Date().getTime() - 86400000 * 6).format(
"YYYY-MM-DD HH:mm:ss"
),
toLogoutTime: moment(new Date().getTime()).format(
"YYYY-MM-DD HH:mm:ss"
),
}
).then(function (response) {
// if (response.status == 200) {
if (response && response.data) {
angular.forEach(response.data, function (item, index) {
if (item.logoutTime) {
response.data[index].logoutTime = moment(
item.logoutTime
).format("YYYY-MM-DD HH:mm:ss");
}
if (item.loginTime) {
response.data[index].loginTime = moment(
item.loginTime
).format("YYYY-MM-DD HH:mm:ss");
}
});
$scope.logininform = response.data;
} else if (response.err) {
SweetAlert.swal(
"系统错误!",
"上网明细未取到,请刷新重试",
"error"
);
}
});
//黑名单
// $scope.information.blacklist = "否"
$scope.options.templateOptions.ApiSer.fetchDataList("queryInhibit", {
userId: key.account,
}).then(function (response) {
// if (response.status == 200) {
// $scope.logininformation = response.data;
if (response) {
if (response.data || response.data != null) {
$scope.information.blacklist = "是";
} else {
if (response.err) {
// SweetAlert.swal("系统错误!", "黑名单未取到,请刷新重试", "error");
} else {
$scope.information.blacklist = "否";
}
}
}
// }
});
$scope.bodyHeight = window.innerHeight - 100;
$(window).resize(function () {
$scope.bodyHeight = window.innerHeight - 100;
});
// $('#navigationcharging .pages').stop().animate({ 'marginLeft': '-500px' }, 1000);
// $scope.closepages = function(e) {
// $('#navigationcharging .pages').stop().animate({ 'marginLeft': '500px' }, 1000);
// event.preventDefault();
// };
// $scope.shows = false;
$scope.tempData = {};
$scope.close = function () {
$scope.changes = !$scope.changes;
event.preventDefault();
};
};
$scope.options.templateOptions.ApiService.fetchDataList(
"requesterType",
{
idx: 0,
sum: 100,
}
).then(function (response) {
if (response.status == 200) {
$scope.networktypes = response.list;
} else {
SweetAlert.swal("系统错误!", "请刷新重试", "error");
}
});
function serchdata(searchKey) {
if (searchKey) {
var filterData = {
requester: {
searchKey: searchKey,
// 'userType': 1
},
idx: 0,
sum: 10,
};
} else {
var filterData = {
idx: 0,
requester: {},
sum: 10,
};
}
if (
$scope.model.requester &&
$scope.model.requester.requesterTypeDTO
) {
angular.extend(filterData.requester, {
requesterTypeDTO: $scope.model.requester.requesterTypeDTO,
});
if (!$scope.options.model.contactsInformation) {
$scope.options.model.contactsInformation =
$scope.model.requester.phone;
}
}
if ($scope.roleidcode) {
angular.extend(filterData["requester"], {
userType: 1,
});
}
$scope.options.templateOptions.ApiService.fetchDataList(
"requester",
filterData
).then(function (response) {
var myData = response;
$scope.myData = myData.list;
});
}
$scope.searchData = {};
$scope.refreshUser = function (searchKey) {
//请求人搜索
if (searchKey && searchKey != "") {
serchdata(searchKey);
}
};
if (
$scope.$parent.$parent.$parent.model.incident.callID ||
$scope.$parent.$parent.$parent.model.requestershow
) {
if (!$scope.roleidcode) {
$scope.charging(
$scope.$parent.$parent.$parent.model.incident.requester
);
}
$scope.recentlyincident(
$scope.$parent.$parent.$parent.model.incident.requester
);
}
$scope.onChange = function (searchData) {
if ($scope.$parent.$parent.$parent.model.incident.callID) {
searchData.telephone = $scope.model.incident.contactsInformation;
}
$scope.$parent.$parent.$parent.model.incident["requester"] =
searchData;
if (!$scope.roleidcode) {
$scope.charging(searchData);
}
$scope.recentlyincident(searchData);
$scope.accountshow = false;
if ($scope.model.incident) {
if ($scope.model.incident.place) {
$scope.model.incident.place.id = "";
}
if ($scope.model.incident.area) {
$scope.model.incident.area.id = "";
}
$scope.model.incident.contacts = searchData.name;
if (
searchData.phone &&
searchData.phone != null &&
searchData.phone != ""
) {
$scope.model.incident.contactsInformation = searchData.phone;
} else {
$scope.model.incident.contactsInformation = searchData.telephone;
}
$scope.model.incident.houseNumber = "";
if (
searchData.requesterTypeDTO &&
searchData.requesterTypeDTO.id == 2
) {
$scope.$parent.$parent.$parent.model.incident.priority.id = 2;
$scope.$parent.$parent.$parent.model.incident.emergency.id = 2;
$scope.$parent.$parent.$parent.model.incident.influence.id = 1;
}
}
$scope.options.value(searchData);
$scope.searchKey = searchData.account;
if (searchData.placeDTO && searchData.placeDTO.id) {
$scope.model.incident.place.id = searchData.placeDTO.id;
}
if (searchData.areaDTO && searchData.areaDTO.id) {
$scope.model.incident.area.id = searchData.areaDTO.id;
}
if (searchData.houseNumber) {
$scope.model.incident.houseNumber = searchData.houseNumber;
}
if (
searchData.requesterTypeDTO &&
searchData.requesterTypeDTO.id == 2
) {
$scope.$parent.$parent.$parent.model.incident.priority.id = 2;
$scope.$parent.$parent.$parent.model.incident.emergency.id = 2;
$scope.$parent.$parent.$parent.model.incident.influence.id = 1;
}
};
},
],
});
//ui-grid-table展示控件
formlyConfigProvider.setType({
name: "ui-grid-table",
// extends: 'multiCheckbox',//去掉冒号
templateUrl: "assets/views/customform/tpl/ui-grid-show-nofooter.html",
defaultOptions: function (options) {
return {
templateOptions: {
linkage: function () { },
},
};
},
controller: function (
$scope,
$rootScope,
i18nService,
Restangular,
api_bpm_data,
api_statistic,
$rootScope
) {
var loginUser = $rootScope.user;
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = false;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = false;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 3;
$scope.gridOptions.multiSelect = false;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.columnDefs = [
{
name: "item",
displayName: "序号",
width: 80,
enableFiltering: false,
},
{
name: "incidentsign",
displayName: "单号",
width: 80,
enableFiltering: false,
},
{
name: "description",
displayName: "主题",
width: 80,
enableFiltering: false,
},
{
name: "state.name",
displayName: "状态",
width: 110,
enableFiltering: false,
},
{
name: "acceptDate",
displayName: "创建时间",
width: 160,
enableFiltering: false,
},
{
name: "requester.name",
displayName: "请求人",
width: 80,
enableFiltering: false,
},
{
name: "handlingPersonnelUser.name",
displayName: "处理人",
width: 160,
enableFiltering: false,
},
{
name: "place.place",
displayName: "区域地点",
width: 160,
enableFiltering: false,
},
];
// var defaultFilterData = {
// "idx": 0,
// "sum": 3
// };
// // //分页控制
$scope.gridOptions.onRegisterApi = function (gridApi) {
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
$scope.refreshData("expand-right", filtersData);
}
);
// 表格单选事件
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
var addstr = data.grid.appScope.$parent.$parent.$parent.model.addstr;
data.grid.appScope.$parent.$parent.$parent.model.incident.table =
data.entity;
data.grid.appScope.$parent.$parent.$parent.model.associationType =
data.entity.id;
var str =
data.grid.appScope.$parent.$parent.$parent.model.incident
.description || "";
str = str.split("").reverse().join("");
var del = addstr.split("").reverse().join("");
// console.log(del);
var reg = new RegExp(del);
str = str.replace(reg, "");
str = str.split("").reverse().join("");
if (
data.grid.appScope.$parent.$parent.$parent.model.incident
.associationType == "事件补充"
) {
data.grid.appScope.$parent.$parent.$parent.model.relationType =
null;
str += data.entity.description;
data.grid.appScope.$parent.$parent.$parent.model.addstr = addstr =
data.entity.description;
} else if (
data.grid.appScope.$parent.$parent.$parent.model.incident
.associationType == "事件已解决"
) {
data.grid.appScope.$parent.$parent.$parent.model.incident.relationType =
"close";
data.grid.appScope.$parent.$parent.$parent.model.addstr = addstr =
"";
}
data.grid.appScope.$parent.$parent.$parent.model.incident.description =
str;
data.grid.appScope.$parent.$parent.$parent.model.incident.relationIncidentId =
data.entity.id;
});
};
// 刷新表格
setInterval(function () {
// console.log($scope.myData);
$scope.myData = $scope.$parent.$parent.$parent.model.incident.tableList;
// console.log($scope.myData);
if ($scope.myData != null) {
for (var i = 0; i < $scope.myData.length; i++) {
//添加序号
$scope.myData[i]["item"] = i + 1;
}
}
}, 1000);
},
});
//处理人信息
formlyConfigProvider.setType({
name: "ui-userinformation",
templateUrl: "assets/views/customform/tpl/ui-userinformation.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
function ($scope) {
$scope.group = "";
$scope.role = "";
if (
angular.isDefined($scope.model.handlingPersonnelUser) &&
angular.isDefined($scope.model.handlingPersonnelUser.group) &&
$scope.model.handlingPersonnelUser.group.length == 1
) {
$scope.group = $scope.model.handlingPersonnelUser.group[0].groupName;
} else {
for (
var i = 0;
i < $scope.model.handlingPersonnelUser.group.length;
i++
) {
$scope.group +=
$scope.model.handlingPersonnelUser.group[i].groupName + ",";
}
}
if (
angular.isDefined($scope.model.handlingPersonnelUser.role) &&
$scope.model.handlingPersonnelUser.role.length == 1
) {
$scope.role = $scope.model.handlingPersonnelUser.role[0].role;
} else {
for (
var i = 0;
i < $scope.model.handlingPersonnelUser.role.length;
i++
) {
$scope.role +=
$scope.model.handlingPersonnelUser.role[i].role + ",";
}
}
$scope.options.templateOptions.that = $scope;
},
],
});
//处理界面处理人信息
formlyConfigProvider.setType({
name: "ui-handler",
templateUrl: "assets/views/customform/tpl/ui-handler.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
function ($scope) {
$scope.group = "";
// $scope.role="";
if (
angular.isDefined($scope.model.handlingPersonnelUser.group) &&
$scope.model.handlingPersonnelUser.group.length == 1
) {
$scope.group = $scope.model.handlingPersonnelUser.group[0].groupName;
} else {
for (
var i = 0;
i < $scope.model.handlingPersonnelUser.group.length;
i++
) {
$scope.group +=
$scope.model.handlingPersonnelUser.group[i].groupName + ",";
}
}
// if(angular.isDefined($scope.model.handlingPersonnelUser.role) &&$scope.model.handlingPersonnelUser.role.length==1){
// $scope.role=$scope.model.handlingPersonnelUser.role[0].role;
// }else{
// for(var i=0;i<$scope.model.handlingPersonnelUser.role.length;i++){
// $scope.role += $scope.model.handlingPersonnelUser.role[i].role +",";
// }
// }
$scope.options.templateOptions.that = $scope;
},
],
});
//微信事件流程
formlyConfigProvider.setType({
name: "ui-wxIncidentProcess",
templateUrl: "assets/views/customform/tpl/wxIncidentProcess.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
function ($scope) {
console.log($scope.model);
$scope.pingjia = false;
$scope.jiejue = false;
if ($scope.model.incidentState.value == "3") {
$scope.pingjia = true;
} else if ($scope.model.incidentState.value == "4") {
$scope.jiejue = true;
}
},
],
});
//打电话
formlyConfigProvider.setType({
name: "ui-inputcall",
extends: "input",
templateUrl: "assets/views/customform/tpl/inputcall.html",
defaultOptions: function (options) {
return {
templateOptions: {
transform: function (value) { },
},
};
},
controller: [
"$scope",
"$rootScope",
"api_text",
"SweetAlert",
function ($scope, $rootScope, api_text, SweetAlert) {
$scope.dialout = function (teleno) {
// var gid = "@0";
// var telephone = "9" + teleno;
$rootScope.callout = 2;
// var agcount = tlwsa.tlaGetagentcount();
// var agcountFlag = false;
// console.log(teleno)
// // 查询当前话机是否签入
// for (var i = 0; i < agcount; i++) {
// if (tlwsa.tlaGetagentwid(i) == $rootScope.phoneNumber) {
// agcountFlag = true;
// }
// }
if (localStorage.getItem('fenjiNumber')) {
// var caller = localStorage.getItem('phoneNumber');//呼叫人
// console.log(sessionStorage.getItem('phones'))
// var phones = JSON.parse(sessionStorage.getItem('phones'));
// var isHuajihao = phones.length?phones.some(v=>v == teleno):false;
// console.log(isHuajihao)
// if(isHuajihao){
// tlwsa.tlaCallagc(teleno);
// }else{
// tlwsa.tlaCallout(teleno, caller, 0);
// }
// var caller = localStorage.getItem('fenjiNumber');//呼叫人
$rootScope.toggle('off-sidebar');
// tlwsa.tlaCallout(teleno, caller, 0);
}else if(localStorage.getItem('hk_phone')){
var gid = "@0"
var telephone = '9' + teleno
$rootScope.callout = 2;
if ($rootScope.takes) {
api_text.dialout($rootScope.takes, gid, telephone).then(function (data) {
if (data.errno == 0) {
$rootScope.status = 6;
}
})
} else {
SweetAlert.swal({
title: "呼叫失败",
text: "请先签入呼叫中心!",
type: "error",
confirmButtonColor: "#DD6B55"
});
}
} else {
SweetAlert.swal({
title: "呼叫失败",
text: "请先签入呼叫中心!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
};
$scope.options.templateOptions.that = $scope;
},
],
});
//关闭界面处理人信息
formlyConfigProvider.setType({
name: "ui-closehandler",
templateUrl: "assets/views/customform/tpl/ui-closehandler.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {},
};
},
controller: [
"$scope",
"$rootScope",
"api_text",
function ($scope, $rootScope, api_text) {
$scope.dialout = function (teleno) {
var gid = "@0";
var telephone = "9" + teleno;
api_text
.dialout($rootScope.takes, gid, telephone)
.then(function (data) {
if (data.errno == 0) {
$rootScope.status = 6;
}
});
};
$scope.options.templateOptions.that = $scope;
},
],
});
//用户单选控件
formlyConfigProvider.setType({
name: "ui-userselect",
templateUrl: "assets/views/customform/tpl/ui-userselect.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {
openModal: function (size, options, modal) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/checktable-modal-content.html",
controller: function (
$scope,
$rootScope,
i18nService,
$modalInstance,
items,
title,
Restangular,
APIService,
onDataCallback,
parentScope,
api_category,
api_user_data
) {
$scope.isAssign = options.templateOptions.departmentDispatchesOrders;
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
$scope.searchModel = {
type:1,//默认科室内转派
}
$scope.hospitalList = [];
$scope.dutyDeptList = [];
// 修改转派模式
$scope.changeType = function(type){
console.log($scope.searchModel.type)
$scope.gridOptions.totalItems = 0;
$scope.myData = [];
$scope.searchModel.department = undefined;
$scope.searchModel.branch = undefined;
$scope.dutyDeptList = [];
if($scope.searchModel.type == 2){
//跨科室转派
api_user_data.fetchDataList('branch', {
"idx": 0,
"sum": 100
}).then(function (data) {
if(data.status == 200){
$scope.hospitalList = data.list;
if($rootScope.user.duty){
// 当前的所属责任科室
$scope.searchModel.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.duty.branch);
// $scope.changeBranch();
}else if($rootScope.user.branch){
// 当前的所属院区
$scope.searchModel.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.branch.id);
// $scope.changeBranch();
}
}else{
SweetAlert.swal({
title: "系统错误!",
text: "请刷新重试!",
type: "error"
});
}
})
}else if($scope.searchModel.type == 1){
//科室内转派
var postData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
}
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
postData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
$scope.loadData(postData);
}
}
// 修改院区
$scope.changeBranch = function(keyword=''){
if(!$scope.searchModel.branch){
return;
}
$scope.searchModel.department = undefined;
$scope.dutyDeptList = [];
api_user_data.fetchDataList('dutyDepartment', {
"idx": 0,
"sum": 100,
"dutyDepartment":{
branch:$scope.searchModel.branch.id,
dept:keyword,
selectType: "pinyin_qs"
}
}).then(function (data) {
if(data.status == 200){
$scope.dutyDeptList = data.list;
}else{
SweetAlert.swal({
title: "系统错误!",
text: "请刷新重试!",
type: "error"
});
}
})
}
// 修改责任科室
$scope.changeDutyDept = function(){
$scope.loadData({
idx: 0,
sum: 10,
user: {
duty:$scope.searchModel.department,
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
});
}
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.rowTemplate =
'
';
$scope.gridOptions.columnDefs = [
{
name: "account",
displayName: "人员编号",
width: 120,
},
{
name: "name",
displayName: "姓名",
width: 100,
cellTemplate:
"",
},
// {
// name: 'gender.name',
// displayName: '性别',
// width: 80,
// enableFiltering: false
// },
{
name: "phone",
displayName: "电话",
width: 230,
enableFiltering: false,
},
{
name: "email",
displayName: "邮箱",
width: 180,
enableFiltering: false,
},
{
name: "dept.dept",
displayName: "科室",
width: 130,
enableFiltering: false,
},
// {
// name: "taskCount",
// displayName: "处理中事件数",
// enableFiltering: false,
// },
];
// $scope.selectButtonClick
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var postData = {
idx: newPage - 1,
sum: pageSize,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
}
if($scope.isAssign){
if($scope.searchModel.type == 1){
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
postData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
}else if($scope.searchModel.type == 2){
// 跨科室转派
postData.user.duty = $scope.searchModel.department;
}
}
$scope.loadData(postData);
}
);
gridApi.selection.on.rowSelectionChanged(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
// gridApi.selection.on.selectAllRows = function(row) { //GridRow
// // if (row.entity.age > 45) {
// row.grid.api.selection.selectRow(row.entity); // 选中行
// // }
// };
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
// console.log("item.filters[0]=" + JSON.stringify(item.filters));
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] =
item.filters[0].term;
}
}
});
if($scope.isAssign){
if($scope.searchModel.type == 1){
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
filtersData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
}else if($scope.searchModel.type == 2){
// 跨科室转派
filtersData.user.duty = $scope.searchModel.department;
}
}
// $scope.memoryfilterData = filtersData;
$scope.loadData(filtersData);
});
};
// $scope.gridOptions.isRowSelectable = function(row) { //GridRow
// if (row.entity.age > 45) {
// row.grid.api.selection.selectRow(row.entity); // 选中行
// }
// },
$scope.onDblClick = function (data, event) {
// $scope.selected.items = data.entity;
$scope.selectButtonClick(data, event);
};
// $scope.gridApi.selection.on.rowSelectionChanged($scope, function(data) {
// $scope.selected.items = data.entity;
// })
// };
$scope.memoryfilterData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
$scope.loadData = function (filterData) {
// console.log("filtersData=111" + JSON.stringify(filterData))
items
.fetchItems(filterData, APIService)
.then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
$scope.myData = myData.list;
});
};
$scope.title = title;
$scope.selected = {
items: {},
};
$scope.ok = function () {
// if(onDataCallback&&angular.isFunction(onDataCallback)){
// onDataCallback($scope.selected.item, parentScope);
// }
$modalInstance.close($scope.selected.items);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
// 初始化
var postData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
}
if($scope.isAssign){
if($scope.searchModel.type == 1){
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
postData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
}else if($scope.searchModel.type == 2){
// 跨科室转派
postData.user.duty = $scope.searchModel.department;
}
}
$scope.loadData(postData);
},
size: size,
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "roleset",
},
selectType: "1",
},
};
}
return options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return options.templateOptions.label;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
onDataCallback: function () {
return options.templateOptions.callback;
},
parentScope: function () {
return options.templateOptions.that;
},
},
});
modalInstance.result.then(
function (selectedItem) {
// console.log(selectedItem);
options.value(selectedItem);
if (
options.templateOptions.callback &&
angular.isFunction(options.templateOptions.callback)
) {
options.templateOptions.callback(
selectedItem,
options.templateOptions.that
);
}
if (
options.templateOptions.linkData &&
angular.isFunction(options.templateOptions.linkData)
) {
options.templateOptions.linkData(
selectedItem,
options.templateOptions.that
);
}
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
},
},
};
},
controller: [
"$scope",
function ($scope) {
$scope.options.templateOptions.that = $scope;
// $scope.options.model[$scope.options.key] = {}
},
],
});
//用户单选控件(dd 单选input带搜索)liaomingming
formlyConfigProvider.setType({
name: "ui-userselectSearch",
templateUrl: "assets/views/customform/tpl/ui-userselectSearch.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {
openModal: function (size, options, modal) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/checktable-modal-content.html",
controller: function (
$scope,
$rootScope,
i18nService,
$modalInstance,
items,
title,
Restangular,
APIService,
onDataCallback,
parentScope,
api_category,
api_user_data
) {
$scope.isAssign = options.templateOptions.departmentDispatchesOrders;
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
$scope.searchModel = {
type:1,//默认科室内转派
}
$scope.hospitalList = [];
$scope.dutyDeptList = [];
// 修改转派模式
$scope.changeType = function(type){
console.log($scope.searchModel.type)
$scope.gridOptions.totalItems = 0;
$scope.myData = [];
$scope.searchModel.department = undefined;
$scope.searchModel.branch = undefined;
$scope.dutyDeptList = [];
if($scope.searchModel.type == 2){
//跨科室转派
api_user_data.fetchDataList('branch', {
"idx": 0,
"sum": 100
}).then(function (data) {
if(data.status == 200){
$scope.hospitalList = data.list;
if($rootScope.user.duty){
// 当前的所属责任科室
$scope.searchModel.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.duty.branch);
// $scope.changeBranch();
}else if($rootScope.user.branch){
// 当前的所属院区
$scope.searchModel.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.branch.id);
// $scope.changeBranch();
}
}else{
SweetAlert.swal({
title: "系统错误!",
text: "请刷新重试!",
type: "error"
});
}
})
}else if($scope.searchModel.type == 1){
//科室内转派
var postData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
}
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
postData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
$scope.loadData(postData);
}
}
// 修改院区
$scope.changeBranch = function(keyword=''){
if(!$scope.searchModel.branch){
return;
}
$scope.searchModel.department = undefined;
$scope.dutyDeptList = [];
api_user_data.fetchDataList('dutyDepartment', {
"idx": 0,
"sum": 100,
"dutyDepartment":{
branch:$scope.searchModel.branch.id,
dept:keyword,
selectType: "pinyin_qs"
}
}).then(function (data) {
if(data.status == 200){
$scope.dutyDeptList = data.list;
}else{
SweetAlert.swal({
title: "系统错误!",
text: "请刷新重试!",
type: "error"
});
}
})
}
// 修改责任科室
$scope.changeDutyDept = function(){
$scope.loadData({
idx: 0,
sum: 10,
user: {
duty:$scope.searchModel.department,
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
});
}
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.rowTemplate =
'
';
$scope.gridOptions.columnDefs = [
{
name: "account",
displayName: "人员编号",
width: 120,
},
{
name: "name",
displayName: "姓名",
width: 100,
cellTemplate:
"",
},
// {
// name: 'gender.name',
// displayName: '性别',
// width: 80,
// enableFiltering: false
// },
{
name: "phone",
displayName: "电话",
width: 230,
enableFiltering: false,
},
{
name: "email",
displayName: "邮箱",
width: 180,
enableFiltering: false,
},
{
name: "dept.dept",
displayName: "科室",
width: 130,
enableFiltering: false,
},
// {
// name: "taskCount",
// displayName: "处理中事件数",
// enableFiltering: false,
// },
];
// $scope.selectButtonClick
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var postData = {
idx: newPage - 1,
sum: pageSize,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
}
if($scope.isAssign){
if($scope.searchModel.type == 1){
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
postData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
}else if($scope.searchModel.type == 2){
// 跨科室转派
postData.user.duty = $scope.searchModel.department;
}
}
$scope.loadData(postData);
}
);
gridApi.selection.on.rowSelectionChanged(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (data) {
$scope.selected.items = data.entity;
//console.log(data);
}
);
// gridApi.selection.on.selectAllRows = function(row) { //GridRow
// // if (row.entity.age > 45) {
// row.grid.api.selection.selectRow(row.entity); // 选中行
// // }
// };
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
// console.log("item.filters[0]=" + JSON.stringify(item.filters));
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] =
item.filters[0].term;
}
}
});
if($scope.isAssign){
if($scope.searchModel.type == 1){
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
filtersData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
}else if($scope.searchModel.type == 2){
// 跨科室转派
filtersData.user.duty = $scope.searchModel.department;
}
}
// $scope.memoryfilterData = filtersData;
$scope.loadData(filtersData);
});
};
// $scope.gridOptions.isRowSelectable = function(row) { //GridRow
// if (row.entity.age > 45) {
// row.grid.api.selection.selectRow(row.entity); // 选中行
// }
// },
$scope.onDblClick = function (data, event) {
// $scope.selected.items = data.entity;
$scope.selectButtonClick(data, event);
};
// $scope.gridApi.selection.on.rowSelectionChanged($scope, function(data) {
// $scope.selected.items = data.entity;
// })
// };
$scope.memoryfilterData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
};
$scope.loadData = function (filterData) {
// console.log("filtersData=111" + JSON.stringify(filterData))
items
.fetchItems(filterData, APIService)
.then(function (data) {
if(($scope.searchModel.type == 1 && filterData.user.duty) || ($scope.searchModel.type == 2 && !filterData.user.duty)){
$scope.gridOptions.totalItems = 0;
$scope.myData = [];
}else{
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
$scope.myData = myData.list;
}
});
};
$scope.title = title;
$scope.selected = {
items: {},
};
$scope.ok = function () {
// if(onDataCallback&&angular.isFunction(onDataCallback)){
// onDataCallback($scope.selected.item, parentScope);
// }
$modalInstance.close($scope.selected.items);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
// 初始化
var postData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
}
if($scope.isAssign){
if($scope.searchModel.type == 1){
// 判断当前是责任科室还是院区
if ($rootScope.user.duty) {
// 当前的所属责任科室
postData.user.currentDuty = $rootScope.user.duty.id;
} else if ($rootScope.user.branch) {
// 当前的所属院区
$scope.myData = [];
return;
}
}else if($scope.searchModel.type == 2){
// 跨科室转派
postData.user.duty = $scope.searchModel.department;
}
}
$scope.loadData(postData);
},
size: size,
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: "first-line support",
},
selectType: "1",
},
};
}
return options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return options.templateOptions.label;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
onDataCallback: function () {
return options.templateOptions.callback;
},
parentScope: function () {
return options.templateOptions.that;
}
},
});
modalInstance.result.then(
function (selectedItem) {
// console.log(selectedItem);
options.value(selectedItem);
if (
options.templateOptions.callback &&
angular.isFunction(options.templateOptions.callback)
) {
options.templateOptions.callback(
selectedItem,
options.templateOptions.that
);
}
if (
options.templateOptions.linkData &&
angular.isFunction(options.templateOptions.linkData)
) {
options.templateOptions.linkData(
selectedItem,
options.templateOptions.that
);
}
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
},
},
};
},
controller: [
"$scope",
function ($scope) {
$scope.options.templateOptions.that = $scope;
},
],
});
//用户多选控件
formlyConfigProvider.setType({
name: "ui-multiuserselect",
templateUrl: "assets/views/customform/tpl/ui-multiuserselect.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {
openModal: function (size, options, modal, model) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/checktable-modal-content.html",
controller: function (
$scope,
$modalInstance,
i18nService,
$timeout,
items,
title,
Restangular,
APIService,
selectItems
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = true;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = true;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
//{"id":1,"phone":"15071189091","name":"管理员","gender":"男","flag":1,"email":"asda@qq.com","account":"000001","group":[{"id":3,"groupName":"运行监控科"}]}
$scope.gridOptions.columnDefs = [
// { name:'id', width:80, enableFiltering:false},
{
name: "account",
displayName: "账号",
width: 140,
},
{
name: "name",
displayName: "名称",
width: 100,
},
{
name: "gender.name",
displayName: "性别",
width: 140,
enableFiltering: false,
},
{
name: "phone",
displayName: "电话",
width: 100,
enableFiltering: false,
},
{
name: "email",
displayName: "邮件",
width: 100,
enableFiltering: false,
},
{
name: "dept.dept",
displayName: "科室",
width: 100,
enableFiltering: false,
},
{
name: "group[0].groupName",
displayName: "职位",
width: 100,
enableFiltering: false,
},
];
$scope.selected = {
items: selectItems,
};
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
$scope.loadData(filtersData);
// $scope.loadData({"idx":newPage-1,"sum":pageSize});
}
);
gridApi.selection.on.rowSelectionChanged(
$scope,
function (scope) {
var j = 0;
for (
var i = 0;
i <= scope.grid.appScope.selected.items.length;
i++
) {
if (
scope.grid.appScope.selected.items[i] == scope.entity
) {
j++;
break;
}
}
if (j == 1) {
scope.grid.appScope.selected.items.splice(i, 1);
} else {
scope.grid.appScope.selected.items.push(scope.entity);
for (
var i = 0;
i < scope.grid.appScope.selected.items.length;
i++
) {
for (
var z = 0;
z < scope.grid.appScope.selected.items.length;
z++
) {
// console.log("$scope.selected.items="+JSON.stringify($scope.selected.items));
// console.log("scope.grid.appScope.selected.items="+JSON.stringify(scope.grid.appScope.selected.items))
if (
angular.isDefined(
scope.grid.appScope.selected.items
) &&
scope.grid.appScope.selected.items[i].id ==
scope.grid.appScope.selected.items[z].id &&
i != z
) {
scope.grid.appScope.selected.items.splice(i, 1);
}
}
}
}
}
);
// gridApi.selection.on.rowSelectionChanged($scope, function($scope, rows){
// $scope.grid.appScope.selected.items.push($scope.entity);
// });
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: options.model.currentRole,
},
selectType: "1",
},
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
//console.log("filtersData="+JSON.stringify(filtersData))
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filtersData["user"])) {
filtersData["user"] = {};
}
filtersData["user"][item.field] =
item.filters[0].term;
}
}
});
$scope.memoryfilterData = filtersData;
$scope.loadData(filtersData);
});
};
if (!options.model) {
var mouse = {
model: {
currentRole: "",
},
};
angular.extend(options, mouse);
}
$scope.memoryfilterData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: options.model.currentRole,
},
selectType: "1",
},
};
$scope.loadData = function (filterData) {
// console.log(" filtersData['user'][item.field]=111"+JSON.stringify(filterData));
items
.fetchItems(filterData, APIService)
.then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
$scope.myData = myData.list;
//console.log($scope.gridOptions.pagination.getTotalPages());
// if($scope.selected.items){
// angular.forEach($scope.selected.items,function(selectItem){
// $scope.gridApi.selection.selectRow(selectItem);
// });
// }
});
};
// $scope.title = title;
$scope.loadData({
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: options.model.currentRole,
},
selectType: "1",
},
});
// $timeout(function(){
// if($scope.selected.items){
// angular.forEach($scope.selected.items,function(selectItem){
// $scope.gridApi.selection.selectRow(selectItem);
// });
// }
// },2000)
$scope.ok = function () {
// $scope.selected.items = $scope.gridApi.selection.getSelectedRows();
$modalInstance.close($scope.selected.items);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: size,
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
user: {
roledata: {
rolecode: options.model.incident.currentRole,
},
selectType: "1",
},
};
}
return options.templateOptions.fetchItems(
filterData,
APIService
);
},
};
},
title: function () {
return options.templateOptions.modalTitle;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
selectItems: function () {
return model || [];
},
},
});
modalInstance.result.then(
function (selectedItem) {
options.value(selectedItem);
options.formControl.$validate();
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
},
},
validators: {
required: {
expression: function (viewValue, modelValue) {
var value = modelValue || viewValue;
return value.length >= 1;
},
},
},
};
},
controller: [
"$scope",
function ($scope) {
$scope.model[$scope.options.key] = [];
$scope.remove = function (itemId) {
angular.forEach(
$scope.model[$scope.options.key],
function (entry, index) {
if (entry.id == itemId) {
$scope.model[$scope.options.key].splice(index, 1);
// console.log($scope.options.formControl)
$scope.options.formControl.$validate();
} else {
}
}
);
};
},
],
});
//用户多选控件-字符串展示
formlyConfigProvider.setType({
name: "ui-stringuserselect",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-stringuserselect.html",
defaultOptions: function (options) {
return {
templateOptions: {
translate: "",
refreshDelay: 0,
},
};
},
controller: [
"$scope",
function ($scope) {
var keydata = "";
if (angular.isArray($scope.model)) {
angular.forEach($scope.model, function (item) {
keydata = keydata + "," + item.name;
});
}
// $scope.model[$scope.options.key] = [];
},
],
});
//重复事件
formlyConfigProvider.setType({
name: "ui-incidentmodelselect",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-modelselect.html",
defaultOptions: function (options) {
return {
templateOptions: {
openModal: function (size, options, modal) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/checktable-modal-content.html",
controller: function (
$scope,
$rootScope,
$modalInstance,
items,
title,
Restangular,
APIService,
i18nService,
api_configure_data,
api_user_data,
api_bpm_data
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
var mun = $scope.gridOptions.paginationPageSize;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.columnDefs = items.columnDefs();
$scope.transferTime = function (time) {
return moment(time).format("YYYY-MM-DD HH:mm");
};
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// console.log(newPage);
// console.log(pageSize);
$scope.loadData({
idx: newPage - 1,
sum: pageSize,
});
}
);
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 100,
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
// console.log("filtersData="+JSON.stringify(filtersData))
if (angular.isUndefined(filtersData["incident"])) {
filtersData["incident"] = {};
}
filtersData["incident"][item.field] =
item.filters[0].term;
if (angular.isUndefined(filtersData["problem"])) {
filtersData["problem"] = {};
}
filtersData["problem"][item.field] =
item.filters[0].term;
if (angular.isUndefined(filtersData["change"])) {
filtersData["change"] = {};
}
filtersData["change"][item.field] =
item.filters[0].term;
if (angular.isUndefined(filtersData["release"])) {
filtersData["release"] = {};
}
filtersData["release"][item.field] =
item.filters[0].term;
}
}
});
$scope.loadData(filtersData);
});
gridApi.selection.on.rowSelectionChanged(
$scope,
function (data) {
$scope.selected.item = data.entity;
//console.log(data);
}
);
};
//资产
$scope.cmdb = {};
//资产状态
$scope.state_data = [
{
name: "全部状态",
value: "",
},
{
name: "在库",
value: "1",
},
{
name: "在线",
value: "2",
},
{
name: "借出",
value: "3",
},
{
name: "报修",
value: "4",
},
{
name: "报废",
value: "5",
},
{
name: "备用",
value: "6",
},
];
//资产类型
$scope.wt_zcfl = function () {
api_configure_data
.fetchDataList("ciclassify", {
idx: 0,
sum: 100,
})
.then(function (data) {
console.log(data);
// $scope.wt_zclx = data.list;
console.log(data);
$scope.wtData = [];
if (data.status == 200) {
var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup
var root = null; //Initially set our loop to null
var parentNode = null;
//loop over data
// $scope.wtData=data.list;
data = data.list;
//知识库分类数据三级处理
for (var i = 0; i < data.length; i++) {
// console.log(data[i])
var datum = data[i];
//each node will have children, so let's give it a "children" poperty
// console.log(datum);
datum.children = [];
if (!datum.parent) {
$scope.wtData.push(datum);
// console.log($scope.wtData)
} else {
if ($scope.wtData[0]) {
if ($scope.wtData[0].id == datum.parent.id) {
$scope.wtData[0].children.push(datum);
}
for (
var j = 0;
j < $scope.wtData[0].children.length;
j++
) {
if (
$scope.wtData[0].children[j].id ==
datum.parent.id
) {
$scope.wtData[0].children[j].children.push(
datum
);
}
}
}
if ($scope.wtData[1]) {
if ($scope.wtData[1].id == datum.parent.id) {
$scope.wtData[1].children.push(datum);
}
for (
var j = 0;
j < $scope.wtData[1].children.length;
j++
) {
if (
$scope.wtData[1].children[j].id ==
datum.parent.id
) {
$scope.wtData[1].children[j].children.push(
datum
);
}
}
}
if ($scope.wtData[2]) {
if ($scope.wtData[2].id == datum.parent.id) {
$scope.wtData[2].children.push(datum);
}
for (
var j = 0;
j < $scope.wtData[2].children.length;
j++
) {
if (
$scope.wtData[2].children[j].id ==
datum.parent.id
) {
$scope.wtData[2].children[j].children.push(
datum
);
}
}
}
}
// console.log($scope.wtData)
idToNodeMap[datum.id] = datum;
root = datum;
// treeMap[datum.id] = root;
}
}
});
};
$scope.wt_zcfl();
//事件
//受理人,处理人
$scope.searchkeys = {};
var fieldata = {
idx: 0,
sum: 100,
flag: -1,
user: {
engineer: 1,
}
};
getUser(fieldata, 3);
function getUser(fieldatas, it) {
api_user_data
.fetchDataList("user", fieldatas)
.then(function (data) {
if (it == 1) {
$scope.acceptUser = data.list;
} else if (it == 2) {
$scope.handlingPersonnelUser = data.list;
} else if (it == 3) {
$scope.acceptUser = data.list;
$scope.handlingPersonnelUser = data.list;
}
});
}
//状态
$scope.othcode = {};
api_bpm_data
.fetchDataList("incidentstatus", {
idx: 0,
sum: 100,
})
.then(function (response) {
if (response) {
if ((response.status = 200)) {
$scope.state = response.list;
}
}
});
var defaultFilterData = {
assignee: $rootScope.user.id,
searchType: "todo",
idx: 0,
sum: mun,
};
var defaultFilterData1 = {
// "searchType": "todo",
idx: 0,
sum: mun,
};
//搜索
$scope.chiceIncident = function (parameters, item, stateid) {
console.log(item, stateid);
console.log($scope);
if ($scope.title == "关联资产编号") {
// alert('222222222222');
var fildata = defaultFilterData1;
$scope.gridOptions.paginationCurrentPage = 1;
var transitiondata = angular.copy(item);
angular.extend(fildata, transitiondata);
if (fildata.hw_state) {
fildata.hw_state = fildata.hw_state.name;
}
if (fildata.sign) {
fildata.sign = fildata.sign.prefix + fildata.sign.sign;
fildata.sign = fildata.sign.split(";");
fildata.sign = fildata.sign.join("");
fildata.sign = fildata.sign.toLowerCase();
}
if (fildata.keys) {
fildata["searchCriteria"] = "uuid";
}
console.log(fildata);
$scope.loadData(fildata);
}
if ($scope.title == "关联事件工单") {
// alert('3333333333333333')
if (stateid && stateid.code) {
item.statusId = stateid.code;
}
var fildata = defaultFilterData;
// $scope.memoryfilterData = fildata;
if (!fildata.incident) {
fildata["incident"] = {};
}
$scope.gridOptions.paginationCurrentPage = 1;
var transitiondata = angular.copy(item);
angular.extend(fildata.incident, transitiondata);
console.log(fildata);
// $scope.loadData(fildata);
api_bpm_data
.fetchDataList("incident", fildata)
.then(function (data) {
console.log(data);
if (data) {
$scope.myData = data.list;
$scope.gridOptions.totalItems = data.totalNum;
}
});
}
};
//重置
$scope.replacement = function (
parameters,
searchkeys,
othcode
) {
// console.log(parameters, searchkeys, othcode);
delete defaultFilterData.incident;
console.log(defaultFilterData);
$scope.parameters = null;
$scope.searchkeys = {};
$scope.othcode = {};
$scope.wt_zcfl();
};
$scope.loadData = function (filterData) {
items
.fetchItems(filterData, APIService, $rootScope)
.then(function (data) {
var myData = Restangular.stripRestangular(data);
if (myData.data && myData.data.node) {
$scope.gridOptions.totalItems = myData.total;
$scope.myData = myData.data.node;
} else {
if (myData.resultCount) {
$scope.gridOptions["totalItems"] = myData.resultCount;
} else {
$scope.gridOptions.totalItems = myData.totalNum;
}
if (myData.list) {
$scope.myData = myData.list;
} else {
$scope.myData = myData.data;
}
}
});
};
$scope.title = title;
$scope.loadData({
idx: 0,
sum: 10,
});
$scope.selected = {
item: {},
};
$scope.ok = function () {
//console.log($scope.selected.item);
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: size,
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService, $rootScope) {
filterData = filterData || {};
// if(!filterData.idx){
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
};
}
return options.templateOptions.fetchItems(
filterData,
APIService,
$rootScope
);
},
columnDefs: function () {
return options.templateOptions.columnDefs;
},
};
},
title: function () {
return options.templateOptions.modalTitle;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
},
});
modalInstance.result.then(
function (selectedItem) {
var selectitem = {
title: selectedItem.title,
description: selectedItem.description,
};
if (options.key == "chuku") {
if (selectedItem.assets) {
$scope.$parent.$parent.$parent.model.applicationForm.assets =
selectedItem.assets;
}
if (selectedItem.consumables) {
$scope.$parent.$parent.$parent.model.applicationForm.consumables =
selectedItem.consumables;
}
angular.extend(
$scope.$parent.$parent.$parent.model,
selectitem
);
options.value(selectedItem);
// options.model.consumables = JSON.parse(consumables);
} else if (options.templateOptions.pkey == "change") {
console.log(options);
angular.extend(options.model);
options.value(selectedItem);
} else if (options.key == "cmdbCode") {
var zc_selectitem = selectedItem.uuid;
// angular.extend(options.model,zc_selectitem);
options.model.cmdbCode = zc_selectitem;
// angular.extend(options.model,zc_selectitem);
// options.templateOptions.displayName=zc_selectitem;
options.value(selectedItem);
console.log(options.model);
} else {
angular.extend(options.model, selectitem);
options.value(selectedItem);
}
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
},
},
};
},
});
//选项选择控件
formlyConfigProvider.setType({
name: "ui-modelselect",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-modelselect.html",
defaultOptions: function (options) {
return {
templateOptions: {
openModal: function (size, options, modal) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/checktable-modal-content.html",
controller: function (
$scope,
$modalInstance,
items,
title,
Restangular,
APIService,
i18nService
) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = "zh-cn";
i18nService.setCurrentLang($scope.lang);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.showColumnFooter = true;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = false;
$scope.gridOptions.rowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.getRowIdentity = function (row) {
return row.id;
};
$scope.gridOptions.columnDefs = items.columnDefs();
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged(
$scope,
function (newPage, pageSize) {
// console.log(newPage);
// console.log(pageSize);
$scope.loadData({
idx: newPage - 1,
sum: pageSize,
});
}
);
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10,
};
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
// console.log("filtersData="+JSON.stringify(filtersData))
if (angular.isUndefined(filtersData["incident"])) {
filtersData["incident"] = {};
}
filtersData["incident"][item.field] =
item.filters[0].term;
if (angular.isUndefined(filtersData["problem"])) {
filtersData["problem"] = {};
}
filtersData["problem"][item.field] =
item.filters[0].term;
if (angular.isUndefined(filtersData["change"])) {
filtersData["change"] = {};
}
filtersData["change"][item.field] =
item.filters[0].term;
if (angular.isUndefined(filtersData["release"])) {
filtersData["release"] = {};
}
filtersData["release"][item.field] =
item.filters[0].term;
}
}
});
$scope.loadData(filtersData);
});
gridApi.selection.on.rowSelectionChanged(
$scope,
function (data) {
$scope.selected.item = data.entity;
//console.log(data);
}
);
};
$scope.loadData = function (filterData) {
items
.fetchItems(filterData, APIService)
.then(function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
$scope.myData = myData.list;
});
};
$scope.title = title;
$scope.loadData({
idx: 0,
sum: 10,
});
$scope.selected = {
item: {},
};
$scope.ok = function () {
if ($scope.selected.item.scheduleOrder) {
$scope.selected.item.descriptionData =
"日期:" +
$scope.selected.item.watchTime +
";" +
"班次:" +
$scope.selected.item.scheduleOrder.description +
";" +
"值班人:" +
$scope.selected.item.scheduleOrder.users[0].name;
}
//console.log($scope.selected.item);
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: size,
resolve: {
items: function () {
return {
fetchItems: function (filterData, APIService) {
filterData = filterData || {};
// if(!filterData.idx){
if (
angular.isDefined(filterData.idx) &&
filterData.idx == null
) {
filterData = {
idx: 0,
sum: 10,
};
}
return options.templateOptions.fetchItems(
filterData,
APIService,
options
);
},
columnDefs: function () {
return options.templateOptions.columnDefs;
},
};
},
title: function () {
return options.templateOptions.modalTitle;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
},
});
modalInstance.result.then(
function (selectedItem) {
options.value(selectedItem);
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
},
},
};
},
});
formlyConfigProvider.setType({
name: "ui-requestform",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-requestform.html",
controller: [
"$scope",
function ($scope) {
setTimeout(function () {
var filterData = {
idx: 0,
sum: 5,
incident: {
requester: {
id: "",
},
},
};
$scope.options.templateOptions
.getWorkernumber(
$scope.options.templateOptions.ApiService,
filterData
)
.then(function (result) {
var modelData =
$scope.options.templateOptions.Restangular.stripRestangular(
result
);
});
}, 1000);
},
],
});
//报修图片展示
formlyConfigProvider.setType({
name: "ui-repair-photos",
// extends: 'label',
templateUrl: "assets/views/customform/tpl/ui-repair-photos.html",
controller: [
"$scope",
"$rootScope",
"$modal",
"api_wechatfile",
"$stateParams",
function ($scope, $rootScope, $modal, api_wechatfile, $stateParams) {
console.log($scope);
$scope.imgs = [];
$scope.attachmentAddressSplicing = $rootScope.attachmentAddressSplicing;
if ($scope.model.wxFile) {
api_wechatfile
.listAttachment("wechatRequesterIncident", $scope.model.incident.id)
.then(function (res) {
$scope.imgs = res.data;
});
}
console.log($stateParams);
if (
$stateParams &&
$stateParams.model &&
JSON.parse($stateParams.model) &&
JSON.parse($stateParams.model).model &&
JSON.parse($stateParams.model).model.flow
) {
api_wechatfile
.listAttachment(
"wechatRequesterIncident",
JSON.parse($stateParams.model).model.flow
)
.then(function (res) {
$scope.imgs = res.data;
});
}
if ($scope.model.incident && $scope.model.incident.wxIncidentId) {
api_wechatfile
.listAttachment(
"wechatRequesterIncident",
$scope.model.incident.wxIncidentId
)
.then(function (res) {
$scope.imgs = res.data;
});
}
// if ($scope.model.flow) {
// api_wechatfile
// .listAttachment("wechatRequesterIncident", $scope.model.flow)
// .then(function (res) {
// $scope.imgs = res.data;
// });
// }
// 加载事件图片
// if($scope.model.incident){
// api_wechatfile
// .listAttachment("incident", $scope.model.incident.processInstanceId)
// .then(function (res) {
// $scope.imgs = res.data;
// });
// }
// if (angular.isUndefined($scope.model[$scope.options.key]) || $scope.model[$scope.options.key] == null) {
// // setTimeout(function () {
// // $scope.options.templateOptions.getWorkernumber($scope.options.templateOptions.ApiService).then(function (result) {
// // var modelData = $scope.options.templateOptions.Restangular.stripRestangular(result);
// // if (modelData.status == 200) {
// // $scope.model[$scope.options.key] = modelData.data;
// // $scope.options.initialValue = $scope.model[$scope.options.key];
// // }
// // });
// // }, 1000);
// }
$scope.preview = function (url, idx) {
var title = $scope.imgs[idx].title;
$modal.open({
backdrop: false,
templateUrl: "assets/views/customform/tpl/ui-showimage.html",
controller: function ($scope, $rootScope, scope, $modalInstance) {
$scope.title = title;
$scope.imageurl = $rootScope.attachmentAddressSplicing(url);
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
scope: function () {
return $scope;
},
},
});
};
},
],
});
//图片展示
formlyConfigProvider.setType({
name: "ui-showImgs",
templateUrl: "assets/views/customform/tpl/ui-showImgs.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function (APIService, processInstanceId, data) {
return APIService.listAttachments(processInstanceId);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(contentId).getRequestedUrl();
},
view: function (APIService, contentId) {
return APIService.attachmentsPreviewUrl(contentId);
},
download: function (APIService, contentId, item) {
var item = {
url: APIService.download(contentId),
headers: headers,
};
return item;
},
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$timeout",
"$modal",
"$rootScope",
"$http",
"up_down_file",
function ($scope, $timeout, $modal, $rootScope, $http, up_down_file) {
$scope.attachmentAddressSplicing = $rootScope.attachmentAddressSplicing;
var _refreshDelayPromise;
/**
* refresh
*/
$scope._refresh = function (refreshAttr) {
$scope.attachments = [];
if (refreshAttr !== undefined) {
if (_refreshDelayPromise) {
$timeout.cancel(_refreshDelayPromise);
}
_refreshDelayPromise = $timeout(function () {
// 暂存附件
if ($scope.$parent.$parent.$parent.model.save_fileId) {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
for (var i = 0; i < myData.data.length; i++) {
$scope.attachments.push(myData.data[i]);
}
}
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.$parent.$parent.$parent.model.save_fileId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response2) {
var myData2 =
$scope.options.templateOptions.Restangular.stripRestangular(
response2
);
if (myData2) {
for (var i = 0; i < myData2.data.length; i++) {
$scope.attachments.push(myData2.data[i]);
}
}
console.log($scope.attachments);
});
});
// 正常附件
} else {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
$scope.attachments = [];
$scope.imgs = [];
myData.data.forEach((e) => {
// if (
// e.suffix == "jpeg" ||
// e.suffix == "jpg" ||
// e.suffix == "svg" ||
// e.suffix == "png" ||
// e.suffix == "bmp" ||
// e.suffix == "gif" ||
// e.suffix == "tif"
// ) {
// $scope.imgs.push(e);
// }
$scope.imgs.push(e);
});
$scope.imgs = $scope.imgs;
console.log($scope.imgs);
}
});
}
}, $scope.options.templateOptions.refreshDelay);
}
};
$scope._refresh({});
// $scope.attachments = $scope.model[$scope.options.key]
// 预览
$scope.preview = function (url, idx) {
var title = $scope.imgs[idx].title;
$modal.open({
backdrop: false,
templateUrl: "assets/views/customform/tpl/ui-showimage.html",
controller: function ($scope, $rootScope, scope, $modalInstance) {
$scope.title = title;
$scope.imageurl = $rootScope.attachmentAddressSplicing(url);
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
scope: function () {
return $scope;
},
},
});
};
},
],
});
//工单/受理人控件
formlyConfigProvider.setType({
name: "ui-workernumbersign",
// extends: 'label',
templateUrl: "assets/views/customform/tpl/ui-workernumbersign.html",
controller: [
"$scope",
function ($scope) {
// 2020年4月24日13:20:40
console.log($scope, "docu");
// 左侧事件工单区域地点填充
$scope.model.selecthouseNumber = $scope.model.place;
if (
angular.isUndefined($scope.model[$scope.options.key]) ||
$scope.model[$scope.options.key] == null
) {
setTimeout(function () {
$scope.options.templateOptions
.getWorkernumber($scope.options.templateOptions.ApiService)
.then(function (result) {
var modelData =
$scope.options.templateOptions.Restangular.stripRestangular(
result
);
if (modelData.status == 200) {
$scope.model[$scope.options.key] = modelData.data;
$scope.options.initialValue =
$scope.model[$scope.options.key];
}
});
}, 1000);
}
if (
$scope.options.templateOptions.user &&
(angular.isUndefined($scope.model.acceptUser) ||
$scope.model.acceptUser == null)
) {
if (angular.isFunction($scope.options.templateOptions.transform)) {
// if ($scope.options.templateOptions.transform($scope.options, $scope.model, $scope.options.templateOptions.user)) {
// $scope.$parent.$parent.$parent.model['start_code'] = $scope.options.templateOptions.transform($scope.options, $scope.model, $scope.options.templateOptions.user);
// }
$scope.$parent.$parent.$parent.model["directClose"] = false;
$scope.$parent.$parent.$parent.model["directClose"] = false;
$scope.$parent.$parent.$parent.model["isHandlerUser"] = false;
}
$scope.model.acceptUser = $scope.options.templateOptions.user;
// $scope.options.initialValue = $scope.model.acceptUser;
}
},
],
});
//工单控件-only number
formlyConfigProvider.setType({
name: "ui-workernumber",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-workernumber.html",
controller: [
"$scope",
function ($scope) {
if (
angular.isUndefined($scope.model[$scope.options.key]) ||
$scope.model[$scope.options.key] == null
) {
setTimeout(function () {
$scope.options.templateOptions
.getWorkernumber($scope.options.templateOptions.ApiService)
.then(function (result) {
var modelData =
$scope.options.templateOptions.Restangular.stripRestangular(
result
);
if (modelData.status == 200) {
$scope.model[$scope.options.key] = modelData.data;
$scope.options.initialValue =
$scope.model[$scope.options.key];
}
});
}, 1000);
}
},
],
});
//cmdb工单
formlyConfigProvider.setType({
name: "ui-cmdbworkernumber",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-workernumber.html",
controller: [
"$scope",
function ($scope) {
if (
angular.isUndefined($scope.model[$scope.options.key]) ||
$scope.model[$scope.options.key] == null
) {
setTimeout(function () {
$scope.options.templateOptions
.getWorkernumber(
$scope.options.templateOptions.ApiService,
$scope.$parent.$parent.$parent.$parent.$parent.$parent.$parent
.cifilter_classics.id
)
.then(function (result) {
var modelData =
$scope.options.templateOptions.Restangular.stripRestangular(
result
);
// if(modelData.status==200){
$scope.model[$scope.options.key] =
modelData[$scope.options.key];
$scope.options.initialValue = $scope.model[$scope.options.key];
// }
});
}, 1000);
}
},
],
});
//简易上传图片组件
formlyConfigProvider.setType({
name: "ui-uploadImgs",
templateUrl: "assets/views/customform/tpl/ui-uploadImgs.html",
wrapper: ["bootstrapHasError"],
controller: [
"$scope",
"fileReader",
"$parse",
"$modal",
function ($scope, fileReader, $parse, $modal) {
$scope.imgshows = [];
$scope.uploadimgs = [];
var model = $parse("upload_img");
var modelSetter = model.assign;
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
// 添加
$scope.change = function (event) {
var element = $(".upinp");
modelSetter($scope, element[0].files[0]);
//附件预览
$scope.imgupload = event.files[0];
getFile($scope.imgupload, $scope);
//获得预览图地址并且把file对象放入上传合集内
function getFile(imgupload, $scope) {
if (!imgupload) {
return;
}
fileReader.readAsDataUrl(imgupload, $scope).then(function (result) {
$scope.imgshows.push(result);
var file = document.querySelector("input[type=file]").files[0];
$scope.uploadimgs.push(file); //这里是放着传给后台的数据file,下面controller的时候会有
console.log($scope.imgshows, $scope.uploadimgs);
if ($scope.imgshows.length < 3) {
$("#upup").show();
} else {
$("#upup").hide();
}
});
}
};
// 删除
$scope.uploadimg_del = function (index, imgs) {
console.log(index, imgs);
$scope.imgshows.splice(index, 1);
$scope.uploadimgs.splice(index, 1);
if ($scope.imgshows.length < 3) {
$("#upup").show();
} else {
$("#upup").hide();
}
};
// 预览
$scope.preview = function (url, idx) {
var name = $scope.uploadimgs[idx].name;
$modal.open({
backdrop: false,
templateUrl: "assets/views/customform/tpl/ui-showimage.html",
controller: function ($scope, scope, $modalInstance) {
$scope.title = name;
$scope.imageurl = url;
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
scope: function () {
return $scope;
},
},
});
};
if (uploader) {
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info("onAfterAddingAll", addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
};
uploader.onErrorItem = function (
fileItem,
response,
status,
headers
) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
}
// console.log(modelSetter)
},
],
});
//jry-上传下载一体
formlyConfigProvider.setType({
name: "ui-upDropFile",
templateUrl: "assets/views/customform/tpl/ui-upDropFile.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {
view: function (APIService, contentId) {
return APIService.downloadAttachment(contentId);
},
// ApiService: 'api_wechatfile',
// refresh: "(function(APIService,model,data){return APIService.listAttachments(model, data)})",
// upUrl: 'common/common/uploadAttachment',
// listAttachmentUrl: 'common/common/listAttachment',
// downUrl: 'common/common/downloadAttachment',
// bindType: 'incident',
// bindId: 2323
},
// validators: {
// required: {
// expression: function(viewValue, modelValue) {
// var value = modelValue || viewValue;
// return value.length >= 1;
// }
// }
// }
};
},
controller: [
"$scope",
"$rootScope",
"Restangular",
"up_down_file",
"$http",
"api_bpm",
function ($scope, $rootScope, Restangular, up_down_file, $http, api_bpm) {
console.log($scope);
$scope.showFileUp = true;
if ($scope.model.isKnowledge_detail) {
$scope.showFileUp = false;
}
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
if ($scope.model.incident) {
if ($scope.model.incident.alarm) {
console.log($scope);
if ($scope.model.incident.alarm) {
if ($scope.model.incident.alarm.alarmExtension) {
$scope.model.incident.alarm.alarmExtension =
$scope.model.incident.alarm.alarmExtension.replace("{", "");
$scope.model.incident.alarm.alarmExtension =
$scope.model.incident.alarm.alarmExtension.replace("}", "");
$scope.model.incident.description =
$scope.model.incident.alarm.alarmExtension;
console.log($scope.model.incident.description);
$scope.model.incident.description =
'"' +
"告警名称" +
'":' +
'"' +
$scope.model.incident.alarm.alarmSystem +
'",' +
'"' +
"告警状态" +
'":' +
'"' +
$scope.model.incident.alarm.alarmStatus +
'",' +
'"' +
"告警内容" +
'":' +
'"' +
$scope.model.incident.alarm.alarmContent +
'",' +
$scope.model.incident.description;
} else {
$scope.model.incident.description =
'"' +
"告警名称" +
'":' +
'"' +
$scope.model.incident.alarm.alarmSystem +
'",' +
'"' +
"告警状态" +
'":' +
'"' +
$scope.model.incident.alarm.alarmStatus +
'",' +
'"' +
"告警内容" +
'":' +
'"' +
$scope.model.incident.alarm.alarmContent +
'",';
}
$scope.model.incident.description =
$scope.model.incident.description.replace(/,/g, "\n");
console.log($scope.model.incident.description);
}
}
api_bpm
.tellCategory($scope.model.incident.category.id)
.then(function (wt_data) {
console.log(wt_data);
if (wt_data) {
$rootScope.wt_category = wt_data.data;
$rootScope.wt_categoryId = $scope.model.incident.category.id;
$rootScope.wt_child = wt_data.child;
}
});
if ($scope.model.titleName == "接单") {
$scope.model.receive_code = "handler";
if (
$scope.model.incident.groupLeader &&
!$scope.model.incident.repeat
) {
$scope.model.isHandlerUser = true;
}
}
if ($scope.model.titleName == "事件处理") {
console.log($scope.model.cmdbCode);
if ($scope.model.cmdbCode) {
$scope.model.incident.cmdbCode = $scope.model.cmdbCode;
}
}
} else {
$rootScope.wt_category = "";
}
//附件上传数据
if ($scope.options.templateOptions.fileUploader) {
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
//$scope.options.templateOptions.uploader();
console.log(uploader);
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
}
var to = $scope.options.templateOptions;
// var bindType = $scope.model.bindType;
if (to.bindType == "incident") {
var bindId = $scope.model[to.bindType].processInstanceId;
} else if (to.bindType == "change") {
var bindId = $scope.model[to.bindType].processInstanceId;
} else {
var bindId = $scope.model[to.bindType].id;
}
//获取附件列表
$scope.listAttachmen = function () {
to.ApiService.listAttachment(
to.listAttachmentUrl,
to.bindType,
bindId
).then(function (result) {
var myData = Restangular.stripRestangular(result);
// $scope.listAttachmens = myData;
$scope.attachments = myData.data;
});
};
if (to.bindType && $scope.model[to.bindType].processInstanceId) {
$scope.listAttachmen();
} else if (to.bindType && $scope.model[to.bindType].id) {
$scope.listAttachmen();
}
//附件上传
$scope.isUpfload = to.isUpfload;
$scope.dropfile = function (
APIService,
processInstanceId,
taskId,
userId
) {
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = to.ApiService.saveAttachments(
to.uploadUrl,
to.bindType,
bindId
).getRequestedUrl();
item.formData.push({
filename: item.file.name,
});
};
uploader.uploadAll();
};
//附件下载
$scope.download = function (token, filename) {
var downUrl = to.ApiService.downloadAttachment(
to.downUrl,
token
).getRequestedUrl();
// window.open(downUrl);
var a = document.createElement("a");
a.href = downUrl;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
};
//附件预览
$scope.view = function (id, previewUrl) {
if (previewUrl) {
window.open(previewUrl);
}
// $scope.options.templateOptions.view($scope.options.templateOptions.ApiService, bindId).then(function(response) {
// if (response.state == 200) {
// window.open(response.previewUrl);
// }
// })
};
// CALLBACKS
if (uploader) {
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info("onAfterAddingAll", addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
// if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){
// // $scope.uploader.options.url();
// $scope.uploader.onBeforeUploadItem = function(item) {
// item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl();
// console.info('onBeforeUploadItem', item);
// };
// $scope.uploader.uploadAll();
// }
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
if (response.status == 200) {
$scope.listAttachmen();
}
};
uploader.onErrorItem = function (
fileItem,
response,
status,
headers
) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
}
},
],
});
//简易上传下载附件组件
formlyConfigProvider.setType({
name: "ui-upDownFiles",
templateUrl: "assets/views/customform/tpl/ui-upDownFiles.html",
wrapper: ["bootstrapHasError"],
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function (APIService, processInstanceId, data) {
return APIService.listAttachments(processInstanceId);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(contentId).getRequestedUrl();
},
view: function (APIService, contentId) {
return APIService.attachmentsPreviewUrl(contentId);
},
download: function (APIService, contentId, item) {
var item = {
url: APIService.download(contentId),
headers: headers,
};
return item;
},
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$timeout",
"$modal",
"$rootScope",
"$http",
"up_down_file",
function ($scope, $timeout, $modal, $rootScope, $http, up_down_file) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
//附件上传数据
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
//$scope.options.templateOptions.uploader();
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
// $scope.dropfile = function (APIService, processInstanceId, taskId, userId) {
// uploader.onBeforeUploadItem = function (item) {
// angular.extend(item.headers, $rootScope.getSession());
// item.url = APIService.saveAttachments(processInstanceId, taskId, userId).getRequestedUrl();
// item.formData.push({
// 'fileName': item.file.name
// });
// console.info('onBeforeUploadItem', item);
// };
// }
// CALLBACKS
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
if (fileItem.file.size >= 1024 * 1024 * 10) {
alert("文件过大");
fileItem.uploader.queue.pop();
console.log($scope);
}
};
uploader.onAfterAddingAll = function (addedFileItems) {
// console.info('onAfterAddingAll', addedFileItems);
// console.log($scope.options.templateOptions.APIService.saveAttachments(processInstanceId, taskId, userId).getRequestedUrl())
// console.log(APIService.saveAttachments(processInstanceId, taskId, userId).getRequestedUrl())
// console.log(api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl())
// console.log(123)
};
uploader.onBeforeUploadItem = function (item) {
// if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){
// // $scope.uploader.options.url();
// $scope.uploader.onBeforeUploadItem = function(item) {
// item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl();
// console.info('onBeforeUploadItem', item);
// };
// $scope.uploader.uploadAll();
// }
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
};
uploader.onErrorItem = function (fileItem, response, status, headers) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (fileItem, response, status, headers) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
var _refreshDelayPromise;
// 下载
$scope.download = function (contentId, filename, token) {
// console.log(contentId, filename, token)
//附件下载
var downUrl = up_down_file
.downloadAttachment("common/common/downloadAttachment", token)
.getRequestedUrl();
// downUrl = downUrl.substring(0, downUrl.lastIndexOf("/"));
// console.log(downUrl)
var a = document.createElement("a");
a.href = downUrl;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
};
$scope._refresh = function (refreshAttr) {
$scope.attachments = [];
if (refreshAttr !== undefined) {
if (_refreshDelayPromise) {
$timeout.cancel(_refreshDelayPromise);
}
_refreshDelayPromise = $timeout(function () {
// 暂存附件
if ($scope.$parent.$parent.$parent.model.save_fileId) {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
for (var i = 0; i < myData.data.length; i++) {
$scope.attachments.push(myData.data[i]);
}
}
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.$parent.$parent.$parent.model.save_fileId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response2) {
var myData2 =
$scope.options.templateOptions.Restangular.stripRestangular(
response2
);
if (myData2) {
for (var i = 0; i < myData2.data.length; i++) {
$scope.attachments.push(myData2.data[i]);
}
// 只展示除图片以外的附件
var a = [];
$scope.attachments.forEach((e) => {
if (
e.suffix == "jpeg" ||
e.suffix == "jpg" ||
e.suffix == "svg" ||
e.suffix == "png" ||
e.suffix == "bmp" ||
e.suffix == "gif" ||
e.suffix == "tif"
) {
// $scope.imgs.push(e)
} else {
a.push(e);
}
});
$scope.attachments = a;
}
console.log($scope.attachments);
});
});
// 正常附件
} else {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
$scope.attachments = myData.data;
// 只展示除图片以外的附件
var a = [];
$scope.attachments.forEach((e) => {
if (
e.suffix == "jpeg" ||
e.suffix == "jpg" ||
e.suffix == "svg" ||
e.suffix == "png" ||
e.suffix == "bmp" ||
e.suffix == "gif" ||
e.suffix == "tif"
) {
// $scope.imgs.push(e)
} else {
a.push(e);
}
});
$scope.attachments = a;
}
});
}
}, $scope.options.templateOptions.refreshDelay);
}
};
$scope._refresh({});
},
],
});
//简易上传附件组件
formlyConfigProvider.setType({
name: "ui-uploadFiles",
templateUrl: "assets/views/customform/tpl/ui-uploadFiles.html",
wrapper: ["bootstrapHasError"],
controller: [
"$scope",
function ($scope) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
//附件上传数据
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
//$scope.options.templateOptions.uploader();
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
$scope.dropfile = function (
APIService,
processInstanceId,
taskId,
userId
) {
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = APIService.saveAttachments(
processInstanceId,
taskId,
userId
).getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
console.info("onBeforeUploadItem", item);
};
};
// CALLBACKS
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
if (fileItem.file.size >= 1024 * 1024 * 10) {
alert("文件过大");
fileItem.uploader.queue.pop();
console.log($scope);
}
};
uploader.onAfterAddingAll = function (addedFileItems) {
// console.info('onAfterAddingAll', addedFileItems);
// console.log($scope.options.templateOptions.APIService.saveAttachments(processInstanceId, taskId, userId).getRequestedUrl())
// console.log(APIService.saveAttachments(processInstanceId, taskId, userId).getRequestedUrl())
// console.log(api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl())
// console.log(123)
};
uploader.onBeforeUploadItem = function (item) {
// if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){
// // $scope.uploader.options.url();
// $scope.uploader.onBeforeUploadItem = function(item) {
// item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl();
// console.info('onBeforeUploadItem', item);
// };
// $scope.uploader.uploadAll();
// }
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
};
uploader.onErrorItem = function (fileItem, response, status, headers) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (fileItem, response, status, headers) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
},
],
});
//无上传按钮附件上传组件
formlyConfigProvider.setType({
name: "ui-dropfilenotup",
templateUrl: "assets/views/customform/tpl/ui-dropfilenotup.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
controller: [
"$scope",
function ($scope) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
//附件上传数据
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
//$scope.options.templateOptions.uploader();
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
$scope.dropfile = function (
APIService,
processInstanceId,
taskId,
userId
) {
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = APIService.saveAttachments(
processInstanceId,
taskId,
userId
).getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
console.info("onBeforeUploadItem", item);
};
uploader.uploadAll();
};
// CALLBACKS
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info("onAfterAddingAll", addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
// if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){
// // $scope.uploader.options.url();
// $scope.uploader.onBeforeUploadItem = function(item) {
// item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl();
// console.info('onBeforeUploadItem', item);
// };
// $scope.uploader.uploadAll();
// }
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
};
uploader.onErrorItem = function (fileItem, response, status, headers) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (fileItem, response, status, headers) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
},
],
});
//无按钮知识库上传
formlyConfigProvider.setType({
name: "ui-dropfielkn",
templateUrl: "assets/views/customform/tpl/ui-dropfilenotup.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
controller: [
"$scope",
function ($scope) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
//附件上传数据
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
//$scope.options.templateOptions.uploader();
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
$scope.dropfile = function (
APIService,
processInstanceId,
taskId,
userId
) {
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = APIService.addFile(
processInstanceId,
taskId,
userId
).getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
console.info("onBeforeUploadItem", item);
};
uploader.uploadAll();
};
// CALLBACKS
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info("onAfterAddingAll", addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
// if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){
// // $scope.uploader.options.url();
// $scope.uploader.onBeforeUploadItem = function(item) {
// item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl();
// console.info('onBeforeUploadItem', item);
// };
// $scope.uploader.uploadAll();
// }
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
};
uploader.onErrorItem = function (fileItem, response, status, headers) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (fileItem, response, status, headers) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
},
],
});
//附件上传列表组件
formlyConfigProvider.setType({
name: "ui-dropfile",
templateUrl: "assets/views/customform/tpl/ui-dropfile.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
controller: [
"$scope",
"$rootScope",
function ($scope, $rootScope) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
//附件上传数据
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
//$scope.options.templateOptions.uploader();
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
$scope.dropfile = function (
APIService,
processInstanceId,
taskId,
userId
) {
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
if (
$scope.options.templateOptions.upservice &&
$scope.options.templateOptions.formname
) {
// if ($scope.options.templateOptions.formket) {
// item.url = APIService[$scope.options.templateOptions.upservice]($scope.model[$scope.options.templateOptions.formname][$scope.options.templateOptions.formket].id, taskId, userId).getRequestedUrl();
// } else {
item.url = APIService[$scope.options.templateOptions.upservice](
$scope.model[$scope.options.templateOptions.formname].id,
taskId,
userId
).getRequestedUrl();
// }
} else {
item.url = APIService.saveAttachments(
processInstanceId,
taskId,
userId
).getRequestedUrl();
}
item.formData.push({
filename: item.file.name,
});
console.info("onBeforeUploadItem", item);
};
uploader.uploadAll();
};
// CALLBACKS
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info("onAfterAddingAll", addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
// if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){
// // $scope.uploader.options.url();
// $scope.uploader.onBeforeUploadItem = function(item) {
// item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl();
// console.info('onBeforeUploadItem', item);
// };
// $scope.uploader.uploadAll();
// }
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
};
uploader.onErrorItem = function (fileItem, response, status, headers) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (fileItem, response, status, headers) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
},
],
});
//简易附件展示下载列表组件
formlyConfigProvider.setType({
name: "ui-dropFiles",
templateUrl: "assets/views/customform/tpl/ui-dropFiles.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function (APIService, processInstanceId, data) {
return APIService.listAttachments(processInstanceId);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(contentId).getRequestedUrl();
},
view: function (APIService, contentId) {
return APIService.attachmentsPreviewUrl(contentId);
},
download: function (APIService, contentId, item) {
var item = {
url: APIService.download(contentId),
headers: headers,
};
return item;
},
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$timeout",
"$modal",
"$rootScope",
"$http",
"up_down_file",
function ($scope, $timeout, $modal, $rootScope, $http, up_down_file) {
var _refreshDelayPromise;
// $scope.downloadUrl = function(contentId){
// return $scope.options.templateOptions.downloadUri($scope.options.templateOptions.ApiService,contentId)||'#';
// };
$scope.download = function (contentId, filename, token) {
// console.log(contentId, filename, token)
//附件下载
var downUrl = up_down_file
.downloadAttachment("common/common/downloadAttachment", token)
.getRequestedUrl();
// downUrl = downUrl.substring(0, downUrl.lastIndexOf("/"));
// console.log(downUrl)
var a = document.createElement("a");
a.href = downUrl;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
};
$scope.view = function (contentId, token, filename, type) {
$scope.options.templateOptions
.view($scope.options.templateOptions.ApiService, contentId)
.then(function (response) {
if (response.state == 200) {
window.open(response.previewUrl);
}
});
};
/**
* refresh
*/
$scope._refresh = function (refreshAttr) {
$scope.attachments = [];
if (refreshAttr !== undefined) {
if (_refreshDelayPromise) {
$timeout.cancel(_refreshDelayPromise);
}
_refreshDelayPromise = $timeout(function () {
// 暂存附件
if ($scope.$parent.$parent.$parent.model.save_fileId) {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
for (var i = 0; i < myData.data.length; i++) {
$scope.attachments.push(myData.data[i]);
}
}
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.$parent.$parent.$parent.model.save_fileId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response2) {
var myData2 =
$scope.options.templateOptions.Restangular.stripRestangular(
response2
);
if (myData2) {
for (var i = 0; i < myData2.data.length; i++) {
$scope.attachments.push(myData2.data[i]);
}
// 只展示除图片以外的附件
var a = [];
$scope.attachments.forEach((e) => {
if (
e.suffix == "jpeg" ||
e.suffix == "jpg" ||
e.suffix == "svg" ||
e.suffix == "png" ||
e.suffix == "bmp" ||
e.suffix == "gif" ||
e.suffix == "tif"
) {
// $scope.imgs.push(e)
} else {
a.push(e);
}
});
$scope.attachments = a;
}
console.log($scope.attachments);
});
});
// 正常附件
} else {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
$scope.attachments = myData.data;
// 只展示除图片以外的附件
var a = [];
$scope.attachments.forEach((e) => {
if (
e.suffix == "jpeg" ||
e.suffix == "jpg" ||
e.suffix == "svg" ||
e.suffix == "png" ||
e.suffix == "bmp" ||
e.suffix == "gif" ||
e.suffix == "tif"
) {
// $scope.imgs.push(e)
} else {
a.push(e);
}
});
$scope.attachments = a;
console.log($scope.attachments);
}
});
}
}, $scope.options.templateOptions.refreshDelay);
}
};
$scope._refresh({});
// $scope.attachments = $scope.model[$scope.options.key]
},
],
});
//知识库附件上传
formlyConfigProvider.setType({
name: "ui-dropfielknow",
templateUrl: "assets/views/customform/tpl/ui-dropfile.html",
wrapper: ["bootstrapLabel", "bootstrapHasError"],
controller: [
"$scope",
"$rootScope",
function ($scope, $rootScope) {
if (angular.isUndefined($scope.form.dropState)) {
$scope.form.dropState = false;
}
//附件上传数据
var uploader = ($scope.uploader =
$scope.options.templateOptions.fileUploader);
//$scope.options.templateOptions.uploader();
// FILTERS
uploader.filters.push({
name: "customFilter",
fn: function (item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
},
});
$scope.dropfile = function (
APIService,
processInstanceId,
taskId,
userId
) {
uploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = APIService.upload(
processInstanceId,
taskId,
userId
).getRequestedUrl();
item.formData.push({
fileName: item.file.name,
type: "solution",
solutionId: $scope.model.knowledge.id,
});
console.info("onBeforeUploadItem", item);
};
uploader.uploadAll();
};
// CALLBACKS
uploader.onWhenAddingFileFailed = function (
item /*{File|FileLikeObject}*/,
filter,
options
) {
console.info("onWhenAddingFileFailed", item, filter, options);
};
uploader.onAfterAddingFile = function (fileItem) {
console.info("onAfterAddingFile", fileItem);
};
uploader.onAfterAddingAll = function (addedFileItems) {
console.info("onAfterAddingAll", addedFileItems);
};
uploader.onBeforeUploadItem = function (item) {
// if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){
// // $scope.uploader.options.url();
// $scope.uploader.onBeforeUploadItem = function(item) {
// item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl();
// console.info('onBeforeUploadItem', item);
// };
// $scope.uploader.uploadAll();
// }
console.info("onBeforeUploadItem", item);
};
uploader.onProgressItem = function (fileItem, progress) {
console.info("onProgressItem", fileItem, progress);
};
uploader.onProgressAll = function (progress) {
console.info("onProgressAll", progress);
};
uploader.onSuccessItem = function (
fileItem,
response,
status,
headers
) {
console.info("onSuccessItem", fileItem, response, status, headers);
};
uploader.onErrorItem = function (fileItem, response, status, headers) {
console.info("onErrorItem", fileItem, response, status, headers);
};
uploader.onCancelItem = function (fileItem, response, status, headers) {
console.info("onCancelItem", fileItem, response, status, headers);
};
uploader.onCompleteItem = function (
fileItem,
response,
status,
headers
) {
console.info("onCompleteItem", fileItem, response, status, headers);
};
uploader.onCompleteAll = function () {
console.info("onCompleteAll");
};
},
],
});
//知识库附件下载列表
formlyConfigProvider.setType({
name: "ui-dropfileknowledge",
templateUrl: "assets/views/customform/tpl/ui-dropfileknowledge.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function (APIService, contentId, data) {
return APIService.fetchDataList(contentId, data);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(contentId).getRequestedUrl();
},
download: function (APIService, contentId) {
return APIService.getSolutionDowpath(contentId);
},
view: function (attachmentId) {
// return APIService.attachmentsPreviewUrl(contentId);
},
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$timeout",
"$modal",
"$rootScope",
"api_solution",
"$http",
function ($scope, $timeout, $modal, $rootScope, api_solution, $http) {
var _refreshDelayPromise;
$scope.attachments = [];
$scope.downloadUrl = function (contentId) {
return (
$scope.options.templateOptions.downloadUri(
$scope.options.templateOptions.ApiService,
contentId
) || "#"
);
};
$scope.download = function (contentId, filename) {
$http({
url: $scope.options.templateOptions.ApiService.getSolutionDowpath(
contentId
).getRequestedUrl(),
method: "GET",
headers: {
//'Content-type' : 'application/xls',
Accept: "*/*",
},
responseType: "arraybuffer",
})
.success(function (data, status, headers, config) {
var file = new Blob([data], {
type: "application/octet-stream",
});
//trick to download store a file having its URL
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
})
.error(function (data, status, headers, config) {
// console.log(data);
});
};
$scope.view = function (contentId, filename, attachment) {
var index = filename.indexOf(".");
var type = filename.substring(index + 1);
// if (type == 'jpg' || type == 'png' || type == 'jpeg' || type == 'bmp' || type == 'gif') {
// $scope.imageurl = $scope.options.templateOptions.ApiService.getSolutionDowpath(contentId).getRequestedUrl();
// var modalInstance = $modal.open({
// backdrop: false,
// templateUrl: 'assets/views/customform/tpl/ui-showimage.html',
// controller: function($scope, scope, $modalInstance, filename) {
// $scope.title = filename;
// $scope.imageurl = scope.imageurl;
// $scope.cancel = function() {
// $modalInstance.dismiss('cancel');
// }
// },
// resolve: {
// scope: function() {
// return $scope;
// },
// filename: function() {
// return filename;
// }
// }
// });
// event.preventDefault();
// } else {
// for (var i = 0; i < $scope.attachments.length; i++) {
// if ($scope.attachments[i].id == attachmentId) {
window.open(attachment.previewUrl);
// }
// }
// }
};
$scope._refresh = function (refreshAttr) {
if (refreshAttr !== undefined) {
if (_refreshDelayPromise) {
$timeout.cancel(_refreshDelayPromise);
}
_refreshDelayPromise = $timeout(function () {
$scope.options.templateOptions
.refresh($scope.options.templateOptions.ApiService, "file", {
file: {
solutionId: $scope.model.knowledge.id,
},
idx: "0",
sum: "1000",
})
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
$scope.attachments = myData.list;
// $scope.view = function(attachmentId) {
// for (var i = 0; i < $scope.attachments.length; i++) {
// if ($scope.attachments[i].id == attachmentId) {
// window.open($scope.attachments[i].previewUrl);
// // var modalInstance = $modal.open({
// // templateUrl: 'assets/views/knowledge/tpl/detailknowledge.html',
// // controller: function($scope, $http,$modalInstance, APIService, uploader,tree_data, currentUser){
// // }
// // });
// }
// }
// };
}
});
}, $scope.options.templateOptions.refreshDelay);
}
};
$scope._refresh({});
// $scope.attachments = $scope.model[$scope.options.key]
},
],
});
//附件图片下载
formlyConfigProvider.setType({
name: "ui-downimage",
templateUrl: "assets/views/customform/tpl/ui-downimage.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function (APIService, processInstanceId, data) {
return APIService.listAttachments(processInstanceId, data);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(contentId).getRequestedUrl();
},
view: function (APIService, contentId) {
return APIService.attachmentsPreviewUrl(contentId);
},
download: function (APIService, contentId, item) {
var item = {
url: APIService.download(contentId),
headers: headers,
};
return item;
},
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$timeout",
"$rootScope",
"$http",
function ($scope, $timeout, $rootScope, $http) {
var _refreshDelayPromise;
// $scope.downloadUrl = function(contentId){
// return $scope.options.templateOptions.downloadUri($scope.options.templateOptions.ApiService,contentId)||'#';
// };
$scope.download = function (contentId, filename) {
// var headers=
$http({
url: $scope.options.templateOptions.ApiService.download(
contentId
).getRequestedUrl(),
method: "GET",
headers: {
//'Content-type' : 'application/xls',
Accept: "*/*",
},
responseType: "arraybuffer",
})
.success(function (data, status, headers, config) {
var file = new Blob([data], {
type: "application/octet-stream",
});
//trick to download store a file having its URL
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
})
.error(function (data, status, headers, config) {
// console.log(data);
});
};
$scope.view = function (contentId) {
$scope.imageurl =
$scope.options.templateOptions.ApiService.download(
contentId
).getRequestedUrl();
// $scope.options.templateOptions.view($scope.options.templateOptions.ApiService, contentId).then(function(response) {
// if (response.state == 200) {
// window.open(response.previewUrl);
// }
// })
};
/**
* refresh
*/
$scope._refresh = function (refreshAttr) {
if (refreshAttr !== undefined) {
if (_refreshDelayPromise) {
$timeout.cancel(_refreshDelayPromise);
}
_refreshDelayPromise = $timeout(function () {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
$scope.attachments = myData.data;
}
});
}, $scope.options.templateOptions.refreshDelay);
}
};
$scope._refresh({});
// $scope.attachments = $scope.model[$scope.options.key]
},
],
});
//附件下载列表组件
formlyConfigProvider.setType({
name: "ui-dropfiletable",
templateUrl: "assets/views/customform/tpl/ui-dropfiletable.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function (APIService, processInstanceId, data) {
return APIService.listAttachments(processInstanceId, data);
},
downloadUri: function (APIService, contentId) {
return APIService.downloadAttachment(contentId).getRequestedUrl();
},
view: function (APIService, contentId) {
return APIService.attachmentsPreviewUrl(contentId);
},
download: function (APIService, contentId, item) {
var item = {
url: APIService.download(contentId),
headers: headers,
};
return item;
},
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$timeout",
"$modal",
"$rootScope",
"$http",
function ($scope, $timeout, $modal, $rootScope, $http) {
var _refreshDelayPromise;
// $scope.downloadUrl = function(contentId){
// return $scope.options.templateOptions.downloadUri($scope.options.templateOptions.ApiService,contentId)||'#';
// };
$scope.download = function (contentId, filename) {
// var headers=
$http({
url: $scope.options.templateOptions.ApiService.download(
contentId
).getRequestedUrl(),
method: "GET",
headers: {
//'Content-type' : 'application/xls',
Accept: "*/*",
},
responseType: "arraybuffer",
})
.success(function (data, status, headers, config) {
var file = new Blob([data], {
type: "application/octet-stream",
});
//trick to download store a file having its URL
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
})
.error(function (data, status, headers, config) {
// console.log(data);
});
// $scope.options.templateOptions.ApiService.download(contentId).then(function(response){
// // $scope.options.templateOptions.download($scope.options.templateOptions.ApiService,contentId).then(function(response){
// var file = new Blob([response], {
// type : 'application/octet-stream'
// });
// // var filename = filename;
// //var file = new Blob([response], {type: 'application/pdf'});
// var fileURL = URL.createObjectURL(file);
// var a = document.createElement('a');
// a.href = fileURL;
// a.target = '_blank';
// a.download = filename ;
// document.body.appendChild(a);
// a.click();
// })
};
$scope.view = function (contentId, token, filename, type) {
// if (type == 'jpg' || type == 'png' || type == 'jpeg' || type == 'bmp' || type == 'gif') {
// $scope.imageurl = $scope.options.templateOptions.ApiService.download(contentId).getRequestedUrl();
// var modalInstance = $modal.open({
// backdrop: false,
// templateUrl: 'assets/views/customform/tpl/ui-showimage.html',
// controller: function($scope, scope, $modalInstance, filename) {
// $scope.title = filename;
// $scope.imageurl = scope.imageurl;
// $scope.cancel = function() {
// $modalInstance.dismiss('cancel');
// }
// },
// resolve: {
// scope: function() {
// return $scope;
// },
// filename: function() {
// return filename;
// }
// }
// });
// event.preventDefault();
// } else {
$scope.options.templateOptions
.view($scope.options.templateOptions.ApiService, contentId)
.then(function (response) {
if (response.state == 200) {
window.open(response.previewUrl);
}
});
// }
};
/**
* refresh
*/
$scope._refresh = function (refreshAttr) {
if (refreshAttr !== undefined) {
if (_refreshDelayPromise) {
$timeout.cancel(_refreshDelayPromise);
}
_refreshDelayPromise = $timeout(function () {
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.options.templateOptions.processInstanceId,
{
idx: 0,
sum: 1000,
}
)
.then(function (response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
$scope.attachments = myData.data;
}
});
}, $scope.options.templateOptions.refreshDelay);
}
};
$scope._refresh({});
// $scope.attachments = $scope.model[$scope.options.key]
},
],
});
//微信附件下载列表组件
formlyConfigProvider.setType({
name: "ui-dropfilewechat",
templateUrl: "assets/views/customform/tpl/ui-dropfilewechat.html",
defaultOptions: function (options) {
return {
templateOptions: {
// refresh: function(APIService, processInstanceId, data) {
// return APIService.listAttachments(processInstanceId, data);
// },
// downloadUri: function(APIService, contentId) {
// return APIService.downloadAttachment(contentId).getRequestedUrl();
// },
view: function (APIService, contentId) {
// return APIService.attachmentsPreviewUrl(contentId);
return APIService.attachmentsPreviewUrl(contentId);
},
download: function (APIService, contentId, item) {
var item = {
url: APIService.download(contentId),
headers: headers,
};
return item;
},
// download: function(APIService, contentId, item) {
// var item = { 'url': APIService.downloadAttachment(contentId), 'headers': headers };
// return item;
// },
refreshDelay: 0,
},
};
},
controller: [
"$scope",
"$timeout",
"$modal",
"$stateParams",
"$rootScope",
"$http",
"api_wechatfile",
function (
$scope,
$timeout,
$modal,
$stateParams,
$rootScope,
$http,
api_wechatfile
) {
var _refreshDelayPromise;
// $scope.downloadUrl = function(contentId){
// return $scope.options.templateOptions.downloadUri($scope.options.templateOptions.ApiService,contentId)||'#';
// };
$scope.attachments = {};
$scope.previewUrl = "";
$scope.download = function (token, filename) {
// var headers=
console.log($scope);
$http({
url: $scope.options.templateOptions.ApiService.jry_download(
token
).getRequestedUrl(),
method: "GET",
headers: {
//'Content-type' : 'application/xls',
Accept: "*/*",
},
responseType: "arraybuffer",
})
.success(function (data, status, headers, config) {
var file = new Blob([data], {
type: "application/octet-stream",
});
//trick to download store a file having its URL
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.target = "_blank";
a.download = filename;
document.body.appendChild(a);
a.click();
})
.error(function (data, status, headers, config) {
// console.log(data);
});
};
$scope.view = function (contentId, token, filename, type, previewUrl) {
// if (type) {
// $scope.imageurl = $scope.options.templateOptions.ApiService.downloadAttachment(token).getRequestedUrl();
// var modalInstance = $modal.open({
// backdrop: false,
// templateUrl: 'assets/views/customform/tpl/ui-showimage.html',
// controller: function($scope, scope, $modalInstance, filename) {
// $scope.title = filename;
// $scope.imageurl = scope.imageurl;
// $scope.cancel = function() {
// $modalInstance.dismiss('cancel');
// }
// },
// resolve: {
// scope: function() {
// return $scope;
// },
// filename: function() {
// return filename;
// }
// }
// });
// event.preventDefault();
// } else {
// $scope.options.templateOptions.view($scope.options.templateOptions.apiService, contentId).then(function(response) {
// if (response.state == 200) {
// window.open(response.previewUrl);
// }
// })
window.open(previewUrl);
// }
};
/**
* refresh
*/
$scope._refresh = function (refreshAttr) {
if (refreshAttr !== undefined) {
if (_refreshDelayPromise) {
$timeout.cancel(_refreshDelayPromise);
}
_refreshDelayPromise = $timeout(function () {
// console.log(JSON.parse($stateParams.model))
var incidentChart = {};
if ($stateParams.model) {
incidentChart = JSON.parse($stateParams.model).model;
}
$scope.options.templateOptions
.refresh(
$scope.options.templateOptions.ApiService,
$scope.model
)
.then(function (response) {
// $scope.options.templateOptions.refresh($scope.options.templateOptions.ApiService,
// incidentChart.incident.type, incidentChart.flow).then(function(response) {
var myData =
$scope.options.templateOptions.Restangular.stripRestangular(
response
);
if (myData) {
$scope.attachments = myData.data;
}
});
}, $scope.options.templateOptions.refreshDelay);
}
};
$scope._refresh({});
// $scope.attachments = $scope.model[$scope.options.key]
},
],
});
formlyConfigProvider.setType({
name: "ui-paralleltask",
templateUrl: "assets/views/customform/tpl/ui-paralleltask.html",
defaultOptions: function (options) {
return {
templateOptions: {
refresh: function (APIService, processInstanceId, data) {
//return APIService.listAttachments(processInstanceId, data);
},
refreshDelay: 0,
},
};
},
controller: ["$scope", "$timeout", function ($scope, $timeout) { }],
});
//repeatSection
//
formlyConfigProvider.setType({
name: "ui-repeatSection",
templateUrl: "assets/views/customform/tpl/ui-repeatSection.html",
defaultOptions: function (options) {
return {
templateOptions: {
unique: 1,
initDisplay: false,
},
};
},
controller: function ($scope) {
//$scope.options.templateOptions.unique;
$scope.formOptions = {
formState: $scope.formState,
};
$scope.addNew = addNew;
$scope.copyFields = copyFields;
function copyFields(fields) {
fields = angular.copy(fields);
addRandomIds(fields);
return fields;
}
function addNew() {
$scope.model[$scope.options.key] =
$scope.model[$scope.options.key] || [];
var repeatsection = $scope.model[$scope.options.key];
var lastSection = repeatsection[repeatsection.length - 1];
var newsection = {};
repeatsection.push(newsection);
}
function addRandomIds(fields) {
$scope.options.templateOptions.unique++;
angular.forEach(fields, function (field, index) {
if (field.fieldGroup) {
addRandomIds(field.fieldGroup);
return; // fieldGroups don't need an ID
}
if (field.templateOptions && field.templateOptions.fields) {
addRandomIds(field.templateOptions.fields);
}
field.id =
field.id ||
field.key +
"_" +
index +
"_" +
$scope.options.templateOptions.unique +
getRandomInt(0, 9999);
});
}
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
if ($scope.options.templateOptions.initDisplay) {
addNew();
}
},
});
//时间轴任务列表组件
//cmdb控件
formlyConfigProvider.setType({
name: "ui-cmdb",
extends: "input",
templateUrl: "assets/views/customform/tpl/ui-cmdb.html",
defaultOptions: function (options) {
return {
templateOptions: {
onClick: function (size, options, modal, event, model) {
var modalInstance = modal.open({
templateUrl:
"assets/views/customform/tpl/cmdb-modal-content.html",
controller: function (
$scope,
$modalInstance,
title,
Restangular,
APIService,
ConfigDataService,
ConfigFormService,
SweetAlert,
Toaster,
api_wechatfile
) {
var width = ($scope.width = 600);
var height = ($scope.height = 400);
var tree;
var d3 = window.d3;
$scope.my_tree_handler = function (branch) {
//var _ref;
var classify = ($scope.classify =
branch.prefix.toLowerCase() + branch.sign);
APIService.query({
sign: classify,
}).then(function (data) {
var myData = Restangular.stripRestangular(data);
// console.log(myData.data.node);
if (myData.data && myData.status == 200) {
var ret = myData.data;
redrawSvg(myData);
}
});
};
$scope.my_data = [];
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
var parentNode = 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?
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;
}
function convertParentToChildList(data) {
var treeMap = {};
var list = [];
convertListToTree(data, treeMap);
angular.forEach(treeMap, function (item) {
list.push(item);
});
return list;
}
$scope.my_tree = tree = {};
$scope.try_async_load = function () {
$scope.my_data = [];
$scope.select_treedata = [];
$scope.doing_async = true;
ConfigDataService.fetchDataList("ciclassify", {
idx: 0,
sum: 100,
}).then(function (result) {
$scope.select_treedata = $scope.my_data =
convertParentToChildList(result["list"]);
$scope.doing_async = false;
});
// api_wechatfile.getDictionary({ 'key': 'cmdb_status', 'type': 'list' }).then(function(result) {
// $scope.select_treedata = $scope.my_data = convertParentToChildList(result['list']);
// $scope.doing_async = false;
// });
};
$scope.select_treedata = [];
$scope.propTypeOptions = [];
$scope.try_async_load();
$scope.onFilterCallback = function (item) {
//console.log(item);
if (
angular.isDefined(item.children) &&
item.children.length >= 1
) {
//not valid
} else {
var tempclassify = item.prefix.toLowerCase() + item.sign;
$scope.cifilter_classic = tempclassify;
ConfigFormService.renderTabForm(tempclassify).then(
function (data) {
var myData = Restangular.stripRestangular(data);
$scope.propTypeOptions = myData;
}
);
}
};
$scope.onPropTypeChange = function (form) {
$scope.propOptions = form.fields;
};
$scope.onPropChange = function (prop) {
$scope.cifilter_prop = prop;
};
$scope.searchCI = function (searchKey, propObj, ciclassify) {
//if(searchKey!=null&&searchKey.length>1){
var searchData = {};
if (angular.isUndefined(propObj)) {
propObj = $scope.cifilter_prop;
}
if (angular.isUndefined(ciclassify)) {
ciclassify = $scope.cifilter_classic;
}
searchData["sign"] = ciclassify;
if (angular.isDefined(propObj)) {
searchData[propObj.key] = searchKey;
}
APIService.query(searchData).then(function (response) {
var data = Restangular.stripRestangular(response);
//此处不清空nodes
var node = data.data.node;
var tempNode = [];
//nodes 或者links 要去重
for (var i = 0; i < node.length; i++) {
var tmp = 0;
for (var j = 0; j < nodes.length; j++) {
if (node[i].uuid == nodes[j].uuid) {
tmp++;
break;
}
}
if (tmp == 0) {
tempNode.push(node[i]);
}
}
for (var i = 0; i < tempNode.length; i++) {
//nodes 不清空
nodes.push(tempNode[i]);
}
restart();
});
};
$scope.refresh = function () {
nodes.length = 0;
links.length = 0;
restart();
};
$scope.traversal = function () {
if ($scope.selected_node == null) {
SweetAlert.swal({
title: "错误的操作!",
text: "没有配置项被选中!",
type: "error",
});
} else {
var uuid = $scope.selected_node.uuid;
APIService.traversal(uuid).then(function (response) {
var d = response.data;
var node = d.node;
var link = d.edge;
var tempNode = [];
var tempLink = [];
//nodes 或者links 要去重
for (var i = 0; i < node.length; i++) {
var tmp = 0;
for (var j = 0; j < nodes.length; j++) {
if (node[i].id == nodes[j].id) {
tmp++;
break;
}
}
if (tmp == 0) {
tempNode.push(node[i]);
}
}
for (var i = 0; i < link.length; i++) {
var tmp = 0;
for (var j = 0; j < links.length; j++) {
if (link[i].id == links[j].id) {
tmp++;
break;
}
}
if (tmp == 0) {
tempLink.push(link[i]);
}
}
//数据写入页面
for (var i = 0; i < tempNode.length; i++) {
//nodes 不清空
nodes.push(tempNode[i]);
}
for (var i = 0; i < tempLink.length; i++) {
//link 不清空
links.push(tempLink[i]);
}
//links转换
for (var i = 0; i < links.length; i++) {
for (var j = 0; j < nodes.length; j++) {
if (links[i].source == nodes[j].id) {
links[i].source = nodes[j];
}
if (links[i].target == nodes[j].id) {
links[i].target = nodes[j];
}
}
}
restart();
});
}
};
var svg;
var force;
var drag_line, path, circle;
//var svg = d3.select(angular.element('div#cmdbSVG')).append('svg').attr('width', width).attr('height', height);
//var svg = angular.element('div#cmdbSVG').append('svg').attr('width', width).attr('height', height);
//var svg = d3.select('#cmdbSVG').append('svg').attr('width', width).attr('height', height);
var nodes = [],
links = [];
var treeNodes = [];
//读取labels (node)
var labels = [];
function redrawSvg(json) {
nodes.length = 0; //先清空
links.length = 0;
var data = json.data;
for (var i = 0; i < data.node.length; i++) {
nodes.push(data.node[i]);
}
restart();
}
//读取status (节点 连线)
var statuses = [];
// ConfigDataService.fetchDataList('cistatus', { 'idx': 0, 'sum': 100 }).then(function(result) {
// if (result && result.status == 200) {
// d3.select('#nodeStatus').selectAll('option')
// .data(statuses).enter()
// .append('option')
// .attr('value', function(d) { return d.code; })
// .html(function(d) { return d.desc; });
// } else {
// SweetAlert.swal({
// title: "提示!",
// text: "服务器请求异常!",
// type: "error"
// });
// }
// });
api_wechatfile
.getDictionary({
key: "cmdb_status",
type: "list",
})
.then(function (result) {
if (result) {
d3.select("#nodeStatus")
.selectAll("option")
.data(statuses)
.enter()
.append("option")
.attr("value", function (d) {
return d.code;
})
.html(function (d) {
return d.desc;
});
} else {
SweetAlert.swal({
title: "提示!",
text: "服务器请求异常!",
type: "error",
});
}
});
//查询relationship_type表 name 为表里的type,label为显示值
var linkType = [];
function fetchEdgeTypes() {
ConfigDataService.fetchDataList("ciedgetype", {
idx: 0,
sum: 100,
}).then(function (response) {
if (response) {
if (response["list"]) {
linkType = response["list"];
// d3.select('#linkName').selectAll('option')
// .data(linkType).enter()
// .append('option')
// .attr('value',function(d){return d.type;})
// .html(function(d){ return d.label;});
} else {
SweetAlert.swal({
title: "提示!",
text: "服务器请求异常!",
type: "error",
});
}
} else {
SweetAlert.swal({
title: "提示!",
text: "服务器请求异常!",
type: "error",
});
}
});
}
// fetchEdgeTypes();
/*
// init D3 force layout
var force = d3.layout.force()
.nodes(nodes)
.links(links)
.size([width, height])
.gravity(.05)
.linkDistance(150)
.linkStrength(2)
.charge(-500)
.on('tick', tick);
// define arrow markers for graph links
svg.append('svg:defs').append('svg:marker')
.attr('id', 'end-arrow')
.attr('viewBox', '0 -5 10 10')
.attr('refX', 6)
.attr('markerWidth', 3)
.attr('markerHeight', 3)
.attr('orient', 'auto')
.append('svg:path')
.attr('d', 'M0,-5L10,0L0,5')
.attr('fill', '#000');
svg.append('svg:defs').append('svg:marker')
.attr('id', 'start-arrow')
.attr('viewBox', '0 -5 10 10')
.attr('refX', 4)
.attr('markerWidth', 3)
.attr('markerHeight', 3)
.attr('orient', 'auto')
.append('svg:path')
.attr('d', 'M10,-5L0,0L10,5')
.attr('fill', '#000');
// line displayed when dragging new nodes
var drag_line = svg.append('svg:path')
.attr('class', 'link dragline hidden')
.attr('d', 'M0,0L0,0');
// handles to link and node element groups
//(1)var path = svg.append('svg:g').selectAll('g')
var path = svg.append('svg:g').selectAll('g'),
circle = svg.append('svg:g').selectAll('g');
*/
// mouse event vars
var selected_node = null,
selected_link = null,
mousedown_link = null,
mousedown_node = null,
mouseup_node = null;
function resetMouseVars() {
mousedown_node = null;
mouseup_node = null;
mousedown_link = null;
}
// update force layout (called automatically each iteration)
function tick() {
// draw directed edges with proper padding from node centers
path.selectAll("path").attr("d", function (d) {
var deltaX = d.target.x - d.source.x,
deltaY = d.target.y - d.source.y,
dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY),
normX = deltaX / dist,
normY = deltaY / dist,
sourcePadding = d.left ? 27 : 22,
targetPadding = d.right ? 27 : 22,
sourceX = d.source.x + sourcePadding * normX,
sourceY = d.source.y + sourcePadding * normY,
targetX = d.target.x - targetPadding * normX,
targetY = d.target.y - targetPadding * normY;
return (
"M" +
sourceX +
"," +
sourceY +
"L" +
targetX +
"," +
targetY
);
});
circle.attr("transform", function (d) {
return "translate(" + d.x + "," + d.y + ")";
});
}
// update graph (called when needed)
function restart() {
//绑定link 数据
path.datum(links);
// path (link) group
path = path.data(links, function (d) {
return d.id;
});
var p = path.enter().append("svg:g");
//update existing links
path
.selectAll("path")
.classed("selected", function (d) {
return d === selected_link;
})
.style("marker-start", function (d) {
return d.left ? "url(#start-arrow)" : "";
})
.style("marker-end", function (d) {
return d.right ? "url(#end-arrow)" : "";
});
// add new links
p.append("svg:path")
.attr("class", "link")
.attr("id", function (d) {
return "path_" + d.id;
})
// .attr('startOffset', '0%')
.classed("selected", function (d) {
return d === selected_link;
})
.style("marker-start", function (d) {
return d.left ? "url(#start-arrow)" : "";
})
.style("marker-end", function (d) {
return d.right ? "url(#end-arrow)" : "";
})
.on("mousedown", function (d) {
if (d3.event.ctrlKey) return;
//去除没有提交的连线
for (var i = 0; i < links.length; i++) {
if (links[i].id == -1 && d.id != -1) {
links.splice(i, 1);
}
}
// select link
mousedown_link = d;
if (mousedown_link === selected_link) {
selected_link = $scope.selected_link = null;
selected_node = $scope.selected_node = null;
// d3.select("#linkDetail").attr('style','display:none');
//hideLinkForm(true);//return ;
} else {
selected_link = $scope.selected_link = mousedown_link;
selected_node = $scope.selected_node = null;
}
selected_node = $scope.selected_node = null;
restart();
});
p.append("svg:text")
.attr("x", 30)
.attr("y", 20)
.attr("class", "fontM")
.append("textPath")
.attr("xlink:xlink:href", function (d, i) {
return "#path_" + d.id;
})
.html(function (d) {
for (var i = 0; i < linkType.length; i++) {
if (linkType[i].type == d.name) {
return linkType[i].label;
}
}
});
// remove old links
path.exit().remove();
// circle (node) group
// NB: the function arg is crucial here! nodes are known by id, not by index!
circle.datum(nodes);
circle = circle.data(nodes, function (d) {
return d.id;
});
// update existing nodes (reflexive & selected visual states)
circle
.selectAll("circle")
.style("fill", function (d) {
return d === selected_node
? d3.rgb(colors(d.label)).brighter().toString()
: colors(d.label);
})
.style("fill-opacity", 0.75) // add by xi
.classed("reflexive", function (d) {
return d.reflexive;
});
// add new nodes
var g = circle.enter().append("svg:g");
//g.append('svg:circle').attr('r',22).style('fill','rgb(255,255,255)').style('stroke','rgb(255,255,255)').style('stroke-width','2');
//g.append('svg:circle').attr('r',24).style('fill','rgb(255,255,255)').style('stroke', function(d) { return d3.rgb(colors(d.label)).darker().toString(); }).style('stroke-width','2');
g.append("svg:circle")
.attr("r", 24)
.style("fill", function (d) {
return d === selected_node
? "rgb(153,153,153)"
: "rgb(255,255,255)";
})
.style("stroke", function (d) {
return d3.rgb(colors(d.label)).darker().toString();
})
.style("stroke-width", "2");
g.append("svg:circle")
.attr("class", "node")
.attr("r", 18)
.style("fill", function (d) {
return d === selected_node
? d3.rgb(colors(d.label)).brighter().toString()
: colors(d.label);
})
.style("stroke", function (d) {
return d3.rgb(colors(d.label)).darker().toString();
})
.style("fill-opacity", 0.25) //add by xj
.style("stroke-opacity", 0.5) //add by xj
.classed("reflexive", function (d) {
return d.reflexive;
});
g.on("mouseover", function (d) {
//if(!mousedown_node || d === mousedown_node) return;
// enlarge target node
//d3.select(this).attr('transform', 'scale(1.1)');
})
.on("mouseout", function (d) {
//if(!mousedown_node || d === mousedown_node) return;
// unenlarge target node
//d3.select(this).attr('transform', '');
})
.on("mousedown", function (d) {
if (d3.event.ctrlKey) return;
//hideLinkForm(true);
//去除没有提交的连线
for (var i = 0; i < links.length; i++) {
if (links[i].id == -1) {
links.splice(i, 1);
}
}
// select node
mousedown_node = d;
if (mousedown_node === selected_node) {
selected_node = $scope.selected_node = null;
} else {
selected_node = $scope.selected_node = mousedown_node;
selected_link = $scope.selected_link = null;
// 点击节点 查询关系及节点 /traversal/{id}/{relation}
APIService.findRefById(selected_node.id).then(function (
result
) {
var d = result.data;
var node = d.node;
var link = d.edge;
var tempNode = [];
var tempLink = [];
//nodes 或者links 要去重
for (var i = 0; i < node.length; i++) {
var tmp = 0;
for (var j = 0; j < nodes.length; j++) {
if (node[i].id == nodes[j].id) {
tmp++;
break;
}
}
if (tmp == 0) {
tempNode.push(node[i]);
}
}
for (var i = 0; i < link.length; i++) {
var tmp = 0;
for (var j = 0; j < links.length; j++) {
if (link[i].id == links[j].id) {
tmp++;
break;
}
}
if (tmp == 0) {
tempLink.push(link[i]);
}
}
//数据写入页面
for (var i = 0; i < tempNode.length; i++) {
//nodes 不清空
nodes.push(tempNode[i]);
}
for (var i = 0; i < tempLink.length; i++) {
//link 不清空
links.push(tempLink[i]);
}
//links转换
for (var i = 0; i < links.length; i++) {
for (var j = 0; j < nodes.length; j++) {
if (links[i].source == nodes[j].id) {
links[i].source = nodes[j];
}
if (links[i].target == nodes[j].id) {
links[i].target = nodes[j];
}
}
}
restart();
});
}
// reposition drag line
drag_line
.style("marker-end", "url(#end-arrow)")
.classed("hidden", false)
.attr(
"d",
"M" +
mousedown_node.x +
"," +
mousedown_node.y +
"L" +
mousedown_node.x +
"," +
mousedown_node.y
);
restart();
})
.on("mouseup", function (d) {
if (!mousedown_node) return;
});
// show node name
g.append("svg:text")
.attr("x", 0)
.attr("y", 34)
.attr("class", "id")
.text(function (d) {
return d.name;
}); //TODO 改为 d.name
//设置图片
g.append("svg:foreignObject")
.attr("width", 32)
.attr("height", 32)
.attr("x", "-16px")
.attr("y", "-11px")
.html(function (d) {
for (var i = 0; i < labels.length; i++) {
if (d.label == labels[i].sign) {
return (
'' +
labels[i].iconname +
" "
);
}
}
});
// remove old nodes
circle.exit().remove();
// set the graph in motion
force.start();
}
function mousedown() {
// prevent I-bar on drag
//d3.event.preventDefault();
// because :active only works in WebKit?
svg.classed("active", true);
if (mousedown_node) {
viewNode(mousedown_node);
}
if (d3.event.ctrlKey || mousedown_node || mousedown_link)
return;
restart();
}
function mousemove() {
if (!mousedown_node) return;
// update drag line
//drag_line.attr('d', 'M' + mousedown_node.x + ',' + mousedown_node.y + 'L' + d3.mouse(this)[0] + ',' + d3.mouse(this)[1]);
//restart();
}
function mouseup() {
if (mousedown_node) {
// hide drag line
drag_line.classed("hidden", true).style("marker-end", "");
}
// because :active only works in WebKit?
svg.classed("active", false);
// clear mouse event vars
resetMouseVars();
}
function spliceLinksForNode(node) {
var toSplice = links.filter(function (l) {
return l.source === node || l.target === node;
});
toSplice.map(function (l) {
links.splice(links.indexOf(l), 1);
});
}
// only respond once per keydown
var lastKeyDown = -1;
function keydown() {
//d3.event.preventDefault();
if (lastKeyDown !== -1) return;
lastKeyDown = d3.event.keyCode;
// ctrl
if (d3.event.keyCode === 17) {
circle.call(force.drag);
svg.classed("ctrl", true);
}
if (!selected_node && !selected_link) return;
switch (d3.event.keyCode) {
case 8: // backspace
case 66: // B
if (selected_link) {
// set link direction to both left and right
selected_link.left = true;
selected_link.right = true;
}
restart();
break;
case 76: // L
if (selected_link) {
// set link direction to left only
selected_link.left = true;
selected_link.right = false;
}
restart();
break;
case 82: // R
if (selected_node) {
// toggle node reflexivity
selected_node.reflexive = !selected_node.reflexive;
} else if (selected_link) {
// set link direction to right only
selected_link.left = false;
selected_link.right = true;
}
restart();
break;
}
}
function keyup() {
lastKeyDown = -1;
// ctrl
if (d3.event.keyCode === 17) {
circle
.on("mousedown.drag", null)
.on("touchstart.drag", null);
svg.classed("ctrl", false);
}
}
function viewNode(node) {
// console.log(svg.attr('left'));
//var el = angular.element('div.modal-dialog')[0];
var title =
$scope.selected_node.name +
"-[" +
$scope.selected_node.uuid +
"]";
if (!$scope.selected_node.props.state) {
$scope.selected_node.props.state = "空";
} else if ($scope.selected_node.props.state) {
if ($scope.selected_node.props.state == "1") {
$scope.selected_node.props.state = "未审核";
} else if ($scope.selected_node.props.state == "2") {
$scope.selected_node.props.state = "已审核";
} else if ($scope.selected_node.props.state == "3") {
$scope.selected_node.props.state = "不匹配";
} else if ($scope.selected_node.props.state == "4") {
$scope.selected_node.props.state = "丢失";
}
}
if (!$scope.selected_node.name) {
$scope.selected_node.name = "空";
}
if (!$scope.selected_node.status) {
$scope.selected_node.statu = "空";
}
if (!$scope.selected_node.props.useradmin) {
$scope.selected_node.props.useradmin = "空";
}
Toaster.pop({
// type: 'info',
// title: title,
body:
"搜索代码:" +
$scope.selected_node.uuid +
"
" +
"配置标题:" +
$scope.selected_node.name +
"
" +
"状态:" +
$scope.selected_node.status +
"
" +
"审核状态:" +
$scope.selected_node.props.state +
"
" +
"维护人员:" +
$scope.selected_node.props.useradmin +
"
",
bodyOutputType: "trustedHtml",
timeout: 3000,
});
}
//GT 颜色与数值对照表
function colors(sign) {
//num=num>20?num%20:parseInt(num);
for (var i = 0; i < labels.length; i++) {
var entity = labels[i];
if (sign == entity.sign) {
return entity.color;
}
if (i == labels.length - 1 && sign != entity.sign) {
return "#ffeeee";
}
}
}
$scope.init = function () {
svg = d3
.select("#cmdbSVG")
.append("svg")
.attr("width", width)
.attr("height", height);
// init D3 force layout
force = d3.layout
.force()
.nodes(nodes)
.links(links)
.size([width, height])
.gravity(0.05)
.linkDistance(150)
.linkStrength(2)
.charge(-500)
.on("tick", tick);
// define arrow markers for graph links
svg
.append("svg:defs")
.append("svg:marker")
.attr("id", "end-arrow")
.attr("viewBox", "0 -5 10 10")
.attr("refX", 6)
.attr("markerWidth", 3)
.attr("markerHeight", 3)
.attr("orient", "auto")
.append("svg:path")
.attr("d", "M0,-5L10,0L0,5")
.attr("fill", "#000");
svg
.append("svg:defs")
.append("svg:marker")
.attr("id", "start-arrow")
.attr("viewBox", "0 -5 10 10")
.attr("refX", 4)
.attr("markerWidth", 3)
.attr("markerHeight", 3)
.attr("orient", "auto")
.append("svg:path")
.attr("d", "M10,-5L0,0L10,5")
.attr("fill", "#000");
// line displayed when dragging new nodes
drag_line = svg
.append("svg:path")
.attr("class", "link dragline hidden")
.attr("d", "M0,0L0,0");
// handles to link and node element groups
//(1)var path = svg.append('svg:g').selectAll('g')
path = svg.append("svg:g").selectAll("g");
circle = svg.append("svg:g").selectAll("g");
svg
.on("mousedown", mousedown)
.on("mousemove", mousemove)
.on("mouseup", mouseup);
d3.select(window).on("keydown", keydown).on("keyup", keyup);
};
var CI = {};
window.CI = CI;
$scope.ok = function () {
$modalInstance.close($scope.selected_node);
};
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
size: size,
resolve: {
title: function () {
return options.templateOptions.title;
},
Restangular: function () {
return options.templateOptions.Restangular;
},
APIService: function () {
return options.templateOptions.ApiService;
},
ConfigDataService: function () {
return options.templateOptions.ConfigDataService;
},
ConfigFormService: function () {
return options.templateOptions.ConfigFormService;
},
SweetAlert: function () {
return options.templateOptions.Alert;
},
Toaster: function () {
return options.templateOptions.toaster;
},
},
});
modalInstance.result.then(
function (selectedItem) {
options.value(selectedItem.name + "-" + selectedItem.uuid);
},
function () {
//console.log('Modal dismissed at: ' + new Date());
}
);
},
},
};
},
controller: [
"$scope",
function ($scope) {
// setTimeout(function(){
// $scope.options.templateOptions.getWorkernumber($scope.options.templateOptions.ApiService).then(function(result){
// var modelData = $scope.options.templateOptions.Restangular.stripRestangular(result);
// if(modelData.status==200){
// $scope.model[$scope.options.key] = modelData.data;
// $scope.options.initialValue = $scope.model[$scope.options.key];
// }
// });
// },1000);
},
],
});
});
appFormly.run(function (formlyConfig, $parse) {
//formlyConfig.extras.fieldTransform=formlyConfig.extras.fieldTransform||[];
var removeOnHideTransformer = function (fields, model) {
return fields.map(function (field) {
if (
field.hideExpression &&
(!field.data || !field.data.dontRemoveOnHidden)
) {
addFieldRemoveOnHideWatcher(field);
}
if (field.type == "ui-title") {
addFieldRemoveOnHideWatcher(field);
}
return field;
});
};
formlyConfig.extras.fieldTransform = removeOnHideTransformer;
function addFieldRemoveOnHideWatcher(field) {
var watcher = getWatcher();
if (field.watcher) {
if (!angular.isArray(field.watcher)) {
field.watcher = [field.watcher];
}
field.watcher.push(watcher);
} else {
field.watcher = watcher;
}
}
function getWatcher() {
return {
expression: function (field) {
return field.hide;
},
listener: function (field, newHide, oldHide, scope) {
if (field.hide) {
if (field.templateOptions.pkey) {
if (field.key == "transferuser") {
$parse(field.templateOptions.pkey + "." + field.key).assign(
scope.model,
undefined
);
}
} else if(typeof field.key =='string') {
$parse(field.key).assign(scope.model, undefined);
}
}
if (field.type == "ui-title") {
$parse(field.key).assign(scope.model, undefined);
}
},
};
}
});
appFormly.controller("CustomformCtrl", [
"$rootScope",
"$scope",
"$parse",
"$injector",
"$http",
"$q",
"$state",
"$stateParams",
"$modal",
"$timeout",
"$interval",
"SweetAlert",
"FileUploader",
"i18nService",
"Restangular",
"UserRestangular",
"BpmRestangular",
"SimpleRestangular",
"WechatRestangular",
"api_configure_form",
"api_bpm_domain",
"api_bpm_domain1",
"api_simple",
"api_bpm",
"api_bpm_data",
"api_user_data",
"api_statistic",
"up_down_file",
"fileReader",
"api_wechatfile",
"api_category",
function (
$rootScope,
$scope,
$parse,
$injector,
$http,
$q,
$state,
$stateParams,
$modal,
$timeout,
$interval,
SweetAlert,
FileUploader,
i18nService,
Restangular,
UserRestangular,
BpmRestangular,
SimpleRestangular,
WechatRestangular,
api_configure_form,
api_bpm_domain,
api_bpm_domain1,
api_simple,
api_bpm,
api_bpm_data,
api_user_data,
api_statistic,
up_down_file,
fileReader,
api_wechatfile,
api_category
) {
//console.log($parse('Restangular')($scope));
//console.log($injector.get('Restangular'));
//console.log($stateParams);
//保存报修主体
$scope.repairMain = JSON.parse(sessionStorage.getItem("repair_main"));
$scope.imgUrlList = [];
$scope.uploadimg_del = function () {
console.log(123);
};
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 loginUser = $rootScope.user;
// console.log(vm);
var that = $injector;
var parse = $parse;
var formKey = "";
var pdKey = "";
var modelWatch = "";
// 房间号是否显示
vm.model.isRoom = sessionStorage.getItem('ifRoom') == 1;
if (angular.isDefined($stateParams.model) && $stateParams.model != "") {
modelWatch = JSON.parse($stateParams.model);
// console.log("modelWatch:"+ JSON.stringify(modelWatch));
// 进入页面时判断有无携带区域地点2020年4月24日10:30:41
console.log(modelWatch, $rootScope);
// if(modelWatch.model.incident){
// if(modelWatch.model.incident.place){
// $rootScope.selecthouseNumber = modelWatch.modle.incident.place;
// }else{
// $rootScope.selecthouseNumber = undefined;
// }
// }
// 初始化的时候判断是否是简单处理
if(modelWatch.model && modelWatch.model.incident && modelWatch.model.incident.category){
if (modelWatch.model.incident.category.hasSimple == 1) {
vm.model.isHasSimple = true;
}else{
vm.model.isHasSimple = false;
}
}
}
if (angular.isDefined($state.current.pdKey) && $state.current.pdKey != "") {
pdKey = $state.current.pdKey;
} else if ($stateParams.pdKey) {
pdKey = $stateParams.pdKey;
}
// console.log("pdKey::" + JSON.stringify($state.current.title));
if (angular.isDefined($stateParams.formKey) && $stateParams.formKey != "") {
formKey = $stateParams.formKey;
// console.log("formKey::"+JSON.stringify($stateParams.formKey));
}
if (angular.isDefined($stateParams.model)) {
var formModel = $stateParams.model;
}
//用户测试数据,后续从header的auth中获取
var userId = 2;
userId = $rootScope.user.id;
//==============处理表单设计数据 开始====================
//处理组件加载后台数据选项的方法
function refreshSelectOptions(searchVal, field) {
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) {
field.templateOptions.options =
result[field.templateOptions.optionsDataKey];
} else {
field.templateOptions.options = result;
}
});
}
}
//获取表单后数据处理
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;
// console.log(templateOs,'come')
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-deptinformation") {
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-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-upDropFile") {
$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-uploadFiles") {
$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-upDownFiles") {
$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-uploadImgs") {
$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-dropFiles") {
if (field.templateOptions.processInstanceId) {
} else {
field.templateOptions.processInstanceId =
$stateParams.processInstanceId;
}
} else if (field.type == "ui-showImgs") {
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"];
} else if (field.type == "ui-repair-photos") {
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;
//增加识别报修主体seimin
vm.model.repairType = $scope.repairMain.valueconfig;
if (vm.model.incident) {
vm.model.incident.repairType = $scope.repairMain.valueconfig;
}
console.log(vm, "repairType"); //lmm
if (
modelWatch != null &&
modelWatch != "" &&
modelWatch.cancelUrl != null &&
modelWatch.cancelUrl != ""
) {
vmForm.cancelUrl = modelWatch.cancelUrl;
}
$scope.formData = vmForm;
console.log($scope.formData, 4444444);
// 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 () {
// console.log($stateParams);
$state.go($scope.formData.cancelUrl, {});
event.preventDefault();
};
// console.log(vm);
// 暂存
$scope.save = function (data) {
console.log(vm);
if (vm.model.startSave) {
vm.model["initUser"] = $rootScope.user.id;
vm.model.start_code = "temporary";
//处理请求数据0327
var data0327 = JSON.parse(JSON.stringify(vm.model));
delete data0327.repairType;
// console.log($scope.$parent.$parent.$parent.$parent.$parent.$parent.selecthouseNumber,'2020年4月24日20:24:10');
if (
$scope.$parent.$parent.$parent.$parent.$parent.$parent
.selecthouseNumber
) {
data0327.incident.place = {
id: $scope.$parent.$parent.$parent.$parent.$parent.$parent
.selecthouseNumber.id,
};
}
api_bpm_domain.start(pdKey, data0327).then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
if (resData) {
if (
$scope.fileUploader != null &&
$scope.fileUploader.getNotUploadedItems().length > 0 &&
resData.id
) {
$scope.fileUploader.onBeforeUploadItem = function (item) {
angular.extend(item.headers, $rootScope.getSession());
item.url = api_bpm_domain
.uploadAttachment(resData.id, "00000", $rootScope.user.id)
.getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
//console.log();
};
$scope.fileUploader.uploadAll();
}
}
SweetAlert.swal(
{
title: "提交成功!",
type: "success",
confirmButtonColor: "#007AFF",
},
function () {
$state.go($scope.formData.cancelUrl);
}
);
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
event.preventDefault();
} else if (vm.model.saveAgain) {
var toData = {
incident: vm.model.incident,
};
api_user_data.updData("incident", toData).then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
SweetAlert.swal(
{
title: "提交成功!",
type: "success",
confirmButtonColor: "#007AFF",
},
function () {
$state.go($scope.formData.cancelUrl);
}
);
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
event.preventDefault();
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
};
// 巡检生成事件
$scope.inspectionToIncident = function () {
var userData = {
idx: 0,
sum: 10,
user: {
name: loginUser.name,
engineer: 0,
},
};
api_user_data.fetchDataList("user", userData).then(function (res) {
console.log(res);
var toUser = {};
if (res.list.length > 0) {
toUser = res.list[0];
} else {
toUser = loginUser;
}
console.log(vm);
var incidentDescription = "";
console.log($stateParams.formUiEdit);
if ($stateParams.formUiEdit == "inspection_LinHu_confirm") {
var fields = vm.fields
.filter((v) => {
v.key = (v.key || "").toString();
return v.key.indexOf("sdCheckEnable") > -1;
})
.map((v) => ({
key: v.key,
name: v.templateOptions.label,
value: vm.model[v.key],
}));
fields.forEach(v=>{
if (vm.model[v.key]) {
incidentDescription =
incidentDescription.concat(v.name);
}
})
if (vm.model.descriptionTextarea) {
incidentDescription = incidentDescription.concat(
" " + "整改意见:" + vm.model.descriptionTextarea
);
}
}
// console.log(incidentDescription)
var bxr = JSON.parse(localStorage.getItem("login_requester"));
var formdata = {
model: {
// 'isInspection': true,
// 'start_code':'assignment',
// 'isHandlerUser':false,
incident: {
requester: bxr,
area: bxr.place.area,
place: bxr.place,
houseNumber: bxr.houseNumber,
contacts: bxr.name,
contactsInformation: bxr.phone,
// 'category': data.wxIncidentClassifyDTO.category,
description: incidentDescription,
source: {
id: 1552,
},
// 'handlingPersonnelUser': loginUser,//2020年4月27日22:29:02
// 'sourceType': data.incident.sourceType,
// 'fileUrl': data.incident.fileUrl
},
// 'requestershow': toUser,//2020年4月27日22:29:15
// 'flow': data.incident.id
// 'assignee': loginUser.id//2020年4月27日22:29:25
},
};
// console.log(formdata,toUser,'1111');
console.log(formdata, "1111");
// return;
$state.go("app.incident.chart", {
model: JSON.stringify(formdata),
});
});
// var formdata = {
// model:$rootScope.login_requester
// };
// console.log(formdata,'00000')
// return;
// $state.go("app.incident.chart", {
// 'model': JSON.stringify(formdata)
// });
event.preventDefault();
};
// console.log(vm);
// 创建事件seimin
vm.submit = function (data, style) {
console.log(vm, 22222);
// return;
if (vm.model.handler_code == undefined) {
vm.model.handler_code = "resolve";
}
if (
vm.model.change &&
vm.model.change.requestingPerson &&
vm.model.change.requestingPerson.menu
) {
delete vm.model.change.requestingPerson.menu;
}
// var pdKey = $stateParams.pdKey;
if (vm.form.$valid) {
if (data.incident && data.incident.synergetic) {
console.log(data.incident.synergetic);
var synergetic = [];
for (var i = 0; i < data.incident.synergetic.length; i++) {
synergetic.push({
id: data.incident.synergetic[i],
});
}
data.incident.synergetic = synergetic;
vm.model.incident.synergetic = synergetic;
}
$scope.ldloading[style.replace("-", "_")] = true;
var startsub = true;
if (pdKey == "bpm_incident") {
angular.forEach(vm.fields, function (item) {
angular.forEach(item.fields, function (index) {
if (index.templateOptions.required && !index.hide) {
if (index.model) {
if(Object.prototype.toString.call(index.model[index.key]).slice(8, -1).toLowerCase() === 'object' && !index.model[index.key].id){
startsub = false;
$scope.ldloading.expand_right = false;
console.log(vm);
SweetAlert.swal({
title: index.templateOptions.label + "未填",
text: "请填写此项!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}else if (
angular.isDefined(index.model[index.key]) &&
index.model[index.key] != null
) {
if (
index.model[index.key].id &&
index.model[index.key].id == ""
) {
startsub = false;
$scope.ldloading.expand_right = false;
SweetAlert.swal({
title: index.templateOptions.label + "未填",
text: "请填写此项!",
type: "error",
confirmButtonColor: "#DD6B55",
});
} else {
}
} else {
startsub = false;
$scope.ldloading.expand_right = false;
console.log(vm);
SweetAlert.swal({
title: index.templateOptions.label + "未填",
text: "请填写此项!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
} else {
if (
data[index.key] &&
data[index.key] != "" &&
data[index.key] != null
) {
} else {
startsub = false;
$scope.ldloading.expand_right = false;
SweetAlert.swal({
title: index.templateOptions.label + "未填",
text: "请填写此项!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
}
}
});
});
// if (vm.model.requestershow && vm.model.requestershow != null && vm.model.requestershow != '') {} else {
// startsub = false;
// $scope.ldloading.expand_right = false;
// SweetAlert.swal({
// title: '保修人未填',
// text: "请填写此项!",
// type: "error",
// confirmButtonColor: "#DD6B55"
// });
// }
// if (vm.model.incident.category && vm.model.incident.category != null && vm.model.incident.category != '') {
// } else {
// startsub = false;
// $scope.ldloading.expand_right = false;
// SweetAlert.swal({
// title: '故障现象未填',
// text: "请填写此项!",
// type: "error",
// confirmButtonColor: "#DD6B55"
// });
// }
}
if (startsub) {
$scope.ldloading[style.replace("-", "_")] = true;
// if($scope.ldloading[style.replace('-', '_')] == true){$scope.lng=true}
// console.log("vm.options:"+ JSON.stringify(vm.options));
vm.options.updateInitialValue();
// console.log("dfjkasdhfkhskjf ")
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);
if (pdKey != "") {
if ($scope.oprcode == "save") {
//保存
api_bpm_domain.save(taskId, vm.model).then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
SweetAlert.swal(
{
title: "保存成功!",
confirmButtonColor: "#007AFF",
},
function () {
$state.go($scope.formData.cancelUri);
}
);
// if(resData.status){
// resData
// }
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
} else {
console.log($scope.formData.url, "zzzz");
var integralMechanism = sessionStorage.getItem('integralMechanism');
switch ($scope.formData.url) {
case "start":
vm.model["initUser"] = $rootScope.user.id;
if (vm.model["assignee"] || vm.model["candidateGroups"]) {
} else {
vm.model["assignee"] = $rootScope.user.id;
}
if (
vm.model["candidateGroups"] &&
vm.model.candidateGroups.id
) {
vm.model.candidateGroups = vm.model.candidateGroups.id;
}
if (pdKey == "bpm_service_request") {
delete vm.model.serviceCatalogueProcessActual.houseNumber;
angular.extend(vm.model.serviceCatalogueProcessActual, {
category: {
id: $stateParams.userId,
},
});
}
if (vm.model.schedule && vm.model.schedule.initUser) {
delete vm.model.schedule.initUser.menu;
}
if (
vm.model.isHandlerUser == "true" ||
vm.model.isHandlerUser == true
) {
delete vm.model.candidateGroups;
}
if (vm.model.start_code == "close") {
// 直接处理
vm.model.incident.handlingPersonnelUser =
vm.model.incident.acceptUser;
delete vm.model.incident.handlerUser;
delete vm.model.candidateGroups;
} else if (vm.model.start_code == "assignment") {
// 派单
delete vm.model.incident.handlingPersonnelUser;
}
if ($stateParams.processInstanceId && vm.model.isZanCun) {
$scope.jry_processInstanceId =
$stateParams.processInstanceId;
}
if ($scope.jry_processInstanceId) {
vm.model["save_fileId"] = $scope.jry_processInstanceId;
}
//事件暂存判断
if (vm.model.saveAgain) {
if (
vm.model.directClose == "1" ||
vm.model.directClose == true
) {
vm.model.start_code = "assignment";
vm.model.temporary_code = "assignment";
} else {
vm.model.start_code = "close";
vm.model.temporary_code = "close";
}
if (
vm.model.isHandlerUser == "true" ||
vm.model.isHandlerUser == true
) {
delete vm.model.candidateGroups;
}
}
//处理请求数据0327
var data0327 = JSON.parse(JSON.stringify(vm.model));
delete data0327.repairType;
if (data0327.start_code == "close") {
data0327.incident.directProcess = 1;
}
console.log(vm);
if (angular.isDefined($stateParams.model) && $stateParams.model != "") {
var paramsModel = JSON.parse($stateParams.model)
//来电-传话机id
if (paramsModel.model.incident.sockid) {
data0327.incident.callID = paramsModel.model.incident.sockid;
}
}
// --------------------------- start----------------------------------------
// 积分机制,直接处理
if(vm.model.start_code == "close"&&(integralMechanism == 1 || (integralMechanism == 2 && $rootScope.user.userType.value == 2))){
$modal.open({
templateUrl: 'assets/views/incident/tpl/toIntegralMechanism.tpl.html',
controller: function ($scope, $modalInstance, api_bpm_domain, incidentData, currentUserId, Alert, api_user_data,api_wechatfile,scope,api_bpm_data) {
console.log(incidentData,currentUserId);
$scope.flag = false;
$scope.complexityConfirm = {complexity:null,updateReason:''};
$scope.complexityFn = function(category){
if(category.complexity){
return category.complexity.value;
}else if(category.parent){
return $scope.complexityFn(category.parent);
}else{
return $scope.list[0]?$scope.list[0].value:1;
}
}
$scope.list = [];
api_wechatfile.getDictionary({"key":"incident_complexity","type":"list"}).then(function(res){
$scope.list = res;
if(incidentData.category && incidentData.category.id){
api_bpm_data.fetchData("incidentCategory",incidentData.category.id).then(function(result){
if(result.status == 200){
$scope.complexity = $scope.complexityFn(result.data);
$scope.complexityConfirm.complexity = $scope.list.find(v=>v.value == $scope.complexity);
}
})
}
})
$scope.onChangeComplexity = function(item){
}
$scope.ok = function () {
if (!$scope.complexityConfirm.complexity){
Alert.swal({
title: "操作失败",
text: "请选择工时!",
type: "error"
});
return;
}
if ($scope.complexityConfirm.complexity.value != $scope.complexity&&!$scope.complexityConfirm.updateReason.trim()){
Alert.swal({
title: "操作失败",
text: "请填写升级原因!",
type: "error"
});
return;
}
$modalInstance.close('success');
handlerStart();
scope.complexity = $scope.complexity;
scope.complexityConfirm = $scope.complexityConfirm;
// 暂存--后面直接处理后调用积分接口
}
$scope.cancel = function () {
scope.ldloading.expand_right = false;
$modalInstance.dismiss('cancel');
}
},
size: 'sm',
resolve: {
scope: function () {
return $scope;
},
api_bpm: function () {
return api_bpm;
},
incidentData: function () {
return data0327.incident;
},
currentUserId: function () {
return loginUser.id;
},
Alert: function () {
return SweetAlert;
},
api_user_data: function () {
return api_user_data;
},
api_wechatfile: function () {
return api_wechatfile;
}
}
});
}else{
handlerStart();
}
// -------------------------------end------------------------------------
function handlerStart(){
api_bpm_domain
.start(pdKey, data0327)
.then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
if (resData) {
if (resData) {
if (
$scope.fileUploader != null &&
$scope.fileUploader.getNotUploadedItems().length >
0 &&
resData.id
) {
$scope.fileUploader.onBeforeUploadItem =
function (item) {
angular.extend(
item.headers,
$rootScope.getSession()
);
item.url = api_bpm_domain
.uploadAttachment(
resData.id,
"00000",
$rootScope.user.id
)
.getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
//console.log();
};
$scope.fileUploader.uploadAll();
}
}
}
if(vm.model.start_code == "close"&&(integralMechanism == 1 || (integralMechanism == 2 && $rootScope.user.userType.value == 2))){
api_wechatfile.getDictionary({"key":"incident_integral_state","type":"list"}).then(function(res){
var auditState = res.find(v=>v.value == 0);
var postData = {
incidentIntegral: {
incidentId:resData.bussId,
auditState:auditState,
handlerUser:$rootScope.user.id,
handlerUserName:$rootScope.user.name,
sourceScore:$scope.complexity,
currentScore:$scope.complexityConfirm.complexity.value,
updateReason:$scope.complexityConfirm.updateReason.trim() || undefined,
}
}
console.log(postData)
api_bpm_data.addData('incidentIntegral', postData).then(function (response) {
console.log(response)
if (response.status == 200) {
SweetAlert.swal(
{
title: "提交成功!",
type: "success",
confirmButtonColor: "#007AFF",
},
function () {
if (
vm.model.incident &&
vm.model.incident.callID &&
vm.model.incident.callID != ""
) {
$rootScope.app.layout.isSidebarClosed = false;
if ($scope.login && !$rootScope.busy) {
$rootScope.setidle();
}
}
$state.go($scope.formData.cancelUrl);
}
);
} else {
Alert.swal({
title: "操作失败",
text: "操作失败, 请稍后再试!",
type: "error"
});
}
});
})
}else{
SweetAlert.swal(
{
title: "提交成功!",
type: "success",
confirmButtonColor: "#007AFF",
},
function () {
if (
vm.model.incident &&
vm.model.incident.callID &&
vm.model.incident.callID != ""
) {
$rootScope.app.layout.isSidebarClosed = false;
if ($scope.login && !$rootScope.busy) {
$rootScope.setidle();
}
}
$state.go($scope.formData.cancelUrl);
}
);
}
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
}
break;
case "complete":
//api_bpm_domain.complete(pdKey, userId, vm.model).then(function(response){
//console.log("complete taskId::"+$stateParams.taskId);
if (
$scope.formData.name == "transferform" &&
vm.model.ishandlers &&
!vm.model.incident.handlerUser
) {
SweetAlert.swal({
title: "处理人未填",
text: "请填写此项!",
type: "error",
confirmButtonColor: "#DD6B55",
});
return;
}
console.log(vm);
// 积分机制,事件状态是“处理中”
if($scope.formData.name === 'handlerform'&&(integralMechanism == 1 || (integralMechanism == 2 && $rootScope.user.userType.value == 2))){
$modal.open({
templateUrl: 'assets/views/incident/tpl/toIntegralMechanism.tpl.html',
controller: function ($scope, $modalInstance, api_bpm_domain, incidentData, currentUserId, Alert, api_user_data,api_wechatfile,scope,api_bpm_data) {
console.log(incidentData,currentUserId);
$scope.flag = true;
$scope.complexityConfirm = {complexity:null,updateReason:''};
$scope.complexityFn = function(category){
if(category.complexity){
return category.complexity.value;
}else if(category.parent){
return $scope.complexityFn(category.parent);
}else{
return $scope.list[0]?$scope.list[0].value:1;
}
}
$scope.list = [];
api_wechatfile.getDictionary({"key":"incident_complexity","type":"list"}).then(function(res){
$scope.list = res;
if(incidentData.category && incidentData.category.id){
api_bpm_data.fetchData("incidentCategory",incidentData.category.id).then(function(result){
if(result.status == 200){
$scope.complexity = $scope.complexityFn(result.data);
$scope.complexityConfirm.complexity = $scope.list.find(v=>v.value == $scope.complexity);
}
})
}
})
$scope.onChangeComplexity = function(item){
if($scope.complexityConfirm.complexity.value == $scope.complexity){
$scope.complexityConfirm.updateReason = '';
}
}
$scope.ok = function () {
if (!$scope.complexityConfirm.complexity){
Alert.swal({
title: "操作失败",
text: "请选择工时!",
type: "error"
});
return;
}
if ($scope.complexityConfirm.complexity.value != $scope.complexity&&!$scope.complexityConfirm.updateReason.trim()){
Alert.swal({
title: "操作失败",
text: "请填写升级原因!",
type: "error"
});
return;
}
api_wechatfile.getDictionary({"key":"incident_integral_state","type":"list"}).then(function(res){
// var auditState = $scope.complexityConfirm.complexity.value == $scope.complexity?res.find(v=>v.value == 1):res.find(v=>v.value == 0);
var auditState = res.find(v=>v.value == 0);
var postData = {
incidentIntegral: {
incidentId:incidentData.id,
auditState:auditState,
handlerUser:$rootScope.user.id,
handlerUserName:$rootScope.user.name,
sourceScore:$scope.complexity,
currentScore:$scope.complexityConfirm.complexity.value,
updateReason:$scope.complexityConfirm.updateReason.trim() || undefined,
}
}
console.log(postData)
api_bpm_data.addData('incidentIntegral', postData).then(function (response) {
console.log(response)
if (response.status == 200) {
$modalInstance.close('success');
handlerLogFn();
} else {
Alert.swal({
title: "操作失败",
text: "操作失败, 请稍后再试!",
type: "error"
});
}
});
})
}
$scope.cancel = function () {
scope.ldloading.expand_right = false;
$modalInstance.dismiss('cancel');
}
},
size: 'sm',
resolve: {
scope: function () {
return $scope;
},
api_bpm: function () {
return api_bpm;
},
incidentData: function () {
return $scope.formData.model.incident;
},
currentUserId: function () {
return loginUser.id;
},
Alert: function () {
return SweetAlert;
},
api_user_data: function () {
return api_user_data;
},
api_wechatfile: function () {
return api_wechatfile;
}
}
});
}else{
handlerLogFn();
}
function handlerLogFn(){
//维修记录
// 维修记录不为空并且事件是处理中状态
if (vm.model.handlerLog && vm.model.handlerLog.trim() && vm.model.incident.state.value == 'handler') {
api_bpm_data.addData('operationLog', { operationLog: { opType: 'handlerLog', opValue: vm.model.handlerLog, extra1: vm.model.incident.id } }).then(function (result1) {
baseHandler();
})
} else {
if($stateParams.formUiEdit === 'inspection_LinHu_confirm'){
//巡检计划
if(vm.model.inspectionProcessActual.group&&vm.model.inspectionProcessActual.group.id){
api_bpm.assign({ids:$stateParams.dataId.toString(),userId:$rootScope.user.id}).then(function (response) {
if (response.status == 200) {
baseHandler();
} else {
Alert.swal({
title: "操作失败",
text: "操作失败, 请稍后再试!",
type: "error"
});
}
});
}else{
baseHandler();
}
}else{
baseHandler();
}
}
}
// return;
function baseHandler() {
api_bpm_domain
.complete($stateParams.taskId, userId, vm.model)
.then(function (response) {
if (response) {
var resData = Restangular.stripRestangular(response);
SweetAlert.swal(
{
title: "提交成功!",
type: "success",
confirmButtonColor: "#007AFF",
},
function () {
if (
$scope.fileUploader != null &&
$scope.fileUploader.getNotUploadedItems().length >
0
) {
console.log(vm);
if (vm.model.incident) {
// $scope.fileUploader.onBeforeUploadItem = function (item) {
// angular.extend(item.headers, $rootScope.getSession());
// item.url = api_bpm_domain.uploadAttachmentJryModel("incident", vm.model.problem.id, '00000', $rootScope.user.id).getRequestedUrl();
// item.formData.push({
// 'fileName': item.file.name
// });
// };
// $scope.fileUploader.uploadAll();
$scope.fileUploader.onBeforeUploadItem =
function (item) {
angular.extend(
item.headers,
$rootScope.getSession()
);
item.url = api_bpm_domain
.uploadAttachment(
vm.model.incident.processInstanceId,
"00000",
$rootScope.user.id
)
.getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
//console.log();
};
$scope.fileUploader.uploadAll();
} else if (vm.model.problem) {
$scope.fileUploader.onBeforeUploadItem =
function (item) {
angular.extend(
item.headers,
$rootScope.getSession()
);
item.url = api_bpm_domain
.uploadAttachmentJryModel(
"problem",
vm.model.problem.id,
"00000",
$rootScope.user.id
)
.getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
};
$scope.fileUploader.uploadAll();
} else if (vm.model.change) {
}else if(vm.model.inspectionProcessActual){
//巡检图片上传yeye
$scope.fileUploader.onBeforeUploadItem =
function (item) {
angular.extend(
item.headers,
$rootScope.getSession()
);
item.url = api_bpm_domain1
.uploadAttachment(vm.model.inspectionProcessActual.processInstanceId)
.getRequestedUrl();
item.formData.push({
fileName: item.file.name,
});
//console.log();
};
$scope.fileUploader.uploadAll();
}
}
$state.go($scope.formData.cancelUrl);
}
);
} else {
SweetAlert.swal({
title: "系统错误",
text: "系统错误,请稍后重试!",
type: "error",
confirmButtonColor: "#DD6B55",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
});
}
break;
case "back":
$state.go($scope.formData.cancelUrl);
break;
default:
$scope.ldloading[style.replace("-", "_")] = false;
break;
}
}
// var submitFunc = api_bpm_domain[$scope.formData.url]
// if(anuglar.isFunction(submitFunc)){
// submitFunc.apply(null, pdKey)
// }
}
}
} else {
// console.log(data)
// angular.forEach(vm.form.$error.required, function(item){
// var i=(item.$name).substring(item.$name.length-2)
var i = Number(vm.form.$error.required[0].$name.split("_")[4]);
// for(var i=0;i>>");//console.log(responseData);
var vmForm = Restangular.stripRestangular(responseData);
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
decodeVMForm(vmForm);
}
}
});
} else if (
angular.isDefined($stateParams.pdKey) &&
$stateParams.pdKey == "bpm_service_request"
) {
api_configure_form
.renderForm($stateParams.formUiEdit, userId, processInstanceId)
.then(function (responseData) {
if (responseData) {
//console.log("responseData>>>");//console.log(responseData);
var vmForm = Restangular.stripRestangular(responseData);
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
decodeVMForm(vmForm);
}
}
});
} else {
api_bpm_domain
.taskformkey($stateParams.taskId)
.then(function (response) {
if (response) {
var myData = Restangular.stripRestangular(response); //console.log("myData>>>");console.log(myData);
api_configure_form
.renderForm(myData.data, userId, processInstanceId, itemId)
.then(function (responseData) {
if (responseData) {
//console.log("responseData>>>");//console.log(responseData);
var vmForm = Restangular.stripRestangular(responseData);
if (vmForm) {
//console.log("vmForm>>>");//console.log(vmForm);
decodeVMForm(vmForm);
console.log(vmForm, 111111);
// $scope.model.selecthouseNumber = vmForm.model.incident.place;
console.log($scope, "今天"); //2020年4月24日11:40:55
}
}
});
}
});
}
} else {
// create process instance
if (pdKey != "") {
//for process
if (pdKey == "bpm_service_request") {
api_configure_form
.renderForm($stateParams.formUiStart, userId)
.then(function (responseData) {
if (responseData) {
var vmForm = Restangular.stripRestangular(responseData);
if (vmForm) {
decodeVMForm(vmForm);
}
}
});
} else {
api_bpm_domain.startformkey(pdKey).then(function (response) {
if (response) {
var myData = Restangular.stripRestangular(response);
//myData.data = "arrangeform";
api_configure_form
.renderForm(myData.data, userId)
.then(function (responseData) {
if (responseData) {
var vmForm = Restangular.stripRestangular(responseData);
if (vmForm) {
decodeVMForm(vmForm);
}
}
});
}
});
}
} else {
//for form
//TODO
//测试数据 开始
var testJson = {
fields: [
{
fields: [
{
className: "col-xs-12",
noFormControl: true,
key: "formtitle",
templateOptions: {
readOnly: false,
placeholder: "新建事件单",
hidden: false,
label: "事件工单",
required: false,
},
type: "ui-title",
},
],
},
{
fields: [
{
key: "selectUser",
type: "ui-deptinformation",
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);
// }
},
},
],
},
{
fields: [
{
key: "first",
type: "ui-workernumber",
className: "col-xs-12",
templateOptions: {
type: "input",
label: "事件单号",
pkey: "name",
},
},
],
},
{
fields: [
{
type: "ui-header",
key: "title",
className: "col-xs-12",
templateOptions: {
label: "报修人",
pkey: "change",
},
},
{
type: "ui-input",
key: "title",
className: "col-xs-4",
templateOptions: {
label: "报修人",
pkey: "change",
},
},
{
type: "ui-input",
key: "title",
className: "col-xs-4",
templateOptions: {
label: "联系人",
pkey: "change",
},
},
{
type: "ui-input",
key: "title",
className: "col-xs-4",
templateOptions: {
label: "联系电话",
pkey: "change",
},
},
],
},
{
fields: [
{
type: "ui-header",
key: "title1",
className: "col-xs-12",
templateOptions: {
label: "报修人",
pkey: "change",
},
},
{
type: "ui-input",
key: "title2",
className: "col-xs-4",
templateOptions: {
label: "报修人",
pkey: "change",
},
},
{
type: "ui-input",
key: "title3",
className: "col-xs-4",
templateOptions: {
label: "联系人",
pkey: "change",
},
},
{
type: "ui-input",
key: "title4",
className: "col-xs-4",
templateOptions: {
label: "联系电话",
pkey: "change",
},
},
],
},
],
model: [
{
username: "robin lau",
password: "123456",
chkme: false,
start_code: 0,
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");
},
]);