|
@@ -0,0 +1,695 @@
|
|
|
+import * as ddAPi from "dingtalk-jsapi";
|
|
|
+const dd = ddAPi.default;
|
|
|
+
|
|
|
+// -------------------- 远东本地函数 -------------------- //
|
|
|
+
|
|
|
+const fegroup = {};
|
|
|
+
|
|
|
+// 远东库全局设置
|
|
|
+fegroup.globalSetting = function (that, config) {
|
|
|
+ // 钉钉接口
|
|
|
+ if (dd.env.platform !== "notInDingTalk") {
|
|
|
+ dd.ui.webViewBounce.disable();
|
|
|
+ dd.ui.pullToRefresh.disable();
|
|
|
+ }
|
|
|
+ if (!mjs.env) {
|
|
|
+ // 同步登录人信息
|
|
|
+ that.setState({
|
|
|
+ loginUser: [
|
|
|
+ {
|
|
|
+ value: loginUser.userId,
|
|
|
+ label: loginUser.userName,
|
|
|
+ avatar: loginUser.avatar,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 移除移动端无效按钮
|
|
|
+ mjs.dom.removeMobInvalid(that);
|
|
|
+ // 配置事件 : 取名改为 register
|
|
|
+ if (config.closed) {
|
|
|
+ // FIXME: 存在 beforeSubmit 情况下, 不会执行关闭和回调, 需要在方法内调用 `mjs.dom.closeTabCompatibilityBeforeSubmit(this)`
|
|
|
+ mjs.dom.closeCurrentTabForSubmit(that);
|
|
|
+ mjs.dom.closeCurrentTabForApprove(that);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////////////// PC端首页 ////////////////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+const home = {};
|
|
|
+
|
|
|
+// 查询股票信息
|
|
|
+home.queryStock = async function (that) {
|
|
|
+ const resp = await mjs.request.ven.crossDomainByScript(
|
|
|
+ "https://hq.sinajs.cn/list=sh600869",
|
|
|
+ "hq_str_sh600869"
|
|
|
+ );
|
|
|
+ // split(",")之后,[1]: 开盘价, [2]: 昨收价,[3]: 当前价, [4]: 最高价, [5]: 最低价, [8]: 成交量, [9]: 成交额
|
|
|
+ const stock = resp.split(",");
|
|
|
+ [3, 2, 8, 4, 5, 9].forEach((subscript) => {
|
|
|
+ let val = stock[subscript];
|
|
|
+ if (subscript == 9) val = Math.round((val /= 10000)) + "万";
|
|
|
+ that.$(`stock_${subscript}`).set("content", val);
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+// 查询股票信息
|
|
|
+home.queryStock_New = async function (that) {
|
|
|
+ const resp = await mjs.request.xhr.getParams(`${mjs.conf.domain}/api/index/stock`)
|
|
|
+ const keys = [{ prop: "yesterday", name: "昨收价" }, { prop: "price", name: "价格" }, { name: "均价", prop: "average" }, { name: "成交量", prop: "turnover" }];
|
|
|
+ keys.forEach(({ prop, name }) => {
|
|
|
+ that.$(`text_${prop}`).set("content", `${name}: ${resp.data[prop]}`);
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+// 查询新闻信息
|
|
|
+home.queryNews = async function (that) {
|
|
|
+ const updateCompTable = (prop, value1, value2) => {
|
|
|
+ that.$("tablePc_kwbflkep").set(prop, value1);
|
|
|
+ that.$("tablePc_kwbflpcy").set(prop, value2);
|
|
|
+ if (prop == "data") updateCompTable("loading", false, false);
|
|
|
+ };
|
|
|
+ updateCompTable("loading", true, true);
|
|
|
+ const resp = await mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/index/getNews`
|
|
|
+ );
|
|
|
+ const tableList1 = [],
|
|
|
+ tableList2 = [];
|
|
|
+ resp.data.forEach((item, index) => {
|
|
|
+ item.date = item.publishDate;
|
|
|
+ if (index < 5) {
|
|
|
+ tableList1.push(item);
|
|
|
+ } else {
|
|
|
+ tableList2.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ updateCompTable("data", tableList1, tableList2);
|
|
|
+};
|
|
|
+
|
|
|
+// 查询今日指数
|
|
|
+home.queryStandard = async function (that, activeKey) {
|
|
|
+ const updateCompTable = (prop, value) => {
|
|
|
+ that.$("tablePc_kwbflsdj").set(prop, value);
|
|
|
+ if (prop == "data") updateCompTable("loading", false);
|
|
|
+ };
|
|
|
+ updateCompTable("loading", true);
|
|
|
+ const category = {
|
|
|
+ tab_kwbfliim: "GetZGDLJYSPriceIndex", // 远东材料交易中心
|
|
|
+ tab_kwbfliin: "GetDLSPJYSPriceIndex", // 大连商品交易所
|
|
|
+ tab_kwbfliio: "GetLMEPriceIndex", // LME
|
|
|
+ tab_kwbfliip: "GetSQSPriceIndex", // 上海期货交易所
|
|
|
+ tab_kwbfliiq: "GetCJXHPriceIndex", // 长江现货
|
|
|
+ };
|
|
|
+ if (!activeKey) activeKey = that.$("tabsLayout_kwbflran").state.activeKey;
|
|
|
+ const resp = await mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/index/getNowData`,
|
|
|
+ {
|
|
|
+ type: category[activeKey],
|
|
|
+ }
|
|
|
+ );
|
|
|
+ // 动态表头处理 - 今日指数表切换:长江现货和远东材料
|
|
|
+ const type = ["tab_kwbfliim", "tab_kwbfliiq"].includes(activeKey);
|
|
|
+ resp.data.list.forEach((item) => {
|
|
|
+ const dateStr = mjs.utils.date.format(
|
|
|
+ mjs.utils.date.parse(
|
|
|
+ item.Ffd_Datadate || item.Fsd_Datadate,
|
|
|
+ "YYYYMMDD"
|
|
|
+ ),
|
|
|
+ "YYYY-MM-DD"
|
|
|
+ );
|
|
|
+ item[type ? "Fsd_Datadate" : "Ffd_Datadate"] = dateStr;
|
|
|
+ });
|
|
|
+ updateCompTable(
|
|
|
+ "columns",
|
|
|
+ that.state[type ? "standardType1" : "standardType2"]
|
|
|
+ );
|
|
|
+ updateCompTable("data", resp.data.list);
|
|
|
+};
|
|
|
+
|
|
|
+// 查询天气
|
|
|
+home.queryWeather = async function (that) {
|
|
|
+ const resp = await mjs.request.ven.crossDomainByScript(
|
|
|
+ "https://pv.sohu.com/cityjson?ie=utf-8",
|
|
|
+ "returnCitySN"
|
|
|
+ );
|
|
|
+ const address = resp.cname.split("省");
|
|
|
+ if (address.length == 2) {
|
|
|
+ const result = await mjs.request.xhr.getParams(
|
|
|
+ `${mjs.conf.domain}/api/index/weather?cName=${address[1]}`
|
|
|
+ );
|
|
|
+ const today = result.data.data.forecast[1];
|
|
|
+ const weather = {
|
|
|
+ city: result.data.data.city,
|
|
|
+ type: today.type,
|
|
|
+ area: `${today.low.split(" ")[1]} ~ ${today.high.split(" ")[1]}`,
|
|
|
+ };
|
|
|
+ that.setState({ weather });
|
|
|
+ that.$("JSX_kwdfgbwj").forceUpdate();
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 查询钉钉通讯录扩展字段【自定义字段】& 阅读查看范围
|
|
|
+home.queryDingContact = async function (that, extension = true) {
|
|
|
+ const params = {
|
|
|
+ userId: loginUser.userId,
|
|
|
+ };
|
|
|
+ if (extension) params.extension = true; // 后端是字段传入判空, 不是判值
|
|
|
+ const resp = await mjs.request.xhr.postDataForm(
|
|
|
+ `${mjs.conf.domain}/api/ding/getDingContact`,
|
|
|
+ params
|
|
|
+ );
|
|
|
+ // 兼容查询钉钉扩展字段
|
|
|
+ const compState = that.$("text_kwgf2sdc");
|
|
|
+ if (compState) {
|
|
|
+ const data = extension ? resp.data : JSON.parse(resp.data.extension);
|
|
|
+ compState.set("content", data["外派公司"] || data["公司"]);
|
|
|
+ }
|
|
|
+ return resp.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 查询邮箱未读数量
|
|
|
+home.queryEmailUnreadCount = async function (that, email) {
|
|
|
+ // respData
|
|
|
+ const resp = await mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/index/getEmailUnread`,
|
|
|
+ {
|
|
|
+ accessTarget: email,
|
|
|
+ }
|
|
|
+ );
|
|
|
+ that.$("text_kw60qo7h").set("content", resp.data.totalCount);
|
|
|
+};
|
|
|
+
|
|
|
+// 根据所属公司名称查询阅读查看范围
|
|
|
+home.queryTabSelect = async function (that, isNew) {
|
|
|
+ const userCompany = that.$("text_kwgf2sdc").get("content");
|
|
|
+ if (!userCompany) return;
|
|
|
+ const resSelect = await that.dataSourceMap.queryFromTab.load({
|
|
|
+ formUuid: "FORM-OM566O71F7HVX7ZAX1J8N3ECSLRX2YWJKAAWKJ",
|
|
|
+ pageSize: 1,
|
|
|
+ searchFieldJson: JSON.stringify({
|
|
|
+ selectField_kwab6g3s: userCompany,
|
|
|
+ }),
|
|
|
+ });
|
|
|
+ // 设置下拉框默认值和下拉选项
|
|
|
+ if (resSelect.data.length) {
|
|
|
+ const data = resSelect.data[0].data;
|
|
|
+ const options = data.tableField_kwabgynl.map((item) => ({
|
|
|
+ text: item.selectField_kwabgyno,
|
|
|
+ value: item.numberField_kwgfn6dr.toString(),
|
|
|
+ order: item.numberField_kwhfutnv,
|
|
|
+ }));
|
|
|
+ options.sort((a, b) => a.order - b.order);
|
|
|
+ // 设置value会触发tab查询
|
|
|
+ that.$("selectField_kw7762kc").set("dataSource", options);
|
|
|
+ that
|
|
|
+ .$("selectField_kw7762kc")
|
|
|
+ .setValue(data.numberField_kwgfn6ds.toString());
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 根据所属公司名称查询阅读查看范围
|
|
|
+home.queryTabSelect_New = async function (that) {
|
|
|
+ const userCompany = that.$("text_kwgf2sdc").get("content");
|
|
|
+ if (!userCompany) return;
|
|
|
+ const resSelect = await that.dataSourceMap.queryFromTab.load({
|
|
|
+ formUuid: "FORM-OM566O71F7HVX7ZAX1J8N3ECSLRX2YWJKAAWKJ",
|
|
|
+ pageSize: 1,
|
|
|
+ searchFieldJson: JSON.stringify({
|
|
|
+ selectField_kwab6g3s: userCompany,
|
|
|
+ }),
|
|
|
+ });
|
|
|
+ // 设置下拉框默认值和下拉选项
|
|
|
+ if (resSelect.data.length) {
|
|
|
+ const data = resSelect.data[0].data;
|
|
|
+ const options = data.tableField_kwabgynl.map((item) => ({
|
|
|
+ text: item.selectField_kwabgyno,
|
|
|
+ value: item.numberField_kwgfn6dr.toString(),
|
|
|
+ order: item.numberField_kwhfutnv,
|
|
|
+ }));
|
|
|
+ options.sort((a, b) => a.order - b.order);
|
|
|
+ // 设置value会触发tab查询
|
|
|
+ that.$("multiSelectField_kybax1xz").set("dataSource", options);
|
|
|
+ that
|
|
|
+ .$("multiSelectField_kybax1xz")
|
|
|
+ .setValue([data.numberField_kwgfn6ds.toString()]);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 查询信息发布Tab数据
|
|
|
+home.queryTabList = async function (that, activeKey) {
|
|
|
+ const messageTypeId = that.$("selectField_kw7762kc").getValue();
|
|
|
+ if (!messageTypeId) return;
|
|
|
+ const updateCompTable = (prop, value1, value2) => {
|
|
|
+ that.$("tablePc_kwbflqe8").set(prop, value1);
|
|
|
+ that.$("tablePc_kwbflqea").set(prop, value2);
|
|
|
+ if (prop == "data") updateCompTable("loading", false, false);
|
|
|
+ };
|
|
|
+ updateCompTable("loading", true, true);
|
|
|
+ const category = {
|
|
|
+ tab_kw60qnkn: "FORM-4A9667B1RLMU2F5WWJI1E0MX4GLZ1KIEBP1VKFA", // 通知公告
|
|
|
+ tab_kw60qnko: "FORM-2G766HA1UWUUAFU10O9TPCXLHYVC38IYRWBVK49", // 公司文件
|
|
|
+ tab_kw60qnkp: "FORM-RH766AC15VUUX7TMY4J2K1AWM0YF3B0VCXBVKI5", // 制度流程
|
|
|
+ tab_kw60qnkq: "FORM-9X766NA15XUUXO4DWI30P08B9DBF3MAB0XBVK95", // 奖惩公示
|
|
|
+ tab_kw60qnkr: "FORM-3J966U61NXUU7UFW3G4S5B7A0XA03QQBCXBVK83", // 意见征集
|
|
|
+ };
|
|
|
+ if (!activeKey) activeKey = that.$("tabsLayout_kw60qyew").state.activeKey;
|
|
|
+ const resp = await that.dataSourceMap.queryFromTab.load({
|
|
|
+ formUuid: category[activeKey],
|
|
|
+ pageSize: 10,
|
|
|
+ searchFieldJson: JSON.stringify({
|
|
|
+ textField_kwemnfh1: messageTypeId,
|
|
|
+ }),
|
|
|
+ approvedResult: "agree",
|
|
|
+ });
|
|
|
+ // 为空当前table数据重置
|
|
|
+ if (!resp.data.length) return updateCompTable("data", [], []);
|
|
|
+ // 匹配数据:1.按照发布日期排序【管理页面设置】,2.区分未读/已读顺序排序,3.抽取当前发布未读置顶
|
|
|
+ const resRead = await mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/msg/getClickRecord`,
|
|
|
+ {
|
|
|
+ userId: loginUser.userId,
|
|
|
+ list: resp.data.map((item) => item.processInstanceId),
|
|
|
+ }
|
|
|
+ );
|
|
|
+ const tableList_read = [];
|
|
|
+ const tableList_top = []; // 本月未读 & 1号显示上个月
|
|
|
+ const tableList_unread = resp.data.reduce((acc, cur) => {
|
|
|
+ if (resRead.data.includes(cur.processInstanceId)) {
|
|
|
+ cur.status = "read";
|
|
|
+ tableList_read.push(cur);
|
|
|
+ return acc;
|
|
|
+ }
|
|
|
+ cur.status = "unread";
|
|
|
+ const yesterday = new Date(Date.now() - 86400000).getMonth();
|
|
|
+ if (new Date(cur.gmtModified).getMonth() == yesterday) {
|
|
|
+ tableList_top.push(cur);
|
|
|
+ return acc;
|
|
|
+ }
|
|
|
+ acc.push(cur);
|
|
|
+ return acc;
|
|
|
+ }, []);
|
|
|
+ // 数据分布和更新
|
|
|
+ const tableList1 = [],
|
|
|
+ tableList2 = [];
|
|
|
+ tableList_top
|
|
|
+ .concat(tableList_unread)
|
|
|
+ .concat(tableList_read)
|
|
|
+ .forEach((item, index) => {
|
|
|
+ item.date = mjs.utils.date.format(
|
|
|
+ new Date(item.data.dateField_kvbwsduj),
|
|
|
+ "YYYY-MM-DD HH:mm:ss"
|
|
|
+ );
|
|
|
+ item.title = item.data.textField_kvbwsduf;
|
|
|
+ if (index < 5) {
|
|
|
+ tableList1.push(item);
|
|
|
+ } else {
|
|
|
+ tableList2.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ updateCompTable("data", tableList1, tableList2);
|
|
|
+};
|
|
|
+
|
|
|
+// 查询信息发布Tab数据: 宜搭不能实现分页和权限
|
|
|
+home.queryTabList_New = async function (that, activeKey) {
|
|
|
+ const updateCompTable = (prop, value1, value2) => {
|
|
|
+ that.$("tablePc_kwbflqe8").set(prop, value1);
|
|
|
+ that.$("tablePc_kwbflqea").set(prop, value2);
|
|
|
+ if (prop == "data") updateCompTable("loading", false, false);
|
|
|
+ };
|
|
|
+ updateCompTable("loading", true, true);
|
|
|
+ const category = {
|
|
|
+ tab_kw60qnkn: "1", // 通知公告
|
|
|
+ tab_kw60qnko: "0", // 公司文件
|
|
|
+ tab_kw60qnkp: "4", // 制度流程
|
|
|
+ tab_kw60qnkq: "2", // 奖惩公示
|
|
|
+ tab_kw60qnkr: "3", // 意见征集
|
|
|
+ };
|
|
|
+ // 需要做部门屏蔽, 若未传值则取值可见全部范围
|
|
|
+ const msgTypes = that.$("multiSelectField_kybax1xz").getValue();
|
|
|
+ if (!msgTypes.length) {
|
|
|
+ msgTypes.push(...that.$("multiSelectField_kybax1xz").get("dataSource").map(item => item.value));
|
|
|
+ }
|
|
|
+ if (!activeKey) activeKey = that.$("tabsLayout_kw60qyew").state.activeKey;
|
|
|
+ const resp = await mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/msg/msgPublishSelectIndex`,
|
|
|
+ {
|
|
|
+ canSeeUserId: window.loginUser.userId,
|
|
|
+ msgType: msgTypes,
|
|
|
+ formType: category[activeKey],
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ }
|
|
|
+ );
|
|
|
+ // 为空当前table数据重置
|
|
|
+ const resList = resp.data.list;
|
|
|
+ if (resList.length > 10) resList.length = 10;
|
|
|
+ // 数据分布和更新
|
|
|
+ const tableList1 = [];
|
|
|
+ const tableList2 = [];
|
|
|
+ resList.forEach((item, index) => {
|
|
|
+ item.status = item.userId ? "read" : "unread";
|
|
|
+ if (index < 5) {
|
|
|
+ tableList1.push(item);
|
|
|
+ } else {
|
|
|
+ tableList2.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ updateCompTable("data", tableList1, tableList2);
|
|
|
+};
|
|
|
+
|
|
|
+// 上报点击数据
|
|
|
+home.reportEffectiveness = async function (that, record) {
|
|
|
+ const category = {
|
|
|
+ tab_kw60qnkn: 2, // 通知公告
|
|
|
+ tab_kw60qnko: 1, // 公司文件
|
|
|
+ tab_kw60qnkp: 5, // 制度流程
|
|
|
+ tab_kw60qnkq: 3, // 奖惩公示
|
|
|
+ tab_kw60qnkr: 4, //意见征集
|
|
|
+ };
|
|
|
+ let date = record.sendDate || record.date;
|
|
|
+ if (!date.includes(" ")) {
|
|
|
+ date += " 00:00:00";
|
|
|
+ }
|
|
|
+ return mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/msg/saveClickRecord`,
|
|
|
+ {
|
|
|
+ deptId: loginUser.deptId,
|
|
|
+ userId: loginUser.userId,
|
|
|
+ userName: loginUser.userName,
|
|
|
+ formInstId: record.formInstId || record.processInstanceId, // 兼容宜搭权限版本
|
|
|
+ msgCreateTime: date, // 兼容宜搭权限版本
|
|
|
+ msgType: record.msgType || record.data.textField_kwemnfh1, // 兼容宜搭权限版本
|
|
|
+ msgClass: category[that.$("tabsLayout_kw60qyew").state.activeKey],
|
|
|
+ userCompany: that.$("text_kwgf2sdc").get("content"),
|
|
|
+ }
|
|
|
+ );
|
|
|
+};
|
|
|
+
|
|
|
+// 智障:record不是引用类型,forceUpdate无效,故拆分为两个事件
|
|
|
+home.noticeRowClick = async function (that, compId_table, index, record) {
|
|
|
+ await home.reportEffectiveness(that, record); // 阻断
|
|
|
+ const table = that.$(compId_table).get("data");
|
|
|
+ // 兼容信息发布大页面: table为对象
|
|
|
+ const row = table.constructor == Array ? table[index] : table.data[index];
|
|
|
+ row.status = "read";
|
|
|
+ row.userId = loginUser.userId;
|
|
|
+ that.$(compId_table).forceUpdate();
|
|
|
+ // 以打开表单的方式打开流程,显示过滤不显示掉审批记录
|
|
|
+ const formUuid = {
|
|
|
+ tab_kw60qnkn: "FORM-4A9667B1RLMU2F5WWJI1E0MX4GLZ1KIEBP1VKFA", // 通知公告
|
|
|
+ tab_kw60qnko: "FORM-2G766HA1UWUUAFU10O9TPCXLHYVC38IYRWBVK49", // 公司文件
|
|
|
+ tab_kw60qnkp: "FORM-RH766AC15VUUX7TMY4J2K1AWM0YF3B0VCXBVKI5", // 制度流程
|
|
|
+ tab_kw60qnkq: "FORM-9X766NA15XUUXO4DWI30P08B9DBF3MAB0XBVK95", // 奖惩公示
|
|
|
+ tab_kw60qnkr: "FORM-3J966U61NXUU7UFW3G4S5B7A0XA03QQBCXBVK83", // 意见征集
|
|
|
+ }[that.$("tabsLayout_kw60qyew").state.activeKey];
|
|
|
+ // 宜搭可以以表单的形式打开流程,会隐藏审批预览,但权限会失效, 需要兼容: 宜搭智障组件状态:权限管理 3.0 权限设置 > js代码 > 组件配置
|
|
|
+ const dataId = record.processInstanceId || record.formInstId; // 兼容宜搭权限版本
|
|
|
+ const linkUrl = `https://fegroup.aliwork.com/APP_GXUUGZJ1ZPPBIJKLE9BH/formDetail/${formUuid}?formInstId=${dataId}&convertForm=true`;
|
|
|
+ // 钉钉接口
|
|
|
+ if (dd.env.platform === "ios" || dd.env.platform === "android") {
|
|
|
+ dd.biz.util.openLink({ url: linkUrl });
|
|
|
+ } else {
|
|
|
+ window.open(linkUrl);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 智障:record不是引用类型,forceUpdate无效,故拆分为两个事件
|
|
|
+home.noticeRowClick_New = async function (that, compId_table, index, record) {
|
|
|
+ await home.reportEffectiveness(that, record); // 阻断
|
|
|
+ const table = that.$(compId_table).get("data");
|
|
|
+ // 兼容信息发布大页面: table为对象
|
|
|
+ const row = table.constructor == Array ? table[index] : table.data[index];
|
|
|
+ row.status = "read";
|
|
|
+ row.userId = loginUser.userId;
|
|
|
+ that.$(compId_table).forceUpdate();
|
|
|
+ // 以打开表单的方式打开流程,显示过滤不显示掉审批记录
|
|
|
+ const formUuid = {
|
|
|
+ tab_kw60qnkn: "FORM-4A9667B1RLMU2F5WWJI1E0MX4GLZ1KIEBP1VKFA", // 通知公告
|
|
|
+ tab_kw60qnko: "FORM-2G766HA1UWUUAFU10O9TPCXLHYVC38IYRWBVK49", // 公司文件
|
|
|
+ tab_kw60qnkp: "FORM-RH766AC15VUUX7TMY4J2K1AWM0YF3B0VCXBVKI5", // 制度流程
|
|
|
+ tab_kw60qnkq: "FORM-9X766NA15XUUXO4DWI30P08B9DBF3MAB0XBVK95", // 奖惩公示
|
|
|
+ tab_kw60qnkr: "FORM-3J966U61NXUU7UFW3G4S5B7A0XA03QQBCXBVK83", // 意见征集
|
|
|
+ }[that.$("tabsLayout_kw60qyew").state.activeKey];
|
|
|
+ // 宜搭可以以表单的形式打开流程,会隐藏审批预览,但权限会失效, 需要兼容: 宜搭智障组件状态:权限管理 3.0 权限设置 > js代码 > 组件配置
|
|
|
+ const dataId = record.processInstanceId || record.formInstId; // 兼容宜搭权限版本
|
|
|
+ const linkUrl = `https://fegroup.aliwork.com/APP_GXUUGZJ1ZPPBIJKLE9BH/formDetail/${formUuid}?formInstId=${dataId}&convertForm=true`;
|
|
|
+ // 钉钉接口
|
|
|
+ if (dd.env.platform === "ios" || dd.env.platform === "android") {
|
|
|
+ if (formUuid == "FORM-9X766NA15XUUXO4DWI30P08B9DBF3MAB0XBVK95") {
|
|
|
+ dd.biz.util.openLink({ url: linkUrl });
|
|
|
+ } else {
|
|
|
+ mjs.utils.storage.LS.SET("msg_info_attachment", record.attachment);
|
|
|
+ // 后台返回数据域名替换
|
|
|
+ const url = record.msgUrl.replace("https://www.aliwork.com", "").replace("https://fegroup.aliwork.com", "");
|
|
|
+ mjs.ding.openNavigation(
|
|
|
+ `https://fegroup.aliwork.com/APP_GXUUGZJ1ZPPBIJKLE9BH/custom/FORM-W46663A1V0NWK3TA3F3QKA0PHX3832VQOH5YKR2?link=${url}`
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window.open(linkUrl);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////// PC端首页-信息发布二级页面 //////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+// 查询信息类型数据
|
|
|
+home.queryTabSelectAll = async function (that, isMob) {
|
|
|
+ const resSelect = await that.dataSourceMap.querytableList.load({
|
|
|
+ pageSize: 100,
|
|
|
+ });
|
|
|
+ const options = resSelect.data.map((item) => ({
|
|
|
+ text: item.formData.textField_kw7ifc88,
|
|
|
+ value: item.formData.numberField_kwabuszy.toString(),
|
|
|
+ order: item.formData.numberField_kwgek6mh,
|
|
|
+ }));
|
|
|
+ options.sort((a, b) => a.order - b.order);
|
|
|
+ // 搜索条件 || 兼容移动端drawer取数state逻辑
|
|
|
+ if (!isMob) {
|
|
|
+ that.$("selectField_kw7762kc").set("dataSource", options);
|
|
|
+ } else {
|
|
|
+ that.setState({ options });
|
|
|
+ }
|
|
|
+ return options;
|
|
|
+};
|
|
|
+
|
|
|
+// 查询信息类型数据
|
|
|
+home.queryTabSelectAll_New = async function (that, isMob) {
|
|
|
+ const resSelect = await that.dataSourceMap.querytableList.load({
|
|
|
+ pageSize: 100,
|
|
|
+ });
|
|
|
+ let options = resSelect.data.map((item) => ({
|
|
|
+ text: item.formData.textField_kw7ifc88,
|
|
|
+ value: item.formData.numberField_kwabuszy.toString(),
|
|
|
+ order: item.formData.numberField_kwgek6mh,
|
|
|
+ energy: item.formData.textField_l0rgr3ji
|
|
|
+ }));
|
|
|
+ // 远东能源系和其它公司互不可见
|
|
|
+ const company = that.$("text_kwgf2sdc").get("content");
|
|
|
+ const isEnergy = options.some(item => item.energy == company);
|
|
|
+ options = options.reduce((acc, item) => {
|
|
|
+ if (isEnergy && item.energy) {
|
|
|
+ acc.push(item)
|
|
|
+ } else {
|
|
|
+ if (!isEnergy && !item.energy) acc.push(item)
|
|
|
+ }
|
|
|
+ return acc;
|
|
|
+ }, [])
|
|
|
+ options.sort((a, b) => a.order - b.order);
|
|
|
+ // 搜索条件 || 兼容移动端drawer取数state逻辑
|
|
|
+ if (!isMob) {
|
|
|
+ that.$("multiSelectField_kybax1xz").set("dataSource", options);
|
|
|
+ } else {
|
|
|
+ that.setState({ options });
|
|
|
+ }
|
|
|
+ return options;
|
|
|
+};
|
|
|
+
|
|
|
+// 查询信息发布Tab数据
|
|
|
+home.queryTabListForPagination = async function (that, activeKey, isMob) {
|
|
|
+ const updateCompTable = (prop, value) => {
|
|
|
+ that.$("tablePc_kwbflqe8").set(prop, value);
|
|
|
+ if (prop == "data") updateCompTable("loading", false);
|
|
|
+ };
|
|
|
+ updateCompTable("loading", true);
|
|
|
+ const category = {
|
|
|
+ tab_kw60qnkn: "FORM-4A9667B1RLMU2F5WWJI1E0MX4GLZ1KIEBP1VKFA", // 通知公告
|
|
|
+ tab_kw60qnko: "FORM-2G766HA1UWUUAFU10O9TPCXLHYVC38IYRWBVK49", // 公司文件
|
|
|
+ tab_kw60qnkp: "FORM-RH766AC15VUUX7TMY4J2K1AWM0YF3B0VCXBVKI5", // 制度流程
|
|
|
+ tab_kw60qnkq: "FORM-9X766NA15XUUXO4DWI30P08B9DBF3MAB0XBVK95", // 奖惩公示
|
|
|
+ tab_kw60qnkr: "FORM-3J966U61NXUU7UFW3G4S5B7A0XA03QQBCXBVK83", // 意见征集
|
|
|
+ };
|
|
|
+ if (!activeKey) activeKey = that.$("tabsLayout_kw60qyew").state.activeKey;
|
|
|
+ const { currentPage, pageSize } = that.state.paging;
|
|
|
+ // 搜索条件 || 兼容移动端drawer取数state逻辑
|
|
|
+ const title = isMob
|
|
|
+ ? that.state.title
|
|
|
+ : that.$("textField_kwj51qu7").getValue();
|
|
|
+ const typeId = isMob
|
|
|
+ ? that.state.typeId
|
|
|
+ : that.$("selectField_kw7762kc").getValue();
|
|
|
+ const deptId = isMob
|
|
|
+ ? that.state.deptId
|
|
|
+ : that.$("departmentSelectField_kwj51qu8").getValue();
|
|
|
+ const userId = isMob
|
|
|
+ ? that.state.userId
|
|
|
+ : that.$("employeeField_kwj51qu9").getValue();
|
|
|
+ const dateArea = isMob
|
|
|
+ ? that.state.dateArea
|
|
|
+ : that.$("cascadeDateField_kwj51qua").getValue();
|
|
|
+ const resp = await that.dataSourceMap.queryFromTab.load({
|
|
|
+ formUuid: category[activeKey],
|
|
|
+ currentPage,
|
|
|
+ pageSize,
|
|
|
+ searchFieldJson: JSON.stringify({
|
|
|
+ textField_kvbwsduf: title, // 信息标题
|
|
|
+ textField_kwemnfh1: typeId, // 信息类型ID
|
|
|
+ textField_kwj570be: deptId.length ? deptId[0].value : "", // 发布部门ID
|
|
|
+ textField_kwj7bwen: userId.value, // 发布人ID
|
|
|
+ dateField_kvbwsduj: dateArea.start ? [dateArea.start, dateArea.end] : "", // 发布时间区间
|
|
|
+ }),
|
|
|
+ approvedResult: "agree",
|
|
|
+ });
|
|
|
+ // 为空当前table数据重置
|
|
|
+ if (!resp.data.length) return updateCompTable("data", []);
|
|
|
+ // 匹配数据:1.按照发布日期排序【管理页面设置】,2.区分未读/已读顺序排序,3.抽取当前发布未读置顶
|
|
|
+ const resRead = await mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/msg/getClickRecord`,
|
|
|
+ {
|
|
|
+ userId: loginUser.userId,
|
|
|
+ list: resp.data.map((item) => item.processInstanceId),
|
|
|
+ }
|
|
|
+ );
|
|
|
+ const tableList_read = [];
|
|
|
+ const tableList_top = []; // 本月未读 & 1号显示上个月
|
|
|
+ const tableList_unread = resp.data.reduce((acc, cur) => {
|
|
|
+ // 数据更新
|
|
|
+ cur.date = mjs.utils.date.format(
|
|
|
+ new Date(cur.data.dateField_kvbwsduj),
|
|
|
+ "YYYY-MM-DD HH:mm:ss"
|
|
|
+ );
|
|
|
+ cur.title = cur.data.textField_kvbwsduf;
|
|
|
+ if (resRead.data.includes(cur.processInstanceId)) {
|
|
|
+ cur.status = "read";
|
|
|
+ tableList_read.push(cur);
|
|
|
+ return acc;
|
|
|
+ }
|
|
|
+ cur.status = "unread";
|
|
|
+ const yesterday = new Date(Date.now() - 86400000).getMonth();
|
|
|
+ if (new Date(cur.gmtModified).getMonth() == yesterday) {
|
|
|
+ tableList_top.push(cur);
|
|
|
+ return acc;
|
|
|
+ }
|
|
|
+ acc.push(cur);
|
|
|
+ return acc;
|
|
|
+ }, []);
|
|
|
+ // 数据更新:保留分页
|
|
|
+ resp.data = tableList_top.concat(tableList_unread).concat(tableList_read);
|
|
|
+ updateCompTable("data", resp);
|
|
|
+};
|
|
|
+
|
|
|
+// 查询信息发布Tab数据: 宜搭不能实现分页和权限
|
|
|
+home.queryTabListForPagination_New = async function (that, activeKey, isMob) {
|
|
|
+ const updateCompTable = (prop, value) => {
|
|
|
+ that.$("tablePc_kwbflqe8").set(prop, value);
|
|
|
+ if (prop == "data") updateCompTable("loading", false);
|
|
|
+ };
|
|
|
+ updateCompTable("loading", true);
|
|
|
+ const category = {
|
|
|
+ tab_kw60qnkn: "1", // 通知公告
|
|
|
+ tab_kw60qnko: "0", // 公司文件
|
|
|
+ tab_kw60qnkp: "4", // 制度流程
|
|
|
+ tab_kw60qnkq: "2", // 奖惩公示
|
|
|
+ tab_kw60qnkr: "3", // 意见征集
|
|
|
+ };
|
|
|
+ if (!activeKey) activeKey = that.$("tabsLayout_kw60qyew").state.activeKey;
|
|
|
+ const { currentPage, pageSize } = that.state.paging;
|
|
|
+ // 搜索条件 || 兼容移动端drawer取数state逻辑
|
|
|
+ const title = isMob
|
|
|
+ ? that.state.title
|
|
|
+ : that.$("textField_kwj51qu7").getValue();
|
|
|
+ const typeId = isMob
|
|
|
+ ? that.state.typeId
|
|
|
+ : that.$("multiSelectField_kybax1xz").getValue();
|
|
|
+ // 需要做部门屏蔽, 若未传值则取值可见全部范围
|
|
|
+ if (!typeId.length) {
|
|
|
+ const options = isMob ? that.state.options : that.$("multiSelectField_kybax1xz").get("dataSource")
|
|
|
+ typeId.push(...options.map(item => item.value));
|
|
|
+ }
|
|
|
+ const deptId = isMob
|
|
|
+ ? that.state.deptId
|
|
|
+ : that.$("departmentSelectField_kwj51qu8").getValue();
|
|
|
+ const userId = isMob
|
|
|
+ ? that.state.userId
|
|
|
+ : that.$("employeeField_kwj51qu9").getValue();
|
|
|
+ const dateArea = isMob
|
|
|
+ ? that.state.dateArea
|
|
|
+ : that.$("cascadeDateField_kwj51qua").getValue();
|
|
|
+ // 发布时间
|
|
|
+ const params = {};
|
|
|
+ if (dateArea.start) {
|
|
|
+ params.startTime = dateArea.start; // 发布时间区间
|
|
|
+ params.endTime = dateArea.end; // 发布时间区间
|
|
|
+ }
|
|
|
+
|
|
|
+ const resp = await mjs.request.xhr.postData(
|
|
|
+ `${mjs.conf.domain}/api/msg/msgPublishSelectIndex`,
|
|
|
+ {
|
|
|
+ canSeeUserId: window.loginUser.userId, // 可见人员
|
|
|
+ msgType: typeId, // 信息类型
|
|
|
+ formType: category[activeKey], // 信息表单
|
|
|
+ msgTitle: title, // 信息标题
|
|
|
+ createDeptId: deptId.length ? deptId[0].value : "", // 发布部门ID
|
|
|
+ createUserId: userId.value, // 发布人ID
|
|
|
+ pageIndex: currentPage,
|
|
|
+ pageSize,
|
|
|
+ ...params,
|
|
|
+ }
|
|
|
+ );
|
|
|
+ // 数据更新:保留分页
|
|
|
+ updateCompTable("data", {
|
|
|
+ data: resp.data.list || [], // 为空当前table数据重置
|
|
|
+ totalCount: resp.data.total,
|
|
|
+ currentPage: that.state.paging.currentPage,
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+// 根据所属公司名称查询阅读查看范围: 仅需要默认值
|
|
|
+home.queryTabSelectMob = async function (that) {
|
|
|
+ const userCompany = that.$("text_kwgf2sdc").get("content");
|
|
|
+ if (!userCompany) return;
|
|
|
+ const resSelect = await that.dataSourceMap.querySelect.load({
|
|
|
+ formUuid: "FORM-OM566O71F7HVX7ZAX1J8N3ECSLRX2YWJKAAWKJ",
|
|
|
+ pageSize: 1,
|
|
|
+ searchFieldJson: JSON.stringify({
|
|
|
+ selectField_kwab6g3s: userCompany,
|
|
|
+ }),
|
|
|
+ });
|
|
|
+ // 设置下拉框默认值
|
|
|
+ that.setState({
|
|
|
+ typeId: [resSelect.data[0].formData.numberField_kwgfn6ds.toString()],
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+// 根据所属公司名称查询阅读查看范围: 仅需要默认值
|
|
|
+home.queryTabSelectMob_New = async function (that) {
|
|
|
+ const userCompany = that.$("text_kwgf2sdc").get("content");
|
|
|
+ if (!userCompany) return;
|
|
|
+ const resSelect = await that.dataSourceMap.querySelect.load({
|
|
|
+ formUuid: "FORM-OM566O71F7HVX7ZAX1J8N3ECSLRX2YWJKAAWKJ",
|
|
|
+ pageSize: 1,
|
|
|
+ searchFieldJson: JSON.stringify({
|
|
|
+ selectField_kwab6g3s: userCompany,
|
|
|
+ }),
|
|
|
+ });
|
|
|
+ // 设置下拉框默认值
|
|
|
+ that.setState({
|
|
|
+ typeId: [resSelect.data[0].formData.numberField_kwgfn6ds.toString()],
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+fegroup.home = home;
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////////////// 导出对象 ////////////////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+export default fegroup;
|