cloud-web-corejs 1.0.249 → 1.0.251

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.
Files changed (60) hide show
  1. package/package.json +1 -1
  2. package/src/components/xform/form-designer/designer.js +1 -0
  3. package/src/components/xform/form-designer/setting-panel/form-setting.vue +3 -0
  4. package/src/components/xform/utils/util.js +1 -0
  5. package/src/views/bd/setting/formVersion/button.vue +55 -0
  6. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  7. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  8. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  9. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  10. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  11. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  12. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  13. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  14. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  15. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +491 -0
  16. package/src/views/bd/setting/formVersion/link.vue +58 -0
  17. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  18. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  19. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  20. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  21. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  22. package/src/views/bd/setting/form_import_log/edit.vue +6 -3
  23. package/src/views/bd/setting/form_import_log/list.vue +5 -0
  24. package/src/views/bd/setting/form_script/edit.vue +196 -83
  25. package/src/views/bd/setting/form_script/edit1.vue +410 -220
  26. package/src/views/bd/setting/form_script/form_list.vue +19 -0
  27. package/src/views/bd/setting/form_script/list.vue +95 -21
  28. package/src/views/bd/setting/form_script/list1.vue +24 -0
  29. package/src/views/bd/setting/form_script/mixins/dialog.js +2 -2
  30. package/src/views/bd/setting/form_script/mixins/edit.js +265 -207
  31. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -201
  32. package/src/views/bd/setting/form_script/mixins/form_list.js +322 -296
  33. package/src/views/bd/setting/form_script/mixins/list.js +163 -95
  34. package/src/views/bd/setting/form_script/mixins/list1.js +244 -155
  35. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +1 -1
  36. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +1 -1
  37. package/src/views/bd/setting/form_template/edit.vue +355 -205
  38. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -0
  39. package/src/views/bd/setting/form_template/list.vue +49 -74
  40. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +3 -3
  41. package/src/views/bd/setting/form_template/mixins/edit.js +51 -8
  42. package/src/views/bd/setting/form_template/mixins/itemList.js +1 -1
  43. package/src/views/bd/setting/form_template/mixins/list.js +114 -82
  44. package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
  45. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +1 -1
  46. package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -7
  47. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  48. package/src/views/bd/setting/request_setting/list.vue +15 -25
  49. package/src/views/bd/setting/table_model/edit.vue +702 -498
  50. package/src/views/bd/setting/table_model/list.vue +28 -0
  51. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  52. package/src/views/bd/setting/table_model/mixins/edit.js +228 -121
  53. package/src/views/bd/setting/table_model/mixins/list.js +55 -20
  54. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +1 -1
  55. package/src/views/bd/setting/table_model/mixins/zdDialog.js +50 -46
  56. package/src/views/bd/setting/utils/index.js +15 -0
  57. package/src/views/user/form/vform/designer.vue +303 -287
  58. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  59. package/src/views/user/form/vform/render.vue +8 -0
  60. package/src/views/user/form/view/list.vue +5 -1
