saas-tenant-approve-app 0.2.12 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14485,8 +14485,8 @@ var component = normalizeComponent(
14485
14485
  )
14486
14486
 
14487
14487
  /* harmony default export */ var approveLine = (component.exports);
14488
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/approveLineAll.vue?vue&type=template&id=de61d20e&scoped=true
14489
- var approveLineAllvue_type_template_id_de61d20e_scoped_true_render = function render() {
14488
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/approveLineAll.vue?vue&type=template&id=44110ba3&scoped=true
14489
+ var approveLineAllvue_type_template_id_44110ba3_scoped_true_render = function render() {
14490
14490
  var _vm = this,
14491
14491
  _c = _vm._self._c;
14492
14492
  return _c('div', {
@@ -14572,7 +14572,18 @@ var approveLineAllvue_type_template_id_de61d20e_scoped_true_render = function re
14572
14572
  "plain": "",
14573
14573
  "type": "primary"
14574
14574
  }
14575
- }, [_vm._v("依次")]) : _vm._e()], 1), step.approverDtoList && step.approverDtoList.length ? _vm._l(step.approverDtoList, function (item, index2) {
14575
+ }, [_vm._v("依次")]) : _vm._e(), _vm.ableEdit(step) && _vm.data.editApprover && step.unApprovedFlag ? _c('van-button', {
14576
+ attrs: {
14577
+ "icon": "plus",
14578
+ "size": "mini",
14579
+ "plain": ""
14580
+ },
14581
+ on: {
14582
+ "click": function ($event) {
14583
+ return _vm.addApprover(step);
14584
+ }
14585
+ }
14586
+ }) : _vm._e()], 1), step.approverDtoList && step.approverDtoList.length ? _vm._l(step.approverDtoList, function (item, index2) {
14576
14587
  return _c('span', {
14577
14588
  key: item.id
14578
14589
  }, [_c('div', {
@@ -14676,7 +14687,7 @@ var approveLineAllvue_type_template_id_de61d20e_scoped_true_render = function re
14676
14687
  }
14677
14688
  }, [_vm._v("同意 ")])], 1)], 1)], 1) : _vm._e()], 1);
14678
14689
  };
14679
- var approveLineAllvue_type_template_id_de61d20e_scoped_true_staticRenderFns = [];
14690
+ var approveLineAllvue_type_template_id_44110ba3_scoped_true_staticRenderFns = [];
14680
14691
 
14681
14692
  // EXTERNAL MODULE: ./node_modules/qs/lib/index.js
14682
14693
  var lib = __webpack_require__(9122);
@@ -14751,526 +14762,218 @@ function getDeptRoleUsers(baseurl, data) {
14751
14762
  data
14752
14763
  });
14753
14764
  }
14754
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/approveLineAll.vue?vue&type=script&lang=js
14765
+ ;// CONCATENATED MODULE: ./src/components/mobiletree/http.js
14755
14766
 
14756
14767
 
14768
+ const http_service = axios_default().create({
14769
+ timeout: 20000 // request timeout
14770
+ });
14757
14771
 
14772
+ // request interceptor
14773
+ http_service.interceptors.request.use(config => {
14774
+ return config;
14775
+ }, error => {
14776
+ console.log(error); // for debug
14777
+ return Promise.reject(error);
14778
+ });
14758
14779
 
