centaline-data-driven-v3 0.1.28 → 0.1.30

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven-v3",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "private": false,
5
5
  "description": "centaline-data-driven-v3",
6
6
  "main": "dist/centaline-data-driven-v3.umd.js",
@@ -98,6 +98,14 @@ body {
98
98
  align-items: center;
99
99
  }
100
100
 
101
+ .ct-form .search-list .serach-screen .list-field .el-form-item__label {
102
+ width: auto;
103
+ text-align: right;
104
+ line-height: normal;
105
+ min-height: 26px;
106
+ align-items: center;
107
+ }
108
+
101
109
 
102
110
  .errorMessage {
103
111
  height: 26px;
@@ -874,6 +882,15 @@ body {
874
882
  line-height: 22px;
875
883
  }
876
884
 
885
+ .el-select__wrapper {
886
+ height: 28px;
887
+ }
888
+
889
+ .el-select__wrapper .el-select__selection {
890
+ flex-wrap: nowrap !important;
891
+ margin-right: 20px;
892
+ }
893
+
877
894
  .el-select__input-wrapper {
878
895
  height: 22px;
879
896
  line-height: 22px;
@@ -913,7 +930,7 @@ body {
913
930
  .el-col1 {
914
931
  display: flex;
915
932
  flex-direction: column;
916
- justify-content: flex-end;
933
+ justify-content: flex-end;
917
934
  }
918
935
 
919
936
  .el-collapse {
@@ -2,7 +2,8 @@
2
2
  <div class="ct-fielduploader" ref="refupload" v-if="model !== null">
3
3
  <div class="van-uploader">
4
4
  <div class="van-uploader__wrapper">
5
- <draggable :list="model.fileList" v-bind="dragOptions" @change="onEnd" class="card" style="display: flex;">
5
+ <draggable :list="model.fileList" v-bind="dragOptions" @change="onEnd" :delay="100"
6
+ :touch-start-threshold="5" class="card" style="display: flex;">
6
7
  <template #item="{ element, index }">
7
8
  <div class="van-uploader__preview">
8
9
  <template v-if="!element.progressFlag">
@@ -11,7 +12,8 @@
11
12
  class="van-image__img" style="object-fit: cover;">
12
13
  <div class="van-uploader__preview-cover"
13
14
  v-if="(model.locked && element.mediaLabelName) || model.paramName1">
14
- <div class="preview-cover van-ellipsis" @click.stop="classifyClickHandle(element)">
15
+ <div class="preview-cover van-ellipsis"
16
+ @click.stop="classifyClickHandle(element)">
15
17
  {{ element.mediaLabelName }}</div>
16
18
  </div>
17
19
  </div>
@@ -27,7 +29,8 @@
27
29
  </div>
28
30
  <span class="cover-list-item-play" v-if="element.videoPlayIconUrl">
29
31
  <div class="swiper-i">
30
- <img @click="viewerfile(element)" :src="element.videoPlayIconUrl" class="hous-icon" />
32
+ <img @click="viewerfile(element)" :src="element.videoPlayIconUrl"
33
+ class="hous-icon" />
31
34
  </div>
32
35
  </span>
33
36
  <span class="cover-list-item-play"
@@ -146,9 +149,9 @@ function uploadProcess(file) {
146
149
  function handleRemove(file) {
147
150
  showConfirmDialog({
148
151
  title: "提示",
149
- confirmButtonText: common.LocalizedString("确定","確認"),
152
+ confirmButtonText: common.LocalizedString("确定", "確認"),
150
153
  cancelButtonText: "取消",
151
- message: common.LocalizedString("确定删除该附件?","確定刪除該附件?"),
154
+ message: common.LocalizedString("确定删除该附件?", "確定刪除該附件?"),
152
155
  })
153
156
  .then(() => {
154
157
  File.deleteFile(file, false, model.value);
@@ -274,7 +277,7 @@ function viewerfile(file) {
274
277
  }
275
278
 
276
279
  function onEnd(ev) {
277
- File.changeFile(model.value,model.value.fileList[ev.moved.oldIndex], model.value.fileList[ev.moved.newIndex])
280
+ File.changeFile(model.value, model.value.fileList[ev.moved.oldIndex], model.value.fileList[ev.moved.newIndex])
278
281
  }
279
282
  defineExpose({
280
283
  model
@@ -294,8 +297,9 @@ defineExpose({
294
297
  color: #fff;
295
298
  font-size: 12px;
296
299
  text-align: center;
297
- background: rgba(0, 0, 0, 0.3);
300
+ background: #000000;
298
301
  height: 24px;
302
+ opacity: 0.5;
299
303
  }
300
304
 
301
305
  .ct-fielduploader .van-uploader__preview-image {
@@ -8,7 +8,7 @@
8
8
  :height="300" @click="clickHandler"
9
9
  :class="[model.moreActionRouter ? 'selectmore' : '', open ? 'open' : '']"
10
10
  :filter-method="debouncedRemoteMethod" @compositionstart="handleCompositionStart"
11
- @compositionend="handleCompositionEnd">
11
+ @compositionend="handleCompositionEnd" :formatter="formatLabel">
12
12
  <template #default="{ item }">
13
13
  <el-tooltip :disabled="!item.toolTip" :content="item.toolTip" placement="right">
14
14
  <span v-html="item.displayName || item.name"></span>
@@ -22,7 +22,7 @@
22
22
  <template v-for="(v, i) in model.labelValue" :key="i">
23
23
  <el-tag class="ml-2" type="info" disable-transitions :closable="!v.locked && !model.locked"
24
24
  @close="closeTag(v.code)">
25
- {{ v.displayName || v.name }}</el-tag>
25
+ {{ v.name }}</el-tag>
26
26
  </template>
27
27
  </template>
28
28
  </el-select-v2>
@@ -113,7 +113,7 @@ function getOptions(key) {
113
113
  if (item) {
114
114
  v.locked = true
115
115
  }
116
- v.label = v.displayName || v.name
116
+ v.label =v.name
117
117
  v.value = v.code
118
118
  v.disabled = v.locked
119
119
  if (v.options) {
@@ -125,7 +125,7 @@ function getOptions(key) {
125
125
  if (item1) {
126
126
  v2.locked = true
127
127
  }
128
- v2.label = v2.displayName || v2.name
128
+ v2.label = v2.name
129
129
  v2.value = v2.code
130
130
  v2.disabled = v2.locked
131
131
  });
@@ -165,10 +165,18 @@ function debounce(func, delay) {
165
165
  const debouncedRemoteMethod = debounce(getOptions, 300);
166
166
  //选中值发生变化时触发
167
167
  function change(val) {
168
- if (typeof val == 'undefined') {
168
+ if (typeof val == 'undefined' || (model.value.multiple && val.length == 0)) {
169
169
  if (model.value.defaultCode1) {
170
- val = model.value.defaultCode1
171
- model.value.value = val
170
+ if (model.value.multiple) {
171
+ var defaultCode1 = JSON.parse(model.value.defaultCode1)
172
+ defaultCode1.forEach((v) => {
173
+ model.value.value.push(v.code);
174
+ });
175
+ }
176
+ else {
177
+ val = model.value.defaultCode1
178
+ model.value.value = val
179
+ }
172
180
  model.value.itemKey = Math.random()
173
181
  }
174
182
  else {
@@ -265,6 +273,10 @@ function closeTag(val) {
265
273
  model.value.value.splice(model.value.value.indexOf(val), 1)
266
274
  change(model.value.value)
267
275
  }
276
+ const formatLabel = (option) => {
277
+ console.log('进入 formatter', option); // 测试是否触发
278
+ return option.name || option.label;
279
+ };
268
280
  defineExpose({
269
281
  model
270
282
  })
@@ -260,8 +260,8 @@ if (model.value.paramName1 && !model.value.locked) {
260
260
  }
261
261
  else if (!model.value.locked) {
262
262
  config.value.maximumWords = model.value && model.value.maxValue1 ? parseFloat(model.value.maxValue1) : 5000;
263
- config.value.serverUrl = model.value.moreActionRouter.action;
264
- config.value.imageUrl = model.value.moreActionRouter.action;
263
+ config.value.serverUrl = model.value.moreActionRouter?.action;
264
+ config.value.imageUrl = model.value.moreActionRouter?.action;
265
265
  }
266
266
 
267
267
 
@@ -15,7 +15,7 @@
15
15
  <div v-loading="operationLoading"></div>
16
16
 
17
17
  <div class="ct-tableParent" ref="refTableParent" v-bind="model.attrs" v-if="!isLoading && model"
18
- :style="{ height: from == 'form' ? '100%' : model.tableHeight + 'px', 'border-bottom': model.isLayout ? 'none' : '', 'border-top': model.isLayout ? 'none' : '', }"
18
+ :style="{ height:model.tableHeight + 'px', 'border-bottom': model.isLayout ? 'none' : '', 'border-top': model.isLayout ? 'none' : '', }"
19
19
  @scroll="scrollHandle($event)" @keydown.up="rowKeyDownHandle($event, 0)"
20
20
  @keydown.down="rowKeyDownHandle($event, 1)" tabindex="-1">
21
21
  <div class="ct-table-content" v-if="!model.isLayout">
@@ -26,11 +26,12 @@
26
26
  <div ref="refSidebar" v-if="flagSideBar && flagSideBarOfData"
27
27
  :style="{ 'height': pageHeight ? pageHeight : '100%', 'width': sideBarWidth + 'px', right: sideBarRight + 'px' }"
28
28
  class="sidebar">
29
- <SearchSideRight ref="RefSideRight" :apiParam="sideBarApiParam" :pageType="sideBarPageType"
30
- :rowSelectRouter="rowSelectRouter" :listHeight="listHeight" :selectIndex="selectIndex"
31
- :rowCount="rowCount" :key="detailKey" :drowerClose="drowerClose" @clickNextHandler="clickNextHandler"
32
- @clickPrevHandler="clickPrevHandler" @simpleRouterclickHandler="simpleRouterclickHandler"
33
- @closeSideHandler="closeSideHandler" @submit="submitHandler"></SearchSideRight>
29
+ <SearchSideRight :style="{ 'display': sideBarWidth && sideBarWidth > 0 ? 'block' : 'none' }" ref="RefSideRight"
30
+ :apiParam="sideBarApiParam" :pageType="sideBarPageType" :rowSelectRouter="rowSelectRouter"
31
+ :listHeight="listHeight" :selectIndex="selectIndex" :rowCount="rowCount" :key="detailKey"
32
+ :drowerClose="drowerClose" @clickNextHandler="clickNextHandler" @clickPrevHandler="clickPrevHandler"
33
+ @simpleRouterclickHandler="simpleRouterclickHandler" @closeSideHandler="closeSideHandler"
34
+ @submit="submitHandler"></SearchSideRight>
34
35
  <SearchSideMenu ref="refSideMenu" :sideBarMenuRight="sideBarMenuRight" :sideBarStatus="sideBarStatus"
35
36
  @sideMenuClickHandler="sideMenuClickHandler"></SearchSideMenu>
36
37
  </div>
@@ -266,8 +267,8 @@ function tableLoaded() {
266
267
  var tagkey = window.localStorage.getItem(sideBarPageType.value + "key" + title.value);
267
268
  sideBarStatus.value = tagkey;
268
269
  }
269
-
270
- if ((flagDefaultDisplaySideBar.value && !sideBarStatus.value)||refTable.value.model.isPageInSideBar) {
270
+
271
+ if ((flagDefaultDisplaySideBar.value && !sideBarStatus.value) || refTable.value.model.isPageInSideBar) {
271
272
  sideMenuClickHandler('close');
272
273
  }
273
274
  else {
@@ -283,6 +284,9 @@ function tableLoaded() {
283
284
  flagSideBarOfData.value = false;
284
285
  searchWidth.value = 0;
285
286
  }
287
+ if (model.value) {
288
+ model.value.table = refTable.value;
289
+ }
286
290
  emit('tableLoaded', refTable.value.model);
287
291
  emit('loaded', refTable.value.model);
288
292
  }
@@ -390,10 +394,10 @@ function rowClickHandle() {
390
394
  }
391
395
  );
392
396
  }
393
- if(refTable.value.model.columnName){
397
+ if (refTable.value.model.columnName) {
394
398
  sideBarApiParam.value.columnName = refTable.value.model.columnName;
395
399
  }
396
- if(refTable.value.model.columnGroupId){
400
+ if (refTable.value.model.columnGroupId) {
397
401
  sideBarApiParam.value.columnGroupId = refTable.value.model.columnGroupId;
398
402
  }
399
403
  sideBarApiParam.value.actionType = refTable.value.model.rowSelectRouter.actionType;
@@ -6,7 +6,7 @@
6
6
  @change="change()" :disabled="model.locked" :rows="model.rows" :readonly="model.readonly"
7
7
  :show-password="model.inputType == 'password'" autocomplete="on" :maxlength="model.maxValue1"
8
8
  :show-word-limit="model.showWordLimit" clearable @keyup.enter.native="search()"
9
- class="fieldControl">
9
+ @keydown.enter.native="handleKeyDown" class="fieldControl">
10
10
  <template #suffix>
11
11
  <span v-if="model.unitName1">{{ model.unitName1 }}</span>
12
12
  </template>
@@ -17,7 +17,8 @@
17
17
  @change="change()" :disabled="model.locked" :rows="model.rows" :readonly="model.readonly"
18
18
  :show-password="model.inputType == 'password'" autocomplete="on"
19
19
  :maxlength="model.controlType !== Enum.ControlType.NumericTextBox ? model.maxValue1 : ''"
20
- :show-word-limit="model.showWordLimit" clearable @keyup.enter.native="search()" class="fieldControl">
20
+ :show-word-limit="model.showWordLimit" clearable @keyup.enter.native="search()"
21
+ @keydown.enter.native="handleKeyDown" class="fieldControl">
21
22
  <template #suffix>
22
23
  <span v-if="model.unitName1">{{ model.unitName1 }}</span>
23
24
  </template>
@@ -34,6 +35,8 @@
34
35
  </ct-field>
35
36
  </template>
36
37
  <script lang="ts" setup>
38
+ import { ref } from 'vue'
39
+
37
40
  import { initData, changeHandler } from '../../utils/mixins';
38
41
  import TextBox from '../../loader/src/TextBox';
39
42
  import Enum from '../../utils/Enum'
@@ -47,6 +50,7 @@ const props = defineProps({
47
50
  default: ''
48
51
  },
49
52
  })
53
+ const isEnterPressed = ref(false);
50
54
  const model = initData(props, TextBox)
51
55
  model.value.selfValidExcute = () => {
52
56
  model.value.valid = true;
@@ -64,6 +68,12 @@ function search() {
64
68
  if (model.value.autoSearch || props.from == 'tree') {
65
69
  emit('search');
66
70
  }
71
+ setTimeout(() => {
72
+ isEnterPressed.value = false;
73
+ }, 100);
74
+ }
75
+ function handleKeyDown(event) {
76
+ isEnterPressed.value = true;
67
77
  }
68
78
  function input() {
69
79
  if (model.value.controlType === Enum.ControlType.MultiLineText || model.value.controlType === Enum.ControlType.TextBox) {
@@ -74,6 +84,9 @@ function input() {
74
84
  }
75
85
  function change() {
76
86
  changeHandler(model.value, emit);
87
+ if (isEnterPressed.value) {
88
+ return;
89
+ }
77
90
  if (props.from == 'tree') { emit('search'); }
78
91
  }
79
92
  //弹出选择列表
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <div id="ct-tree" class="ct-tree" oncontextmenu="event.preventDefault()" style="overflow:auto;" v-loading="loading" :style="{ height: props.treeHeight-10 + 'px' }">
2
+ <div id="ct-tree" class="ct-tree" oncontextmenu="event.preventDefault()" style="overflow:auto;" v-loading="loading"
3
+ :style="{ height: props.treeHeight - 10 + 'px' }">
3
4
  <el-tree class="tree-line" :props="defaultProps" :load="loadNode" :expand-on-click-node="false"
4
5
  @node-click="handleNodeClick" lazy ref="refTree" @node-contextmenu="rightClick" node-key="code"
5
6
  current-node-key="currentNodeKey">
@@ -50,10 +51,10 @@ const props = defineProps({
50
51
  Number,
51
52
  default: 500,
52
53
  },
53
- })
54
+ })
54
55
  const refTree = ref()
55
- const rootNode = ref();
56
- const rootResolve = ref();
56
+ const rootNode = ref();
57
+ const rootResolve = ref();
57
58
  const LastClickNode = ref(null)
58
59
  const defaultProps = ref({
59
60
  label: 'name',
@@ -65,13 +66,13 @@ const defaultProps = ref({
65
66
  const searchStatus = ref([])
66
67
 
67
68
  const menuVisible = ref(false)//右键菜单显示控制
68
- const currentData = ref({code:""})// 当前节点所对应的数据
69
+ const currentData = ref({ code: "" })// 当前节点所对应的数据
69
70
  const currentNode = ref(null)//当前节点对应的 Node
70
71
  const loading = ref(false)//数据理否查询完成
71
72
 
72
- const model = ref(null)
73
+ const model = ref(null)
73
74
  const nodeRef = ref()
74
-
75
+ const retryCount = ref(0);
75
76
  const treeNodeRefMap = ref({});
76
77
  /** 动态设置Input Ref */
77
78
  const handleSetInputMap = (el: refItem, item) => {
@@ -80,8 +81,8 @@ const handleSetInputMap = (el: refItem, item) => {
80
81
  }
81
82
  };
82
83
 
83
- const qrtimer=ref(null)
84
- onBeforeUnmount(()=>{
84
+ const qrtimer = ref(null)
85
+ onBeforeUnmount(() => {
85
86
  if (qrtimer.value) {
86
87
  clearTimeout(qrtimer.value);
87
88
  qrtimer.value = null;
@@ -91,24 +92,32 @@ onBeforeUnmount(()=>{
91
92
  //搜索(查询条件调用)
92
93
  function search(m) {
93
94
  if (searchStatus.value.length == 0) {
94
- if(qrtimer.value)clearTimeout(qrtimer.value);
95
+ // 重置计数器
96
+ retryCount.value = 0
97
+ if (qrtimer.value) clearTimeout(qrtimer.value);
95
98
  searchStatus.value.push('a');
96
99
  rootNode.value.childNodes = []
97
- loadNode(rootNode.value, rootResolve.value,m)
100
+ loadNode(rootNode.value, rootResolve.value, m)
98
101
  }
99
102
  else {
103
+ if (retryCount.value >= 50) {
104
+ console.warn(`搜索繁忙,请稍后再试`);
105
+ return;
106
+ }
107
+ retryCount.value++
108
+
100
109
  qrtimer.value = setTimeout(() => {
101
110
  search(m);
102
111
  }, 200);
103
112
  }
104
113
  }
105
114
  //加载节点(点击节点加号时调用)
106
- function loadNode(node, resolve,m) {
115
+ function loadNode(node, resolve, m) {
107
116
  if (node.level === 0) {
108
117
  loading.value = true;
109
118
  rootNode.value = node
110
119
  rootResolve.value = resolve;
111
- return SearchTree(m||undefined).then(data => {
120
+ return SearchTree(m || undefined).then(data => {
112
121
  loading.value = false;
113
122
  resolve(data.rows);
114
123
  load(data, true)
@@ -131,7 +140,7 @@ async function load(data, firstLoad) {
131
140
  model.value = data;
132
141
  if (searchStatus.value.length > 0) {
133
142
  searchStatus.value = searchStatus.value.slice(1)
134
- }
143
+ }
135
144
  loading.value = false;
136
145
  menuVisible.value = false;
137
146
  if (firstLoad) {
@@ -150,7 +159,7 @@ function SearchTree(m) {
150
159
 
151
160
  return new Promise((resolve, reject) => {
152
161
  if (typeof props.api !== 'undefined') {
153
-
162
+
154
163
  resolve(Tree.loadSearchTreeApi(props.api, m));
155
164
  }
156
165
  });
@@ -183,7 +192,7 @@ function handleNodeClick(data, formType) {
183
192
  //右键菜单
184
193
  function rightClick(event, object, Node) { // event、object该节点所对应的对象、节点对应的 Node、节点组件本身
185
194
  nodeRef.value = treeNodeRefMap.value[`node_Ref_${object.code}`]
186
-
195
+
187
196
  currentData.value = object
188
197
  currentNode.value = Node
189
198
  let actionIndex = 0;
@@ -201,7 +210,7 @@ function rightClick(event, object, Node) { // event、object该节点所对应
201
210
  function closeMenu() {
202
211
  menuVisible.value = false;
203
212
  nodeRef.value = null
204
- currentData.value = { ...currentData.value,code:"" }
213
+ currentData.value = { ...currentData.value, code: "" }
205
214
  document.removeEventListener('click', closeMenu)
206
215
  }
207
216
  // 菜单路由
@@ -440,10 +449,10 @@ defineExpose({
440
449
  background-size: 10px;
441
450
  }
442
451
 
443
- .box-menu {
452
+ .box-menu {
444
453
  z-index: 1000;
445
454
  background-color: #fff;
446
- padding: 10px;
455
+ padding: 10px;
447
456
 
448
457
  div {
449
458
  cursor: pointer;
@@ -459,4 +468,3 @@ defineExpose({
459
468
  color: var(--btnHoverRed);
460
469
  }
461
470
  </style>
462
-
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
3
  <div ref="refscreenDiv" id="refscreenDiv">
4
- <ct-searchscreen ref="reftreescreen" :from="'tree'" :api="searchConditionApi" :screenPara="screenPara"
4
+ <ct-searchscreen ref="reftreescreen" :from="'tree'" style="padding-left: 11px;" :api="searchConditionApi" :screenPara="screenPara"
5
5
  @search="search" @loaded="screenload" ></ct-searchscreen>
6
6
  </div>
7
7
  <tree v-if="loadTree" ref="reftree" :api="searchDataApi" @loaded="loaded" :treeHeight="treeHeight">
@@ -852,8 +852,9 @@ const Base = function (source, moreActionRouter, formLabelPlacement) {
852
852
  if (this.multiple) {
853
853
  this.value.splice(0);
854
854
  this.labelValue.splice(0);
855
- if (this.defaultValue) {
856
- this.defaultValue.forEach((v) => {
855
+ if (this.defaultCode1) {
856
+ var defaultCode1=JSON.parse(this.defaultCode1)
857
+ defaultCode1.forEach((v) => {
857
858
  this.value.push(v.code);
858
859
  this.labelValue.push(v);
859
860
  });
@@ -820,6 +820,26 @@ function loadFromModel(source, isFormList) {
820
820
  });
821
821
  Object.assign(rtnFormObj, customizeColumnsObj);
822
822
  }
823
+ else if (f.controlType == Enum.ControlType.SearchPage) {
824
+ if (f.table) {
825
+ let rtnFormArr = [];
826
+ var tempListData = f.table.model.getSelectRowData({ isMulti: f.table.model.isMulti });
827
+ for (let i = 0; i < tempListData.length; i++) {
828
+ rtnFormArr.push(tempListData[i]);
829
+ }
830
+
831
+ let rtnObj = {};
832
+ Object.defineProperty(rtnObj, f.fieldName1, {
833
+ get: function () {
834
+ return rtnFormArr;
835
+ },
836
+ enumerable: true,
837
+ configurable: true
838
+ });
839
+ Object.assign(rtnFormObj, rtnObj);
840
+ }
841
+
842
+ }
823
843
  else {
824
844
  if (f.hasOwnProperty('getFormObj') && typeof f.getFormObj === "function") {
825
845
  Object.assign(rtnFormObj, f.getFormObj());
@@ -222,13 +222,12 @@ const LibFunction = {
222
222
  item.is = 'ct-location';
223
223
  break;
224
224
  case Enum.ControlType.SearchPage: //搜索列表页面
225
- item = {};
225
+ //item = {};
226
226
  item.is = 'ct-searchlist';
227
227
  item.bindPara = {
228
228
  searchConditionApi: field.code1,
229
229
  searchDataApi: field.code2,
230
230
  pageHeight: field.code4 ? field.code4 + 'px' : '',
231
- from: 'form',
232
231
  apiParam: field.code3 ? JSON.parse(field.code3) : {}
233
232
  };
234
233
  break;
@@ -148,7 +148,8 @@ const Router = function (source) {
148
148
  return source.pageStyle === Enum.PageStyle.BrowserNewTab;
149
149
  },
150
150
  get isClientFuntion() {
151
- return source.pageStyle === Enum.PageStyle.ClientFunction;
151
+ return source.pageStyle === Enum.PageStyle.ClientFunction
152
+ ||source.actionType===Enum.ActionType.ExcuteClientFunction;
152
153
  },
153
154
  get isSearchPageWithList() {
154
155
  return source.pageStyle === Enum.PageStyle.SearchPageWithList;
package/src/main.js CHANGED
@@ -65,7 +65,7 @@ app.use(centaline, {
65
65
  //获取请求头
66
66
  getRequestHeaders: function () {
67
67
  return {
68
- authobject: '{token:"jiangzf-1980566715226116096",platform:"WEB"}',
68
+ authobject: '{token:"wufw-1988032150800367616",platform:"WEB"}',
69
69
  //oldToken: 'd92d4a3b-2274-42e8-96f0-100ffb579b6e',
70
70
  //authObject: '{token:"jiangzf-1958445358178844672",platform:"WEB"}',
71
71
  //authObject: '{EmpID:"Token_4e09499b-4b76-46df-9ce5-5498d48ed062",MachineCode:"ae184643-f8e2-453c-a752-ba82612b592f",SSO_Token:"SSOToken_4e09499b-4b76-46df-9ce5-5498d48ed062",Platform:"WEB"}',
package/src/utils/Enum.js CHANGED
@@ -486,6 +486,11 @@ const Enum = {
486
486
  * 打开百度地图
487
487
  */
488
488
  OpenBaiduMap: 100,
489
+
490
+ /// <summary>
491
+ /// 执行客户端函数
492
+ /// </summary>
493
+ ExcuteClientFunction: 27,
489
494
  },
490
495
 
491
496
  /// <summary>
@@ -669,13 +674,13 @@ const Enum = {
669
674
  * 在tab页打开 前端的VUE组件, 组件名称放在action参数里
670
675
  */
671
676
  OpenVueComponentInTab: 122,
672
- /**
673
- * 表单在侧边栏打开
674
- */
677
+ /**
678
+ * 表单在侧边栏打开
679
+ */
675
680
  FormPageInSideBar: 123,
676
- /**
677
- * 列表在侧边栏打开
678
- */
681
+ /**
682
+ * 列表在侧边栏打开
683
+ */
679
684
  SearchPageInSideBar: 124
680
685
  },
681
686
 
@@ -1,14 +1,10 @@
1
1
  <template>
2
2
  <div id="form-app" class="data-driven" style="width:100%;height:100%;overflow:auto">
3
- <ct-form :api="'/EmployeeAttendanceBillApply/getLayoutOfNew'" :apiParam="apiParam"></ct-form>
3
+ <ct-form :api="'/Employee/readDetail'" :apiParam="apiParam"></ct-form>
4
4
  <!-- <ct-textbox :source="source"></ct-textbox> -->
5
-
5
+ <ct-dialoglist ref="dialogList"></ct-dialoglist>
6
6
  </div>
7
7
  </template>
8
8
  <script lang="ts" setup>
9
- const apiParam={
10
- "actionType": 2,
11
- "empID": "{90A76197-49CC-4D81-A08E-048557757B57}"
12
- }
13
- const source={"controlType":2,"showLabel":true,"controlLabel":"制度标识","groupExpand":false,"singleLine":false,"rows":1,"required":true,"spanCols":1,"locked":false,"autoFill":false,"searchDataType":1,"searchOperation":1,"displayLabelAfterSelected":true,"autoSearch":false,"mediaViewPageType":1,"fieldName1":"WorkSystemID","code1":"CD","name1":"","decimals1":-1,"maxValue1":"50","preLabel1":"","sufLabel1":"","fieldName2":"","code2":"","name2":"","decimals2":-1,"decimals3":0,"decimals4":-1,"width":200,"applyNew":1,"applyEdit":1,"applyBrowse":1}
9
+ const apiParam={"actionType":2}
14
10
  </script>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div id="app-search" style="width:100%;height:100%;position: fixed;">
3
- <ct-searchlist :apiParam="apiParam" :searchConditionApi="'https://kq-api-gz.centaline.com.cn/onecard-api/EmployeeWorkLogList/ind/getLayoutOfSearch'"
4
- :searchDataApi="'https://kq-api-gz.centaline.com.cn/onecard-api/EmployeeWorkLogList/ind/getListOfSearchModel'"></ct-searchlist>
3
+ <ct-searchlist :apiParam="apiParam" :searchConditionApi="'ReportOverTimeList/getLayoutOfSearch'"
4
+ :searchDataApi="'ReportOverTimeList/getListOfSearchModel'"></ct-searchlist>
5
5
 
6
6
  <!-- <ct-searchlist :apiParam="apiParam" :searchConditionApi="'/EmployeeMaternityList/getLayoutOfSearch'"
7
7
  :searchDataApi="'/EmployeeMaternityList/getListOfSearchModel'"></ct-searchlist> -->
@@ -15,6 +15,6 @@
15
15
 
16
16
  <script lang="ts" setup>
17
17
  import { ref, nextTick } from 'vue'
18
- const apiParam = {"rowGUID":"{7AE0A3FB-2D6C-4E51-8B10-71EAFA2D269A}","code":"KD01","name":"中原(中国)物业顾问有限公司","deptID":"{7AE0A3FB-2D6C-4E51-8B10-71EAFA2D269A}","path":"KD01","checkBillLeftHours":"1","rightEdit":"1"}
18
+ const apiParam = {}
19
19
 
20
20
  </script>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div id="app-Tree" style="height:100%;position: fixed;width:100%;padding: 10px;">
3
3
  <ct-treelist :flagsearch="true" :apiParam="apiParam" :leftWidth="'280'"
4
- :searchConditionApi="'/SystemParameterCatalogList/getLayoutOfSearch'" :searchDataApi="'/SystemParameterCatalogList/getListOfSearchModel'"
4
+ :searchConditionApi="'/SystemUser/getSystemBusinessCategory'" :searchDataApi="'/SystemUser/getSystemBusinessCategory'"
5
5
  @loaded="loaded"></ct-treelist>
6
6
  <!-- <ct-textbox :source="source"></ct-textbox> -->
7
7
  <ct-dialoglist></ct-dialoglist>