@@ -0,0 +1,102 @@
1
+ /**
2
+ * 基于 LCS 的行级 diff,返回左右两侧需要高亮的行号(0-based)
3
+ */
4
+ export function diffLines(oldStr, newStr) {
5
+ const oldLines = (oldStr || "").split("\n");
6
+ const newLines = (newStr || "").split("\n");
7
+ const m = oldLines.length;
8
+ const n = newLines.length;
9
+ const dp = buildLcsDp(oldLines, newLines);
10
+
11
+ const oldMarks = [];
12
+ const newMarks = [];
13
+ const rawOps = [];
14
+ let i = m;
15
+ let j = n;
16
+
17
+ while (i > 0 || j > 0) {
18
+ if (i > 0 && j > 0 && oldLines[i - 1] === newLines[j - 1]) {
19
+ rawOps.unshift({ type: "eq", old: i - 1, new: j - 1 });
20
+ i--;
21
+ j--;
22
+ } else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {
23
+ newMarks.unshift(j - 1);
24
+ rawOps.unshift({ type: "ins", new: j - 1 });
25
+ j--;
26
+ } else {
27
+ oldMarks.unshift(i - 1);
28
+ rawOps.unshift({ type: "del", old: i - 1 });
29
+ i--;
30
+ }
31
+ }
32
+
33
+ const diffNavList = buildDiffHunks(rawOps);
34
+
35
+ return { oldMarks, newMarks, diffNavList };
36
+ }
37
+
38
+ function buildLcsDp(oldLines, newLines) {
39
+ const m = oldLines.length;
40
+ const n = newLines.length;
41
+ const dp = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0));
42
+
43
+ for (let i = 1; i <= m; i++) {
44
+ for (let j = 1; j <= n; j++) {
45
+ if (oldLines[i - 1] === newLines[j - 1]) {
46
+ dp[i][j] = dp[i - 1][j - 1] + 1;
47
+ } else {
48
+ dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
49
+ }
50
+ }
51
+ }
52
+
53
+ return dp;
54
+ }
55
+
56
+ function buildDiffHunks(rawOps) {
57
+ const hunks = [];
58
+ let hunk = null;
59
+ let lastEqOld = -1;
60
+ let lastEqNew = -1;
61
+
62
+ rawOps.forEach((op) => {
63
+ if (op.type === "eq") {
64
+ if (hunk) {
65
+ hunks.push(finalizeHunk(hunk, lastEqOld, lastEqNew));
66
+ hunk = null;
67
+ }
68
+ lastEqOld = op.old;
69
+ lastEqNew = op.new;
70
+ return;
71
+ }
72
+
73
+ if (!hunk) {
74
+ hunk = { left: null, right: null, leftEnd: null, rightEnd: null };
75
+ }
76
+
77
+ if (op.type === "del") {
78
+ if (hunk.left == null) hunk.left = op.old;
79
+ hunk.leftEnd = op.old;
80
+ } else {
81
+ if (hunk.right == null) hunk.right = op.new;
82
+ hunk.rightEnd = op.new;
83
+ }
84
+ });
85
+
86
+ if (hunk) {
87
+ hunks.push(finalizeHunk(hunk, lastEqOld, lastEqNew));
88
+ }
89
+
90
+ return hunks;
91
+ }
92
+
93
+ function finalizeHunk(hunk, lastEqOld, lastEqNew) {
94
+ return {
95
+ left: hunk.left,
96
+ right: hunk.right,
97
+ leftEnd: hunk.leftEnd,
98
+ rightEnd: hunk.rightEnd,
99
+ anchorLeft: Math.max(lastEqOld, 0),
100
+ anchorRight: Math.max(lastEqNew, 0),
101
+ };
102
+ }
@@ -19,7 +19,12 @@
19
19
  <tbody>
20
20
  <tr>
21
21
  <th>
22
- <em class="f-red">*</em>
22
+ {{ $t1('版本号') }}
23
+ </th>
24
+ <td>
25
+ {{ formImportLog.version }}
26
+ </td>
27
+ <th>
23
28
  {{ $t1('表单分类路径') }}
24
29
  </th>
25
30
  <td colspan="5">
@@ -28,14 +33,12 @@
28
33
  </tr>
29
34
  <tr>
30
35
  <th>
31
- <em class="f-red">*</em>
32
36
  {{ $t1('日志类型') }}
33
37
  </th>
34
38
  <td>
35
39
  {{ formImportLog.logType }}
36
40
  </td>
37
41
  <th>
38
- <em class="f-red">*</em>
39
42
  {{ $t1('日志对象') }}
40
43
  </th>
41
44
  <td colspan="3">
@@ -139,6 +139,11 @@ export default {
139
139
  title: this.$t1('日志类型'),
140
140
  width: 150
141
141
  },
