saas-tenant-approve-app 0.2.42 → 0.2.43
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.
- package/lib/tips.common.js +88 -26
- package/lib/tips.common.js.map +1 -1
- package/lib/tips.umd.js +88 -26
- package/lib/tips.umd.js.map +1 -1
- package/lib/tips.umd.min.js +2 -2
- package/lib/tips.umd.min.js.map +1 -1
- package/package.json +2 -1
- package/src/api/index.js +4 -0
- package/src/components/mobiletree/tcMobileTree.js +8 -1
- package/src/components/selectLine.vue +47 -16
- package/src/utils/selectionScope.js +17 -0
- package/babel.config.js +0 -5
- package/img.png +0 -0
- package/img_1.png +0 -0
- package/jsconfig.json +0 -19
- package/saas-tenant-approve-app.iml +0 -9
- package/vue.config.js +0 -6
package/lib/tips.common.js
CHANGED
|
@@ -14742,6 +14742,13 @@ function projectCustomNodes(baseurl, data) {
|
|
|
14742
14742
|
data
|
|
14743
14743
|
});
|
|
14744
14744
|
}
|
|
14745
|
+
function queryOptionalScopeUsers(baseurl, data) {
|
|
14746
|
+
return service({
|
|
14747
|
+
url: baseurl + '/work/queryOptionalScopeUsers',
|
|
14748
|
+
method: 'POST',
|
|
14749
|
+
data
|
|
14750
|
+
});
|
|
14751
|
+
}
|
|
14745
14752
|
// 指定标签查询人员
|
|
14746
14753
|
function queryTSysUserRoleList(baseurl, data) {
|
|
14747
14754
|
return service({
|
|
@@ -14896,6 +14903,9 @@ approveMobileTree.prototype = {
|
|
|
14896
14903
|
roterData: [],
|
|
14897
14904
|
allData: [],
|
|
14898
14905
|
init: function () {
|
|
14906
|
+
// Inline tree handlers must use the constructor that opened this picker.
|
|
14907
|
+
approveMobileTree.prototype.previousGlobalConstructor = window.approveMobileTree;
|
|
14908
|
+
window.approveMobileTree = approveMobileTree;
|
|
14899
14909
|
approveMobileTree.prototype.options = this.options;
|
|
14900
14910
|
approveMobileTree.prototype.nodesMap = this.options.defaultKey ? this.options.defaultKey : [];
|
|
14901
14911
|
|
|
@@ -15130,6 +15140,10 @@ approveMobileTree.prototype = {
|
|
|
15130
15140
|
//取消组织树
|
|
15131
15141
|
cancleTree: function () {
|
|
15132
15142
|
$(".deptUserTree").remove();
|
|
15143
|
+
if (window.approveMobileTree === approveMobileTree) {
|
|
15144
|
+
window.approveMobileTree = approveMobileTree.prototype.previousGlobalConstructor || approveMobileTree;
|
|
15145
|
+
}
|
|
15146
|
+
delete approveMobileTree.prototype.previousGlobalConstructor;
|
|
15133
15147
|
},
|
|
15134
15148
|
showCheck: function () {
|
|
15135
15149
|
var defaultKey = approveMobileTree.prototype.nodesMap;
|
|
@@ -15744,8 +15758,8 @@ var approveLineAll_component = normalizeComponent(
|
|
|
15744
15758
|
)
|
|
15745
15759
|
|
|
15746
15760
|
/* harmony default export */ var approveLineAll = (approveLineAll_component.exports);
|
|
15747
|
-
;// 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=
|
|
15748
|
-
var
|
|
15761
|
+
;// 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=59bf336a
|
|
15762
|
+
var selectLinevue_type_template_id_59bf336a_render = function render() {
|
|
15749
15763
|
var _vm = this,
|
|
15750
15764
|
_c = _vm._self._c;
|
|
15751
15765
|
return _c('div', {
|
|
@@ -15767,7 +15781,7 @@ var selectLinevue_type_template_id_9eacb8b4_render = function render() {
|
|
|
15767
15781
|
staticClass: "per_p1"
|
|
15768
15782
|
}, [_vm._v(" " + _vm._s(node.name) + " ")]), _c('div', [_vm._l(node.list, function (per) {
|
|
15769
15783
|
return _c('van-button', {
|
|
15770
|
-
key: per.
|
|
15784
|
+
key: per.userId,
|
|
15771
15785
|
staticClass: "per_name",
|
|
15772
15786
|
attrs: {
|
|
15773
15787
|
"type": "primary",
|
|
@@ -15844,7 +15858,7 @@ var selectLinevue_type_template_id_9eacb8b4_render = function render() {
|
|
|
15844
15858
|
}
|
|
15845
15859
|
}, [_c('van-cell-group', _vm._l(_vm.personList, function (item, index) {
|
|
15846
15860
|
return _c('van-cell', {
|
|
15847
|
-
key: item.
|
|
15861
|
+
key: item.userId,
|
|
15848
15862
|
attrs: {
|
|
15849
15863
|
"title": item.name,
|
|
15850
15864
|
"clickable": ""
|
|
@@ -15876,7 +15890,7 @@ var selectLinevue_type_template_id_9eacb8b4_render = function render() {
|
|
|
15876
15890
|
}
|
|
15877
15891
|
}, [_c('van-cell-group', _vm._l(_vm.personList, function (item, index) {
|
|
15878
15892
|
return _c('van-cell', {
|
|
15879
|
-
key: item.
|
|
15893
|
+
key: item.userId,
|
|
15880
15894
|
attrs: {
|
|
15881
15895
|
"clickable": "",
|
|
15882
15896
|
"title": item.name
|
|
@@ -15902,13 +15916,29 @@ var selectLinevue_type_template_id_9eacb8b4_render = function render() {
|
|
|
15902
15916
|
});
|
|
15903
15917
|
}), 1)], 1)], 1)])], 1);
|
|
15904
15918
|
};
|
|
15905
|
-
var
|
|
15906
|
-
|
|
15919
|
+
var selectLinevue_type_template_id_59bf336a_staticRenderFns = [];
|
|
15920
|
+
|
|
15921
|
+
;// CONCATENATED MODULE: ./src/utils/selectionScope.js
|
|
15922
|
+
const isCopyScope = node => node && node.type === 'copy' && node.checker && String(node.checker.isOptional) === '1' && String(node.checker.selectArea) === '2' && (Number(node.checker.scopeVersion) === 1 || (node.checker.selectedDepts || []).length > 0);
|
|
15923
|
+
const isScopedSelection = node => isCopyScope(node) || node && node.type === 'check' && node.checker && [7, 8].includes(Number(node.checker.type)) && String(node.checker.selectArea) === '2' && (Number(node.checker.scopeVersion) === 1 || (node.checker.selectedDepts || []).length > 0);
|
|
15924
|
+
function normalizeCandidates(people) {
|
|
15925
|
+
const unique = new Map();
|
|
15926
|
+
for (const person of people || []) {
|
|
15927
|
+
if (!person || String(person.type) === '2') continue;
|
|
15928
|
+
const userId = person.userId || person.id;
|
|
15929
|
+
if (userId) unique.set(String(userId), {
|
|
15930
|
+
userId: String(userId),
|
|
15931
|
+
name: person.name
|
|
15932
|
+
});
|
|
15933
|
+
}
|
|
15934
|
+
return [...unique.values()];
|
|
15935
|
+
}
|
|
15907
15936
|
;// 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
|
|
15908
15937
|
|
|
15909
15938
|
|
|
15910
15939
|
|
|
15911
15940
|
|
|
15941
|
+
|
|
15912
15942
|
/* harmony default export */ var selectLinevue_type_script_lang_js = ({
|
|
15913
15943
|
name: "SelectLine",
|
|
15914
15944
|
props: {
|
|
@@ -15937,7 +15967,8 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
15937
15967
|
showBtn: false,
|
|
15938
15968
|
showdialog: false,
|
|
15939
15969
|
selectPersonType: 1,
|
|
15940
|
-
preNode: null
|
|
15970
|
+
preNode: null,
|
|
15971
|
+
scopeLoading: false
|
|
15941
15972
|
};
|
|
15942
15973
|
},
|
|
15943
15974
|
mounted() {
|
|
@@ -16039,6 +16070,8 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16039
16070
|
roleList.push(tag.id);
|
|
16040
16071
|
});
|
|
16041
16072
|
}
|
|
16073
|
+
const copyRoleDefaults = isCopyScope(item) && item.checker.defaultApprover == 1 && roleList.length > 0;
|
|
16074
|
+
let scopedRoleDefaults = [];
|
|
16042
16075
|
// 245.指定部门中带指定标签,查getPreCheckersByNode查
|
|
16043
16076
|
if (item.checker.type == 2 || item.checker.type == 4 || item.checker.type == 5) {
|
|
16044
16077
|
let res = await getPreCheckersByNode(that.SAAS_TENANT_API, {
|
|
@@ -16063,7 +16096,7 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16063
16096
|
}
|
|
16064
16097
|
}
|
|
16065
16098
|
// 9.部门标签自选,查getDeptRoleUsers接口选,10仅展示
|
|
16066
|
-
if (item.checker.type == 9 || item.checker.type == 10 || item.checker.type == 11 || item.type == "copy" && item.checker.isOptional && item.checker.isOptional == '1') {
|
|
16099
|
+
if (item.checker.type == 9 || item.checker.type == 10 || item.checker.type == 11 || copyRoleDefaults || item.type == "copy" && item.checker.isOptional && item.checker.isOptional == '1' && !isCopyScope(item)) {
|
|
16067
16100
|
let res = await getDeptRoleUsers(that.SAAS_TENANT_API, {
|
|
16068
16101
|
uid: that.data.uid,
|
|
16069
16102
|
roleList,
|
|
@@ -16074,12 +16107,18 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16074
16107
|
});
|
|
16075
16108
|
if (res.status == 200) {
|
|
16076
16109
|
list = res.result.data;
|
|
16110
|
+
if (copyRoleDefaults) {
|
|
16111
|
+
const allowed = new Set(normalizeCandidates(item.checker.selectedPersons).map(person => person.userId));
|
|
16112
|
+
scopedRoleDefaults = normalizeCandidates(list).filter(person => allowed.has(person.userId));
|
|
16113
|
+
}
|
|
16077
16114
|
}
|
|
16078
16115
|
}
|
|
16079
16116
|
// 789选人节点,默认审批人为否,不回填
|
|
16080
16117
|
if (([7, 8, 9].includes(item.checker.type) || item.type == "copy" && item.checker.isOptional && item.checker.isOptional == '1') && item.checker.defaultApprover != 1) {
|
|
16081
16118
|
list = [];
|
|
16082
16119
|
}
|
|
16120
|
+
// Only department role holders inside the configured range may be preselected.
|
|
16121
|
+
if (isCopyScope(item)) list = scopedRoleDefaults;
|
|
16083
16122
|
return {
|
|
16084
16123
|
id: item.id,
|
|
16085
16124
|
type: item.type,
|
|
@@ -16118,21 +16157,39 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16118
16157
|
return false;
|
|
16119
16158
|
}
|
|
16120
16159
|
},
|
|
16121
|
-
addApprover(node) {
|
|
16160
|
+
async addApprover(node) {
|
|
16122
16161
|
let me = this;
|
|
16123
|
-
|
|
16124
|
-
|
|
16125
|
-
|
|
16162
|
+
const scoped = isScopedSelection(node);
|
|
16163
|
+
if (me.scopeLoading) return;
|
|
16164
|
+
if (scoped || (node.checker.type == 7 || node.checker.type == 8) && node.checker.selectArea == 2 && node.checker.selectedPersons && node.checker.selectedPersons.length > 0) {
|
|
16165
|
+
let candidates = normalizeCandidates(node.checker.selectedPersons);
|
|
16166
|
+
if (scoped && (me.data.aprId || me.data.id)) {
|
|
16167
|
+
me.scopeLoading = true;
|
|
16168
|
+
try {
|
|
16169
|
+
const response = await queryOptionalScopeUsers(me.SAAS_TENANT_API, {
|
|
16170
|
+
aprId: me.data.aprId,
|
|
16171
|
+
recordId: me.data.id,
|
|
16172
|
+
nodeId: node.id
|
|
16173
|
+
});
|
|
16174
|
+
if (Number(response.status) !== 200 || !Array.isArray(response.result && response.result.data)) throw new Error(response.message || '读取可选范围失败,请重试');
|
|
16175
|
+
candidates = normalizeCandidates(response.result.data);
|
|
16176
|
+
} catch (error) {
|
|
16177
|
+
toast.fail(error.message || '读取可选范围失败,请重试');
|
|
16178
|
+
return;
|
|
16179
|
+
} finally {
|
|
16180
|
+
me.scopeLoading = false;
|
|
16181
|
+
}
|
|
16182
|
+
}
|
|
16183
|
+
if (!candidates.length) {
|
|
16184
|
+
toast.fail('指定范围暂无可选人员,请联系流程管理员');
|
|
16185
|
+
return;
|
|
16186
|
+
}
|
|
16187
|
+
me.clearDialogData();
|
|
16126
16188
|
me.selectPersonType = node.selectPersonType;
|
|
16127
16189
|
me.preNode = node;
|
|
16128
|
-
|
|
16129
|
-
|
|
16130
|
-
|
|
16131
|
-
name: item.name,
|
|
16132
|
-
id: node.id,
|
|
16133
|
-
type: node.type
|
|
16134
|
-
});
|
|
16135
|
-
});
|
|
16190
|
+
me.personList = candidates;
|
|
16191
|
+
me.radioSelect = node.list[0] && node.list[0].userId;
|
|
16192
|
+
me.checkBoxList = node.list.map(item => item.userId);
|
|
16136
16193
|
me.showdialog = true;
|
|
16137
16194
|
} else {
|
|
16138
16195
|
let defaultKey = [];
|
|
@@ -16186,7 +16243,7 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16186
16243
|
let submitFlag = true;
|
|
16187
16244
|
let optionalUserList = [];
|
|
16188
16245
|
this.approveList.forEach(item => {
|
|
16189
|
-
if ([7, 8, 9].includes(item.checkertype)) {
|
|
16246
|
+
if (item.type === 'check' && [7, 8, 9].includes(item.checkertype)) {
|
|
16190
16247
|
if (item.list && item.list.length) {
|
|
16191
16248
|
if (item.selectPersonType == 1 && item.list.length > 1 && item.editApprover == 1) {
|
|
16192
16249
|
toast.fail(`${item.name}只可选择一个审批人`);
|
|
@@ -16207,6 +16264,11 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16207
16264
|
return;
|
|
16208
16265
|
}
|
|
16209
16266
|
} else if ('copy' == item.type) {
|
|
16267
|
+
if (isCopyScope(item) && item.selectPersonType == 1 && new Set((item.list || []).map(person => person.userId)).size > 1) {
|
|
16268
|
+
submitFlag = false;
|
|
16269
|
+
toast.fail(item.name + '只可选择一个抄送人');
|
|
16270
|
+
return;
|
|
16271
|
+
}
|
|
16210
16272
|
if (item.checker.allowISNull != '1' && (!item.list || item.list.length == 0)) {
|
|
16211
16273
|
submitFlag = false;
|
|
16212
16274
|
toast.fail(item.name + "节点不能为空");
|
|
@@ -16233,10 +16295,10 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16233
16295
|
});
|
|
16234
16296
|
;// CONCATENATED MODULE: ./src/components/selectLine.vue?vue&type=script&lang=js
|
|
16235
16297
|
/* harmony default export */ var components_selectLinevue_type_script_lang_js = (selectLinevue_type_script_lang_js);
|
|
16236
|
-
;// 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/selectLine.vue?vue&type=style&index=0&id=
|
|
16298
|
+
;// 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/selectLine.vue?vue&type=style&index=0&id=59bf336a&prod&lang=css
|
|
16237
16299
|
// extracted by mini-css-extract-plugin
|
|
16238
16300
|
|
|
16239
|
-
;// CONCATENATED MODULE: ./src/components/selectLine.vue?vue&type=style&index=0&id=
|
|
16301
|
+
;// CONCATENATED MODULE: ./src/components/selectLine.vue?vue&type=style&index=0&id=59bf336a&prod&lang=css
|
|
16240
16302
|
|
|
16241
16303
|
;// CONCATENATED MODULE: ./src/components/selectLine.vue
|
|
16242
16304
|
|
|
@@ -16249,8 +16311,8 @@ var selectLinevue_type_template_id_9eacb8b4_staticRenderFns = [];
|
|
|
16249
16311
|
|
|
16250
16312
|
var selectLine_component = normalizeComponent(
|
|
16251
16313
|
components_selectLinevue_type_script_lang_js,
|
|
16252
|
-
|
|
16253
|
-
|
|
16314
|
+
selectLinevue_type_template_id_59bf336a_render,
|
|
16315
|
+
selectLinevue_type_template_id_59bf336a_staticRenderFns,
|
|
16254
16316
|
false,
|
|
16255
16317
|
null,
|
|
16256
16318
|
null,
|