| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- <template>
- <div>
- <div class="page-header">
- <h4 style="display: inline-block">
- {{ $t("lang.workflowUserDefine.approve") }}
- </h4>
- </div>
- <div>
- <div>
- <div
- v-for="userSelectDefine in userSelectDefineList"
- :key="userSelectDefine.nodeId"
- >
- <UserSelectDefine
- ref="userSelectDefine"
- :user-select-define="userSelectDefine"
- />
- </div>
- <div>
- <div>{{ $t("lang.workflowUserDefine.copyUser") }}</div>
- <a-select
- v-model:value="copyUserIds"
- mode="multiple"
- style="width: 100%"
- :options="copyUserList"
- :filter-option="false"
- :not-found-content="fetching ? undefined : null"
- :field-names="{ label: 'text', value: 'id' }"
- @search="handleChange"
- >
- <template v-if="fetching" #notFoundContent>
- <a-spin size="small" />
- </template>
- </a-select>
- </div>
- <div style="margin-top: 10px">
- <a-button type="primary" @click="apply">
- {{ $t("lang.workflowUserDefine.submit") }}
- </a-button>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- import Common from '../common/Common.js';
- import WorkflowResource from '../api/workflow/WorkflowResource.js';
- import UserSelectDefine from './UserSelectDefine.vue';
- import vSelect from 'vue-select';
- import 'vue-select/dist/vue-select.css';
- import UserResource from '../api/base/UserResource.js';
- export default {
- components: {
-
- UserSelectDefine,
- vSelect,
- },
- // 工作流定义Id
- props: {
- workFlow: {
- type: Object,
- default: function(){
- return null;
- },
- },
- modelData: {
- type: Object,
- default: function(){
- return null;
- },
- },
- },
- emits: ['apply'],
- data: function () {
- this.Common = Common;
- return {
- userSelectDefineList: [],
- copyUsers: [],
- whereClause: 'organization.id IN (:EnvOrganizationIdList)',
- // 抄送人Id
- copyUserIds: [],
- copyUserList: [],
- fetching: false,
- };
- },
- mounted: function () {
- var _self = this;
- _self.calculateUserSelect();
- _self.listInGroupCompanyByCondition(null);
- },
- methods: {
- /**
- * 审批
- * @return {void}
- */
- apply: function () {
- this.$emit('apply');
- },
- handleChange: Common.debounce(function (value) {
- this.copyUserList = [];
- this.fetching = true;
- this.listInGroupCompanyByCondition(value);
- },500),
- /**
- * 计算哪些用户选择项可以执行
- */
- calculateUserSelect: function () {
- let _self = this;
- const userSelectCalculateRequest = {
- workflowId: this.workFlow.id,
- modelData: this.modelData,
- };
- WorkflowResource.calculateUserSelect(userSelectCalculateRequest).then(
- successData => {
- if (successData.errorCode == 0 && successData.datas == null) {
- _self.userSelectDefineList.splice(
- 0,
- _self.userSelectDefineList.length,
- );
- } else if (successData.errorCode == 0 && successData.datas != null){
- successData.datas.forEach(function (item) {
- item.editable = true;
- });
- _self.userSelectDefineList = successData.datas;
- }
- },
- errorData => {
- Common.processException(errorData);
- },
- );
- },
- /**
- * 获取审批人的数据
- */
- getData: function () {
- let param = {
- userSelectDtos: null,
- copyUsers: null,
- };
- let userSelectDtos = [];
- let userSelectDefineList = this.$refs.userSelectDefine;
- if (userSelectDefineList != null && userSelectDefineList.length > 0) {
- for (let i = 0; i < userSelectDefineList.length; i++) {
- let userTaskDto = userSelectDefineList[i].getData();
- userSelectDtos.push(userTaskDto);
- }
- param.userSelectDtos = userSelectDtos;
- }
- if (Array.isArray(this.copyUserIds)) {
- param.copyUsers = this.copyUserIds;
- } else {
- param.copyUsers = [this.copyUserIds];
- }
- return param;
- },
- /**
- * 根据姓名获取抄送人用户集合
- */
- listInGroupCompanyByCondition: function (search) {
- let _self = this;
- const searchQueryParam = {
- range: {
- start: 0,
- length: 1000,
- },
- conditional: search,
- };
- //修复审批节点选择人员显示文件编码bug
- var selectList = [];
- if (
- this.copyUserIds != undefined &&
- this.copyUserList != undefined &&
- this.copyUserList.length > 0 &&
- this.copyUserIds.length > 0
- ) {
- this.copyUserList.forEach(function (value, index) {
- var id = value.id;
- _self.copyUserIds.forEach(function (item) {
- if (item == id) {
- selectList.push(value);
- }
- });
- });
- }
- UserResource.listInGroupCompanyByCondition(searchQueryParam).then(
- successData => {
- if (successData != null && successData.resultList != null) {
- successData.resultList.forEach(function (user) {
- user.text = user.name + '(' + user.no + ')' + '(';
- if(user.organizations != null && user.organizations.length > 0){
- let isFirst = true;
- user.organizations.forEach(item => {
- if(isFirst === true){
- user.text += item.organizationName;
- isFirst = false;
- }else{
- user.text += (',' + item.organizationName);
- }
- });
- }
- user.text += ')';
- });
- _self.copyUserList = successData.resultList;
- } else {
- _self.copyUserList = [];
- }
- this.fetching = false;
- },
- errorData => {
- this.fetching = false;
- Common.processException(errorData);
- },
- );
- },
- },
- };
- </script>
- <style scoped>
- </style>
|