cloud-web-corejs 1.0.54-dev.47 → 1.0.54-dev.48

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.
@@ -1,85 +1,84 @@
1
1
  <template>
2
2
  <el-dialog
3
- custom-class="dialog-style list-dialog"
4
- :title="'流程单据定义('+formTemplate.formName+')'"
3
+ :title="'设置企业流程对象('+formTemplate.formName+')'"
4
+ :append-to-body="true"
5
+ :modal-append-to-body="true"
6
+ :close-on-click-modal="false"
5
7
  :visible.sync="dialogVisible"
6
- :show-close="!0"
7
- :append-to-body="false"
8
8
  :modal="false"
9
- :close-on-click-modal="!1"
10
- :close-on-press-escape="!1"
11
- :destroy-on-close="!0"
12
- width="1220px"
13
- top="5vh"
14
- v-dialog-drag
9
+ custom-class="dialog-style list-dialog dialog-checkbox pd_0"
10
+ width="1200px"
15
11
  @close="closeDialog"
12
+ v-el-drag-dialog
13
+ v-el-dialog-center
16
14
  >
17
15
  <div class="cont">
18
- <el-form ref="editForm" :model="formData">
19
- <el-table
20
- ref="singleTable"
21
- width="100%"
22
- :data="formData.wfObjConfigDTOs"
23
- height="500"
24
- border=""
25
- row-key="columnId"
26
- stripe=""
27
- >
28
- <el-table-column type="index" width="35" fixed="left"></el-table-column>
29
- <el-table-column :label="i18nt('表单类型名称')" width="250" prop="objTypeName">
30
- <template slot-scope="scope">
31
- <el-form-item :prop="'wfObjConfigDTOs.'+scope.$index+'.objTypeName'"
32
- :rules="[{ required: true, trigger: 'blur' }]">
33
- <el-input v-model="scope.row.objTypeName" clearable></el-input>
34
- </el-form-item>
35
- </template>
36
- </el-table-column>
37
- <el-table-column :label="i18nt('组织名称')" width="150" prop="companyCode">
38
- <template slot-scope="scope">
39
- {{ scope.row.companyName }}
40
- </template>
41
- </el-table-column>
42
- <el-table-column :label="i18nt('表单类型编码')" width="200" prop="objTypeCode"></el-table-column>
43
- <el-table-column :label="i18nt('服务名')" width="150" prop="serviceId"></el-table-column>
44
- <el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
45
- <template #header>
46
- <span>{{ i18nt('designer.setting.actionColumn') }}</span>
47
- <el-button :title="i18nt('designer.setting.addTableColumn')" size="mini" type="" circle=""
48
- icon="el-icon-plus" @click="openCompanyDialog"></el-button>
49
- </template>
50
- <template slot-scope="scope">
51
- <el-button
52
- :title="i18nt('designer.setting.deleteTableColumn')"
53
- size="mini"
54
- type=""
55
- circle=""
56
- icon="el-icon-minus"
57
- @click="formData.wfObjConfigDTOs.splice(scope.$index,1)"
58
- ></el-button>
59
- </template>
60
- </el-table-column>
61
-
62
- </el-table>
63
- </el-form>
64
- </div>
65
- <div class="dialog-footer" slot="footer">
66
- <el-button @click="closeDialog" class="button-sty" icon="el-icon-close">
67
- {{ i18nt('designer.hint.cancel') }}
68
- </el-button>
69
- <el-button type="primary" @click="saveData" class="button-sty" icon="el-icon-check">
70
- {{ i18nt('designer.hint.confirm') }}
71
- </el-button>
16
+ <div id="containt">
17
+ <el-form ref="editForm" :model="formData">
18
+ <div class="grid-height" style="height: 500px">
19
+ <vxe-grid
20
+ class="is-pointer"
21
+ ref="table-m1"
22
+ :data="formData.wfObjConfigDTOs"
23
+ v-bind="vxeOption"
24
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
25
+ @custom="$vxeTableUtil.customHandle"
26
+ >
27
+ <template #form>
28
+ <div class="clearfix screen-btns">
29
+ <div class="fl">
30
+ <vxe-button status="primary" class="button-sty" icon="el-icon-plus"
31
+ @click="openCompanyDialog">
32
+ 新增
33
+ </vxe-button>
34
+ <span class="button-sty tips">{{ $t1('选择表单所在的企业,填写企业对应的流程对象数据。') }}</span>
35
+ </div>
36
+ </div>
37
+ </template>
38
+ <template #objTypeName="{row,rowIndex}">
39
+ <el-form-item :prop="'wfObjConfigDTOs.'+rowIndex+'.objTypeName'"
40
+ :rules="[{ required: true, trigger: 'blur' }]">
41
+ <el-input v-model="row.objTypeName" clearable></el-input>
42
+ </el-form-item>
43
+ </template>
44
+ <template #operate="{row}">
45
+ <a
46
+ href="javascript:void(0);"
47
+ class="a-link"
48
+ @click="openEditDialog(row.id)"
49
+ >
50
+ <el-tooltip :enterable="false" effect="dark" :content="$t2('查看','common.view')" placement="top"
51
+ popper-class="tooltip-skin">
52
+ <i class="el-icon-edit"/>
53
+ </el-tooltip>
54
+ </a>
55
+ </template>
56
+ </vxe-grid>
57
+ </div>
58
+ </el-form>
59
+ </div>
72
60
  </div>
