From 5ed66ec03543c9a40e9f766c9cc7e5b3c02b7ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A5=BC=E5=9B=BD=E6=A0=8B?= Date: Wed, 23 Jun 2021 05:36:38 +0000 Subject: [PATCH] Merge branch 'fix/jira_mobile_bug' into 'wrdp' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit jira问题处理 See merge request o2oa/o2oa!4160 (cherry picked from commit e1f63881af645081b5a3f91772e6bbc9262b022c) 55753d3d 【移动办公】手机端门户视图显示不全的bug 116f965d IM聊天web端的一些问题修改,jira上的 86899806 考勤新增从企业微信同步下来的数据查询,jira问题处理 --- .../x_component_Attendance/$Main/navi.json | 18 + .../$PeopleDetail/listItem_qywx.json | 42 ++ .../listItem_qywx_detailStatic.json | 83 +++ .../$UnitDetail/listItem_qywx.json | 42 ++ .../listItem_qywx_detailStatic.json | 83 +++ o2web/source/x_component_Attendance/Main.js | 34 ++ .../PeopleQywxDetail.js | 457 ++++++++++++++++ .../x_component_Attendance/UnitQywxDetail.js | 374 +++++++++++++ .../x_component_Attendance/UnitQywxIndex.js | 501 ++++++++++++++++++ o2web/source/x_component_Attendance/lp/en.js | 8 +- .../source/x_component_Attendance/lp/zh-cn.js | 6 + o2web/source/x_component_IMV2/Main.js | 47 +- .../$Viewer/default/css.wcss | 12 + .../x_component_process_Application/Viewer.js | 7 +- .../$Viewer/default/css.wcss | 12 + .../$Viewer/select/css.wcss | 12 + .../source/x_component_query_Query/Viewer.js | 6 +- 17 files changed, 1729 insertions(+), 15 deletions(-) create mode 100644 o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx.json create mode 100644 o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx_detailStatic.json create mode 100644 o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx.json create mode 100644 o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx_detailStatic.json create mode 100644 o2web/source/x_component_Attendance/PeopleQywxDetail.js create mode 100644 o2web/source/x_component_Attendance/UnitQywxDetail.js create mode 100644 o2web/source/x_component_Attendance/UnitQywxIndex.js diff --git a/o2web/source/x_component_Attendance/$Main/navi.json b/o2web/source/x_component_Attendance/$Main/navi.json index a1465bca8a..d3d45f9787 100644 --- a/o2web/source/x_component_Attendance/$Main/navi.json +++ b/o2web/source/x_component_Attendance/$Main/navi.json @@ -53,18 +53,36 @@ "id": "151", "action": "openUnitDingdingIndex" }, + { + "access": "qywx", + "title": MWF.xApplication.Attendance.LP.navi.unitQywxIndex, + "id": "152", + "action": "openUnitQywxIndex" + }, { "access": "dingding", "title": MWF.xApplication.Attendance.LP.navi.dingdingPeopleDetail, "id": "161", "action": "openDingdingPeopleDetail" }, + { + "access": "qywx", + "title": MWF.xApplication.Attendance.LP.navi.qywxPeopleDetail, + "id": "162", + "action": "openQywxPeopleDetail" + }, { "access": "dingding", "title": MWF.xApplication.Attendance.LP.navi.dingdingUnitDetail, "id": "171", "action": "openDingdingUnitDetail" }, + { + "access": "qywx", + "title": MWF.xApplication.Attendance.LP.navi.qywxUnitDetail, + "id": "172", + "action": "openQywxUnitDetail" + }, { "access": "admin", "type": "sep" diff --git a/o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx.json b/o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx.json new file mode 100644 index 0000000000..960384f5a2 --- /dev/null +++ b/o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx.json @@ -0,0 +1,42 @@ +[ + { + "title": MWF.xApplication.Attendance.LP.name, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( d ){ return d.o2User.split('@')[0] }", + "name": "o2User", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.date, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function(d){ var date = new Date(d.userCheckTime); return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();}", + "name": "userCheckTime", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.signinType, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( data ){ return data.checkType; }", + "name": "checkType", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.signinResult, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( data ){ return data.exceptionType; }", + "name": "exceptionType", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.signTime, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function(d){ var date = new Date(d.userCheckTime); return date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();}", + "name": "userCheckTime", + "width": "20%" + } +] \ No newline at end of file diff --git a/o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx_detailStatic.json b/o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx_detailStatic.json new file mode 100644 index 0000000000..0b29a7b63d --- /dev/null +++ b/o2web/source/x_component_Attendance/$PeopleDetail/listItem_qywx_detailStatic.json @@ -0,0 +1,83 @@ +[ + { + "title" : MWF.xApplication.Attendance.LP.person, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( d ){ return d.o2User.split('@')[0] }", + "name": "o2User", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.months, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( data ){ return data.statisticYear + '-' + data.statisticMonth }", + "name": "statisticMonth", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.onDutyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "onDutyTimes", + "name": "onDutyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.offDutyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "offDutyTimes", + "name": "offDutyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.onDutyDayCount, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "workDayCount", + "name": "workDayCount", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.lateTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "lateTimes", + "name": "lateTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.leaveEarlyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "leaveEarlyTimes", + "name": "leaveEarlyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.notSignedCount, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "notSignedCount", + "name": "notSignedCount", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.outsideDutyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "outsideDutyTimes", + "name": "outsideDutyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.absenteeismTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "absenteeismTimes", + "name": "absenteeismTimes", + "width": "9%" + } + +] \ No newline at end of file diff --git a/o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx.json b/o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx.json new file mode 100644 index 0000000000..960384f5a2 --- /dev/null +++ b/o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx.json @@ -0,0 +1,42 @@ +[ + { + "title": MWF.xApplication.Attendance.LP.name, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( d ){ return d.o2User.split('@')[0] }", + "name": "o2User", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.date, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function(d){ var date = new Date(d.userCheckTime); return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();}", + "name": "userCheckTime", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.signinType, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( data ){ return data.checkType; }", + "name": "checkType", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.signinResult, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( data ){ return data.exceptionType; }", + "name": "exceptionType", + "width": "20%" + }, + { + "title": MWF.xApplication.Attendance.LP.signTime, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function(d){ var date = new Date(d.userCheckTime); return date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();}", + "name": "userCheckTime", + "width": "20%" + } +] \ No newline at end of file diff --git a/o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx_detailStatic.json b/o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx_detailStatic.json new file mode 100644 index 0000000000..0b29a7b63d --- /dev/null +++ b/o2web/source/x_component_Attendance/$UnitDetail/listItem_qywx_detailStatic.json @@ -0,0 +1,83 @@ +[ + { + "title" : MWF.xApplication.Attendance.LP.person, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( d ){ return d.o2User.split('@')[0] }", + "name": "o2User", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.months, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "function( data ){ return data.statisticYear + '-' + data.statisticMonth }", + "name": "statisticMonth", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.onDutyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "onDutyTimes", + "name": "onDutyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.offDutyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "offDutyTimes", + "name": "offDutyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.onDutyDayCount, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "workDayCount", + "name": "workDayCount", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.lateTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "lateTimes", + "name": "lateTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.leaveEarlyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "leaveEarlyTimes", + "name": "leaveEarlyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.notSignedCount, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "notSignedCount", + "name": "notSignedCount", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.outsideDutyTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "outsideDutyTimes", + "name": "outsideDutyTimes", + "width": "9%" + }, + { + "title" : MWF.xApplication.Attendance.LP.absenteeismTimes, + "headStyles": "normalThNode", + "contentStyles": "normalTdNode", + "item": "absenteeismTimes", + "name": "absenteeismTimes", + "width": "9%" + } + +] \ No newline at end of file diff --git a/o2web/source/x_component_Attendance/Main.js b/o2web/source/x_component_Attendance/Main.js index 3017e10a6e..ebebbb48ed 100644 --- a/o2web/source/x_component_Attendance/Main.js +++ b/o2web/source/x_component_Attendance/Main.js @@ -168,6 +168,16 @@ MWF.xApplication.Attendance.Main = new Class({ this.explorer.load(); }.bind(this)); }, + openUnitQywxIndex: function () { + MWF.xDesktop.requireApp("Attendance", "UnitQywxIndex", function () { + this.clearContent(); + this.explorerContent = new Element("div", { + "styles": this.css.rightContentNode + }).inject(this.node); + this.explorer = new MWF.xApplication.Attendance.UnitQywxIndex(this.explorerContent, this, this.restActions, { "isAdmin": this.isAdmin() }); + this.explorer.load(); + }.bind(this)); + }, openUnitDetail: function () { MWF.xDesktop.requireApp("Attendance", "UnitDetail", function () { this.clearContent(); @@ -178,6 +188,7 @@ MWF.xApplication.Attendance.Main = new Class({ this.explorer.load(); }.bind(this)); }, + openDingdingUnitDetail: function () { MWF.xDesktop.requireApp("Attendance", "UnitDingdingDetail", function () { this.clearContent(); @@ -188,6 +199,16 @@ MWF.xApplication.Attendance.Main = new Class({ this.explorer.load(); }.bind(this)); }, + openQywxUnitDetail: function () { + MWF.xDesktop.requireApp("Attendance", "UnitQywxDetail", function () { + this.clearContent(); + this.explorerContent = new Element("div", { + "styles": this.css.rightContentNode + }).inject(this.node); + this.explorer = new MWF.xApplication.Attendance.UnitQywxDetail(this.explorerContent, this, this.restActions, { "isAdmin": this.isAdmin() }); + this.explorer.load(); + }.bind(this)); + }, openPeopleDetail: function () { MWF.xDesktop.requireApp("Attendance", "PeopleDetail", function () { this.clearContent(); @@ -208,6 +229,16 @@ MWF.xApplication.Attendance.Main = new Class({ this.explorer.load(); }.bind(this)); }, + openQywxPeopleDetail: function () { + MWF.xDesktop.requireApp("Attendance", "PeopleQywxDetail", function () { + this.clearContent(); + this.explorerContent = new Element("div", { + "styles": this.css.rightContentNode + }).inject(this.node); + this.explorer = new MWF.xApplication.Attendance.PeopleQywxDetail(this.explorerContent, this, this.restActions, { "isAdmin": this.isAdmin() }); + this.explorer.load(); + }.bind(this)); + }, openTopUnitDetail: function () { MWF.xDesktop.requireApp("Attendance", "TopUnitDetail", function () { this.clearContent(); @@ -390,6 +421,9 @@ MWF.xApplication.Attendance.Navi = new Class({ } else if (navi.access && navi.access == "dingding") { //启用钉钉考勤同步后 debugger; if ((this.app.isUnitManager() || this.app.isAdmin()) && (this.app.enableType == "dingding")) this.createNaviNode(navi); + } else if (navi.access && navi.access == "qywx") { // 启用企业微信考勤同步后 + debugger; + if ((this.app.isUnitManager() || this.app.isAdmin()) && (this.app.enableType == "qywx")) this.createNaviNode(navi); } else { this.createNaviNode(navi); } diff --git a/o2web/source/x_component_Attendance/PeopleQywxDetail.js b/o2web/source/x_component_Attendance/PeopleQywxDetail.js new file mode 100644 index 0000000000..b686d87827 --- /dev/null +++ b/o2web/source/x_component_Attendance/PeopleQywxDetail.js @@ -0,0 +1,457 @@ +MWF.xDesktop.requireApp("Attendance", "Explorer", null, false); +MWF.xDesktop.requireApp("Selector", "package", null, false); + +MWF.xApplication.Attendance.PeopleQywxDetail = new Class({ + Extends: MWF.widget.Common, + Implements: [Options, Events], + options: { + "style": "default" + }, + initialize: function (node, app, actions, options) { + this.setOptions(options); + this.app = app; + this.path = "../x_component_Attendance/$PeopleDetail/"; + this.cssPath = "../x_component_Attendance/$PeopleDetail/" + this.options.style + "/css.wcss"; + this._loadCss(); + + this.actions = actions; + this.node = $(node); + }, + load: function () { + this.loadTab(); + }, + loadTab: function () { + + this.tabNode = new Element("div", { "styles": this.css.tabNode }).inject(this.node); + this.detailArea = new Element("div", { "styles": this.css.tabPageContainer }).inject(this.tabNode); + //this.selfHolidayArea = new Element("div",{"styles" : this.css.tabPageContainer }).inject(this.tabNode) + this.detailStaticArea = new Element("div", { "styles": this.css.tabPageContainer }).inject(this.tabNode); + //this.selfHolidayStaticArea = new Element("div",{"styles" : this.css.tabPageContainer }).inject(this.tabNode) + + MWF.require("MWF.widget.Tab", function () { + + this.tabs = new MWF.widget.Tab(this.tabNode, { "style": "attendance" }); + this.tabs.load(); + + this.detailPage = this.tabs.addTab(this.detailArea, this.app.lp.personSigninDetail, false); + this.detailPage.contentNodeArea.set("class", "detailPage"); + this.detailPage.addEvent("show", function () { + if (!this.detailExplorer) { + this.detailExplorer = new MWF.xApplication.Attendance.PeopleQywxDetail.Explorer(this.detailArea, this); + this.detailExplorer.load(); + } + }.bind(this)); + + + this.detailStaticPage = this.tabs.addTab(this.detailStaticArea, this.app.lp.personSigninStatic, false); + this.detailStaticPage.contentNodeArea.set("class", "detailStaticPage"); + this.detailStaticPage.addEvent("show", function () { + if (!this.detailStaticExplorer) { + this.detailStaticExplorer = new MWF.xApplication.Attendance.PeopleQywxDetail.DetailStaticExplorer(this.detailStaticArea, this); + this.detailStaticExplorer.load(); + } + }.bind(this)); + + + this.tabs.pages[0].showTab(); + }.bind(this)); + } +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.Explorer = new Class({ + Extends: MWF.xApplication.Attendance.Explorer, + Implements: [Options, Events], + + initialize: function (node, parent, options) { + this.setOptions(options); + this.parent = parent; + this.app = parent.app; + this.css = parent.css; + this.path = parent.path; + + this.actions = parent.actions; + this.node = $(node); + + + this.initData(); + if (!this.peopleActions) this.peopleActions = new MWF.xAction.org.express.RestActions(); + }, + initData: function () { + this.toolItemNodes = []; + }, + reload: function () { + this.node.empty(); + this.load(); + }, + load: function () { + this.loadFilter(); + this.loadContentNode(); + this.setNodeScroll(); + }, + loadFilter: function () { + var lp = MWF.xApplication.Attendance.LP; + this.fileterNode = new Element("div.fileterNode", { + "styles": this.css.fileterNode + }).inject(this.node); + + var html = "" + + "" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + "" + + "
"; + this.fileterNode.set("html", html); + + MWF.xDesktop.requireApp("Template", "MForm", function () { + this.form = new MForm(this.fileterNode, {}, { + isEdited: true, + itemTemplate: { + person: { text: lp.person, type: "org", orgType: "person", notEmpty: true, style: { "min-width": "100px" } }, + year: { + text: lp.annuaal, + "type": "select", + "selectValue": function () { + var years = []; + var year = new Date().getFullYear(); + for (var i = 0; i < 6; i++) { + years.push(year--); + } + return years; + }, + "event": { + "change": function (item, ev) { + var values = this.getDateSelectValue(); + item.form.getItem("day").resetItemOptions(values, values) + }.bind(this) + } + }, + month: { + text: lp.months, + "type": "select", + "defaultValue": function () { + var month = (new Date().getMonth() + 1).toString(); + return month.length == 1 ? "0" + month : month; + }, + "selectValue": ["", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"], + "event": { + "change": function (item, ev) { + var values = this.getDateSelectValue(); + item.form.getItem("day").resetItemOptions(values, values) + }.bind(this) + } + }, + day: { text: lp.date, "type": "select", "selectValue": this.getDateSelectValue.bind(this) }, + checkType: { text: lp.signinType, "type": "select", "selectValue": lp.signinQywxTypeSelectText, "selectText": lp.signinQywxTypeSelectText }, + exceptionType: { text: lp.signinResult, "type": "select", "selectValue": lp.signinQywxResultSelectText, "selectText": lp.signinQywxResultSelectText }, + action: { + "value": lp.query, type: "button", className: "filterButton", event: { + click: function () { + var result = this.form.getResult(true, ",", true, true, false); + if (!result) return; + if (result.day && result.day != "") { + result.q_date = result.year + "-" + result.month + "-" + result.day; + } + this.loadView(result); + }.bind(this) + } + } + } + }, this.app, this.css); + this.form.load(); + }.bind(this), true); + }, + getDateSelectValue: function () { + if (this.form) { + var year = parseInt(this.form.getItem("year").getValue()); + var month = parseInt(this.form.getItem("month").getValue()) - 1; + } else { + var year = (new Date()).getFullYear(); + var month = (new Date()).getMonth(); + } + var date = new Date(year, month, 1); + var days = []; + days.push(""); + while (date.getMonth() === month) { + var d = date.getDate().toString(); + if (d.length == 1) d = "0" + d; + days.push(d); + date.setDate(date.getDate() + 1); + } + return days; + }, + + loadContentNode: function () { + this.elementContentNode = new Element("div", { + "styles": this.css.elementContentNode + }).inject(this.node); + this.app.addEvent("resize", function () { this.setContentSize(); }.bind(this)); + + }, + loadView: function (filterData) { + this.elementContentNode.empty(); + if (this.view) delete this.view; + this.view = new MWF.xApplication.Attendance.PeopleQywxDetail.View(this.elementContentNode, this.app, this); + this.view.filterData = filterData; + this.view.listItemUrl = this.path + "listItem_qywx.json"; + this.view.load(); + this.setContentSize(); + }, + setContentSize: function () { + var tabNodeSize = this.parent.tabs ? this.parent.tabs.tabNodeContainer.getSize() : { "x": 0, "y": 0 }; + var fileterNodeSize = this.fileterNode ? this.fileterNode.getSize() : { "x": 0, "y": 0 }; + var nodeSize = this.parent.node.getSize(); + + var pt = this.elementContentNode.getStyle("padding-top").toFloat(); + var pb = this.elementContentNode.getStyle("padding-bottom").toFloat(); + //var filterSize = this.filterNode.getSize(); + + var height = nodeSize.y - tabNodeSize.y - pt - pb - fileterNodeSize.y - 20; + this.elementContentNode.setStyle("height", "" + height + "px"); + + this.pageCount = (height / 40).toInt() + 5; + + if (this.view && this.view.items.length < this.pageCount) { + this.view.loadElementList(this.pageCount - this.view.items.length); + } + } +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.SelfHoliday = new Class({ + Extends: MWF.xApplication.Attendance.PeopleQywxDetail.Explorer, + + loadView: function (filterData) { + this.elementContentNode.empty(); + if (this.view) delete this.view; + this.view = new MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayView(this.elementContentNode, this.app, this); + this.view.filterData = filterData; + this.view.load(); + this.setContentSize(); + } +}); + + +MWF.xApplication.Attendance.PeopleQywxDetail.DetailStaticExplorer = new Class({ + Extends: MWF.xApplication.Attendance.PeopleQywxDetail.Explorer, + loadFilter: function () { + var lp = MWF.xApplication.Attendance.LP; + this.fileterNode = new Element("div.fileterNode", { + "styles": this.css.fileterNode + }).inject(this.node); + + var html = "" + + "" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + "" + + "
"; + this.fileterNode.set("html", html); + + MWF.xDesktop.requireApp("Template", "MForm", function () { + this.form = new MForm(this.fileterNode, {}, { + isEdited: true, + itemTemplate: { + q_empName: { text: lp.person, type: "org", orgType: "person", notEmpty: true, style: { "min-width": "100px" } }, + cycleYear: { + text: lp.annuaal, + "type": "select", + "selectValue": function () { + var years = []; + var year = new Date().getFullYear(); + for (var i = 0; i < 6; i++) { + years.push(year--); + } + return years; + } + }, + cycleMonth: { + text: lp.months, + "type": "select", + "defaultValue": function () { + var month = (new Date().getMonth() + 1).toString(); + return month.length == 1 ? "0" + month : month; + }, + "selectValue": ["", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] + }, + action: { + "value": lp.query, type: "button", className: "filterButton", event: { + click: function () { + var result = this.form.getResult(true, ",", true, true, false); + if (!result) return; + this.loadView(result); + }.bind(this) + } + } + } + }, this.app, this.css); + this.form.load(); + }.bind(this), true); + }, + + loadView: function (filterData) { + this.elementContentNode.empty(); + if (this.view) delete this.view; + this.view = new MWF.xApplication.Attendance.PeopleQywxDetail.DetailStaticView(this.elementContentNode, this.app, this); + this.view.filterData = filterData; + this.view.listItemUrl = this.path + "listItem_qywx_detailStatic.json"; + this.view.load(); + this.setContentSize(); + } +}); + + +MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayStaticExplorer = new Class({ + Extends: MWF.xApplication.Attendance.PeopleQywxDetail.Explorer, + + loadView: function (filterData) { + this.elementContentNode.empty(); + if (this.view) delete this.view; + this.view = new MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayStaticView(this.elementContentNode, this.app, this); + this.view.filterData = filterData; + this.view.load(); + this.setContentSize(); + } +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.View = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.View, + _createItem: function (data) { + return new MWF.xApplication.Attendance.PeopleQywxDetail.Document(this.table, data, this.explorer, this); + }, + + _getCurrentPageData: function (callback, count) { + if (!count) count = 20; + var id = (this.items.length) ? this.items[this.items.length - 1].data.id : "(0)"; + var filter = this.filterData || {}; + + var action = o2.Actions.load("x_attendance_assemble_control"); + action.QywxAttendanceAction.listDingdingAttendance(id, count, filter, function (json) { + if (callback) callback(json); + }.bind(this)); + }, + _removeDocument: function (documentData, all) { + + }, + _createDocument: function () { + + }, + _openDocument: function (documentData) { + + } + +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayView = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.View, + _createItem: function (data) { + return new MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayDocument(this.table, data, this.explorer, this); + }, + + _getCurrentPageData: function (callback, count) { + var filter = this.filterData || {}; + this.actions.listDetailFilter(filter, function (json) { + if (callback) callback(json); + }.bind(this)) + }, + _removeDocument: function (documentData, all) { + + }, + _createDocument: function () { + + }, + _openDocument: function (documentData) { + + } + +}); + + +MWF.xApplication.Attendance.PeopleQywxDetail.DetailStaticView = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.View, + _createItem: function (data) { + return new MWF.xApplication.Attendance.PeopleQywxDetail.DetailStaticDocument(this.table, data, this.explorer, this); + }, + + _getCurrentPageData: function (callback, count) { + var filter = this.filterData || {}; + var action = o2.Actions.load("x_attendance_assemble_control"); + action.QywxAttendanceStatisticAction.personMonth(filter.q_empName, filter.cycleYear, filter.cycleMonth, function (json) { + // var data = json.data; + // data.sort(function (a, b) { + // return parseInt(b.statisticYear + b.statisticMonth) - parseInt(a.statisticYear + a.statisticMonth) + // }); + // json.data = data; + if (callback) callback(json); + }.bind(this)) + }, + _removeDocument: function (documentData, all) { + + }, + _createDocument: function () { + + }, + _openDocument: function (documentData) { + + } + +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayStaticView = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.View, + _createItem: function (data) { + return new MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayStaticDocument(this.table, data, this.explorer, this); + }, + + _getCurrentPageData: function (callback, count) { + var filter = this.filterData || {}; + this.actions.listDetailFilter(filter, function (json) { + if (callback) callback(json); + }.bind(this)) + }, + _removeDocument: function (documentData, all) { + + }, + _createDocument: function () { + + }, + _openDocument: function (documentData) { + + } + +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.Document = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.Document + +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayDocument = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.Document + +}); + + +MWF.xApplication.Attendance.PeopleQywxDetail.DetailStaticDocument = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.Document + +}); + +MWF.xApplication.Attendance.PeopleQywxDetail.SelfHolidayStaticDocument = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.Document + +}); diff --git a/o2web/source/x_component_Attendance/UnitQywxDetail.js b/o2web/source/x_component_Attendance/UnitQywxDetail.js new file mode 100644 index 0000000000..4984b1f675 --- /dev/null +++ b/o2web/source/x_component_Attendance/UnitQywxDetail.js @@ -0,0 +1,374 @@ +MWF.xDesktop.requireApp("Attendance", "Explorer", null, false); +MWF.xDesktop.requireApp("Selector", "package", null, false); + +MWF.xApplication.Attendance.UnitQywxDetail = new Class({ + Extends: MWF.widget.Common, + Implements: [Options, Events], + options: { + "style": "default" + }, + initialize: function (node, app, actions, options) { + this.setOptions(options); + this.app = app; + this.path = "../x_component_Attendance/$UnitDetail/"; + this.cssPath = "../x_component_Attendance/$UnitDetail/" + this.options.style + "/css.wcss"; + this._loadCss(); + + this.actions = actions; + this.node = $(node); + }, + load: function () { + this.loadTab(); + }, + loadTab: function () { + + this.tabNode = new Element("div", { "styles": this.css.tabNode }).inject(this.node); + this.detailArea = new Element("div", { "styles": this.css.tabPageContainer }).inject(this.tabNode); + //this.selfHolidayArea = new Element("div",{"styles" : this.css.tabPageContainer }).inject(this.tabNode) + this.detailStaticArea = new Element("div", { "styles": this.css.tabPageContainer }).inject(this.tabNode); + //this.selfHolidayStaticArea = new Element("div",{"styles" : this.css.tabPageContainer }).inject(this.tabNode) + + MWF.require("MWF.widget.Tab", function () { + + this.tabs = new MWF.widget.Tab(this.tabNode, { "style": "attendance" }); + this.tabs.load(); + + this.detailPage = this.tabs.addTab(this.detailArea, this.app.lp.unitSigninDetail, false); + this.detailPage.contentNodeArea.set("class", "detailPage"); + this.detailPage.addEvent("show", function () { + if (!this.detailExplorer) { + this.detailExplorer = new MWF.xApplication.Attendance.UnitQywxDetail.Explorer(this.detailArea, this); + this.detailExplorer.load(); + } + }.bind(this)); + + + this.detailStaticPage = this.tabs.addTab(this.detailStaticArea, this.app.lp.unitSigninStatic, false); + this.detailStaticPage.contentNodeArea.set("class", "detailStaticPage"); + this.detailStaticPage.addEvent("show", function () { + if (!this.detailStaticExplorer) { + this.detailStaticExplorer = new MWF.xApplication.Attendance.UnitQywxDetail.DetailStaticExplorer(this.detailStaticArea, this); + this.detailStaticExplorer.load(); + } + }.bind(this)); + + this.tabs.pages[0].showTab(); + }.bind(this)); + } +}); + +MWF.xApplication.Attendance.UnitQywxDetail.Explorer = new Class({ + Extends: MWF.xApplication.Attendance.Explorer, + Implements: [Options, Events], + + initialize: function (node, parent, options) { + this.setOptions(options); + this.parent = parent; + this.app = parent.app; + this.lp = this.app.lp; + this.css = parent.css; + this.path = parent.path; + + this.actions = parent.actions; + this.node = $(node); + + this.initData(); + if (!this.peopleActions) this.peopleActions = new MWF.xAction.org.express.RestActions(); + }, + initData: function () { + this.toolItemNodes = []; + }, + reload: function () { + this.node.empty(); + this.load(); + }, + load: function () { + this.loadFilter(); + this.loadContentNode(); + this.setNodeScroll(); + }, + loadFilter: function () { + var lp = MWF.xApplication.Attendance.LP; + this.fileterNode = new Element("div.fileterNode", { + "styles": this.css.fileterNode + }).inject(this.node); + + var html = "" + + "" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + "" + + "
"; + this.fileterNode.set("html", html); + + MWF.xDesktop.requireApp("Template", "MForm", function () { + this.form = new MForm(this.fileterNode, {}, { + isEdited: true, + itemTemplate: { + unit: { text: lp.unit, type: "org", orgType: "unit", notEmpty: true, style: { "min-width": "200px" } }, + year: { + text: lp.annuaal, + "type": "select", + "selectValue": function () { + var years = []; + var year = new Date().getFullYear(); + for (var i = 0; i < 6; i++) { + years.push(year--); + } + return years; + }, + "event": { + "change": function (item, ev) { + var values = this.getDateSelectValue(); + item.form.getItem("day").resetItemOptions(values, values) + }.bind(this) + } + }, + month: { + text: lp.months, + "type": "select", + "defaultValue": function () { + var month = (new Date().getMonth() + 1).toString(); + return month.length == 1 ? "0" + month : month; + }, + "selectValue": ["", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"], + "event": { + "change": function (item, ev) { + var values = this.getDateSelectValue(); + item.form.getItem("day").resetItemOptions(values, values) + }.bind(this) + } + }, + day: { text: lp.date, "type": "select", "selectValue": this.getDateSelectValue.bind(this) }, + checkType: { text: lp.signinType, "type": "select", "selectValue": lp.signinQywxTypeSelectText, "selectText": lp.signinQywxTypeSelectText }, + exceptionType: { text: lp.signinResult, "type": "select", "selectValue": lp.signinQywxResultSelectText, "selectText": lp.signinQywxResultSelectText }, + action: { + "value": lp.query, type: "button", className: "filterButton", event: { + click: function () { + var result = this.form.getResult(true, ",", true, true, false); + if (!result) return; + if (result.day && result.day != "") { + result.q_date = result.year + "-" + result.month + "-" + result.day; + } + this.loadView(result); + }.bind(this) + } + } + } + }, this.app, this.css); + this.form.load(); + }.bind(this), true); + }, + getDateSelectValue: function () { + if (this.form) { + var year = parseInt(this.form.getItem("year").getValue()); + var month = parseInt(this.form.getItem("month").getValue()) - 1; + } else { + var year = (new Date()).getFullYear(); + var month = (new Date()).getMonth(); + } + var date = new Date(year, month, 1); + var days = []; + days.push(""); + while (date.getMonth() === month) { + var d = date.getDate().toString(); + if (d.length == 1) d = "0" + d; + days.push(d); + date.setDate(date.getDate() + 1); + } + return days; + }, + loadContentNode: function () { + this.elementContentNode = new Element("div", { + "styles": this.css.elementContentNode + }).inject(this.node); + this.app.addEvent("resize", function () { this.setContentSize(); }.bind(this)); + + }, + loadView: function (filterData) { + this.elementContentNode.empty(); + if (this.view) delete this.view; + this.view = new MWF.xApplication.Attendance.UnitQywxDetail.View(this.elementContentNode, this.app, this); + this.view.filterData = filterData; + this.view.listItemUrl = this.path + "listItem_qywx.json"; + this.view.load(); + this.setContentSize(); + }, + setContentSize: function () { + var tabNodeSize = this.parent.tabs ? this.parent.tabs.tabNodeContainer.getSize() : { "x": 0, "y": 0 }; + var fileterNodeSize = this.fileterNode ? this.fileterNode.getSize() : { "x": 0, "y": 0 }; + var nodeSize = this.parent.node.getSize(); + + var pt = this.elementContentNode.getStyle("padding-top").toFloat(); + var pb = this.elementContentNode.getStyle("padding-bottom").toFloat(); + //var filterSize = this.filterNode.getSize(); + + var height = nodeSize.y - tabNodeSize.y - pt - pb - fileterNodeSize.y - 20; + this.elementContentNode.setStyle("height", "" + height + "px"); + + this.pageCount = (height / 40).toInt() + 5; + + if (this.view && this.view.items.length < this.pageCount) { + this.view.loadElementList(this.pageCount - this.view.items.length); + } + } +}); + + + +MWF.xApplication.Attendance.UnitQywxDetail.DetailStaticExplorer = new Class({ + Extends: MWF.xApplication.Attendance.UnitQywxDetail.Explorer, + + loadFilter: function () { + var lp = MWF.xApplication.Attendance.LP; + this.fileterNode = new Element("div.fileterNode", { + "styles": this.css.fileterNode + }).inject(this.node); + + var html = "" + + "" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + "" + + "
"; + this.fileterNode.set("html", html); + + MWF.xDesktop.requireApp("Template", "MForm", function () { + this.form = new MForm(this.fileterNode, {}, { + isEdited: true, + itemTemplate: { + q_unitName: { text: lp.unit, type: "org", orgType: "unit", notEmpty: true, style: { "min-width": "200px" } }, + cycleYear: { + text: lp.annuaal, + "type": "select", + "selectValue": function () { + var years = []; + var year = new Date().getFullYear(); + for (var i = 0; i < 6; i++) { + years.push(year--); + } + return years; + } + }, + cycleMonth: { + text: lp.months, notEmpty: true, + "type": "select", + "defaultValue": function () { + var month = (new Date().getMonth() + 1).toString(); + return month.length == 1 ? "0" + month : month; + }, + "selectValue": ["", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] + }, + action: { + "value": lp.query, type: "button", className: "filterButton", event: { + click: function () { + var result = this.form.getResult(true, ",", true, true, false); + if (!result) return; + this.loadView(result); + }.bind(this) + } + } + } + }, this.app, this.css); + this.form.load(); + }.bind(this), true); + }, + + loadView: function (filterData) { + this.elementContentNode.empty(); + if (this.view) delete this.view; + this.view = new MWF.xApplication.Attendance.UnitQywxDetail.DetailStaticView(this.elementContentNode, this.app, this); + this.view.filterData = filterData; + this.view.listItemUrl = this.path + "listItem_qywx_detailStatic.json"; + this.view.load(); + this.setContentSize(); + } +}); + + + +MWF.xApplication.Attendance.UnitQywxDetail.View = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.View, + _createItem: function (data) { + return new MWF.xApplication.Attendance.UnitQywxDetail.Document(this.table, data, this.explorer, this); + }, + + _getCurrentPageData: function (callback, count) { + if (!count) count = 20; + var id = (this.items.length) ? this.items[this.items.length - 1].data.id : "(0)"; + var filter = this.filterData || {}; + + var action = o2.Actions.load("x_attendance_assemble_control"); + action.QywxAttendanceAction.listDingdingAttendance(id, count, filter, function (json) { + if (callback) callback(json); + }.bind(this)); + }, + _removeDocument: function (documentData, all) { + + }, + _createDocument: function () { + + }, + _openDocument: function (documentData) { + + } + +}); + + + + +MWF.xApplication.Attendance.UnitQywxDetail.DetailStaticView = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.View, + _createItem: function (data) { + return new MWF.xApplication.Attendance.UnitQywxDetail.DetailStaticDocument(this.table, data, this.explorer, this); + }, + + _getCurrentPageData: function (callback, count) { + var filter = this.filterData || {}; + var action = o2.Actions.load("x_attendance_assemble_control"); + action.QywxAttendanceStatisticAction.personMonthWithUnit(filter.q_unitName, filter.cycleYear, filter.cycleMonth, function (json) { + if (callback) callback(json); + }.bind(this)); + }, + _removeDocument: function (documentData, all) { + + }, + _createDocument: function () { + + }, + _openDocument: function (documentData) { + + } + +}); + + + +MWF.xApplication.Attendance.UnitQywxDetail.Document = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.Document + +}); + + +MWF.xApplication.Attendance.UnitQywxDetail.DetailStaticDocument = new Class({ + Extends: MWF.xApplication.Attendance.Explorer.Document + +}); + diff --git a/o2web/source/x_component_Attendance/UnitQywxIndex.js b/o2web/source/x_component_Attendance/UnitQywxIndex.js new file mode 100644 index 0000000000..1029105d74 --- /dev/null +++ b/o2web/source/x_component_Attendance/UnitQywxIndex.js @@ -0,0 +1,501 @@ +MWF.xApplication.Attendance = MWF.xApplication.Attendance || {}; + +MWF.require("MWF.xAction.org.express.RestActions", null,false); +MWF.xDesktop.requireApp("Attendance", "lp."+MWF.language, null, false); +MWF.xDesktop.requireApp("Attendance", "Common", null, false); + +MWF.xApplication.Attendance.UnitQywxIndex = new Class({ + Extends: MWF.widget.Common, + Implements: [Options, Events], + options: { + "style": "default" + }, + statusColor : { + "resultNormal" : "#9acd32", //绿色,正常 + "leaveEarlyTimes":"#4f94cd", //蓝色,早退 + "lateTimes":"#fede03", //黄色,迟到 + "notSignedCount":"#ee807f", //粉红色,未签到 + "outsideDutyTimes" : "#dec674",//外出签到次数 + "absenteeismTimes" : "#fedcbd"//矿工 + }, + initialize: function(node, app, actions, options){ + this.setOptions(options); + this.app = app; + this.lp = app.lp; + this.path = "../x_component_Attendance/$UnitIndex/"; + this.cssPath = "../x_component_Attendance/$UnitIndex/"+this.options.style+"/css.wcss"; + this._loadCss(); + + this.actions = actions; + this.node = $(node); + + this.setDate(); + + this.today = new Date(); + + this.userName = layout.desktop.session.user.distinguishedName; + this.data = {}; + }, + setDate : function( date ){ + this.date = date || new Date(); + this.year = this.date.getFullYear().toString(); + var month = this.date.getMonth()+1; + this.month = month.toString().length == 2 ? month : "0"+month; + }, + reload: function(){ + this.node.empty(); + this.load(); + }, + load: function(){ + this.loadTitleNode(); + this.loadContent(); + }, + loadTitleNode : function(){ + var text = this.date.format(this.app.lp.dateFormatMonth); + + this.titleNode = new Element("div.titleNode",{ + "styles" : this.css.titleNode + }).inject(this.node); + this.titleLeftArrowNode = new Element("div",{ + "styles" : this.css.titleLeftArrowNode + }).inject(this.titleNode); + this.titleTextNode = new Element("div",{ + "styles" : this.css.titleTextNode, + "text" : text + }).inject(this.titleNode); + this.titleRightArrowNode = new Element("div",{ + "styles" : this.css.titleRightArrowNode + }).inject(this.titleNode); + + this.titleLeftArrowNode.addEvents({ + "mouseover": function(){this.titleLeftArrowNode.setStyles(this.css.titleLeftArrowNode_over);}.bind(this), + "mouseout": function(){this.titleLeftArrowNode.setStyles(this.css.titleLeftArrowNode);}.bind(this), + "mousedown": function(){this.titleLeftArrowNode.setStyles(this.css.titleLeftArrowNode_down);}.bind(this), + "mouseup": function(){this.titleLeftArrowNode.setStyles(this.css.titleLeftArrowNode_over);}.bind(this), + "click": function(){this.changeMonthPrev();}.bind(this) + }); + this.titleRightArrowNode.addEvents({ + "mouseover": function(){this.titleRightArrowNode.setStyles(this.css.titleRightArrowNode_over);}.bind(this), + "mouseout": function(){this.titleRightArrowNode.setStyles(this.css.titleRightArrowNode);}.bind(this), + "mousedown": function(){this.titleRightArrowNode.setStyles(this.css.titleRightArrowNode_down);}.bind(this), + "mouseup": function(){this.titleRightArrowNode.setStyles(this.css.titleRightArrowNode_over);}.bind(this), + "click": function(){this.changeMonthNext();}.bind(this) + }); + this.titleTextNode.addEvents({ + "mouseover": function(){this.titleTextNode.setStyles(this.css.titleTextNode_over);}.bind(this), + "mouseout": function(){this.titleTextNode.setStyles(this.css.titleTextNode);}.bind(this), + "mousedown": function(){this.titleTextNode.setStyles(this.css.titleTextNode_down);}.bind(this), + "mouseup": function(){this.titleTextNode.setStyles(this.css.titleTextNode_over);}.bind(this), + "click": function(){this.changeMonthSelect();}.bind(this) + }); + + this.loadUnitNode(); + }, + changeMonthPrev: function(){ + this.date.decrement("month", 1); + this.setDate( this.date ); + var text = this.date.format(this.app.lp.dateFormatMonth); + this.titleTextNode.set("text", text); + this.reloadContent(); + }, + changeMonthNext: function(){ + this.date.increment("month", 1); + this.setDate( this.date ); + var text = this.date.format(this.app.lp.dateFormatMonth); + this.titleTextNode.set("text", text); + this.reloadContent(); + }, + changeMonthSelect: function(){ + if (!this.monthSelector) this.createMonthSelector(); + this.monthSelector.show(); + }, + createMonthSelector: function(){ + this.monthSelector = new MWF.xApplication.Attendance.MonthSelector(this.date, this); + }, + changeMonthTo: function(d){ + this.setDate( d ) + var text = this.date.format(this.app.lp.dateFormatMonth); + this.titleTextNode.set("text", text); + this.reloadContent(); + }, + changeUnitTo : function( d ){ + this.unit = d; + this.titleUnitActionTextNode.set("text", d.split("@")[0]); + this.reloadContent(); + }, + loadUnitNode: function(){ + this.listUnitWithPerson( function( unit ){ + this.unit = unit; + this.units = []; + var flag = true; + if( this.app.isTopUnitManager() ){ + var data = {"unitList": this.app.getNameFlag( this.app.manageTopUnits )}; + this.app.orgActions.listUnitSubDirect( function( json ){ + json.data.each(function( d ){ + this.units.push( d.distinguishedName ) + }.bind(this)) + }.bind(this), null , data, false ) + }else if( this.app.isUnitManager() ){ + this.units = this.app.manageUnits; + } + this.unit = this.units[0] || this.unit; + if( this.units.length > 1 ){ //(this.units.length==1 && this.units[0]!=this.unit ) + this.titleUnitAreaNode = new Element("div.titleUnitAreaNode",{ + "styles" : this.css.titleUnitAreaNode + }).inject(this.titleNode) + + this.titleUnitActionNode = new Element("div",{ + "styles" : this.css.titleUnitActionNode + }).inject(this.titleUnitAreaNode) + + this.titleUnitActionTextNode = new Element("div",{ + "styles" : this.css.titleUnitActionTextNode, + "text" : this.unit.split("@")[0] + }).inject(this.titleUnitActionNode); + + this.titleUnitActionIconNode = new Element("div",{ + "styles" : this.css.titleUnitActionIconNode + }).inject(this.titleUnitActionNode); + + this.titleUnitActionNode.addEvents({ + "mouseover": function(){ + this.titleUnitActionTextNode.setStyles(this.css.titleUnitActionTextNode_over); + this.titleUnitActionIconNode.setStyles(this.css.titleUnitActionIconNode_over); + }.bind(this), + "mouseout": function(){ + this.titleUnitActionTextNode.setStyles(this.css.titleUnitActionTextNode); + this.titleUnitActionIconNode.setStyles(this.css.titleUnitActionIconNode); + }.bind(this), + "click" : function( ev ){ + this.switchUnit( ev.target ); + ev.stopPropagation(); + }.bind(this) + }) + }else{ + this.titleUnitNode = new Element("div",{ + "styles" : this.css.titleUnitNode, + "text" : this.unit.split("@")[0] + }).inject(this.titleNode); + } + }.bind(this) ) + }, + listUnitWithPerson : function( callback ){ + var data = {"personList": this.app.getNameFlag(this.userName)}; + this.app.orgActions.listUnitWithPerson( function( json ){ + if( json.data.length > 0 ){ + if(callback)callback( json.data[0].distinguishedName ); + }else{ + if(callback)callback(); + } + }.bind(this), null, data , false ) + }, + switchUnit : function( el ){ + var _self = this; + var node = this.titleUnitListNode; + var parentNode = el.getParent(); + if(node){ + if( node.getStyle("display") == "block" ){ + node.setStyle("display","none"); + }else{ + node.setStyle("display","block"); + node.position({ + relativeTo: this.titleUnitActionNode, + position: 'bottomCenter', + edge: 'upperCenter' + }); + } + }else{ + node = this.titleUnitListNode = new Element("div",{ + "styles" : this.css.titleUnitListNode + }).inject(this.node); + this.app.content.addEvent("click",function(){ + _self.titleUnitListNode.setStyle("display","none"); + }); + this.units.each(function( d ){ + var dNode = new Element("div",{ + "text" : d.split('@')[0], + "styles" : this.css.titleUnitSelectNode + }).inject(node); + dNode.store("unit", d ); + dNode.addEvents({ + "mouseover" : function(){ this.setStyles(_self.css.titleUnitSelectNode_over); }, + "mouseout" : function(){ this.setStyles(_self.css.titleUnitSelectNode); }, + "click" : function(e){ + _self.titleUnitListNode.setStyle("display","none"); + this.setStyles(_self.css.titleUnitSelectNode); + _self.changeUnitTo( this.retrieve("unit") ); + e.stopPropagation(); + } + }) + }.bind(this)); + node.position({ + relativeTo: this.titleUnitActionNode, + position: 'bottomCenter', + edge: 'upperCenter' + }); + } + }, + reloadContent : function(){ + this.pieChartArea.empty(); + this.barChartArea.empty(); + this.lineChartArea.empty(); + this.loadData(function(){ + this.loadStatusColorNode(); + this.loadPieChart(); + this.loadBarChart(); + }.bind(this)); + this.loadDetail(); + }, + loadContent : function(){ + this.loadContentNode(); + this.loadData(function(){ + this.loadStatusColorNode(); + this.loadPieChart(); + this.loadBarChart(); + }.bind(this)) + this.loadDetail(); + this.setNodeScroll(); + this.setContentSize(); + }, + reloadChart : function(){ + this.pieChartArea.empty(); + this.barChartArea.empty(); + this.lineChartArea.empty(); + this.loadPieChart(); + this.loadBarChart(); + }, + loadContentNode: function(){ + this.elementContentNode = new Element("div.elementContentNode", { + "styles": this.css.elementContentNode + }).inject(this.node); + this.app.addEvent("resize", function(){ + this.setContentSize(); + this.reloadChart(); + }.bind(this)); + + this.elementContentListNode = new Element("div.elementContentListNode", { + "styles": this.css.elementContentListNode + }).inject(this.elementContentNode); + + this.topContentArea = new Element("div.topContentArea",{ + "styles" : this.css.topContentArea + }).inject(this.elementContentListNode) + + + this.pieChartArea = new Element("div.pieChartArea",{ + "styles" : this.css.pieChartArea + }).inject(this.topContentArea) + + this.statusColorArea = new Element("div.statusColorArea",{ + "styles" : this.css.statusColorArea + }).inject(this.topContentArea) + + this.barChartArea = new Element("div.barChartArea",{ + "styles" : this.css.barChartArea + }).inject(this.topContentArea) + + this.middleContentArea = new Element("div.middleContentArea",{ + "styles" : this.css.middleContentArea + }).inject(this.elementContentListNode) + + this.lineChartArea = new Element("div.lineChartArea",{ + "styles" : this.css.lineChartArea + }).inject(this.middleContentArea) + + this.bottomContentArea = new Element("div.middleContentArea",{ + "styles" : this.css.bottomContentArea + }).inject(this.elementContentListNode) + + this.detailArea = new Element("div.lineChartArea",{ + "styles" : this.css.detailArea + }).inject(this.bottomContentArea) + + }, + loadData : function( callback, unit, year, month, async ){ + if( !unit )unit = this.unit; + if( !year )year = this.year; + if( !month )month = this.month; + if( this.data[ unit + year + month ] ) { + if(callback)callback(); + }else{ + var action = o2.Actions.load("x_attendance_assemble_control"); + action.QywxAttendanceStatisticAction.unitMonth(unit, year, month, function(json){ + var d = json.data || {}; + var data = this.data[ unit + year + month ] = {}; + var totals = data.totalData = { + resultNormal: d.resultNormal || 0, + lateTimes: d.lateTimes || 0, + leaveEarlyTimes: d.leaveEarlyTimes || 0, + absenteeismTimes: d.absenteeismTimes || 0, + outsideDutyTimes: d.outsideDutyTimes || 0, + notSignedCount: d.notSignedCount || 0 + } + + var total = 0; + for( var n in totals ){ + total += totals[n]; + } + data.rateData = { + resultNormal : (!totals.resultNormal || !total) ? 0 : ((totals.resultNormal/total * 100).toFixed(2) + "%"), + lateTimes : (!totals.lateTimes || !total) ? 0 : ((totals.lateTimes/total * 100).toFixed(2) + "%"), + leaveEarlyTimes : (!totals.leaveEarlyTimes || !total) ? 0 : ((totals.leaveEarlyTimes/total * 100).toFixed(2) + "%"), + absenteeismTimes : (!totals.absenteeismTimes || !total) ? 0 : ((totals.absenteeismTimes/total * 100).toFixed(2) + "%"), + outsideDutyTimes : (!totals.outsideDutyTimes || !total) ? 0 : ((totals.outsideDutyTimes/total * 100).toFixed(2) + "%"), + notSignedCount : (!totals.notSignedCount || !total) ? 0 : ((totals.notSignedCount/total* 100).toFixed(2) + "%") + } + if(callback)callback(); + + }.bind(this), null, async); + } + }, + loadStatusColorNode : function(){ + this.statusColorArea.empty(); + + this.statusColorTable = new Element("table",{ + "styles" : this.css.statusColorTable + }).inject(this.statusColorArea) + + var totalData = this.data[ this.unit+this.year + this.month].totalData; + var rateData = this.data[ this.unit+this.year + this.month].rateData; + + for(var status in this.statusColor){ + + var tr = new Element("tr",{ + "styles" : this.css.statusColorTr + }).inject(this.statusColorTable) + var td = new Element("td",{ + "styles" : this.css.statusColorTd + }).inject(tr) + td.setStyle("background-color",this.statusColor[status]); + + var tr = new Element("tr",{ + "styles" : this.css.statusTextTr + }).inject(this.statusColorTable) + var td = new Element("td",{ + "styles" : this.css.statusTextTd, + "text" : this.lp[status] +totalData[status]+ this.lp.day +"("+rateData[status]+")" + }).inject(tr) + } + }, + loadPieChart : function(){ + this.pieChartNode = new Element("div.pieChartNode",{ + "styles" : this.css.pieChartNode + }).inject(this.pieChartArea) + + + var data = this.data[this.unit+ this.year + this.month].totalData; + this.pieChart = new MWF.xApplication.Attendance.Echarts(this.pieChartNode, this, data); + this.pieChart.loadUnitPieChart(); + }, + loadBarChart : function(){ + this.barChartNode = new Element("div.barChartNode",{ + "styles" : this.css.barChartNode + }).inject(this.barChartArea); + + var date = new Date( this.date.getFullYear() , this.date.getMonth(), this.date.getDate() ); + date.decrement("month", 1); + var year_1 = date.getFullYear().toString(); + var month_1 = date.format( this.lp.dateFormatOnlyMonth ); + var data_1 = this.data[ this.unit + year_1 + month_1 ]; + + date.decrement("month", 1); + var year_2 = date.getFullYear().toString(); + var month_2 = date.format( this.lp.dateFormatOnlyMonth ); + var data_2 = this.data[ this.unit + year_2 + month_2 ]; + + if( !data_1 ){ + this.loadData( null, this.unit, year_1, month_1, false ) + } + if( !data_2 ){ + this.loadData( null, this.unit, year_2, month_2, false) + } + + var d = [{ + year : year_2, + month : month_2, + data : this.data[this.unit+ year_2 + month_2].totalData + },{ + year : year_1, + month : month_1, + data : this.data[this.unit+ year_1 + month_1].totalData + },{ + year : this.year, + month : this.month, + data : this.data[this.unit+ this.year + this.month].totalData + }]; + + this.barChart = new MWF.xApplication.Attendance.Echarts(this.barChartNode, this, d ); + this.barChart.loadUnitBarChart(); + }, + loadDetail : function(){ + this.detailArea.empty(); + this.detailNode = new Element("div",{ + "styles" : this.css.detailNode + }).inject(this.detailArea); + + this.detailTitleNode = new Element("div",{ + "styles" : this.css.detailTitleNode, + "text" : this.lp.attendanceStatisic + }).inject(this.detailNode) + + var table = new Element("table", { + "width" : "100%", "border" : "0", "cellpadding" : "5", "cellspacing" : "0", "styles" : this.css.table, "class" : "editTable" + }).inject( this.detailNode ); + + var tr = new Element("tr", { "styles" : this.css.listHeadNode }).inject(table); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.name }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.onDutyTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.offDutyTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.resultNormal }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.lateTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.outsideDutyTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.leaveEarlyTimes }).inject(tr); + + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.absenteeismTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableTitle, "text" : this.lp.notSignedCount }).inject(tr); + var action = o2.Actions.load("x_attendance_assemble_control"); + action.QywxAttendanceStatisticAction.personMonthWithUnit(this.unit, this.year, this.month, function(json){ + var data = json.data || []; + data.sort( function(a, b){ + return b.workDayCount - a.workDayCount; + }); + data.each(function( d ){ + var tr = new Element("tr").inject(table); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.o2User.split("@")[0] }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.onDutyTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.offDutyTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.resultNormal }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.lateTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.outsideDutyTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.leaveEarlyTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.absenteeismTimes }).inject(tr); + var td = new Element("td", { "styles" : this.css.tableValue , "text": d.notSignedCount }).inject(tr); + }.bind(this)) + + }.bind(this)); + + }, + setContentSize: function(){ + var toolbarSize = this.toolbarNode ? this.toolbarNode.getSize() : {"x":0,"y":0}; + var titlebarSize = this.titleNode ? this.titleNode.getSize() : {"x":0,"y":0}; + var nodeSize = this.node.getSize(); + var pt = this.elementContentNode.getStyle("padding-top").toFloat(); + var pb = this.elementContentNode.getStyle("padding-bottom").toFloat(); + //var filterSize = this.filterNode.getSize(); + var filterConditionSize = this.filterConditionNode ? this.filterConditionNode.getSize() : {"x":0,"y":0}; + + var height = nodeSize.y-toolbarSize.y-pt-pb-filterConditionSize.y-titlebarSize.y-10; + this.elementContentNode.setStyle("height", ""+height+"px"); + + }, + setNodeScroll: function(){ + var _self = this; + MWF.require("MWF.widget.ScrollBar", function(){ + new MWF.widget.ScrollBar(this.elementContentNode, { + "indent": false,"style":"xApp_TaskList", "where": "before", "distance": 30, "friction": 4, "axis": {"x": false, "y": true}, + "onScroll": function(y){ + } + }); + }.bind(this)); + } +}); diff --git a/o2web/source/x_component_Attendance/lp/en.js b/o2web/source/x_component_Attendance/lp/en.js index a5b0392bf7..4faf01a635 100644 --- a/o2web/source/x_component_Attendance/lp/en.js +++ b/o2web/source/x_component_Attendance/lp/en.js @@ -56,6 +56,7 @@ MWF.xApplication.Attendance.LP = { "abNormalDutyCount": "Abnormal check-in times", "resultNormal": "Number of normal punches", "seriousLateTimes": "Seriously Late Times", + "outsideDutyTimes": "Outside Checkin Times", "absenteeismTimes": "Number of Absenteeism", "notSignedCount": "Not Signed Count", @@ -218,8 +219,10 @@ MWF.xApplication.Attendance.LP = { "noDepartment": "Your department was not found, please contact the administrator!", "signinType": "Signin Type", "signinTypeSelectText": ["", "Check in at work", "Check in after get off work"], + "signinQywxTypeSelectText": ["", "上班打卡", "下班打卡", "外出打卡"], "signinResult": "signin result", - "signinResultSelectText": ["", "normal", "leave early", "late", "severely late", "absentee late", "not clocked in"], + "signinResultSelectText": ["", "normal", "leave early", "late", "severely late", "absentee late", "not clocked in", "Outside checkin"], + "signinQywxResultSelectText": ["", "正常", "时间异常", "地点异常", "未打卡", "wifi异常", "非常用设备"], "systemSetting": "System Settings", "reportTo": "Report object", @@ -392,8 +395,11 @@ MWF.xApplication.Attendance.LP = { "unitDetail": "Department Statistics", "topUnitDetail": "Company Statistics", "unitDingdingIndex": "Dingding Department Report", + "unitQywxIndex": "Qywx Department Report", "dingdingPeopleDetail": "Dingding Personal Statistics", "dingdingUnitDetail": "Dingding Unit Statistics", + "qywxPeopleDetail": "Qywx Personal Statistics", + "qywxUnitDetail": "Qywx Unit Statistics", "maintain": "Maintenance", "importing": "Data Import", diff --git a/o2web/source/x_component_Attendance/lp/zh-cn.js b/o2web/source/x_component_Attendance/lp/zh-cn.js index faac02cd43..68003401b3 100644 --- a/o2web/source/x_component_Attendance/lp/zh-cn.js +++ b/o2web/source/x_component_Attendance/lp/zh-cn.js @@ -56,6 +56,7 @@ MWF.xApplication.Attendance.LP = { "abNormalDutyCount" : "异常打卡人次", "resultNormal" : "正常打卡次数", "seriousLateTimes": "严重迟到次数", + "outsideDutyTimes": "外出签到次数", "absenteeismTimes": "矿工次数", "notSignedCount": "未打卡次数", @@ -226,8 +227,10 @@ MWF.xApplication.Attendance.LP = { "noDepartment": "未找到您所在的部门,请联系管理员!", "signinType": "打卡类型", "signinTypeSelectText": ["", "上班打卡", "下班打卡"], + "signinQywxTypeSelectText": ["", "上班打卡", "下班打卡", "外出打卡"], "signinResult": "打卡结果", "signinResultSelectText": ["", "正常", "早退", "迟到", "严重迟到", "旷工迟到", "未打卡"], + "signinQywxResultSelectText": ["", "正常", "时间异常", "地点异常", "未打卡", "wifi异常", "非常用设备"], "systemSetting" : "系统设置", "reportTo": "汇报对象", @@ -401,8 +404,11 @@ MWF.xApplication.Attendance.LP = { "unitDetail": "部门考勤统计", "topUnitDetail": "公司考勤统计", "unitDingdingIndex": "钉钉部门考勤月报", + "unitQywxIndex": "企业微信部门考勤月报", "dingdingPeopleDetail": "钉钉个人考勤统计", "dingdingUnitDetail": "钉钉部门考勤统计", + "qywxPeopleDetail": "企业微信个人考勤统计", + "qywxUnitDetail": "企业微信部门考勤统计", "maintain": "维护", "importing": "数据导入", diff --git a/o2web/source/x_component_IMV2/Main.js b/o2web/source/x_component_IMV2/Main.js index f8b51cb908..58408978a4 100644 --- a/o2web/source/x_component_IMV2/Main.js +++ b/o2web/source/x_component_IMV2/Main.js @@ -156,7 +156,14 @@ MWF.xApplication.IMV2.Main = new Class({ //修改群名 tapUpdateConvTitle: function () { this.chatTitleMoreMenuNode.setStyle("display", "none"); - var form = new MWF.xApplication.IMV2.UpdateConvTitleForm(this, {}, {}, { app: this.app }); + var title = ""; + for (var i = 0; i < this.conversationNodeItemList.length; i++) { + var c = this.conversationNodeItemList[i]; + if (this.conversationId == c.data.id) { + title = c.data.title; + } + } + var form = new MWF.xApplication.IMV2.UpdateConvTitleForm(this, {}, {"defaultValue": title}, { app: this.app }); form.create(); }, //修改群成员 @@ -276,15 +283,17 @@ MWF.xApplication.IMV2.Main = new Class({ o2.Actions.load("x_message_assemble_communicate").ImAction.update(conv, function (json) { var newConv = json.data; //点击会话 刷新聊天界面 - _self.tapConv(newConv); - //刷新会话列表的title - for (var i = 0; i < this.conversationNodeItemList.length; i++) { - var cv = this.conversationNodeItemList[i]; - if (cv.data.id == convId) { - //刷新 - cv.refreshConvTitle(title); - } - } + // _self.tapConv(newConv); + // //刷新会话列表的title + // for (var i = 0; i < this.conversationNodeItemList.length; i++) { + // var cv = this.conversationNodeItemList[i]; + // if (cv.data.id == convId) { + // //刷新 + // cv.refreshConvTitle(title); + // } + // } + // 列表上的数据也要刷新 + _self.reciveNewMessage(); }.bind(this), function (error) { console.log(error); @@ -299,7 +308,9 @@ MWF.xApplication.IMV2.Main = new Class({ var _self = this; o2.Actions.load("x_message_assemble_communicate").ImAction.update(conv, function (json) { var newConv = json.data; - _self.tapConv(newConv); + //_self.tapConv(newConv); + // 列表上的数据也要刷新 + _self.reciveNewMessage(); }.bind(this), function (error) { console.log(error); }.bind(this)) @@ -431,6 +442,10 @@ MWF.xApplication.IMV2.Main = new Class({ isNew = false; //刷新 cv.refreshLastMsg(nCv.lastMessage); + cv.refreshData(nCv); + if (this.conversationId === nCv.id) { + this.tapConv(nCv); + } } } //新会话 创建 @@ -893,9 +908,16 @@ MWF.xApplication.IMV2.ConversationItem = new Class({ this.messageTimeNode.set("text", time); } }, + // 更新聊天窗口上的标题 修改标题的时候使用 @Disuse 使用refreshData refreshConvTitle: function (title) { this.titleNode.set("text", title); }, + // 更新会话数据 + refreshData: function (data) { + this.data = data; + // 更新聊天窗口上的标题 修改标题的时候使用 + this.titleNode.set("text", data.title); + }, addCheckClass: function () { if (this.nodeBaseItem) { if (!this.nodeBaseItem.hasClass("check")) { @@ -1062,6 +1084,7 @@ MWF.xApplication.IMV2.UpdateConvTitleForm = new Class({ "hasTop": true, "hasIcon": false, "draggable": true, + "defaultValue": "", // 默认值 "title": MWF.xApplication.IMV2.LP.modifyGroupName }, _createTableContent: function () { @@ -1076,7 +1099,7 @@ MWF.xApplication.IMV2.UpdateConvTitleForm = new Class({ style: "minder", hasColon: true, itemTemplate: { - title: { text: MWF.xApplication.IMV2.LP.groupName, type: "text", notEmpty: true }, + title: { text: MWF.xApplication.IMV2.LP.groupName, type: "text", notEmpty: true, value: this.options["defaultValue"] }, } }, this.app); this.form.load(); diff --git a/o2web/source/x_component_process_Application/$Viewer/default/css.wcss b/o2web/source/x_component_process_Application/$Viewer/default/css.wcss index 6cf9cbea55..3814a970e4 100644 --- a/o2web/source/x_component_process_Application/$Viewer/default/css.wcss +++ b/o2web/source/x_component_process_Application/$Viewer/default/css.wcss @@ -300,6 +300,18 @@ "position": "absolute", "z-index": "200" }, + "worksAreaNodeMobile": { + "width": "98%", + "min-height": "200px", + "max-height": "600px", + "border": "2px solid #999999", + "border-radius": "5px", + "box-shadow": "0px 0px 5px #ffffff", + "background-color": "#ffffff", + "overflow": "auto", + "position": "absolute", + "z-index": "200" + }, "worksAreaTitleNode": { "height": "20px", }, diff --git a/o2web/source/x_component_process_Application/Viewer.js b/o2web/source/x_component_process_Application/Viewer.js index bf7f28bd6e..5cf07bb935 100644 --- a/o2web/source/x_component_process_Application/Viewer.js +++ b/o2web/source/x_component_process_Application/Viewer.js @@ -747,7 +747,12 @@ MWF.xApplication.process.Application.Viewer.Item = new Class({ new Element("div", {"styles": this.css.workAreaContentTextNode, "text": this.view.lp.processCompleted}).inject(contentNode); }, createWorksArea: function(){ - var worksAreaNode = new Element("div", {"styles": this.css.worksAreaNode}); + var cssWorksArea = this.css.worksAreaNode + if (layout.mobile) { + cssWorksArea = this.css.worksAreaNodeMobile; + } + var worksAreaNode = new Element("div", {"styles": cssWorksArea}); + // var worksAreaNode = new Element("div", {"styles": this.css.worksAreaNode}); var worksAreaTitleNode = new Element("div", {"styles": this.css.worksAreaTitleNode}).inject(worksAreaNode); var worksAreaTitleCloseNode = new Element("div", {"styles": this.css.worksAreaTitleCloseNode}).inject(worksAreaTitleNode); worksAreaTitleCloseNode.addEvent("click", function(e){ diff --git a/o2web/source/x_component_query_Query/$Viewer/default/css.wcss b/o2web/source/x_component_query_Query/$Viewer/default/css.wcss index 71d21e0bf6..022a05be0a 100644 --- a/o2web/source/x_component_query_Query/$Viewer/default/css.wcss +++ b/o2web/source/x_component_query_Query/$Viewer/default/css.wcss @@ -414,6 +414,18 @@ "position": "absolute", "z-index": "200" }, + "worksAreaNodeMobile": { + "width": "98%", + "min-height": "200px", + "max-height": "600px", + "border": "2px solid #999999", + "border-radius": "5px", + "box-shadow": "0px 0px 5px #ffffff", + "background-color": "#ffffff", + "overflow": "auto", + "position": "absolute", + "z-index": "200" + }, "worksAreaTitleNode": { "height": "20px" }, diff --git a/o2web/source/x_component_query_Query/$Viewer/select/css.wcss b/o2web/source/x_component_query_Query/$Viewer/select/css.wcss index a7abf1f8cf..9ffe52f341 100644 --- a/o2web/source/x_component_query_Query/$Viewer/select/css.wcss +++ b/o2web/source/x_component_query_Query/$Viewer/select/css.wcss @@ -412,6 +412,18 @@ "position": "absolute", "z-index": "200" }, + "worksAreaNodeMobile": { + "width": "98%", + "min-height": "200px", + "max-height": "600px", + "border": "2px solid #999999", + "border-radius": "5px", + "box-shadow": "0px 0px 5px #ffffff", + "background-color": "#ffffff", + "overflow": "auto", + "position": "absolute", + "z-index": "200" + }, "worksAreaTitleNode": { "height": "20px", }, diff --git a/o2web/source/x_component_query_Query/Viewer.js b/o2web/source/x_component_query_Query/Viewer.js index 3f2999867b..04e4cfdd54 100644 --- a/o2web/source/x_component_query_Query/Viewer.js +++ b/o2web/source/x_component_query_Query/Viewer.js @@ -1909,7 +1909,11 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({ new Element("div", {"styles": this.css.workAreaContentTextNode, "text": this.view.lp.processCompleted}).inject(contentNode); }, createWorksArea: function(){ - var worksAreaNode = new Element("div", {"styles": this.css.worksAreaNode}); + var cssWorksArea = this.css.worksAreaNode + if (layout.mobile) { + cssWorksArea = this.css.worksAreaNodeMobile; + } + var worksAreaNode = new Element("div", {"styles": cssWorksArea}); var worksAreaTitleNode = new Element("div", {"styles": this.css.worksAreaTitleNode}).inject(worksAreaNode); var worksAreaTitleCloseNode = new Element("div", {"styles": this.css.worksAreaTitleCloseNode}).inject(worksAreaTitleNode); worksAreaTitleCloseNode.addEvent("click", function(e){ -- GitLab