14759
- /* harmony default export */ var approveLineAllvue_type_script_lang_js = ({
14760
- name: "ApproveLineAll",
14761
- data() {
14780
+ // response interceptor
14781
+ http_service.interceptors.response.use(response => {
14782
+ if (response.status != 200 && response.status != '200') {
14783
+ toast.fail(response.statusText || '系统错误,请联系管理员!');
14784
+ return null;
14785
+ }
14786
+ const res = response.data;
14787
+ if (!res.status || !res.message) return res;
14788
+ if (res.status == 403) {
14789
+ // router.push('/login');
14790
+ } else if (res.status !== 200) {
14791
+ toast.fail(res.message || '未知错误,请联系管理员!');
14792
+ return null;
14793
+ }
14794
+ return res;
14795
+ }, error => {
14796
+ console.log('err' + error); // for debug
14797
+ toast.fail(error.message);
14798
+ return Promise.reject(error);
14799
+ });
14800
+ /* harmony default export */ var http = (http_service);
14801
+ // EXTERNAL MODULE: ./src/assets/jquery.min.js
14802
+ var jquery_min = __webpack_require__(9981);
14803
+ ;// CONCATENATED MODULE: ./src/components/mobiletree/browser.js
14804
+ // 判断访问终端类型
14805
+ const Browser = {
14806
+ versions: function () {
14807
+ var u = navigator.userAgent;
14762
14808
  return {
14763
- active: "1",
14764
- defaultImg: __webpack_require__(3911),
14765
- LrecordSteps: [],
14766
- TrecordSteps: [],
14767
- SAAS_TENANT_API: "/api",
14768
- input: "",
14769
- approveStatus: true,
14770
- //是否登录人有权限操作 同意驳回 true:有
14771
- ifBtn: true
14809
+ trident: u.indexOf('Trident') > -1,
14810
+ //IE内核
14811
+ presto: u.indexOf('Presto') > -1,
14812
+ //opera内核
14813
+ webKit: u.indexOf('AppleWebKit') > -1,
14814
+ //苹果、谷歌内核
14815
+ gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
14816
+ //火狐内核
14817
+ mobile: !!u.match(/AppleWebKit.*Mobile.*/),
14818
+ //是否为移动终端
14819
+ ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
14820
+ //ios终端
14821
+ android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
14822
+ //android终端
14823
+ iPhone: u.indexOf('iPhone') > -1,
14824
+ //是否为iPhone或者QQHD浏览器
14825
+ iPad: u.indexOf('iPad') > -1,
14826
+ //是否iPad
14827
+ webApp: u.indexOf('Safari') == -1,
14828
+ //是否web应该程序,没有头部与底部
14829
+ weixin: u.indexOf('MicroMessenger') > -1,
14830
+ //是否微信 (2015-01-22新增)
14831
+ local: u.indexOf('wxworklocal') > -1,
14832
+ //是否私有版
14833
+ qq: u.match(/\sQQ/i) == " qq" //是否QQ
14772
14834
  };
14773
- },
14774
- props: {
14775
- data: {
14776
- type: Object,
14777
- required: true
14835
+ }(),
14836
+ language: (navigator.browserLanguage || navigator.language).toLowerCase()
14837
+ };
14838
+ /* harmony default export */ var browser = ((/* unused pure expression or super */ null && (Browser)));
14839
+ ;// CONCATENATED MODULE: ./src/components/mobiletree/tcMobileTree.js
14840
+
14841
+ // 移动端组织树
14842
+ /**
14843
+ *
14844
+ * @param unitType组织树类型(unit_user=人员部门混合 user=人员 unit=部门)
14845
+ * @param target 使用类型,(all=不受权限控制 ,appliction|hierarchial 应用和分级管理员权限),不传从当前部门查询
14846
+ * @param mode 选择模式,single表示单选,multi表示多选
14847
+ * @param defaultKey 默认选中 [{"key": "3", "name": "交付二部", "type": "UNIT"},{"key": "18602702432", "name": "胡志锦2", "type": "USER"}]
14848
+ * @constructor
14849
+ */
14850
+
14851
+
14852
+ // import axios from 'axios'
14853
+
14854
+
14855
+ // import { MyTree } from "@/views/components/pctree/tcTree";
14856
+ __webpack_require__(1687);
14857
+
14858
+ // const approveMobileTree = function( obj ) {
14859
+ function approveMobileTree(obj) {
14860
+ this.options = {
14861
+ unitType: 'unit_user',
14862
+ parentId: 1,
14863
+ defaultKey: [],
14864
+ BaseUrl: '',
14865
+ title: '',
14866
+ token: '',
14867
+ appCode: '',
14868
+ tenant: ''
14869
+ };
14870
+ this.treeData = [];
14871
+ if (obj.defaultKey) {
14872
+ //如果有默认值,判断格式是否正确
14873
+ if (obj.defaultKey.some(item => !item.key) == true) {
14874
+ alert('defaultKey对象中缺少key');
14875
+ return;
14778
14876
  }
14779
- },
14780
- components: {
14781
- "van-steps": steps,
14782
- "van-step": step,
14783
- "van-tag": tag,
14784
- "van-row": row,
14785
- "van-col": col,
14786
- "van-button": es_button,
14787
- "van-field": field
14788
- },
14789
- watch: {
14790
- approveStatus: {
14791
- handler(newVal, oldVal) {
14792
- console.log("this.approveStatus", this.approveStatus);
14793
- },
14794
- deep: true
14877
+ }
14878
+ Object.keys(obj).map(key => {
14879
+ this.options[key] = obj[key];
14880
+ if (this.options.color == undefined || this.options.color == '' || this.options.color == null) {
14881
+ this.options.color = "#197BFF";
14882
+ }
14883
+ if (this.options.title == undefined || this.options.title == '' || this.options.title == null) {
14884
+ this.options.title = "部门人员选择";
14885
+ }
14886
+ });
14887
+ console.log('options', this.options);
14888
+ }
14889
+ window.approveMobileTree = approveMobileTree;
14890
+ // console.log('approveMobileTree,js', window)
14891
+ approveMobileTree.prototype = {
14892
+ roterData: [],
14893
+ allData: [],
14894
+ init: function () {
14895
+ approveMobileTree.prototype.options = this.options;
14896
+ approveMobileTree.prototype.nodesMap = this.options.defaultKey ? this.options.defaultKey : [];
14897
+
14898
+ // 创建组织树
14899
+ var treeDom = '';
14900
+ treeDom += "<div id='tcMobileTree' class='deptUserTree'>";
14901
+ treeDom += "<div class='treeTitle'><span class='iconfont icon-left1 backimg' onclick='approveMobileTree.prototype.pagerouter()'></span> <b id='deptNameFrist'></b><div class='rightSearch'><span class='iconfont icon-search' onclick='approveMobileTree.prototype.search()'></span><span class='iconfont icon-exit' onclick='approveMobileTree.prototype.cancleTree()'></span></div></div>";
14902
+ treeDom += "<div class='treeTitleSearch'><span class='iconfont icon-left1 backimg' onclick='approveMobileTree.prototype.backSearch()'></span> <input id='searchInput' type='text'> <div class='rightSearch'><span class='iconfont icon-close' onclick='approveMobileTree.prototype.clearSearch()'></span></div></div>";
14903
+ treeDom += "<div id='treeContent'></div>";
14904
+ treeDom += "<div id='treeContentSearch'></div>";
14905
+ treeDom += "<div class='treeBottom'>";
14906
+ treeDom += "<div class='saveImg'></div><button class='saveBtn' id='bottomSubmit-w'>确定(0)</button></div></div>";
14907
+ treeDom += "</div>";
14908
+ $('#app').append(treeDom);
14909
+ if (treeDom) {
14910
+ this.setHeaderTitle();
14911
+ this.showHandler();
14912
+ $("#treeContentSearch").hide();
14913
+ $('#searchInput').on('input', this.searchTree);
14795
14914
  }
14796
14915
  },
14797
- mounted() {
14798
- if (this.data) {
14799
- this.SAAS_TENANT_API = this.data.baseUrl;
14800
- if (!this.data.baseUrl) {
14801
- toast("缺少必填参数baseUrl");
14802
- return;
14916
+ //设置头部
14917
+ setHeaderTitle: function (title, id) {
14918
+ let self = this;
14919
+ console.log('setHeaderTitle-this', this);
14920
+ if (title) {
14921
+ $("#deptNameFrist").html(title);
14922
+ if (self.roterData.some(val => val.name == title) == false) {
14923
+ self.roterData.push({
14924
+ key: id,
14925
+ name: title
14926
+ });
14803
14927
  }
14804
- if (!this.data.uid) {
14805
- toast("缺少必填参数uid");
14806
- return;
14928
+ } else {
14929
+ let obj = {
14930
+ url: approveMobileTree.prototype.options.BaseUrl + "/saas-tenant-admin/hierarchy/tree",
14931
+ method: 'get',
14932
+ params: {
14933
+ unitType: self.options.unitType,
14934
+ parentId: 0,
14935
+ target: self.options.target,
14936
+ appCode: self.options.appCode,
14937
+ loadAsync: true,
14938
+ token: self.options.token.replace(/[\r\n]/g, "") //sessionStorage.getItem('token')
14939
+ }
14940
+ };
14941
+ console.log('setHeaderTitle', obj);
14942
+ http(obj).then(res => {
14943
+ self.treeData = [];
14944
+ if (res.result != 'ok') {
14945
+ self.treeData = res.result && res.result.length ? res.result : [];
14946
+ approveMobileTree.prototype.allData = approveMobileTree.prototype.allData.concat(self.treeData);
14947
+ $("#deptNameFrist").html(self.treeData[0].name);
14948
+ self.roterData.push({
14949
+ key: self.treeData[0].key,
14950
+ name: self.treeData[0].name
14951
+ });
14952
+ }
14953
+ });
14954
+ }
14955
+ },
14956
+ // 设置底部和选中组织人员
14957
+ setResult: function () {
14958
+ let resultData = approveMobileTree.prototype.nodesMap;
14959
+ let treeBottomDom = '';
14960
+ resultData.map(item => {
14961
+ if (item.type == 'USER') {
14962
+ // if (item.avatar) {
14963
+ // treeBottomDom += "<span class='bgBlue deleteSelected' onclick='approveMobileTree.prototype.' key="+item.key+"><img src=" + item.avatar + " alt=''><span class='treeUsername'>"+item.name+"</span></span>";
14964
+ // } else {
14965
+ treeBottomDom += "<span class='bgBlue deleteSelected' key=" + item.key + "><span class='iconfont icon-avatar ava'></span><span class='treeUsername'>" + item.name + "</span></span>";
14966
+ // }
14967
+ } else {
14968
+ treeBottomDom += "<span class='bgBlue deleteSelected' key=" + item.key + "><span class='iconfont icon-file-f ava'></span><span class='treeUsername'>" + item.name + "</span></span>";
14807
14969
  }
14808
- this.getInfo();
14970
+ $(".saveImg").html(treeBottomDom);
14971
+ $(".deleteSelected").bind("click", this.deleteNodes);
14972
+ });
14973
+ if (resultData.length == 0) {
14974
+ $(".saveImg").html('');
14809
14975
  }
14810
- },
14811
- methods: {
14812
- getInfo() {
14813
- var that = this;
14814
- projectCustomNodesForApproveList(that.SAAS_TENANT_API, {
14815
- outApprove: true,
14816
- uid: that.data.uid,
14817
- id: that.data.id,
14818
- aprId: that.data.aprId
14819
- }).then(res => {
14820
- if (res.status == 200) {
14821
- // console.log("data", res.result.data);
14822
- this.LrecordSteps = res.result.data.reverse();
14823
- this.active = res.result.data.findIndex(item => {
14824
- return item.isCurent == "1";
14825
- }) + 1;
14826
- // signType=1或签 2会签 3依签名
14827
- let SD = res.result.data ? res.result.data[this.active - 1] : "";
14828
- if (SD && (SD.signType == "1" || SD.signType == "2")) {
14829
- that.approveStatus = SD.approverDtoList.some(item => {
14830
- if (item.userId == that.data.uid && SD.operateStatus == "1" && (item.approveStatus == "1" || item.approveStatus == null)) {
14831
- return true;
14832
- }
14833
- });
14834
- console.log("或签会签权限--" + that.approveStatus);
14835
- }
14836
- if (SD && SD.signType == "3") {
14837
- let sdData = SD.approverDtoList.slice().reverse();
14838
- let index = sdData.findIndex(item => {
14839
- return item.isApprove != "1";
14840
- });
14841
- console.log(index);
14842
- if (index > -1) {
14843
- console.log("审批人是-------" + sdData[index].name);
14844
- if (sdData[index].userId != that.data.uid || sdData[index].approveStatus != "1" && sdData[index].approveStatus != null) {
14845
- that.approveStatus = false;
14846
- }
14847
- }
14848
- console.log("依次审批权限--" + that.approveStatus);
14849
- }
14850
- }
14851
- });
14852
- queryCheckItemToMe(that.SAAS_TENANT_API, {
14853
- uid: that.data.uid,
14854
- id: that.data.id
14855
- }).then(res => {
14856
- if (res.status == 200) {
14857
- that.TrecordSteps = res.result.data;
14858
- // 1、不是审批状态不可操作
14859
- if (that.TrecordSteps.approveStatus != "1") {
14860
- that.approveStatus = false;
14861
- }
14862
- }
14863
- console.log("that.approveStatus", that.approveStatus);
14864
- });
14865
- },
14866
- uniqueByUserId(array) {
14867
- return array.filter((item, index, arr) => {
14868
- return arr.findIndex(it => it.userId === item.userId) === index;
14869
- });
14870
- },
14871
- formateToHour: formateToHour,
14872
- agre_vis() {
14873
- //同意
14874
- function agree(parameter) {
14875
- return service({
14876
- url: that.SAAS_TENANT_API + "/work/agree",
14877
- method: "POST",
14878
- data: parameter
14879
- });
14880
- }
14881
- var that = this;
14882
- this.$emit("before", {
14883
- msg: "同意审批操作,回调参数返回ture继续执行,返回false终止操作",
14884
- type: "beforeAgree"
14885
- }, res => {
14886
- //回调函数的方法体.处理自己的业务.
14887
- console.log(res);
14888
- let parm = Object.assign({
14889
- uid: this.data.uid,
14890
- id: this.data.id,
14891
- result: this.input == "" ? "同意" : this.input,
14892
- sign: ""
14893
- }, res);
14894
- console.log(parm);
14895
- if (!that.ifBtn) return;
14896
- that.ifBtn = false;
14897
- agree(parm).then(res => {
14898
- that.ifBtn = true;
14899
- that.$emit("after", {
14900
- res,
14901
- type: "afterAgree"
14902
- });
14903
- });
14904
- });
14905
- },
14906
- reject_vis() {
14907
- var that = this;
14908
- console.log("执行拒绝");
14909
- function reject(parameter) {
14910
- return service({
14911
- url: that.SAAS_TENANT_API + "/work/reject",
14912
- method: "POST",
14913
- data: parameter
14914
- });
14915
- }
14916
- if (that.input == "") {
14917
- toast.fail("未输入审批意见");
14918
- return;
14919
- }
14920
- dialog.confirm({
14921
- title: "提示",
14922
- message: "是否驳回"
14923
- }).then(() => {
14924
- that.$emit("before", {
14925
- msg: "是否执行驳回审批操作,回调参数返回ture继续执行,返回false终止操作",
14926
- type: "beforeReject"
14927
- }, res => {
14928
- if (res) {
14929
- toast.loading({
14930
- duration: 0,
14931
- // 持续展示 toast
14932
- forbidClick: true
14933
- });
14934
- let parm = Object.assign({
14935
- uid: that.data.uid,
14936
- id: that.data.id,
14937
- result: that.input
14938
- }, res);
14939
- reject(parm).then(res => {
14940
- toast.clear();
14941
- that.$emit("after", {
14942
- res,
14943
- type: "afterReject"
14944
- });
14945
- });
14946
- } else {
14947
- console.log("驳回操作前回调没有继续执行,回调参数返回ture继续执行,返回false终止操作");
14948
- }
14949
- });
14950
- }).catch(() => {
14951
- // on cancel
14952
- });
14953
- }
14954
- }
14955
- });
14956
- ;// CONCATENATED MODULE: ./src/components/approveLineAll.vue?vue&type=script&lang=js
14957
- /* harmony default export */ var components_approveLineAllvue_type_script_lang_js = (approveLineAllvue_type_script_lang_js);
14958
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/approveLineAll.vue?vue&type=style&index=0&id=de61d20e&prod&scoped=true&lang=css
14959
- // extracted by mini-css-extract-plugin
14960
-
14961
- ;// CONCATENATED MODULE: ./src/components/approveLineAll.vue?vue&type=style&index=0&id=de61d20e&prod&scoped=true&lang=css
14962
-
14963
- ;// CONCATENATED MODULE: ./src/components/approveLineAll.vue
14964
-
14965
-
14966
-
14967
- ;
14968
-
14969
-
14970
- /* normalize component */
14971
-
14972
- var approveLineAll_component = normalizeComponent(
14973
- components_approveLineAllvue_type_script_lang_js,
14974
- approveLineAllvue_type_template_id_de61d20e_scoped_true_render,
14975
- approveLineAllvue_type_template_id_de61d20e_scoped_true_staticRenderFns,
14976
- false,
14977
- null,
14978
- "de61d20e",
14979
- null
14980
-
14981
- )
14982
-
14983
- /* harmony default export */ var approveLineAll = (approveLineAll_component.exports);
14984
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/selectLine.vue?vue&type=template&id=fb584a8c
14985
- var selectLinevue_type_template_id_fb584a8c_render = function render() {
14986
- var _vm = this,
14987
- _c = _vm._self._c;
14988
- return _c('div', {
14989
- attrs: {
14990
- "id": "selectLine"
14991
- }
14992
- }, [_c('van-steps', {
14993
- staticStyle: {
14994
- "padding-bottom": "130px"
14995
- },
14996
- attrs: {
14997
- "direction": "vertical",
14998
- "active": 0
14999
- }
15000
- }, _vm._l(_vm.approveList, function (node, index) {
15001
- return _c('van-step', {
15002
- key: node.id
15003
- }, [_c('p', {
15004
- staticClass: "per_p1"
15005
- }, [_vm._v(" " + _vm._s(node.name) + " ")]), _c('div', [_vm._l(node.list, function (per) {
15006
- return _c('van-button', {
15007
- key: per.id,
15008
- staticClass: "per_name",
15009
- attrs: {
15010
- "type": "primary",
15011
- "size": "mini"
15012
- },
15013
- on: {
15014
- "click": function ($event) {
15015
- return _vm.deleteApprover(node, per.userId);
15016
- }
15017
- }
15018
- }, [_vm._v(_vm._s(per.name) + " "), _vm.ableEdit(node) ? _c('van-icon', {
15019
- staticClass: "badge-icon",
15020
- attrs: {
15021
- "name": "cross"
15022
- }
15023
- }) : _vm._e()], 1);
15024
- }), _vm.ableEdit(node) ? _c('van-button', {
15025
- attrs: {
15026
- "icon": "plus",
15027
- "size": "mini",
15028
- "plain": ""
15029
- },
15030
- on: {
15031
- "click": function ($event) {
15032
- return _vm.addApprover(node);
15033
- }
15034
- }
15035
- }) : _vm._e()], 2)]);
15036
- }), 1), !_vm.data.readonly && _vm.showBtn ? _c('div', {
15037
- staticClass: "fixedBottom"
15038
- }, [_c('van-row', {
15039
- staticStyle: {
15040
- "padding": "0px 15px"
15041
- }
15042
- }, [_c('van-col', {
15043
- staticStyle: {
15044
- "display": "flex",
15045
- "margin": "10px auto"
15046
- },
15047
- attrs: {
15048
- "span": "24"
15049
- }
15050
- }, [_c('van-button', {
15051
- attrs: {
15052
- "type": "primary",
15053
- "block": ""
15054
- },
15055
- on: {
15056
- "click": _vm.submit
15057
- }
15058
- }, [_vm._v(" 提交 ")])], 1)], 1)], 1) : _vm._e()], 1);
15059
- };
15060
- var selectLinevue_type_template_id_fb584a8c_staticRenderFns = [];
15061
-
15062
- ;// CONCATENATED MODULE: ./src/components/mobiletree/http.js
15063
-
15064
-
15065
- const http_service = axios_default().create({
15066
- timeout: 20000 // request timeout
15067
- });
15068
-
15069
- // request interceptor
15070
- http_service.interceptors.request.use(config => {
15071
- return config;
15072
- }, error => {
15073
- console.log(error); // for debug
15074
- return Promise.reject(error);
15075
- });
15076
-
15077
- // response interceptor
15078
- http_service.interceptors.response.use(response => {
15079
- if (response.status != 200 && response.status != '200') {
15080
- toast.fail(response.statusText || '系统错误,请联系管理员!');
15081
- return null;
15082
- }
15083
- const res = response.data;
15084
- if (!res.status || !res.message) return res;
15085
- if (res.status == 403) {
15086
- // router.push('/login');
15087
- } else if (res.status !== 200) {
15088
- toast.fail(res.message || '未知错误,请联系管理员!');
15089
- return null;
15090
- }
15091
- return res;
15092
- }, error => {
15093
- console.log('err' + error); // for debug
15094
- toast.fail(error.message);
15095
- return Promise.reject(error);
15096
- });
15097
- /* harmony default export */ var http = (http_service);
15098
- // EXTERNAL MODULE: ./src/assets/jquery.min.js
15099
- var jquery_min = __webpack_require__(9981);
15100
- ;// CONCATENATED MODULE: ./src/components/mobiletree/browser.js
15101
- // 判断访问终端类型
15102
- const Browser = {
15103
- versions: function () {
15104
- var u = navigator.userAgent;
15105
- return {
15106
- trident: u.indexOf('Trident') > -1,
15107
- //IE内核
15108
- presto: u.indexOf('Presto') > -1,
15109
- //opera内核
15110
- webKit: u.indexOf('AppleWebKit') > -1,
15111
- //苹果、谷歌内核
15112
- gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,
15113
- //火狐内核
15114
- mobile: !!u.match(/AppleWebKit.*Mobile.*/),
15115
- //是否为移动终端
15116
- ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
15117
- //ios终端
15118
- android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
15119
- //android终端
15120
- iPhone: u.indexOf('iPhone') > -1,
15121
- //是否为iPhone或者QQHD浏览器
15122
- iPad: u.indexOf('iPad') > -1,
15123
- //是否iPad
15124
- webApp: u.indexOf('Safari') == -1,
15125
- //是否web应该程序,没有头部与底部
15126
- weixin: u.indexOf('MicroMessenger') > -1,
15127
- //是否微信 (2015-01-22新增)
15128
- local: u.indexOf('wxworklocal') > -1,
15129
- //是否私有版
15130
- qq: u.match(/\sQQ/i) == " qq" //是否QQ
15131
- };
15132
- }(),
15133
- language: (navigator.browserLanguage || navigator.language).toLowerCase()
15134
- };
15135
- /* harmony default export */ var browser = ((/* unused pure expression or super */ null && (Browser)));
15136
- ;// CONCATENATED MODULE: ./src/components/mobiletree/tcMobileTree.js
15137
-
15138
- // 移动端组织树
15139
- /**
15140
- *
15141
- * @param unitType组织树类型(unit_user=人员部门混合 user=人员 unit=部门)
15142
- * @param target 使用类型,(all=不受权限控制 ,appliction|hierarchial 应用和分级管理员权限),不传从当前部门查询
15143
- * @param mode 选择模式,single表示单选,multi表示多选
15144
- * @param defaultKey 默认选中 [{"key": "3", "name": "交付二部", "type": "UNIT"},{"key": "18602702432", "name": "胡志锦2", "type": "USER"}]
15145
- * @constructor
15146
- */
15147
-
15148
-
15149
- // import axios from 'axios'
15150
-
15151
-
15152
- // import { MyTree } from "@/views/components/pctree/tcTree";
15153
- __webpack_require__(1687);
15154
-
15155
- // const approveMobileTree = function( obj ) {
15156
- function approveMobileTree(obj) {
15157
- this.options = {
15158
- unitType: 'unit_user',
15159
- parentId: 1,
15160
- defaultKey: [],
15161
- BaseUrl: '',
15162
- title: '',
15163
- token: '',
15164
- appCode: '',
15165
- tenant: ''
15166
- };
15167
- this.treeData = [];
15168
- if (obj.defaultKey) {
15169
- //如果有默认值,判断格式是否正确
15170
- if (obj.defaultKey.some(item => !item.key) == true) {
15171
- alert('defaultKey对象中缺少key');
15172
- return;
15173
- }
15174
- }
15175
- Object.keys(obj).map(key => {
15176
- this.options[key] = obj[key];
15177
- if (this.options.color == undefined || this.options.color == '' || this.options.color == null) {
15178
- this.options.color = "#197BFF";
15179
- }
15180
- if (this.options.title == undefined || this.options.title == '' || this.options.title == null) {
15181
- this.options.title = "部门人员选择";
15182
- }
15183
- });
15184
- console.log('options', this.options);
15185
- }
15186
- window.approveMobileTree = approveMobileTree;
15187
- // console.log('approveMobileTree,js', window)
15188
- approveMobileTree.prototype = {
15189
- roterData: [],
15190
- allData: [],
15191
- init: function () {
15192
- approveMobileTree.prototype.options = this.options;
15193
- approveMobileTree.prototype.nodesMap = this.options.defaultKey ? this.options.defaultKey : [];
15194
-
15195
- // 创建组织树
15196
- var treeDom = '';
15197
- treeDom += "<div id='tcMobileTree' class='deptUserTree'>";
15198
- treeDom += "<div class='treeTitle'><span class='iconfont icon-left1 backimg' onclick='approveMobileTree.prototype.pagerouter()'></span> <b id='deptNameFrist'></b><div class='rightSearch'><span class='iconfont icon-search' onclick='approveMobileTree.prototype.search()'></span><span class='iconfont icon-exit' onclick='approveMobileTree.prototype.cancleTree()'></span></div></div>";
15199
- treeDom += "<div class='treeTitleSearch'><span class='iconfont icon-left1 backimg' onclick='approveMobileTree.prototype.backSearch()'></span> <input id='searchInput' type='text'> <div class='rightSearch'><span class='iconfont icon-close' onclick='approveMobileTree.prototype.clearSearch()'></span></div></div>";
15200
- treeDom += "<div id='treeContent'></div>";
15201
- treeDom += "<div id='treeContentSearch'></div>";
15202
- treeDom += "<div class='treeBottom'>";
15203
- treeDom += "<div class='saveImg'></div><button class='saveBtn' id='bottomSubmit-w'>确定(0)</button></div></div>";
15204
- treeDom += "</div>";
15205
- $('#app').append(treeDom);
15206
- if (treeDom) {
15207
- this.setHeaderTitle();
15208
- this.showHandler();
15209
- $("#treeContentSearch").hide();
15210
- $('#searchInput').on('input', this.searchTree);
15211
- }
15212
- },
15213
- //设置头部
15214
- setHeaderTitle: function (title, id) {
15215
- let self = this;
15216
- console.log('setHeaderTitle-this', this);
15217
- if (title) {
15218
- $("#deptNameFrist").html(title);
15219
- if (self.roterData.some(val => val.name == title) == false) {
15220
- self.roterData.push({
15221
- key: id,
15222
- name: title
15223
- });
15224
- }
15225
- } else {
15226
- let obj = {
15227
- url: approveMobileTree.prototype.options.BaseUrl + "/saas-tenant-admin/hierarchy/tree",
15228
- method: 'get',
15229
- params: {
15230
- unitType: self.options.unitType,
15231
- parentId: 0,
15232
- target: self.options.target,
15233
- appCode: self.options.appCode,
15234
- loadAsync: true,
15235
- token: self.options.token.replace(/[\r\n]/g, "") //sessionStorage.getItem('token')
15236
- }
15237
- };
15238
- console.log('setHeaderTitle', obj);
15239
- http(obj).then(res => {
15240
- self.treeData = [];
15241
- if (res.result != 'ok') {
15242
- self.treeData = res.result && res.result.length ? res.result : [];
15243
- approveMobileTree.prototype.allData = approveMobileTree.prototype.allData.concat(self.treeData);
15244
- $("#deptNameFrist").html(self.treeData[0].name);
15245
- self.roterData.push({
15246
- key: self.treeData[0].key,
15247
- name: self.treeData[0].name
15248
- });
15249
- }
15250
- });
15251
- }
15252
- },
15253
- // 设置底部和选中组织人员
15254
- setResult: function () {
15255
- let resultData = approveMobileTree.prototype.nodesMap;
15256
- let treeBottomDom = '';
15257
- resultData.map(item => {
15258
- if (item.type == 'USER') {
15259
- // if (item.avatar) {
15260
- // treeBottomDom += "<span class='bgBlue deleteSelected' onclick='approveMobileTree.prototype.' key="+item.key+"><img src=" + item.avatar + " alt=''><span class='treeUsername'>"+item.name+"</span></span>";
15261
- // } else {
15262
- treeBottomDom += "<span class='bgBlue deleteSelected' key=" + item.key + "><span class='iconfont icon-avatar ava'></span><span class='treeUsername'>" + item.name + "</span></span>";
15263
- // }
15264
- } else {
15265
- treeBottomDom += "<span class='bgBlue deleteSelected' key=" + item.key + "><span class='iconfont icon-file-f ava'></span><span class='treeUsername'>" + item.name + "</span></span>";
15266
- }
15267
- $(".saveImg").html(treeBottomDom);
15268
- $(".deleteSelected").bind("click", this.deleteNodes);
15269
- });
15270
- if (resultData.length == 0) {
15271
- $(".saveImg").html('');
15272
- }
15273
- $("#bottomSubmit-w").html('确定(' + resultData.length + ')');
14976
+ $("#bottomSubmit-w").html('确定(' + resultData.length + ')');
15274
14977
  },
15275
14978
  // 请求数据
15276
14979
  showHandler: function (treeData) {
@@ -15521,38 +15224,556 @@ approveMobileTree.prototype = {
15521
15224
  } else {
15522
15225
  domDiv += "<span class='mokeinput' onclick='approveMobileTree.prototype.inputClickHandler(this)' selsectData=" + JSON.stringify(treeData) + "></span>";
15523
15226
  }
15524
- if (treeData.type == 'USER') {
15525
- // if (!treeData.avatar) {
15526
- domDiv += "<span class='bgBlue'><span class='iconfont icon-avatar ava'></span></span>";
15527
- // } else {
15528
- // domDiv += "<span class='bgBlue'><img src=" + treeData.avatar + " alt=''></span>";
15529
- // }
15530
- } else {
15531
- domDiv += "<span class='bgBlue'><span class='iconfont icon-file-f ava'></span></span>";
15227
+ if (treeData.type == 'USER') {
15228
+ // if (!treeData.avatar) {
15229
+ domDiv += "<span class='bgBlue'><span class='iconfont icon-avatar ava'></span></span>";
15230
+ // } else {
15231
+ // domDiv += "<span class='bgBlue'><img src=" + treeData.avatar + " alt=''></span>";
15232
+ // }
15233
+ } else {
15234
+ domDiv += "<span class='bgBlue'><span class='iconfont icon-file-f ava'></span></span>";
15235
+ }
15236
+ if (treeData.type != 'USER') {
15237
+ domDiv += "<span class='SelectedName' parentId=" + treeData.key + " title=" + treeData.name + " onclick='approveMobileTree.prototype.showHandler(" + JSON.stringify(treeData) + ")'>" + treeData.name + "</span>";
15238
+ } else {
15239
+ domDiv += "<span class='SelectedName' style='line-height: 22px' parentId=" + treeData.key + " title=" + treeData.name + ">" + treeData.name + " <br><span style='font-size: 13px;color: #999797'>" + treeData.description + "</span></span>";
15240
+ }
15241
+ domDiv += "</li>";
15242
+ domDiv += "</ul>";
15243
+ }
15244
+ $("#treeContentSearch").html(domDiv);
15245
+ var defaultKey = approveMobileTree.prototype.nodesMap;
15246
+ $(".mokeinput").map(item => {
15247
+ defaultKey.map(item2 => {
15248
+ if (JSON.parse($(".mokeinput")[item].getAttribute('selsectData')).key == item2.key) {
15249
+ $($(".mokeinput")[item]).addClass('inputCheck');
15250
+ }
15251
+ });
15252
+ });
15253
+ }
15254
+ });
15255
+ }
15256
+ };
15257
+
15258
+ // export default approveMobileTree
15259
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/approveLineAll.vue?vue&type=script&lang=js
15260
+
15261
+
15262
+
15263
+
15264
+
15265
+
15266
+ /* harmony default export */ var approveLineAllvue_type_script_lang_js = ({
15267
+ name: "ApproveLineAll",
15268
+ data() {
15269
+ return {
15270
+ active: "1",
15271
+ defaultImg: __webpack_require__(3911),
15272
+ LrecordSteps: [],
15273
+ TrecordSteps: [],
15274
+ SAAS_TENANT_API: "/api",
15275
+ input: "",
15276
+ approveStatus: true,
15277
+ //是否登录人有权限操作 同意驳回 true:有
15278
+ ifBtn: true,
15279
+ approveList: [],
15280
+ optionalList: []
15281
+ };
15282
+ },
15283
+ props: {
15284
+ data: {
15285
+ type: Object,
15286
+ required: true
15287
+ }
15288
+ },
15289
+ components: {
15290
+ "van-steps": steps,
15291
+ "van-step": step,
15292
+ "van-tag": tag,
15293
+ "van-row": row,
15294
+ "van-col": col,
15295
+ "van-button": es_button,
15296
+ "van-field": field
15297
+ },
15298
+ watch: {
15299
+ approveStatus: {
15300
+ handler(newVal, oldVal) {
15301
+ console.log("this.approveStatus", this.approveStatus);
15302
+ },
15303
+ deep: true
15304
+ },
15305
+ data: {
15306
+ handler(newVal, oldVal) {
15307
+ console.log("this.approveStatus", this.approveStatus);
15308
+ },
15309
+ deep: true
15310
+ }
15311
+ },
15312
+ mounted() {
15313
+ if (this.data) {
15314
+ this.SAAS_TENANT_API = this.data.baseUrl;
15315
+ if (!this.data.baseUrl) {
15316
+ toast("缺少必填参数baseUrl");
15317
+ return;
15318
+ }
15319
+ if (!this.data.uid) {
15320
+ toast("缺少必填参数uid");
15321
+ return;
15322
+ }
15323
+ this.loadMore();
15324
+ }
15325
+ },
15326
+ methods: {
15327
+ async loadMore() {
15328
+ await this.getProjectNodes();
15329
+ await this.getInfo();
15330
+ },
15331
+ async getProjectNodes() {
15332
+ let that = this;
15333
+ projectCustomNodes(that.SAAS_TENANT_API, {
15334
+ outApprove: true,
15335
+ uid: that.data.uid,
15336
+ id: that.data.id,
15337
+ aprId: that.data.aprId
15338
+ }).then(async res => {
15339
+ if (res.status == 200 && res.result && res.result.data) {
15340
+ let approveList = res.result.data.map(async (item, index) => {
15341
+ let list = JSON.parse(JSON.stringify(item.checker.selectedPersons)) || [];
15342
+ if (list && list.length) {
15343
+ list.forEach(item => {
15344
+ if (!item.userId && item.id) item.userId = item.id;
15345
+ });
15346
+ }
15347
+ let roleList = [];
15348
+ if (item.checker.selectedTags && item.checker.selectedTags.length) {
15349
+ item.checker.selectedTags.forEach(tag => {
15350
+ roleList.push(tag.id);
15351
+ });
15352
+ }
15353
+ // 245.指定部门中带指定标签,查getPreCheckersByNode查
15354
+ if (item.checker.type == 2 || item.checker.type == 4 || item.checker.type == 5) {
15355
+ let res = await getPreCheckersByNode(that.SAAS_TENANT_API, {
15356
+ userId: that.data.uid,
15357
+ jsonNode: JSON.stringify(item)
15358
+ });
15359
+ if (res.status == 200) {
15360
+ list = res.result.data;
15361
+ }
15362
+ }
15363
+ // 3.指定标签,查询queryTSysUserRoleList
15364
+ if (item.checker.type == 3 || item.type == "copy" && roleList.length) {
15365
+ let res = await queryTSysUserRoleList(that.SAAS_TENANT_API, {
15366
+ roleList
15367
+ });
15368
+ if (res.status == 200) {
15369
+ if (item.type == "copy") {
15370
+ list.push(...res.result.data);
15371
+ } else {
15372
+ list = res.result.data;
15373
+ }
15374
+ }
15375
+ }
15376
+ // 9.部门标签自选,查getDeptRoleUsers接口选,10仅展示
15377
+ if (item.checker.type == 9 || item.checker.type == 10) {
15378
+ let res = await getDeptRoleUsers(that.SAAS_TENANT_API, {
15379
+ uid: that.data.uid,
15380
+ roleList,
15381
+ searchUp: item.checker.searchUp,
15382
+ sameLevel: item.checker.sameLevel,
15383
+ sameLevelChildren: item.checker.sameLevelChildren,
15384
+ firstSelfDept: item.checker.firstSelfDept
15385
+ });
15386
+ if (res.status == 200) {
15387
+ list = res.result.data;
15388
+ }
15389
+ }
15390
+ // 789选人节点,默认审批人为否,不回填
15391
+ if ([7, 8, 9].includes(item.checker.type) && item.checker.defaultApprover != 1) {
15392
+ list = [];
15393
+ }
15394
+ return {
15395
+ id: item.id,
15396
+ type: item.type,
15397
+ name: item.name,
15398
+ checker: item.checker,
15399
+ checkertype: item.checker.type,
15400
+ selectPersonType: item.checker.selectPersonType,
15401
+ defaultApprover: item.checker.defaultApprover,
15402
+ editApprover: item.checker.editApprover,
15403
+ selectedPersons: item.checker.selectedPersons,
15404
+ isOptional: item.checker.isOptional,
15405
+ list: this.uniqueByUserId(list)
15406
+ };
15407
+ });
15408
+ Promise.all(approveList).then(res => {
15409
+ this.approveList = res;
15410
+ });
15411
+ } else {
15412
+ toast.fail("获取审批流程失败");
15413
+ this.$emit("fail");
15414
+ }
15415
+ }).catch(err => {
15416
+ toast.fail("获取审批流程失败");
15417
+ this.$emit("fail");
15418
+ });
15419
+ },
15420
+ ableEdit(step) {
15421
+ var me = this;
15422
+ if (me.approveList && me.approveList.length > 0) {
15423
+ var node = me.approveList.find(item => item.id == step.nodeId);
15424
+ if ([7, 8, 9].includes(node.checkertype) && node.editApprover == 1 || node.type == "copy" && node.isOptional == 1) {
15425
+ return true;
15426
+ } else {
15427
+ return false;
15428
+ }
15429
+ } else {
15430
+ toast.fail("获取审批流程失败");
15431
+ }
15432
+ },
15433
+ addApprover(step) {
15434
+ let me = this;
15435
+ if (me.approveList && me.approveList.length > 0) {
15436
+ var node = me.approveList.find(item => item.id == step.nodeId);
15437
+ let defaultKey = [];
15438
+ if (step.approverDtoList.length) {
15439
+ defaultKey = node.list.map(item => {
15440
+ return {
15441
+ key: item.userId,
15442
+ name: item.name,
15443
+ type: "USER"
15444
+ };
15445
+ });
15446
+ }
15447
+ let myTree2 = new approveMobileTree({
15448
+ unitType: "user",
15449
+ target: "all",
15450
+ mode: node.selectPersonType == 1 ? "single" : "multi",
15451
+ defaultKey,
15452
+ BaseUrl: me.data.treeUrl,
15453
+ token: (me.data.token || sessionStorage.getItem("token")).replace(/[\r\n]/g, ""),
15454
+ appCode: me.data.appCode || sessionStorage.getItem("appCode"),
15455
+ tenant: me.data.tenant || sessionStorage.getItem("tenant")
15456
+ });
15457
+ myTree2.init();
15458
+ myTree2.submitTree(function (res) {
15459
+ let i = 0;
15460
+ let userList = res.map(item => {
15461
+ return {
15462
+ userId: item.key,
15463
+ name: item.name,
15464
+ departmentId: item.parentId,
15465
+ departmentname: item.description,
15466
+ approveStatus: null,
15467
+ approveTime: null,
15468
+ id: null,
15469
+ isApprove: "0",
15470
+ isCurent: "0",
15471
+ list: null,
15472
+ nodeId: node.id,
15473
+ nodeName: node.name,
15474
+ nodeType: node.type,
15475
+ recordId: step.recordId,
15476
+ result: null,
15477
+ signType: null,
15478
+ status: "1",
15479
+ stepId: null,
15480
+ userDeptDto: null,
15481
+ sort: i++
15482
+ };
15483
+ });
15484
+ console.log("userList", userList);
15485
+ //添加人员到节点中
15486
+ step.approverDtoList = userList;
15487
+ //删除相同节点人员
15488
+ me.optionalList = me.optionalList.filter(it => !it.nodeId == node.id);
15489
+ //保存修改人员
15490
+ me.optionalList = me.optionalList.concat(userList);
15491
+ });
15492
+ } else {
15493
+ toast.fail("获取审批流程失败");
15494
+ }
15495
+ },
15496
+ async getInfo() {
15497
+ var that = this;
15498
+ let formDataList = [{
15499
+ lable: "部门主要负责人",
15500
+ value: that.data.mainDeptLeader ? "是" : "否"
15501
+ }];
15502
+ projectCustomNodesForApproveList(that.SAAS_TENANT_API, {
15503
+ outApprove: true,
15504
+ uid: that.data.uid,
15505
+ id: that.data.id,
15506
+ aprId: that.data.aprId,
15507
+ formDataList: formDataList
15508
+ }).then(res => {
15509
+ if (res.status == 200) {
15510
+ // console.log("data", res.result.data);
15511
+ let approvedflag = false;
15512
+ res.result.data.forEach(item => {
15513
+ if (approvedflag) {
15514
+ item.unApprovedFlag = true;
15515
+ } else {
15516
+ item.unApprovedFlag = false;
15517
+ }
15518
+ if (item.isCurent == "1") {
15519
+ approvedflag = true;
15520
+ }
15521
+ });
15522
+ this.LrecordSteps = res.result.data.reverse();
15523
+ this.active = res.result.data.findIndex(item => {
15524
+ return item.isCurent == "1";
15525
+ }) + 1;
15526
+ // signType=1或签 2会签 3依签名
15527
+ let SD = res.result.data ? res.result.data[this.active - 1] : "";
15528
+ if (SD && (SD.signType == "1" || SD.signType == "2")) {
15529
+ that.approveStatus = SD.approverDtoList.some(item => {
15530
+ if (item.userId == that.data.uid && SD.operateStatus == "1" && (item.approveStatus == "1" || item.approveStatus == null)) {
15531
+ return true;
15532
+ }
15533
+ });
15534
+ console.log("或签会签权限--" + that.approveStatus);
15535
+ }
15536
+ if (SD && SD.signType == "3") {
15537
+ let sdData = SD.approverDtoList.slice().reverse();
15538
+ let index = sdData.findIndex(item => {
15539
+ return item.isApprove != "1";
15540
+ });
15541
+ console.log(index);
15542
+ if (index > -1) {
15543
+ console.log("审批人是-------" + sdData[index].name);
15544
+ if (sdData[index].userId != that.data.uid || sdData[index].approveStatus != "1" && sdData[index].approveStatus != null) {
15545
+ that.approveStatus = false;
15546
+ }
15547
+ }
15548
+ console.log("依次审批权限--" + that.approveStatus);
15532
15549
  }
15533
- if (treeData.type != 'USER') {
15534
- domDiv += "<span class='SelectedName' parentId=" + treeData.key + " title=" + treeData.name + " onclick='approveMobileTree.prototype.showHandler(" + JSON.stringify(treeData) + ")'>" + treeData.name + "</span>";
15535
- } else {
15536
- domDiv += "<span class='SelectedName' style='line-height: 22px' parentId=" + treeData.key + " title=" + treeData.name + ">" + treeData.name + " <br><span style='font-size: 13px;color: #999797'>" + treeData.description + "</span></span>";
15550
+ }
15551
+ });
15552
+ queryCheckItemToMe(that.SAAS_TENANT_API, {
15553
+ uid: that.data.uid,
15554
+ id: that.data.id
15555
+ }).then(res => {
15556
+ if (res.status == 200) {
15557
+ that.TrecordSteps = res.result.data;
15558
+ // 1、不是审批状态不可操作
15559
+ if (that.TrecordSteps.approveStatus != "1") {
15560
+ that.approveStatus = false;
15537
15561
  }
15538
- domDiv += "</li>";
15539
- domDiv += "</ul>";
15540
15562
  }
15541
- $("#treeContentSearch").html(domDiv);
15542
- var defaultKey = approveMobileTree.prototype.nodesMap;
15543
- $(".mokeinput").map(item => {
15544
- defaultKey.map(item2 => {
15545
- if (JSON.parse($(".mokeinput")[item].getAttribute('selsectData')).key == item2.key) {
15546
- $($(".mokeinput")[item]).addClass('inputCheck');
15547
- }
15563
+ console.log("that.approveStatus", that.approveStatus);
15564
+ });
15565
+ },
15566
+ uniqueByUserId(array) {
15567
+ return array.filter((item, index, arr) => {
15568
+ return arr.findIndex(it => it.userId === item.userId) === index;
15569
+ });
15570
+ },
15571
+ formateToHour: formateToHour,
15572
+ agre_vis() {
15573
+ //同意
15574
+ function agree(parameter) {
15575
+ return service({
15576
+ url: that.SAAS_TENANT_API + "/work/agree",
15577
+ method: "POST",
15578
+ data: parameter
15579
+ });
15580
+ }
15581
+ var that = this;
15582
+ //校验节点是否存在审批人
15583
+ let stepApproverFlag = false;
15584
+ let stepApproverMsg = "";
15585
+ that.LrecordSteps.forEach(step => {
15586
+ if (!step.approverDtoList || step.approverDtoList.length == 0) {
15587
+ stepApproverFlag = true;
15588
+ stepApproverMsg = step.nodeName + "节点审批人未配置";
15589
+ }
15590
+ });
15591
+ if (stepApproverFlag) {
15592
+ toast.fail(stepApproverMsg);
15593
+ return;
15594
+ }
15595
+ this.$emit("before", {
15596
+ msg: "同意审批操作,回调参数返回ture继续执行,返回false终止操作",
15597
+ type: "beforeAgree"
15598
+ }, res => {
15599
+ //回调函数的方法体.处理自己的业务.
15600
+ console.log(res);
15601
+ let optional = res.optional && res.optional.length > 0 ? res.optional : that.optionalList && that.optionalList.length > 0 ? JSON.stringify(that.optionalList) : null;
15602
+ let parm = Object.assign({
15603
+ uid: this.data.uid,
15604
+ id: this.data.id,
15605
+ result: this.input == "" ? "同意" : this.input,
15606
+ sign: "",
15607
+ optional: optional
15608
+ }, res);
15609
+ console.log(parm);
15610
+ if (!that.ifBtn) return;
15611
+ that.ifBtn = false;
15612
+ agree(parm).then(res => {
15613
+ that.ifBtn = true;
15614
+ that.$emit("after", {
15615
+ res,
15616
+ type: "afterAgree"
15548
15617
  });
15549
15618
  });
15619
+ });
15620
+ },
15621
+ reject_vis() {
15622
+ var that = this;
15623
+ console.log("执行拒绝");
15624
+ function reject(parameter) {
15625
+ return service({
15626
+ url: that.SAAS_TENANT_API + "/work/reject",
15627
+ method: "POST",
15628
+ data: parameter
15629
+ });
15550
15630
  }
15551
- });
15631
+ if (that.input == "") {
15632
+ toast.fail("未输入审批意见");
15633
+ return;
15634
+ }
15635
+ dialog.confirm({
15636
+ title: "提示",
15637
+ message: "是否驳回"
15638
+ }).then(() => {
15639
+ that.$emit("before", {
15640
+ msg: "是否执行驳回审批操作,回调参数返回ture继续执行,返回false终止操作",
15641
+ type: "beforeReject"
15642
+ }, res => {
15643
+ if (res) {
15644
+ toast.loading({
15645
+ duration: 0,
15646
+ // 持续展示 toast
15647
+ forbidClick: true
15648
+ });
15649
+ let parm = Object.assign({
15650
+ uid: that.data.uid,
15651
+ id: that.data.id,
15652
+ result: that.input
15653
+ }, res);
15654
+ reject(parm).then(res => {
15655
+ toast.clear();
15656
+ that.$emit("after", {
15657
+ res,
15658
+ type: "afterReject"
15659
+ });
15660
+ });
15661
+ } else {
15662
+ console.log("驳回操作前回调没有继续执行,回调参数返回ture继续执行,返回false终止操作");
15663
+ }
15664
+ });
15665
+ }).catch(() => {
15666
+ // on cancel
15667
+ });
15668
+ }
15552
15669
  }
15670
+ });
15671
+ ;// CONCATENATED MODULE: ./src/components/approveLineAll.vue?vue&type=script&lang=js
15672
+ /* harmony default export */ var components_approveLineAllvue_type_script_lang_js = (approveLineAllvue_type_script_lang_js);
15673
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/approveLineAll.vue?vue&type=style&index=0&id=44110ba3&prod&scoped=true&lang=css
15674
+ // extracted by mini-css-extract-plugin
15675
+
15676
+ ;// CONCATENATED MODULE: ./src/components/approveLineAll.vue?vue&type=style&index=0&id=44110ba3&prod&scoped=true&lang=css
15677
+
15678
+ ;// CONCATENATED MODULE: ./src/components/approveLineAll.vue
15679
+
15680
+
15681
+
15682
+ ;
15683
+
15684
+
15685
+ /* normalize component */
15686
+
15687
+ var approveLineAll_component = normalizeComponent(
15688
+ components_approveLineAllvue_type_script_lang_js,
15689
+ approveLineAllvue_type_template_id_44110ba3_scoped_true_render,
15690
+ approveLineAllvue_type_template_id_44110ba3_scoped_true_staticRenderFns,
15691
+ false,
15692
+ null,
15693
+ "44110ba3",
15694
+ null
15695
+
15696
+ )
15697
+
15698
+ /* harmony default export */ var approveLineAll = (approveLineAll_component.exports);
15699
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/selectLine.vue?vue&type=template&id=fb584a8c
15700
+ var selectLinevue_type_template_id_fb584a8c_render = function render() {
15701
+ var _vm = this,
15702
+ _c = _vm._self._c;
15703
+ return _c('div', {
15704
+ attrs: {
15705
+ "id": "selectLine"
15706
+ }
15707
+ }, [_c('van-steps', {
15708
+ staticStyle: {
15709
+ "padding-bottom": "130px"
15710
+ },
15711
+ attrs: {
15712
+ "direction": "vertical",
15713
+ "active": 0
15714
+ }
15715
+ }, _vm._l(_vm.approveList, function (node, index) {
15716
+ return _c('van-step', {
15717
+ key: node.id
15718
+ }, [_c('p', {
15719
+ staticClass: "per_p1"
15720
+ }, [_vm._v(" " + _vm._s(node.name) + " ")]), _c('div', [_vm._l(node.list, function (per) {
15721
+ return _c('van-button', {
15722
+ key: per.id,
15723
+ staticClass: "per_name",
15724
+ attrs: {
15725
+ "type": "primary",
15726
+ "size": "mini"
15727
+ },
15728
+ on: {
15729
+ "click": function ($event) {
15730
+ return _vm.deleteApprover(node, per.userId);
15731
+ }
15732
+ }
15733
+ }, [_vm._v(_vm._s(per.name) + " "), _vm.ableEdit(node) ? _c('van-icon', {
15734
+ staticClass: "badge-icon",
15735
+ attrs: {
15736
+ "name": "cross"
15737
+ }
15738
+ }) : _vm._e()], 1);
15739
+ }), _vm.ableEdit(node) ? _c('van-button', {
15740
+ attrs: {
15741
+ "icon": "plus",
15742
+ "size": "mini",
15743
+ "plain": ""
15744
+ },
15745
+ on: {
15746
+ "click": function ($event) {
15747
+ return _vm.addApprover(node);
15748
+ }
15749
+ }
15750
+ }) : _vm._e()], 2)]);
15751
+ }), 1), !_vm.data.readonly && _vm.showBtn ? _c('div', {
15752
+ staticClass: "fixedBottom"
15753
+ }, [_c('van-row', {
15754
+ staticStyle: {
15755
+ "padding": "0px 15px"
15756
+ }
15757
+ }, [_c('van-col', {
15758
+ staticStyle: {
15759
+ "display": "flex",
15760
+ "margin": "10px auto"
15761
+ },
15762
+ attrs: {
15763
+ "span": "24"
15764
+ }
15765
+ }, [_c('van-button', {
15766
+ attrs: {
15767
+ "type": "primary",
15768
+ "block": ""
15769
+ },
15770
+ on: {
15771
+ "click": _vm.submit
15772
+ }
15773
+ }, [_vm._v(" 提交 ")])], 1)], 1)], 1) : _vm._e()], 1);
15553
15774
  };
15775
+ var selectLinevue_type_template_id_fb584a8c_staticRenderFns = [];
15554
15776
 
15555
- // export default approveMobileTree
15556
15777
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/selectLine.vue?vue&type=script&lang=js
15557
15778
 
15558
15779