61
+ <span slot="footer" class="dialog-footer">
62
+ <el-button type="primary" plain class="button-sty" @click="closeDialog">
63
+ <i class="el-icon-close el-icon"></i>
64
+ 取 消
65
+ </el-button>
66
+ <el-button type="primary" @click="saveData" class="button-sty">
67
+ <i class="el-icon-check el-icon"></i>
68
+ 确 定
69
+ </el-button>
70
+ </span>
73
71
  <companyInfoDialog v-if="showCompanyInfoDialog" :visiable.sync="showCompanyInfoDialog"
74
- @confirm="confirmCompanyDialog" multi="false"/>
72
+ @confirm="confirmCompanyDialog" :multi="true" :allCompany="true"/>
75
73
  </el-dialog>
76
74
  </template>
77
75
  <script>
78
76
  import i18n from '../../../../components/xform/utils/i18n';
79
77
  import companyInfoDialog from "@base/views/user/company_info/dialog.vue";
78
+ import fileObjNotifyEdit from "@/components/fileLibrary/fileObjNotifyEdit.vue";
80
79
 
81
80
  export default {
82
- components: {companyInfoDialog},
81
+ components: {fileObjNotifyEdit, companyInfoDialog},
83
82
  props: ['formTemplate'],
84
83
  mixins: [i18n],
85
84
  data() {
@@ -90,7 +89,8 @@ export default {
90
89
  wfObjConfigDTOs: []
91
90
  },
92
91
  operateIndex: 0,
93
- showCompanyInfoDialog: false
92
+ showCompanyInfoDialog: false,
93
+ vxeOption: {}
94
94
  }
95
95
  },
