123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- 'use strict';
- /**
- * controller for User Profile Example
- */
- app.controller('notificationCtr', ["$rootScope", "$scope", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_user_data", "api_login", "api_configure_data", "api_wechatfile", "api_notification_data", function ($rootScope, $scope, $state, $timeout, $interval, $modal, SweetAlert, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_user_data, api_login, api_configure_data, api_wechatfile, api_notification_data) {
- //侧边栏索引
- $scope.leftListIdx = 0;
- //标题
- $scope.tableName = "消息通知设置";
- //侧边栏名称
- $scope.listData = [
- { "name": "报修流程" },
- { "name": "事件流程" }
- // { "name": "上下班管理" }
- ];
- //转换通知规则
- $scope.computedRule = function (data, id) {
- if (data === undefined) {
- return '进入本步骤时';
- } else if (id == 13 || id == 14 || id == 12) {
- return '【逾期响应时间】' + data + '分钟';
- } else if (id == 18 || id == 19) {
- return '【解决时间】剩余 ' + data + '%';
- }
- };
- /**
- *
- * 侧边栏点击切换tab
- * @param {number} idx 当前点击的索引
- * @param {object} value 当前点击的对象
- */
- $scope.leftListClick = function (idx, value) {
- $scope.leftListIdx = idx;
- $scope.tableName = value.name;
- }
- //请求获取报修流程列表
- //process: '通知流程',processNode:'流程节点',processStatus:'状态',notifiedPerson:'被通知人'
- $scope.bxList = [
- { processName: '报修流程', processNode: '申请', processStatus: '未受理', notifiedPerson: '报修人', noticeCode:'req_start' },
- { processName: '报修流程', processNode: '申请', processStatus: '未受理', notifiedPerson: '服务台人员', noticeCode:'service_start' },
- { processName: '报修流程', processNode: '申请', processStatus: '不受理', notifiedPerson: '报修人', noticeCode:'req_reject' },
- { processName: '报修流程', processNode: '受理', processStatus: '已受理', notifiedPerson: '报修人', noticeCode:'req_accept' }
- ];
- $scope.getBxList = function () {
- api_notification_data.fetchDataList({
- "idx": 0,
- "sum": 20,
- "messageManager": {
- "noticeProcess": 1
- }
- }).then(function (res) {
- if (res.status == 200) {
- angular.forEach($scope.bxList, function (v, i) {
- angular.extend(v, res.list[i]);//合并对象
- })
- }
- })
- }
- $scope.getBxList();
- //请求获取事件流程列表
- //process: '通知流程',processNode:'流程节点',processStatus:'状态',notifiedPerson:'被通知人'
- $scope.sjList = [
- { processName: '事件流程', processNode: '接单', processStatus: '待接单', notifiedPerson: '运维工程师', noticeCode:'user_receive' },
- { processName: '事件流程', processNode: '接单', processStatus: '待接单', notifiedPerson: '运维工程师', noticeCode:'user_receive_overresp' },
- { processName: '事件流程', processNode: '接单', processStatus: '待接单', notifiedPerson: '分类管理员', noticeCode:'cm_receive_overresp' },
- { processName: '事件流程', processNode: '接单', processStatus: '待接单', notifiedPerson: '事件经理', noticeCode:'manager_receive_overresp' },
- { processName: '事件流程', processNode: '重新指派', processStatus: '重新指派', notifiedPerson: '服务台人员', noticeCode:'service_reassign' },
- { processName: '事件流程', processNode: '重新指派', processStatus: '重新指派', notifiedPerson: '运维工程师', noticeCode:'user_reassign' },
- { processName: '事件流程', processNode: '处理', processStatus: '处理中', notifiedPerson: '报修人', noticeCode:'req_doing' },
- { processName: '事件流程', processNode: '处理', processStatus: '处理中', notifiedPerson: '运维工程师', noticeCode:'user_doing' },
- { processName: '事件流程', processNode: '处理', processStatus: '处理中', notifiedPerson: '分类管理员', noticeCode:'cm_doing' },
- { processName: '事件流程', processNode: '处理', processStatus: '指派', notifiedPerson: '运维工程师', noticeCode:'user_doing_assign' },
- { processName: '事件流程', processNode: '处理', processStatus: '转派', notifiedPerson: '运维工程师', noticeCode:'user_doing_redeploy' },
- { processName: '事件流程', processNode: '处理', processStatus: '升级', notifiedPerson: '运维工程师', noticeCode:'user_doing_upgrade' },
- { processName: '事件流程', processNode: '评价', processStatus: '已解决', notifiedPerson: '报修人', noticeCode:'req_resolve' },
- { processName: '事件流程', processNode: '关单', processStatus: '已解决', notifiedPerson: '服务台人员', noticeCode:'service_resolve' },
- { processName: '事件流程', processNode: '完成', processStatus: '已关闭', notifiedPerson: '报修人', noticeCode:'req_close' }
- ];
- $scope.getSjList = function () {
- api_notification_data.fetchDataList({
- "idx": 0,
- "sum": 20,
- "messageManager": {
- "noticeProcess": 2
- }
- }).then(function (res) {
- if (res.status == 200) {
- angular.forEach($scope.sjList, function (v, i) {
- angular.extend(v, res.list[i]);//合并对象
- })
- console.log($scope.sjList)
- }
- })
- }
- $scope.getSjList();
- //设置
- $scope.editClick = function (data) {
- var modalInstance = $modal.open({
- templateUrl: 'assets/views/system/tpl/notificationBj.html',
- controller: function ($scope, $modalInstance) {
- $scope.editData = {
- id: data.id,//id
- noticeCode: data.noticeCode,
- noticeRule: data.noticeRule === undefined ? 'no' : data.noticeRule,//通知规则,数字
- processNode: data.processNode,//流程节点
- processName: data.processName,//报修流程或者事件流程
- processStatus: data.processStatus,//状态
- notifiedPerson: data.notifiedPerson,//被通知人
- noticeProcess: data.noticeProcess,//1为报修流程、2为事件流程
- messageStationContent: data.messageStationContent,//站内消息通知内容
- shortMessageContent: data.shortMessageContent,//短信通知内容
- wechatMessageContent: data.wechatMessageContent,//微信通知内容
- messageStationFlag: data.messageStationFlag == 1 ? true : false,//站内消息是否开启
- shortMessageFlag: data.shortMessageFlag == 1 ? true : false,//短信是否开启
- wechatMessageFlag: data.wechatMessageFlag == 1 ? true : false,//微信是否开启
- messageStationTitle: data.messageStationTitle,//站内消息标题
- wechatMessageTitle: data.wechatMessageTitle,//微信标题
- flag: data.flag == 1 ? true : false//总开关是否开启,0为关闭,1为开启
- };
- //当前选中
- $scope.currentIndex = 0;
- //tab页面数据
- //tabName: 名称,processTitle:标题, processContent: 内容, checkboxFlag: checkbox是否选中,,disable:遮罩是否显示
- $scope.tabs = [
- {
- tabName: "站内消息",
- processTitle: $scope.editData.messageStationTitle,
- processContent: $scope.editData.messageStationContent,
- checkboxFlag: $scope.editData.messageStationFlag,
- disable: !$scope.editData.messageStationFlag
- },
- {
- tabName: "短信",
- processTitle: '',
- processContent: $scope.editData.shortMessageContent,
- checkboxFlag: $scope.editData.shortMessageFlag,
- disable: !$scope.editData.shortMessageFlag
- },
- {
- tabName: "微信",
- processTitle: $scope.editData.wechatMessageTitle,
- processContent: $scope.editData.wechatMessageContent,
- checkboxFlag: $scope.editData.wechatMessageFlag,
- disable: !$scope.editData.wechatMessageFlag
- }
- ];
- //tab页面切换
- $scope.selectTab = function (index) {
- $scope.currentIndex = index;
- };
- //checkbox选中或者取消
- $scope.selectThis = function (index) {
- $scope.tabs[index].checkboxFlag = !$scope.tabs[index].checkboxFlag;
- //遮罩切换
- $scope.tabs[index].disable = !$scope.tabs[index].checkboxFlag;
- //所有checkbox有一个选中,总开关开启
- $scope.editData.flag = $scope.tabs.some(function (v) {
- return v.checkboxFlag;
- });
- };
- //切换总开关
- $scope.changeIcon = function (index) {
- $scope.editData.flag = !$scope.editData.flag;
- };
- //当前jquery对象
- $scope.curElement = null;
- //textarea失去焦点,允许插入的表单元素
- $scope.textBlur = function ($event) {
- $scope.curElement = $($event.target);
- };
- //插入值
- $scope.insertClick = function ($event) {
- var $_this = $($event.target);
- var str = "";
- if ($scope.curElement != null) {
- //获取插入的字符串
- str = $_this.text();
- //插入进去
- $scope.insertAtCaret($scope.curElement, str);
- }
- };
- //插入进去seimin
- $scope.insertAtCaret = function ($element, myValue) {
- var element = $element.get(0);
- if (document.selection) {//IE
- $element.focus();
- //在选中区域创建一个文本区域
- sel = document.selection.createRange();
- // sel.text = myValue;
- $scope.tabs[$scope.currentIndex].processContent = myValue;
- $element.focus();
- } else {
- if (element.selectionStart || element.selectionStart == '0') {
- var startPos = element.selectionStart;
- var endPos = element.selectionEnd;
- // element.value = element.value.substring(0, startPos) + myValue + element.value.substring(endPos);
- $scope.tabs[$scope.currentIndex].processContent = element.value.substring(0, startPos) + myValue + element.value.substring(endPos);
- $element.focus();
- } else {
- var val = $element.html() + myValue;
- // $element.html(val);
- $scope.tabs[$scope.currentIndex].processContent = val;
- $element.focus();
- }
- }
- };
- //百分比不能为负数
- $scope.$watch('editData.noticeRule', function (newVal) {
- if (newVal === undefined) {//负号
- $scope.editData.noticeRule = 0;
- } else {
- if ($scope.editData.id == 11) {//百分比
- $scope.editData.noticeRule = newVal < 0 ? 0 : newVal;
- }
- }
- });
- //变量参数
- switch ($scope.editData.noticeCode) {
- case 'req_start':
- $scope.varArr = ['[$报修单号$]', '[$报修时间$]', '[$报修人$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]','[$报修科室$]'];
- $scope.varPlaceholder = '您于${报修时间}申请的${区域}${地点}${详细地址}${报修单号}报修已提交,请等待服务台处理,如有疑问,可(咨询电话"123456")。';
- break;
- case 'service_start':
- $scope.varArr = ['[$报修单号$]', '[$报修时间$]', '[$报修人$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]','[$报修科室$]'];
- $scope.varPlaceholder = '${报修单号}报修待受理,请及时处理。';
- break;
- case 'req_reject':
- $scope.varArr = ['[$报修单号$]', '[$报修时间$]', '[$报修人$]', '[$服务台人员$]', '[$不受理时间$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$不受理原因$]','[$报修科室$]'];
- $scope.varPlaceholder = '您于${报修时间}${区域}${地点}${详细地址}的${报修单号}报修,${服务台人员}已于${不受理时间}不予受理,如有如有疑问请拨打(服务电话“123456”)。';
- break;
- case 'req_accept':
- $scope.varArr = ['[$报修单号$]', '[$报修时间$]', '[$报修人$]', '[$服务台人员$]', '[$受理时间$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]','[$报修科室$]'];
- $scope.varPlaceholder = '您于${报修时间}${区域}${地点}${详细地址}的${报修单号}报修,${服务台人员}已于${受理时间}受理,待接单。';
- break;
- case 'user_receive':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${ 联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单待接单,请尽快处理。';
- break;
- case 'user_receive_overresp':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单待接单,已逾期响应5分钟,请尽快处理。';
- break;
- case 'cm_receive_overresp':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单待接单,已逾期响应60分钟,${处理人}${处理人电话}请尽快处理。';
- break;
- case 'manager_receive_overresp':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单待接单,已逾期响应60分钟,${处理人}${处理人电话}请尽快处理。';
- break;
- case 'service_reassign':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${ 联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单,${处理人}${处理人电话}已请求重新指派,请尽快处理。';
- break;
- case 'user_reassign':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单,已退回服务台,请重新指派。';
- break;
- case 'req_doing':
- $scope.varArr = ['[$报修单号$]','[$报修时间$]','[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${报修时间}${报修单号}的报修,${处理人}${处理人电话}已接单,正在处理中。';
- break;
- case 'user_doing':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单,即将解决逾期,请尽快处理。';
- break;
- case 'cm_doing':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单,即将解决逾期,请尽快处理。';
- break;
- case 'user_doing_assign':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]','[$指派人$]'];
- $scope.varPlaceholder = '[$联系人$][$联系人电话$]于[$工单登记时间$][$事件单号$]的事件工单,已指派给您,请尽快处理。';
- break;
- case 'user_doing_redeploy':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]','[$转派人$]'];
- $scope.varPlaceholder = '[$联系人$][$联系人电话$]于[$工单登记时间$][$事件单号$]的事件工单,已转派给您,请尽快处理。';
- break;
- case 'user_doing_upgrade':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '[$联系人$][$联系人电话$]于[$工单登记时间$][$事件单号$]的事件工单,已升级给您,请尽快处理。';
- break;
- case 'req_resolve':
- $scope.varArr = ['[$报修单号$]','[$报修时间$]','[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '您于${报修时间}提交的${报修单号}报修,已处理,您可对本次服务进行评价,如有疑问,可(咨询电话“123456”)。';
- break;
- case 'service_resolve':
- $scope.varArr = ['[$事件单号$]', '[$工单登记时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '${联系人}${联系人电话}于${工单登记时间}${事件单号}的事件工单已解决,请回访并关闭该工单。';
- break;
- case 'req_close':
- $scope.varArr = ['[$报修单号$]', '[$报修时间$]', '[$故障地点$]', '[$联系人$]', '[$联系人电话$]', '[$受理人$]', '[$受理人电话$]', '[$处理人$]', '[$处理人电话$]', '[$故障描述$]', '[$区域$]', '[$地点$]', '[$详细地址$]', '[$学工号$]','[$报修科室$]'];
- $scope.varPlaceholder = '您于${报修时间}提交的${报修单号}报修,已完成,如有疑问,请拔打(服务电话“123456”)。';
- break;
- }
- //取消
- $scope.cancel = function () {
- $modalInstance.dismiss('cancel');
- };
- //确定seimin
- $scope.savercode = function () {
- var filterArr = $scope.tabs.filter(item => {
- return item.checkboxFlag;
- });
- for (var i = 0; i < filterArr.length; i++) {
- if (filterArr[i].processContent == '') {
- alert("通知内容【" + filterArr[i].tabName + "】不能为空!");
- return;
- } else {
- var nowArr = [...new Set([...(filterArr[i].processContent.match(/\[\$[^\$\[\]]*?\$\]/g) || []), ...$scope.varArr])];
- if (nowArr.length !== $scope.varArr.length) {
- alert("【" + filterArr[i].tabName + "】请填写有效的变量名称!");
- return;
- }
- }
- }
- //请求参数处理(是否有输入数字控件)
- if ($scope.editData.noticeRule !== 'no') {
- var data = {
- "messageManager": {
- "id": $scope.editData.id,
- "noticeRule": $scope.editData.noticeRule,
- "messageStationFlag": $scope.tabs[0].checkboxFlag ? 1 : 0,
- "messageStationTitle": $scope.tabs[0].processTitle,
- "messageStationContent": $scope.tabs[0].processContent,
- "shortMessageFlag": $scope.tabs[1].checkboxFlag ? 1 : 0,
- "shortMessageContent": $scope.tabs[1].processContent,
- "wechatMessageFlag": $scope.tabs[2].checkboxFlag ? 1 : 0,
- "wechatMessageTitle": $scope.tabs[2].processTitle,
- "wechatMessageContent": $scope.tabs[2].processContent,
- "flag": $scope.editData.flag ? 1 : 0
- }
- };
- } else {
- var data = {
- "messageManager": {
- "id": $scope.editData.id,
- "messageStationFlag": $scope.tabs[0].checkboxFlag ? 1 : 0,
- "messageStationTitle": $scope.tabs[0].processTitle,
- "messageStationContent": $scope.tabs[0].processContent,
- "shortMessageFlag": $scope.tabs[1].checkboxFlag ? 1 : 0,
- "shortMessageContent": $scope.tabs[1].processContent,
- "wechatMessageFlag": $scope.tabs[2].checkboxFlag ? 1 : 0,
- "wechatMessageTitle": $scope.tabs[2].processTitle,
- "wechatMessageContent": $scope.tabs[2].processContent,
- "flag": $scope.editData.flag ? 1 : 0
- }
- };
- }
- // 关闭模态窗口并传递一个结果
- $modalInstance.close(data);
- };
- }
- });
- modalInstance.result.then(function (data) {
- api_notification_data.updData(data).then(function (res) {
- if (res.status == 200) {
- SweetAlert.swal({
- title: "修改成功!",
- type: "success",
- confirmButtonColor: "#007AFF"
- }, function () {
- $scope.getBxList();
- $scope.getSjList();
- });
- }
- })
- });
- }
- }]);
|