142
+ {
143
+ field: 'version',
144
+ title: this.$t1('版本号'),
145
+ width: 150
146
+ },
142
147
  {
143
148
  field: 'logObj',
144
149
  title: this.$t1('日志对象'),
@@ -3,16 +3,41 @@
3
3
  <el-form ref="editForm" :model="formScript" :disabled="readonly">
4
4
  <div class="d-header clearfix">
5
5
  <div class="fl">
6
- <i class="el-icon-info"/>
7
- {{ dataId ? $t1('查看表单脚本') : $t1('新增表单脚本') }}
6
+ <i class="el-icon-info" />
7
+ {{ dataId ? $t1("查看表单脚本") : $t1("新增表单脚本") }}
8
8
  </div>
9
9
  <div class="fr">
10
10
  <el-form>
11
- <el-button type="primary" plain class="button-sty" @click="$baseReload()" icon="el-icon-refresh-right">
12
- {{ $t1('重置') }}
11
+ <formVersionButton
12
+ v-if="!hData && formScript.id && !readonly"
13
+ objType="FormScript"
14
+ :objCode="formScript.scriptCode"
15
+ :relationCode="formScript.formCode"
16
+ @reverCallback="$baseReload()"
17
+ ></formVersionButton>
18
+ <reverButton
19
+ v-if="!!hData"
20
+ objType="FormScript"
21
+ :objCode="formScript.scriptCode"
22
+ :hData="hData"
23
+ @reverCallback="$emit('reverCallback')"
24
+ ></reverButton>
25
+ <el-button
26
+ type="primary"
27
+ plain
28
+ class="button-sty"
29
+ @click="$baseReload()"
30
+ icon="el-icon-refresh-right"
31
+ >
32
+ {{ $t1("重置") }}
13
33
  </el-button>
14
- <el-button type="primary" class="button-sty" icon="el-icon-check" @click="saveData"
15
- v-if="isDev && !readonly">{{ $t1('保存') }}
34
+ <el-button
35
+ type="primary"
36
+ class="button-sty"
37
+ icon="el-icon-check"
38
+ @click="saveData"
39
+ v-if="isDev && !readonly"
40
+ >{{ $t1("保存") }}
16
41
  </el-button>
17
42
  </el-form>
18
43
  </div>
@@ -22,77 +47,153 @@
22
47
  <template #default>
23
48
  <table class="table-detail">
24
49
  <tbody>
25
- <tr>
26
- <th>
27
- <em class="f-red">*</em>
28
- {{ $t1('脚本名称') }}
29
- </th>
30
- <td colspan="3">
31
- <el-form-item prop="scriptName" :rules="[{ required: true, trigger: 'blur' }]">
32
- <el-input type="text" autocomplete="off" v-model="formScript.scriptName" clearable/>
33
- </el-form-item>
34
- </td>
35
- <th>{{ $t1('脚本编码') }}</th>
36
- <td colspan="3">
37
- <el-form-item prop="scriptCode" :rules="[{ required: true, trigger: 'blur' }]">
38
- <el-input type="text" autocomplete="off" v-model="formScript.scriptCode" clearable/>
39
- </el-form-item>
40
- </td>
41
- </tr>
42
- <tr>
43
- <th>{{ $t1('是否启用') }}</th>
44
- <td>
45
- <el-form-item prop="enabled" :rules="[{ required: false, trigger: 'blur' }]">
46
- <el-radio-group v-model="formScript.enabled">
47
- <el-radio :label="true">{{ $t1('启用') }}</el-radio>
48
- <el-radio :label="false">{{ $t1('禁用') }}</el-radio>
49
- </el-radio-group>
50
- </el-form-item>
51
- </td>
52
- <th>{{ $t1('开启事务') }}</th>
53
- <td>
54
- <el-radio-group v-model="formScript.transactions">
55
- <el-radio :label="1">{{ $t1('是') }}</el-radio>
56
- <el-radio :label="0">{{ $t1('否') }}</el-radio>
57
- </el-radio-group>
58
- </td>
59
- </tr>
60
- <tr>
61
- <th>{{ $t1('脚本说明') }}</th>
62
- <td colspan="7">
63
- <el-input type="textarea" :rows="2" :placeholder="$t1('请输入内容')" size="small"
64
- v-model="formScript.scriptRemark"
65
- clearable></el-input>
66
- </td>
67
- </tr>
68
- <tr>
69
- <th>
70
- <em class="f-red">*</em>
71
- {{ $t1('脚本') }}
72
- <!-- <scriptDescriptionButton path="static/readme/ApiRequest.txt"></scriptDescriptionButton>-->
73
- <scriptTestButton :script.sync="formScript.script"></scriptTestButton>
74
- </th>
75
- <td colspan="7">
76
- <el-form-item prop="script" :rules="[{ required: true, trigger: 'blur' }]">
77
- <code-editor mode="java" :readonly="readonly" v-model="formScript.script"
78
- v-if="showCodeEditor"></code-editor>
79
- </el-form-item>
80
- </td>
81
- </tr>
82
- <tr>
83
- <th>{{ $t1('唯一标识') }}</th>
84
- <td colspan="7">{{ formScript.sid }}</td>
85
- </tr>
86
- <tr>
87
- <th>{{ $t1('创建人') }}</th>
88
- <td>{{ formScript.createBy }}</td>
89
- <th>{{ $t1('创建时间') }}</th>
90
- <td>{{ formScript.createDate }}</td>
91
- <th>{{ $t1('更新人') }}</th>
92
- <td>{{ formScript.modifyBy }}</td>
93
- <th>{{ $t1('更新时间') }}</th>
94
- <td>{{ formScript.modifyDate }}</td>
95
- </tr>
50
+ <tr>
51
+ <th>
52
+ <em class="f-red">*</em>
53
+ {{ $t1("脚本名称") }}
54
+ </th>
55
+ <td colspan="3">
56
+ <el-form-item
57
+ prop="scriptName"
58
+ :rules="[{ required: true, trigger: 'blur' }]"
59
+ >
60
+ <fieldCompare
61
+ :isCompare="isCompare"
62
+ :oldVal="oldFormScript.scriptName"
63
+ :newVal="formScript.scriptName"
64
+ >
65
+ <el-input
66
+ type="text"
67
+ autocomplete="off"
68
+ v-model="formScript.scriptName"
69
+ clearable
70
+ />
71
+ </fieldCompare>
72
+ </el-form-item>
73
+ </td>
74
+ <th>{{ $t1("脚本编码") }}</th>
75
+ <td colspan="3">
76
+ <el-form-item
77
+ prop="scriptCode"
78
+ :rules="[{ required: true, trigger: 'blur' }]"
79
+ >
80
+ <fieldCompare
81
+ :isCompare="isCompare"
82
+ :oldVal="oldFormScript.scriptCode"
83
+ :newVal="formScript.scriptCode"
84
+ >
85
+ <el-input
86
+ type="text"
87
+ autocomplete="off"
88
+ v-model="formScript.scriptCode"
89
+ clearable
90
+ />
91
+ </fieldCompare>
92
+ </el-form-item>
93
+ </td>
94
+ </tr>
95
+ <tr>
96
+ <th>{{ $t1("是否启用") }}</th>
97
+ <td>
98
+ <el-form-item
99
+ prop="enabled"
100
+ :rules="[{ required: false, trigger: 'blur' }]"
101
+ >
102
+ <fieldCompare
103
+ :isCompare="isCompare"
104
+ :oldVal="oldFormScript.enabled"
105
+ :newVal="formScript.enabled"
106
+ >
107
+ <el-radio-group v-model="formScript.enabled">
108
+ <el-radio :label="true">{{ $t1("启用") }}</el-radio>
109
+ <el-radio :label="false">{{ $t1("禁用") }}</el-radio>
110
+ </el-radio-group>
111
+ </fieldCompare>
112
+ </el-form-item>
113
+ </td>
114
+ <th>{{ $t1("开启事务") }}</th>
115
+ <td>
116
+ <el-form-item>
117
+ <fieldCompare
118
+ :isCompare="isCompare"
119
+ :oldVal="oldFormScript.transactions"
120
+ :newVal="formScript.transactions"
121
+ >
122
+ <el-radio-group v-model="formScript.transactions">
123
+ <el-radio :label="1">{{ $t1("是") }}</el-radio>
124
+ <el-radio :label="0">{{ $t1("否") }}</el-radio>
125
+ </el-radio-group>
126
+ </fieldCompare>
127
+ </el-form-item>
128
+ </td>
129
+ </tr>
130
+ <tr>
131
+ <th>{{ $t1("脚本说明") }}</th>
132
+ <td colspan="7">
133
+ <el-form-item
134
+ prop="scriptRemark"
135
+ :rules="[{ required: false, trigger: 'blur' }]"
136
+ >
137
+ <fieldCompare
138
+ :isCompare="isCompare"
139
+ :oldVal="oldFormScript.scriptRemark"
140
+ :newVal="formScript.scriptRemark"
141
+ >
142
+ <el-input
143
+ type="textarea"
144
+ :rows="2"
145
+ :placeholder="$t1('请输入内容')"
146
+ size="small"
147
+ v-model="formScript.scriptRemark"
148
+ clearable
149
+ ></el-input>
150
+ </fieldCompare>
151
+ </el-form-item>
152
+ </td>
153
+ </tr>
154
+ <tr>
155
+ <th>
156
+ <em class="f-red">*</em>
157
+ {{ $t1("脚本") }}
158
+ <!-- <scriptDescriptionButton path="static/readme/ApiRequest.txt"></scriptDescriptionButton>-->
159
+ <scriptTestButton :script.sync="formScript.script"></scriptTestButton>
160
+ </th>
161
+ <td colspan="7">
162
+ <el-form-item
163
+ prop="script"
164
+ :rules="[{ required: true, trigger: 'blur' }]"
165
+ >
166
+ <fieldCompare
167
+ :isCompare="isCompare"
168
+ :oldVal="oldFormScript.script"
169
+ :newVal="formScript.script"
170
+ >
171
+ <code-editor
172
+ mode="java"
173
+ :readonly="!1"
174
+ v-model="formScript.script"
175
+ v-if="showCodeEditor"
176
+ ></code-editor>
177
+ </fieldCompare>
178
+ </el-form-item>
179
+ </td>
180
+ </tr>
181
+ <tr>
182
+ <th>{{ $t1("版本号") }}</th>
183
+ <td>{{ formScript.version }}</td>
184
+ <th>{{ $t1("唯一标识") }}</th>
185
+ <td colspan="5">{{ formScript.sid }}</td>
186
+ </tr>
187
+ <tr>
188
+ <th>{{ $t1("创建人") }}</th>
189
+ <td>{{ formScript.createBy }}</td>
190
+ <th>{{ $t1("创建时间") }}</th>
191
+ <td>{{ formScript.createDate }}</td>
192
+ <th>{{ $t1("更新人") }}</th>
193
+ <td>{{ formScript.modifyBy }}</td>
194
+ <th>{{ $t1("更新时间") }}</th>
195
+ <td>{{ formScript.modifyDate }}</td>
196
+ </tr>
96
197
  </tbody>
97
198
  </table>
98
199
  </template>
@@ -103,18 +204,30 @@
103
204
  </template>
104
205
  </baseTabPane>
105
206
  </baseTabs>
106
- <preformDialog v-if="showPreformDialog" :visiable.sync="showPreformDialog"
107
- :placeholder="formScript.transactions!==1?$t1('注:当前脚本未开启事务'):null"
108
- @confirm="confirmPreformDialog"></preformDialog>
207
+ <preformDialog
208
+ v-if="showPreformDialog"
209
+ :visiable.sync="showPreformDialog"
210
+ :placeholder="
211
+ formScript.transactions !== 1 ? $t1('注:当前脚本未开启事务') : null
212
+ "
213
+ @confirm="confirmPreformDialog"
214
+ ></preformDialog>
109
215
  </el-form>
110
216
  </div>
111
217
  </template>
112
218
 
113
219
  <script>
114
220
  import mixin from "./mixins/edit";
115
-
221
+ import formVersionButton from "@base/views/bd/setting/formVersion/button.vue";
222
+ import reverButton from "@base/views/bd/setting/formVersion/reverButton.vue";
223
+ import fieldCompare from "@base/views/bd/setting/formVersion/fieldCompare.vue";
116
224
  export default {
117
- name: 'user_form_scriptEdit',
118
- mixins: [mixin]
225
+ name: "user_form_scriptEdit",
226
+ mixins: [mixin],
227
+ components: {
228
+ formVersionButton,
229
+ reverButton,
230
+ fieldCompare,
231
+ },
119
232
  };
120
233
  </script>