96
96
  created() {
@@ -99,6 +99,7 @@ export default {
99
99
  mounted() {
100
100
  this.formData.objTypeCode = this.formTemplate.objTypeCode;
101
101
  this.getListByObjTypeCode();
102
+ this.initTableList()
102
103
  },
103
104
  methods: {
104
105
  getListByObjTypeCode(callback) {
@@ -166,19 +167,85 @@ export default {
166
167
  if (rows.length) {
167
168
  let row = rows[0];
168
169
  let formTemplate = this.formTemplate;
169
- if (!this.formData.wfObjConfigDTOs.find(item => item.companyCode == row.companyCode)) {
170
- let newrow = {
170
+ let companyCodes = this.formData.wfObjConfigDTOs.map(item => item.companyCode)
171
+ let items = rows.filter(item => !companyCodes.includes(item.companyCode)).map(item => {
172
+ return {
171
173
  objTypeCode: formTemplate.objTypeCode,
172
- objTypeName: formTemplate.formName,
174
+ objTypeName: formTemplate.objTypeName,
173
175
  serviceId: formTemplate.serviceName,
174
176
  url: "form",
175
177
  companyCode: row.companyCode,
176
178
  companyName: row.companyName
177
179
  }
178
- this.formData.wfObjConfigDTOs.push(newrow);
179
- }
180
+ })
181
+ this.formData.wfObjConfigDTOs.push(...items);
180
182
  }
181
- }
183
+ },
184
+ initTableList() {
185
+ let that = this;
186
+ let tableOption = {
187
+ vue: this,
188
+ tableRef: 'table-m1',
189
+ tableName: 'user_form_template-wfObj-list-m1',
190
+ config: {
191
+ height: "auto"
192
+ },
193
+ columns: [
194
+ {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
195
+ {
196
+ title: this.$t1('表单类型名称'),
197
+ field: 'objTypeName',
198
+ width: 250,
199
+ slots: {
200
+ default: "objTypeName"
201
+ }
202
+ },
203
+ {
204
+ title: this.$t1('组织名称'),
205
+ field: 'companyName',
206
+ width: 200,
207
+ },
208
+ {
209
+ title: this.$t1('表单类型编码'),
210
+ field: 'objTypeCode',
211
+ width: 200
212
+ },
213
+ {
214
+ title: this.$t1('服务名'),
215
+ field: 'serviceId',
216
+ width: 150
217
+ },
218
+ {
219
+ width: 100,
220
+ fixed: 'right',
221
+ title: '',
222
+ sortable: false,
223
+ slots: {
224
+ default: ({row, rowIndex, $table}) => {
225
+ return [
226
+ <a
227
+ href="javascript:void(0);"
228
+ class="a-link"
229
+ onClick={() => {
230
+ this.formData.wfObjConfigDTOs.splice(rowIndex, 1)
231
+ }}
232
+ >
233
+ <el-tooltip enterable={false} effect="dark" content="删除" placement="top"
234
+ popper-class="tooltip-skin">
235
+ <i class="el-icon-delete"/>
236
+ </el-tooltip>
237
+ </a>
238
+ ];
239
+ }
240
+ }
241
+ }
242
+ ]
243
+ };
244
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
245
+ this.vxeOption = opts;
246
+ });
247
+ // this.initData();
248
+ },
182
249
  }
183
250
  }
184
251
  </script>
@@ -0,0 +1,127 @@
1
+ <template>
2
+ <div id="containt">
3
+ <x-tabs ref="xTabs" v-model="activeName" class="tab-box" paneKeyName="formCode">
4
+ <el-tab-pane :label="$t1('常规')" name="first">
5
+ <editView v-if="showEdit" visible-key="showEdit" :_dataId.sync="dataId" :currentFormType="currentFormType"
6
+ :parent-target="_self" @reload="$reloadHandle"
7
+ @openDesignDialog="openDesingerDialogByChild" :readonly="true"></editView>
8
+ </el-tab-pane>
9
+ <el-tab-pane :label="$t1('列表')" name="second">
10
+ <div class="grid-height">
11
+ <vxe-grid
12
+ ref="table-m1"
13
+ v-bind="vxeOption"
14
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
15
+ @custom="$vxeTableUtil.customHandle"
16
+ >
17
+ <template #form>
18
+ <tableForm :formData.sync="formData" @searchEvent="searchEvent" @resetEvent="resetEvent">
19
+ <template #buttonLeft>
20
+ <vxe-button icon="el-icon-brush" class="button-sty" @click="openBatchWfObjConfigDialog" type="text" status="primary"
21
+ plain>{{ $t1('批量设置企业流程对象') }}
22
+ </vxe-button>
23
+ </template>
24
+ <template #buttonRight>
25
+ <vxe-button icon="el-icon-brush" class="button-sty" @click="resetEvent" type="text" status="primary"
26
+ plain>{{ $t1('重置') }}
27
+ </vxe-button>
28
+ <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
29
+ {{ $t1('搜索') }}
30
+ </vxe-button>
31
+ </template>
32
+ <template #menuKindName>
33
+ <vxe-form-item :title="$t1('表单分类') + ':'" field="menuKindName">
34
+ <template v-slot>
35
+ <el-input
36
+ class="search-input"
37
+ max="200"
38
+ v-model="formData.menuKindName"
39
+ @clear="
40
+ formData.menuKindName = null;
41
+ formData.menuKindCode = null;
42
+ "
43
+ v-el-readonly
44
+ clearable
45
+ >
46
+ <i slot="suffix" class="el-input__icon el-icon-search" @click="showMenuKindDialog=true"></i>
47
+ </el-input>
48
+ </template>
49
+ </vxe-form-item>
50
+ </template>
51
+ </tableForm>
52
+ </template>
53
+ <template #tag="{row}">
54
+ <projectTagView v-model="row.formTemplateTagDTOs" :readonly="true"></projectTagView>
55
+ </template>
56
+ </vxe-grid>
57
+ <el-drawer :title="$t1('流程模板')" :visible.sync="showItemView" :modal="false" :wrapperClosable="false"
58
+ :destroy-on-close="true" size="90%" direction="btt">
59
+ <itemList v-if="showItemView" :formTemplate="currentRow"
60
+ @openWfDesignDialog="openWfDesignDialog"></itemList>
61
+ </el-drawer>
62
+ </div>
63
+ </el-tab-pane>
64
+ <template #editTab="{tab,index,reloadTabContent}">
65
+ <el-tab-pane :key="tab.data.id" :label.sync="tab.data.formName" :name="tab.data.formCode"
66
+ :closable="true">
67
+ <editView v-if="tab.showContent" :_dataId="tab.dataId" :currentFormType="currentFormType"
68
+ :parent-target="_self"
69
+ @reload="reloadTabContent" @openDesignDialog="openDesingerDialogByChild"
70
+ :readonly="true"></editView>
71
+ </el-tab-pane>
72
+ </template>
73
+ </x-tabs>
74
+ <el-drawer :title="$t1('表单设计({formName})',{formName})" :visible.sync="showDesingerDialog" :modal="false"
75
+ :destroy-on-close="true"
76
+ size="100%" direction="rtl" :before-close="closeFormDesignwinEvent" :append-to-body="false"
77
+ class="designer-drawer" :class="[isFullscreen ? 'is-fullscreen' : '']" @close="handleFormDesignClose">
78
+ <el-tabs v-model="formDesTabs" type="card" class="tab-boxOnly" :stretch="true">
79
+ <el-tab-pane :label="$t1('设计器')" name="first">
80
+ <designer ref="designer" :formCode.sync="formCode" @reflushTemplateList="reflushTemplateList"></designer>
81
+ </el-tab-pane>
82
+ <el-tab-pane :label="$t1('后端脚本')" name="second">
83
+ <formScriptList :formCode="formCode" :formTemplate="currentFormTemplate"
84
+ v-if="showFormScriptList"></formScriptList>
85
+ </el-tab-pane>
86
+ </el-tabs>
87
+ <el-button class="isFullIcon" v-if="!isFullscreen" @click="handleFullscreen">
88
+ <el-tooltip effect="dark" :content="$t1('全屏')" placement="top">
89
+ <i class="iconfont icon-quanping"></i>
90
+ </el-tooltip>
91
+
92
+ </el-button>
93
+ <el-button class="isFullIcon" v-else @click="handleFullscreen">
94
+ <el-tooltip effect="dark" :content="$t1('缩小')" placement="top">
95
+ <i class="iconfont icon-suoxiao"></i>
96
+ </el-tooltip>
97
+ </el-button>
98
+ </el-drawer>
99
+ <wfObjConfigDialog v-if="showWfObjConfigDialog" :visiable.sync="showWfObjConfigDialog"
100
+ @confirm="confirmWfObjConfigDialog" :formTemplate="formTemplate"/>
101
+ <MenuKindDialog v-if="showMenuKindDialog"
102
+ :visiable.sync="showMenuKindDialog"
103
+ @confirm="confirmInsertMenuKind"
104
+ :param="{ taType: 0 }"
105
+ :multi="false"
106
+ />
107
+
108
+ <batchWfObjConfigDialog v-if="showBatchWfObjConfigDialog" :visiable.sync="showBatchWfObjConfigDialog"
109
+ :formTemplates="formTemplates" @confirm="confirmBatchWfObjConfigDialog"></batchWfObjConfigDialog>
110
+ </div>
111
+ </template>
112
+
113
+ <script>
114
+ import mixin from "./mixins/list2";
115
+ import wfObjConfigDialog from "./wfObjConfigDialog.vue";
116
+ import MenuKindDialog from "@/views/bd/setting/menu_kind/dialog.vue";
117
+ import batchWfObjConfigDialog from "./batchWfObjConfigDialog.vue";
118
+
119
+ export default {
120
+ name: 'form_template:wf_list',
121
+ components: {MenuKindDialog, wfObjConfigDialog,batchWfObjConfigDialog},
122
+ mixins: [mixin]
123
+ }
124
+ </script>
125
+ <style scoped lang="scss">
126
+
127
+ </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <el-dialog
3
- :title="$t1('组织列表')"
3
+ :title="title || $t1('组织列表')"
4
4
  :append-to-body="true"
5
5
  :modal-append-to-body="true"
6
6
  :close-on-click-modal="falseValue"
@@ -8,6 +8,7 @@
8
8
  :modal="falseValue"
9
9
  custom-class="dialog-style list-dialog dialog-checkbox pd_0"
10
10
  width="1200px"
11
+ :before-close="handleBeforeClose"
11
12
  @close="dialogClose"
12
13
  v-el-drag-dialog
13
14
  v-el-dialog-center
@@ -64,7 +65,7 @@
64
65
  </div>
65
66
  <span slot="footer" class="dialog-footer">
66
67
  <span class="fl tips" v-if="!selectMulti">{{ $t1('注:双击确认选择(单选)') }}</span>
67
- <el-button type="primary" plain class="button-sty" @click="dialogClose">
68
+ <el-button type="primary" plain class="button-sty" @click="dialogCancel">
68
69
  <i class="el-icon-close el-icon"></i>
69
70
  {{ $t1('取 消') }}
70
71
  </el-button>
@@ -81,7 +82,7 @@ import {selectDialogMixins} from '@base/mixins/selectDialog/index.js';
81
82
 
82
83
  export default {
83
84
  name: 'company_info_dialog',
84
- props: ['visiable', 'multi', 'rows', 'param', 'firstEnabled'],
85
+ props: ['title', 'visiable', 'multi', 'rows', 'param', 'firstEnabled', 'allCompany'],
85
86
  mixins: [selectDialogMixins],
86
87
  created() {
87
88
  this.initSetting();
@@ -90,7 +91,6 @@ export default {
90
91
  this.initTableM1();
91
92
  },
92
93
  data() {
93
- var that = this;
94
94
  return {
95
95
  showDialog: true,
96
96
  falseValue: false,
@@ -102,17 +102,26 @@ export default {
102
102
  methods: {
103
103
  initTableM1() {
104
104
  let that = this;
105
+ let path = USER_PREFIX + '/user_company_info/getCurrentList';
106
+ let treeNodeUrl = USER_PREFIX + '/user_company_info/getChildren';
107
+ if (this.allCompany) {
108
+ path = USER_PREFIX + '/company_info/getRoot';
109
+ treeNodeUrl = USER_PREFIX + '/company_info/getChildren';
110
+ }
105
111
  let tableOption = {
106
112
  vue: that,
107
113
  tableRef: 'table-m1',
108
114
  tableName: 'basic_ompany_info_dialog_list',
109
- path: USER_PREFIX + '/user_company_info/getCurrentList',
110
- treeNodeUrl: USER_PREFIX + '/user_company_info/getChildren',
115
+ path: path,
116
+ treeNodeUrl: treeNodeUrl,
111
117
  treeNodeParam: function (row) {
112
- return {parentCompanyCode: row.companyCode};
118
+ return {enabled: true, parentCompanyCode: row.companyCode};
113
119
  },
114
120
  param: () => {
115
- return this.formData;
121
+ return {
122
+ enabled: true,
123
+ ...this.formData
124
+ }
116
125
  },
117
126
  columns: [
118
127
  {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},