|
@@ -0,0 +1,452 @@
|
|
|
+(function () {
|
|
|
+ let unfinishedArray = [];
|
|
|
+ let finishedArray = [];
|
|
|
+ let read = z.ui.comm.getUrlParam("read");
|
|
|
+ var addDataUnFinished = null;
|
|
|
+ var addDataFinished = null;
|
|
|
+
|
|
|
+ window.onload = function (ex) {
|
|
|
+ addDataUnFinished = $("#addDataUnfinished")
|
|
|
+ addDataFinished = $("#addDataFinished")
|
|
|
+ unfinishedWork();//未完成工作移交
|
|
|
+ finishedWork();//已完成工作成果
|
|
|
+ bindEvents();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ function finishedWork() {
|
|
|
+ //未完成工作按钮
|
|
|
+ let un = document.querySelector('#finished')
|
|
|
+ let finished = JSON.parse(un.value)//存在的列表详情
|
|
|
+ $("#addDataFinished").click(function () {
|
|
|
+ addDataFinished.attr('disabled', "true");
|
|
|
+ let obj = {
|
|
|
+ content: "",
|
|
|
+ receiver: "",
|
|
|
+ reviewer: "",
|
|
|
+ }
|
|
|
+
|
|
|
+ finishedArray.push(obj)
|
|
|
+ generateTableTrHtmlFinished(finishedArray.length - 1)
|
|
|
+ buildQjsjSeq();
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ if (finished.length > 0) {
|
|
|
+ for (let i = 0; i < finished.length; i++) {
|
|
|
+ let obj = {
|
|
|
+ content: finished[i].content ? finished[i].content : '',
|
|
|
+ receiver: finished[i].receiver ? finished[i].receiver : '',
|
|
|
+ reviewer: finished[i].reviewer ? finished[i].reviewer : '',
|
|
|
+ }
|
|
|
+ finishedArray.push(obj)
|
|
|
+ }
|
|
|
+ for (let i = 0; i < finished.length; i++) {
|
|
|
+ generateTableTrHtmlFinished(i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function unfinishedWork() {
|
|
|
+ //未完成工作按钮
|
|
|
+ let un = document.querySelector('#unfinished')
|
|
|
+ let unfinished = JSON.parse(un.value)//存在的列表详情
|
|
|
+ $("#addDataUnfinished").click(function () {
|
|
|
+ addDataUnFinished.attr('disabled', "true");
|
|
|
+ let obj = {
|
|
|
+ content: "",
|
|
|
+ receiver: "",
|
|
|
+ confirmor: "",
|
|
|
+ }
|
|
|
+
|
|
|
+ unfinishedArray.push(obj)
|
|
|
+ generateTableTrHtmlUnfinished(unfinishedArray.length - 1)
|
|
|
+ buildQjsjSeq();
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ if (unfinished.length > 0) {
|
|
|
+ for (let i = 0; i < unfinished.length; i++) {
|
|
|
+ let obj = {
|
|
|
+ content: unfinished[i].content ? unfinished[i].content : '',
|
|
|
+ receiver: unfinished[i].receiver ? unfinished[i].receiver : '',
|
|
|
+ confirmor: unfinished[i].confirmor ? unfinished[i].confirmor : '',
|
|
|
+ }
|
|
|
+ unfinishedArray.push(obj)
|
|
|
+ }
|
|
|
+ for (let i = 0; i < unfinished.length; i++) {
|
|
|
+ generateTableTrHtmlUnfinished(i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //注册业务保存事件
|
|
|
+ function bindEvents() {
|
|
|
+ z.workflow.saveBtn.addListener("onSaveClick", saveForm);
|
|
|
+ var lzsq = JSON.parse(window.sxlzsq.replace(/[\r|\n|\t]/g, ""));
|
|
|
+ var html = "";
|
|
|
+ if (lzsq && lzsq.instanceId) {
|
|
|
+ html = "<a onclick=goAsset1('" + lzsq.instanceId + "')>" + lzsq.nickname + "(" + lzsq.createTime.substring(0, 10) + ")</a>";
|
|
|
+ }else {
|
|
|
+ z.ui.alertWarning("请先办理离职申请");
|
|
|
+ }
|
|
|
+
|
|
|
+ $("#lzsqhtml").html(html);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /*
|
|
|
+ * all 工作流js传递到业务的参数 success执行的方法
|
|
|
+ * istransfer 工作流js传递到业务的参数 是否转件
|
|
|
+ * */
|
|
|
+ function saveForm(all, istransfer) {
|
|
|
+ var postData = z.ui.form.getFormFields($("[name=createReqVO]"));
|
|
|
+ if (postData === false) {
|
|
|
+ all({success: false});
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //将string类型的时间转换成时间戳
|
|
|
+ var unfinished = []
|
|
|
+ var finished = []
|
|
|
+ for (let key of Object.keys(postData)) {
|
|
|
+ let mealName = postData[key];
|
|
|
+
|
|
|
+ if (key.startsWith("createReqVO")) {
|
|
|
+ postData.createReqVO = mealName;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (key.startsWith("ResignDetailDO")) {
|
|
|
+ unfinished.push(z.ui.form.childStringify(mealName));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (key.startsWith("ResignFinishedDetailDO")) {
|
|
|
+ finished.push(z.ui.form.childStringify(mealName));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ postData.createReqVO.unfinishedList = unfinished;
|
|
|
+ postData.createReqVO.finishedList = finished;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ z.ui.ajax({
|
|
|
+ type: "post",
|
|
|
+ url: "/resign/update",
|
|
|
+ data: JSON.stringify(postData.createReqVO),
|
|
|
+ contentType: "application/json",
|
|
|
+ success: function (res) {
|
|
|
+ if (res && res.code === 200) {
|
|
|
+ all({success: true});
|
|
|
+ } else {
|
|
|
+ all({success: false});
|
|
|
+ z.ui.alertWarning(res.msg);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ error: function () {
|
|
|
+ all({success: false});
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面生成并获取map中的数据
|
|
|
+ * @param i
|
|
|
+ * @returns {HTMLTableRowElement}
|
|
|
+ */
|
|
|
+ function generateTableTrHtmlFinished(i) {
|
|
|
+ var trDom = document.createElement("tr");
|
|
|
+ trDom.style.backgroundColor = "#fff";
|
|
|
+ trDom.id = "qjsjF_" + i;
|
|
|
+ trDom.className = 'qjsjClass'
|
|
|
+ trDom.innerHTML = '<td name="qjsj_seq">' + (i + 1) + '</td>'
|
|
|
+ + '<td>'/*内容*/
|
|
|
+ + '<div class="form-item" >'
|
|
|
+ + '<div class="z-comp-input" name="ResignFinishedDetailDO[' + i + ']$content">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<input type="hidden" name="ResignFinishedDetailDO[' + i + ']$state" value="2">'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<div class="z-comp-selecttree" name="receive1[' + i + ']">'
|
|
|
+ + '<input type="hidden" name="ResignFinishedDetailDO[' + i + ']$receiver" value="' + finishedArray[i].receiver + '">'
|
|
|
+ + '<div class="z-inputselect-bar">'
|
|
|
+ + '<span></span><i></i>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td style="align-items: center">'
|
|
|
+ + '<div style="display: flex;white-space: nowrap">'
|
|
|
+ + '<div id="editBtnF_' + (i) + '" class="table-btn editBtnF_' + (i) + '" data-index="' + (i) + '">'
|
|
|
+ + '<span>保存</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div id="delBtnF_' + (i) + '" class="table-btn delBtnF_' + (i) + '" data-index="' + (i) + '">'
|
|
|
+ + '<span>删除</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>';
|
|
|
+ let trFragment = document.createDocumentFragment();
|
|
|
+ trFragment.appendChild(trDom);
|
|
|
+ $("[name='finishedBody']").append(trFragment)
|
|
|
+
|
|
|
+
|
|
|
+ z.ui.ajax({
|
|
|
+ type: "get",
|
|
|
+ url: "/common/user-tree",
|
|
|
+ data: {},
|
|
|
+ success: function (res) {
|
|
|
+
|
|
|
+ //初始化
|
|
|
+ res.forEach(obj => {
|
|
|
+ obj.treeName = 'ResignFinishedDetailDO[' + i + ']$receiver';
|
|
|
+ })
|
|
|
+ selecttree("[name='receive1[" + i + "]']", res, clickReceive)
|
|
|
+
|
|
|
+
|
|
|
+ //赋值
|
|
|
+ if (!(!finishedArray[i].content || finishedArray[i].content.trim() === '')) {
|
|
|
+ z.ui.input("[name='ResignFinishedDetailDO[" + i + "]$content']").setValue(finishedArray[i].content);
|
|
|
+ }
|
|
|
+ if (!(!finishedArray[i].receiver || finishedArray[i].receiver.trim() === '')) {
|
|
|
+ z.ui.selecttree("[name='receive1[" + i + "]']").setValue(finishedArray[i].receiver)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (read !== '1') {
|
|
|
+ $("#editBtnF_" + i).click(function () {
|
|
|
+ const span = $(this).find("span");
|
|
|
+ const html = span.html();
|
|
|
+ if (html === '编辑') {
|
|
|
+ span.html('保存')
|
|
|
+ detailWrite(i);
|
|
|
+ addDataFinished.attr('disabled', "true");
|
|
|
+ $("#qjsjF_" + i).removeClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (html === '保存') {
|
|
|
+ span.html('编辑')
|
|
|
+ detailReadonly(i);
|
|
|
+ addDataFinished.removeAttr('disabled')
|
|
|
+ $("#qjsjF_" + i).addClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ $("#delBtnF_" + i).click(function () {
|
|
|
+ z.ui.confirm("compid").init({
|
|
|
+ content: "确定删除吗?",
|
|
|
+ onConfirm: function () {
|
|
|
+ var element = document.getElementById("qjsjF_" + i);
|
|
|
+ element.remove();
|
|
|
+ buildQjsjSeq();
|
|
|
+ //finishedArray.splice(i, 1)
|
|
|
+ },
|
|
|
+ onCancel: function () {
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+ } else {
|
|
|
+ detailReadonly(i)
|
|
|
+ $("#addDataUnfinished").css("display", "none");
|
|
|
+ $("#addDataFinished").css("display", "none");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ error: function () {
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面生成并获取map中的数据
|
|
|
+ * @param i
|
|
|
+ * @returns {HTMLTableRowElement}
|
|
|
+ */
|
|
|
+ function generateTableTrHtmlUnfinished(i) {
|
|
|
+ var trDom = document.createElement("tr");
|
|
|
+ trDom.style.backgroundColor = "#fff";
|
|
|
+ trDom.id = "qjsj_" + i;
|
|
|
+ trDom.className = 'qjsjClass'
|
|
|
+ trDom.innerHTML = '<td name="qjsj_seq">' + (i + 1) + '</td>'
|
|
|
+ + '<td>'/*内容*/
|
|
|
+ + '<div class="form-item" >'
|
|
|
+ + '<div class="z-comp-input" name="ResignDetailDO[' + i + ']$content">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<input type="hidden" name="ResignDetailDO[' + i + ']$state" value="1">'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<div class="z-comp-selecttree" name="receive[' + i + ']">'
|
|
|
+ + '<input type="hidden" name="ResignDetailDO[' + i + ']$receiver" value="' + unfinishedArray[i].receiver + '">'
|
|
|
+ + '<div class="z-inputselect-bar">'
|
|
|
+ + '<span></span><i></i>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td style="align-items: center">'
|
|
|
+ + '<div style="display: flex;white-space: nowrap">'
|
|
|
+ + '<div id="editBtnU_' + (i) + '" class="table-btn editBtnU_' + (i) + '" data-index="' + (i) + '">'
|
|
|
+ + '<span>保存</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div id="delBtnU_' + (i) + '" class="table-btn delBtnU_' + (i) + '" data-index="' + (i) + '">'
|
|
|
+ + '<span>删除</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>';
|
|
|
+ let trFragment = document.createDocumentFragment();
|
|
|
+ trFragment.appendChild(trDom);
|
|
|
+ $("[name='unfinishedBody']").append(trFragment)
|
|
|
+
|
|
|
+
|
|
|
+ z.ui.ajax({
|
|
|
+ type: "get",
|
|
|
+ url: "/common/user-tree",
|
|
|
+ data: {},
|
|
|
+ success: function (res) {
|
|
|
+
|
|
|
+ //字典初始化
|
|
|
+ res.forEach(obj => {
|
|
|
+ obj.treeName = 'ResignDetailDO[' + i + ']$receiver';
|
|
|
+ })
|
|
|
+ selecttree("[name='receive[" + i + "]']", res, clickReceive)
|
|
|
+
|
|
|
+
|
|
|
+ //赋值
|
|
|
+ if (!(!unfinishedArray[i].content || unfinishedArray[i].content.trim() === '')) {
|
|
|
+ z.ui.input("[name='ResignDetailDO[" + i + "]$content']").setValue(unfinishedArray[i].content);
|
|
|
+ }
|
|
|
+ if (!(!unfinishedArray[i].receiver || unfinishedArray[i].receiver.trim() === '')) {
|
|
|
+ z.ui.selecttree("[name='receive[" + i + "]']").setValue(unfinishedArray[i].receiver)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (read !== '1') {
|
|
|
+ $("#editBtnU_" + i).click(function () {
|
|
|
+ const span = $(this).find("span");
|
|
|
+ const html = span.html();
|
|
|
+ if (html === '编辑') {
|
|
|
+ span.html('保存')
|
|
|
+ detailWriteU(i);
|
|
|
+ addDataUnFinished.attr('disabled', "true");
|
|
|
+ $("#qjsj_" + i).removeClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (html === '保存') {
|
|
|
+ span.html('编辑')
|
|
|
+ detailReadonlyU(i);
|
|
|
+ addDataUnFinished.removeAttr('disabled')
|
|
|
+ $("#qjsj_" + i).addClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ $("#delBtnU_" + i).click(function () {
|
|
|
+ z.ui.confirm("compid").init({
|
|
|
+ content: "确定删除吗?",
|
|
|
+ onConfirm: function () {
|
|
|
+ var element = document.getElementById("qjsj_" + i);
|
|
|
+ element.remove();
|
|
|
+ buildQjsjSeq();
|
|
|
+ //unfinishedArray.splice(i, 1)
|
|
|
+ },
|
|
|
+ onCancel: function () {
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ detailReadonlyU(i)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ error: function () {
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function clickReview(even, treeId, treeNode) {
|
|
|
+ $("[name='" + treeNode.treeName + "']").val(treeNode.id);
|
|
|
+ }
|
|
|
+
|
|
|
+ function clickConfirm(even, treeId, treeNode) {
|
|
|
+ $("[name='" + treeNode.treeName + "']").val(treeNode.id);
|
|
|
+ }
|
|
|
+
|
|
|
+ function clickReceive(even, treeId, treeNode) {
|
|
|
+ $("[name='" + treeNode.treeName + "']").val(treeNode.id);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function detailWrite(i) {
|
|
|
+ $("#delBtn_" + i).css("display", "block");
|
|
|
+ $("[name='receive1[" + i + "]']").removeClass("z-readonly").css("pointer-events", "auto");
|
|
|
+ $("[name='ResignFinishedDetailDO[" + i + "]$content']").removeClass("z-readonly").css("pointer-events", "auto");
|
|
|
+ }
|
|
|
+
|
|
|
+ function detailReadonly(i) {
|
|
|
+ //设置只读属性
|
|
|
+ $("#delBtn_" + i).css("display", "none");
|
|
|
+ $("[name='receive1[" + i + "]']").addClass("z-readonly").css("pointer-events", "none");
|
|
|
+ $("[name='ResignFinishedDetailDO[" + i + "]$content']").addClass("z-readonly").css("pointer-events", "none");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function detailWriteU(i) {
|
|
|
+ $("#delBtn_" + i).css("display", "block");
|
|
|
+ $("[name='receive[" + i + "]']").removeClass("z-readonly").css("pointer-events", "auto");
|
|
|
+ $("[name='ResignDetailDO[" + i + "]$content']").removeClass("z-readonly").css("pointer-events", "auto");
|
|
|
+ }
|
|
|
+
|
|
|
+ //手动列表添加只读效果
|
|
|
+ function detailReadonlyU(i) {
|
|
|
+ $("#delBtn_" + i).css("display", "none");
|
|
|
+ $("[name='receive[" + i + "]']").addClass("z-readonly").css("pointer-events", "none");
|
|
|
+ $("[name='ResignDetailDO[" + i + "]$content']").addClass("z-readonly").css("pointer-events", "none");
|
|
|
+ }
|
|
|
+
|
|
|
+ function buildQjsjSeq() {
|
|
|
+ let elementsByName = document.getElementsByName("qjsj_seq");
|
|
|
+ for (let i = 0; i < elementsByName.length; i++) {
|
|
|
+ const seqElement = elementsByName[i];
|
|
|
+ seqElement.innerHTML = i + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}());
|
|
|
+
|
|
|
+function goAsset1(id) {
|
|
|
+ z.webcontainer.openTab({
|
|
|
+ id: 'workflow_hangup_' + id,
|
|
|
+ title: "流程查看",
|
|
|
+ url: window.url + "/IFlowInstance/redirectFlowPage?flowInstanceId=" + id,
|
|
|
+ iconclass: 'fa fa-file'
|
|
|
+ });
|
|
|
+}
|
|
|
+
|