@bytenew/bn-bus-ui 1.1.463 → 1.1.464

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 (167) hide show
  1. package/dist/assocTableSearch-Bfe96864.js +349 -0
  2. package/dist/assocTableSearch.css +1 -0
  3. package/dist/bn-bus-ui.es.js +65 -0
  4. package/dist/bn-bus-ui.umd.js +49 -0
  5. package/dist/chooseIPaasData-COrrvQKZ.js +391 -0
  6. package/dist/chooseIPaasData.css +1 -0
  7. package/dist/defaultSet-CzN1ec_d.js +297 -0
  8. package/dist/defaultSet.css +1 -0
  9. package/dist/fileFormData-D_Q1vylE.js +53 -0
  10. package/dist/formItemFooter-BvptZj_u.js +108 -0
  11. package/dist/formItemFooter.css +1 -0
  12. package/dist/funcExprDialog-BguNs9fl.js +139 -0
  13. package/dist/funcExprDialog.css +1 -0
  14. package/dist/index-0oB7QocU.js +44 -0
  15. package/dist/index-69fRP0M8.js +89 -0
  16. package/dist/index-BdklTJtF.js +66 -0
  17. package/dist/index-Bu3jHlby.js +45 -0
  18. package/dist/index-BxWx5kpG.js +89 -0
  19. package/dist/index-C5LQ0OSs.js +183 -0
  20. package/dist/index-C8YhrrUN.js +51 -0
  21. package/dist/index-COuPCIzB.js +45 -0
  22. package/dist/index-CSvVyjxx.js +178 -0
  23. package/dist/index-DCv51EXX.js +109 -0
  24. package/dist/index-DUSI6MuC.js +135 -0
  25. package/dist/index-DVzxs2vR.js +58 -0
  26. package/dist/index-Dd4b8zNb.js +746 -0
  27. package/dist/index-Md-ZlkCW.js +66 -0
  28. package/dist/index-hsSIY2FP.js +221 -0
  29. package/dist/index-n13-H3_Y.js +118 -0
  30. package/dist/index-wUl5aPUD.js +64 -0
  31. package/dist/index.css +1 -0
  32. package/dist/index2.css +1 -0
  33. package/dist/index3.css +1 -0
  34. package/dist/index4.css +1 -0
  35. package/dist/index5.css +1 -0
  36. package/dist/index6.css +1 -0
  37. package/dist/index7.css +1 -0
  38. package/dist/install-CNjs0u5x.js +23299 -0
  39. package/dist/install.css +1 -0
  40. package/dist/setOption-CXOifQcx.js +329 -0
  41. package/dist/setOption.css +1 -0
  42. package/dist/setRelationOption-C7VDhej7.js +5217 -0
  43. package/dist/setRelationOption.css +1 -0
  44. package/package.json +4 -20
  45. package/install.js +0 -134
  46. package/packages/BnAddress/index.vue +0 -141
  47. package/packages/BnAddressParse/index.vue +0 -75
  48. package/packages/BnAdvancedFilter/BnFilterView.vue +0 -145
  49. package/packages/BnAdvancedFilter/index.vue +0 -345
  50. package/packages/BnAdvancedFilter/util.js +0 -171
  51. package/packages/BnCascader/BnCascader.vue +0 -543
  52. package/packages/BnCascader/BnCascaderPanel.vue +0 -1331
  53. package/packages/BnCascader/cascaderDisplay.js +0 -102
  54. package/packages/BnCheck/BnCheck.vue +0 -253
  55. package/packages/BnColumnConfig/columnConfigDialog.vue +0 -134
  56. package/packages/BnColumnConfig/component/childrenFormSetting/assocTable.vue +0 -143
  57. package/packages/BnColumnConfig/component/childrenFormSetting/assocTableSearch.vue +0 -314
  58. package/packages/BnColumnConfig/component/childrenFormSetting/index.vue +0 -243
  59. package/packages/BnColumnConfig/component/defaultSet/defaultSet.vue +0 -114
  60. package/packages/BnColumnConfig/component/defaultSet/stringDefault.vue +0 -210
  61. package/packages/BnColumnConfig/component/funcExprDialog/funcExprDialog.vue +0 -126
  62. package/packages/BnColumnConfig/component/packageFilter/index.vue +0 -141
  63. package/packages/BnColumnConfig/component/paraExplainSet/index.vue +0 -156
  64. package/packages/BnColumnConfig/component/setOption/setOption.vue +0 -321
  65. package/packages/BnColumnConfig/component/setRelationOption/ConditionList.vue +0 -277
  66. package/packages/BnColumnConfig/component/setRelationOption/LevelHeader.vue +0 -144
  67. package/packages/BnColumnConfig/component/setRelationOption/setRelationOption.vue +0 -642
  68. package/packages/BnColumnConfig/data.js +0 -129
  69. package/packages/BnColumnConfig/index.scss +0 -23
  70. package/packages/BnColumnConfig/index.vue +0 -309
  71. package/packages/BnCondVal/BnCondVal.vue +0 -112
  72. package/packages/BnCondVal/itemVal/dateRegVal.vue +0 -39
  73. package/packages/BnCondVal/itemVal/dateVal.vue +0 -39
  74. package/packages/BnCondVal/itemVal/numRegVal.vue +0 -67
  75. package/packages/BnCondVal/itemVal/numVal.vue +0 -44
  76. package/packages/BnCondVal/itemVal/relationVal.vue +0 -73
  77. package/packages/BnCondVal/itemVal/selectColumnVal.vue +0 -58
  78. package/packages/BnCondVal/itemVal/selectVal.vue +0 -59
  79. package/packages/BnCondVal/itemVal/stringVal.vue +0 -156
  80. package/packages/BnCondition/index.vue +0 -551
  81. package/packages/BnCondition/util.js +0 -232
  82. package/packages/BnDatePicker/BnDatePicker.vue +0 -194
  83. package/packages/BnDrop/BnDrop.vue +0 -917
  84. package/packages/BnEmptyTip/BnEmptyTip.vue +0 -107
  85. package/packages/BnExportOrder/BnExportOrder.vue +0 -241
  86. package/packages/BnExportOrder/validatorCode.vue +0 -94
  87. package/packages/BnFileView/BnFileView.vue +0 -271
  88. package/packages/BnFileView/FileDetail.vue +0 -125
  89. package/packages/BnFileView/videoPreview.vue +0 -70
  90. package/packages/BnFilterOption/BnFilterOption.vue +0 -160
  91. package/packages/BnFunExpr/BnFunExpr.vue +0 -608
  92. package/packages/BnImportOrder/BnImportOrder.vue +0 -323
  93. package/packages/BnImportTemplate/BnImportTemplate.vue +0 -866
  94. package/packages/BnImportTemplate/assets/merge_tip_img.png +0 -0
  95. package/packages/BnImportTemplate/assets/sheet_tip.png +0 -0
  96. package/packages/BnImportTemplate/assets/xls.png +0 -0
  97. package/packages/BnImportTemplate/components/ImportTemplateTrigger.vue +0 -198
  98. package/packages/BnImportTemplate/components/TemplateEditDialog.vue +0 -340
  99. package/packages/BnImportTemplate/components/TemplateFieldsConfig.vue +0 -401
  100. package/packages/BnImportTemplate/components/TemplateListDialog.vue +0 -297
  101. package/packages/BnInpNum/BnInpNum.vue +0 -165
  102. package/packages/BnMenus/BnMenus.vue +0 -502
  103. package/packages/BnMenus/MenuItem.vue +0 -321
  104. package/packages/BnOrderCard/BnOrderCard.vue +0 -389
  105. package/packages/BnOrderCard/orderRemark.vue +0 -178
  106. package/packages/BnOrderCard/util.js +0 -94
  107. package/packages/BnOrderDetail/BnOrderDetail.vue +0 -338
  108. package/packages/BnOrderDetail/filterLogByUser.vue +0 -108
  109. package/packages/BnOrderDetail/orderLogs.vue +0 -53
  110. package/packages/BnOrderDetail/showSubForm/index.vue +0 -41
  111. package/packages/BnOrderDetail/showSubForm/showChildTable.vue +0 -61
  112. package/packages/BnOrderDetail/showSubForm/showTimeLine.vue +0 -131
  113. package/packages/BnOrderDetail/showSubForm/tableCellCopy.vue +0 -84
  114. package/packages/BnOrderShare/index.vue +0 -378
  115. package/packages/BnOrderShare/shareUrlInp.vue +0 -54
  116. package/packages/BnRadio/BnRadio.vue +0 -181
  117. package/packages/BnRelation/BnRelation.vue +0 -120
  118. package/packages/BnSelect/BnSelect.vue +0 -485
  119. package/packages/BnSmartForm/BnBatchForm.vue +0 -334
  120. package/packages/BnSmartForm/BnBatchFormDialog.vue +0 -423
  121. package/packages/BnSmartForm/BnSmartElf/elfLog/index.vue +0 -57
  122. package/packages/BnSmartForm/BnSmartElf/index.vue +0 -95
  123. package/packages/BnSmartForm/BnSmartFormPsychic.js +0 -629
  124. package/packages/BnSmartForm/BnSmartFormUtil.js +0 -524
  125. package/packages/BnSmartForm/addressForm/index.vue +0 -73
  126. package/packages/BnSmartForm/checkboxForm/index.vue +0 -99
  127. package/packages/BnSmartForm/childrenForm/childFormFile.vue +0 -237
  128. package/packages/BnSmartForm/childrenForm/childrenFormBody.vue +0 -260
  129. package/packages/BnSmartForm/childrenForm/index.vue +0 -110
  130. package/packages/BnSmartForm/childrenForm/searchInventory.vue +0 -115
  131. package/packages/BnSmartForm/chooseAssocTable/chooseAssocTable.vue +0 -451
  132. package/packages/BnSmartForm/chooseAssocTable/chooseChildGood.vue +0 -229
  133. package/packages/BnSmartForm/chooseAssocTable/tableCellCopy.vue +0 -84
  134. package/packages/BnSmartForm/chooseChildOrder/chooseChildOrder.vue +0 -158
  135. package/packages/BnSmartForm/chooseIPaasData/chooseIPaasData.vue +0 -307
  136. package/packages/BnSmartForm/chooseIPaasData/tableCellCopy.vue +0 -84
  137. package/packages/BnSmartForm/choosePackage/choosePackage.vue +0 -361
  138. package/packages/BnSmartForm/dateDualForm/index.vue +0 -37
  139. package/packages/BnSmartForm/dateForm/index.vue +0 -38
  140. package/packages/BnSmartForm/fileForm/fileFormData.js +0 -50
  141. package/packages/BnSmartForm/fileForm/index.vue +0 -240
  142. package/packages/BnSmartForm/formItemFooter/formItemFooter.vue +0 -38
  143. package/packages/BnSmartForm/formItemTop/formItemTop.vue +0 -42
  144. package/packages/BnSmartForm/index.vue +0 -1201
  145. package/packages/BnSmartForm/numberForm/index.vue +0 -63
  146. package/packages/BnSmartForm/radioForm/index.vue +0 -72
  147. package/packages/BnSmartForm/receiveForm/index.vue +0 -112
  148. package/packages/BnSmartForm/relationForm/index.vue +0 -82
  149. package/packages/BnSmartForm/scoreForm/index.vue +0 -39
  150. package/packages/BnSmartForm/selectForm/index.vue +0 -55
  151. package/packages/BnSmartForm/showValForm/index.vue +0 -42
  152. package/packages/BnSmartForm/showValForm/showValFormTable.vue +0 -104
  153. package/packages/BnSmartForm/smartFormsCommon.scss +0 -43
  154. package/packages/BnSmartForm/stringForm/index.vue +0 -170
  155. package/packages/BnVirtPopover/index.vue +0 -319
  156. package/packages/BnWebLog/BnWebLog.vue +0 -140
  157. package/packages/BnWorkSettingDrop/advancedOptions.js +0 -112
  158. package/packages/BnWorkSettingDrop/benBenAIUtil.js +0 -89
  159. package/packages/BnWorkSettingDrop/index.vue +0 -292
  160. package/packages/font/iconfont.css +0 -243
  161. package/packages/font/iconfont.ttf +0 -0
  162. package/packages/font/iconfont.woff +0 -0
  163. package/packages/font/iconfont.woff2 +0 -0
  164. package/utils/addressParse-old.js +0 -645
  165. package/utils/addressParse.js +0 -735
  166. package/utils/config.js +0 -68
  167. package/utils/index.js +0 -1171
@@ -1,67 +0,0 @@
1
- <template>
2
- <div class="w-default-wrap numReg clearFix">
3
- <div class="numReg-item">
4
- <BnInpNum class="numReg-item-input" @change="$forceUpdate();" :precision="precision" :disabled="disabled"
5
- placeholder="开始" v-model="val.value.start" controls-position="right"/>
6
- </div>
7
- <div class="numReg-text">
8
-
9
- </div>
10
- <div class="numReg-item">
11
- <BnInpNum class="numReg-item-input" @change="$forceUpdate();" :precision="precision" :disabled="disabled"
12
- placeholder="结束" v-model="val.value.end" controls-position="right"/>
13
- </div>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- export default {
19
- name: "numRegVal",
20
- props: {
21
- modelValue: Object,
22
- disabled: {
23
- type: Boolean,
24
- default: function () {
25
- return false
26
- }
27
- },
28
- // 小数位数精确到多少位
29
- precision: {
30
- type: Number,
31
- default: 0
32
- }
33
- },
34
- computed: {
35
- val: {
36
- get() {
37
- return this.modelValue;
38
- },
39
- set(val) {
40
- this.$emit("update:modelValue", val);
41
- },
42
- },
43
- }
44
- }
45
- </script>
46
- <style scoped>
47
- .numReg-item {
48
- position: relative;
49
- width: calc(50% - 15px);
50
- float: left;
51
- }
52
-
53
- .numReg-item-input {
54
- width: 100%;
55
- }
56
-
57
- .numReg-text {
58
- float: left;
59
- width: 30px;
60
- height: 32px;
61
- text-align: center;
62
- line-height: 32px;
63
- font-size: 14px;
64
- color: #999;
65
- }
66
-
67
- </style>
@@ -1,44 +0,0 @@
1
- <template>
2
- <BnInpNum v-model="val[optionProps.value]"
3
- :disabled="[9,10,14,15].includes(parseInt(val[optionProps.searchType]))"
4
- @change="change('number')"></BnInpNum>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- inheritAttrs: false,
10
- name: "numVal",
11
- props: {
12
- modelValue: Object,
13
- optionProps: Object,
14
- },
15
- methods: {
16
- /**
17
- * 输入框change事件
18
- * */
19
- change(val) {
20
- this.$emit('onChange', 'string')
21
- }
22
- },
23
- computed: {
24
- val: {
25
- get() {
26
- return this.modelValue;
27
- },
28
- set(val) {
29
- this.$emit("update:modelValue", val);
30
- },
31
- },
32
- }
33
- }
34
- </script>
35
- <style lang="scss" scoped>
36
- .bnAdvance-numRatio:after {
37
- content: '%';
38
- position: absolute;
39
- right: 8px;
40
- top: calc(50% - 8px);
41
- color: #C0C4CC;
42
- font-weight: bold;
43
- }
44
- </style>
@@ -1,73 +0,0 @@
1
- <template>
2
- <!-- <BnCascader @change="change" style="width: 100%"-->
3
- <!-- v-model="val[optionProps.value]" collapseTags-->
4
- <!-- :postFunc="postFunc" :postData="postData" :pathUrl="pathUrl" remote-mode="tree"-->
5
- <!-- :optionProps="propsData" :label-in-value="false"-->
6
- <!-- :disabled="[9,10,14,15].includes(parseInt(val[optionProps.searchType]))"-->
7
- <!-- :options="options" :multiple="multiple" clearable/>-->
8
- <BnRelation @change="change" :options="options" style="width: 100%" filterable
9
- :props="propsData" v-model="val[optionProps.value]" :multiple="multiple"
10
- :disabled="[9,10,14,15].includes(parseInt(val[optionProps.searchType]))"
11
- :postFunc="postFunc" :postData="postData" :pathUrl="pathUrl"></BnRelation>
12
- <!-- {{val[optionProps.value]}}-->
13
- </template>
14
-
15
- <script>
16
-
17
- export default {
18
- name: "relationVal",
19
- props: {
20
- modelValue: Object,
21
- optionProps: Object,
22
- columnInfo: Object,
23
- postData: Object,
24
- pathUrl: String,
25
- postFunc: Function,
26
- },
27
- methods: {
28
- /**
29
- * 输入框change事件
30
- * */
31
- change(val) {
32
- this.$emit('onChange', 'relation')
33
- }
34
- },
35
- computed: {
36
- //拷贝value的值,这样就可以避免直接修改props
37
- val: {
38
- get() {
39
- return this.modelValue;
40
- },
41
- set(val) {
42
- this.$emit("update:modelValue", val);
43
- },
44
- },
45
- multiple(){
46
- if(this.columnInfo.behaviorType == 20){
47
- return true;
48
- }else{
49
- return [3,4,5,6,7].includes(parseInt(this.modelValue[this.optionProps.searchType]))
50
- }
51
- },
52
- propsData(){
53
- let options = {
54
- checkStrictly:true,value:'code',label:'title'
55
- };
56
- if(this.columnInfo.pathUrl && this.columnInfo.pathUrl.indexOf('address')>=0){
57
- options.value = 'id'
58
- }
59
- return options
60
- },
61
- options(){
62
- if(this.columnInfo.pathUrl && this.columnInfo.pathUrl.indexOf('address')>=0){
63
- return addressData || []
64
- }
65
- let options = [];
66
- if(this.columnInfo.moduleDefinition && this.columnInfo.moduleDefinition.optionList){
67
- options = this.columnInfo.moduleDefinition.optionList;
68
- }
69
- return options
70
- }
71
- }
72
- }
73
- </script>
@@ -1,58 +0,0 @@
1
- <template>
2
- <BnSelect v-model="val[optionProps.value]" :optionProps="otherColumnProps"
3
- :options="otherColumns" :disabled="[9,10,14,15].includes(parseInt(val[optionProps.searchType]))"
4
- :valueProps="valueProps"
5
- @change="change('select')" clearable filterable placeholder="请选择"></BnSelect>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- name: "selectColumnVal",
11
- props: {
12
- modelValue: Object,
13
- otherColumns: {
14
- type: Array,
15
- default() {
16
- return []
17
- }
18
- },
19
- // 选择其他组件时,约束他们的value格式
20
- otherColumnProps: {
21
- default() {
22
- return {value:'columnCode',label:'name'}
23
- }
24
- },
25
- optionProps: Object,
26
- columnInfo: Object,
27
- postData: Object,
28
- pathUrl: String,
29
- postFunc: Function,
30
- },
31
- methods: {
32
- /**
33
- * 输入框change事件
34
- * */
35
- change(val) {
36
- this.$emit('onChange', 'string')
37
- }
38
- },
39
- computed: {
40
- //拷贝value的值,这样就可以避免直接修改props
41
- val: {
42
- get() {
43
- return this.modelValue;
44
- },
45
- set(val) {
46
- this.$emit("update:modelValue", val);
47
- },
48
- },
49
- valueProps(){
50
- let p = []
51
- for(let key in this.otherColumnProps){
52
- p.push(this.otherColumnProps[key])
53
- }
54
- return p.length?[...p,'parentCode','id','parentId']:['columnCode','name','parentCode','id','parentId']
55
- }
56
- }
57
- }
58
- </script>
@@ -1,59 +0,0 @@
1
- <template>
2
- <BnSelect v-model="val[optionProps.value]" :optionProps="valueOptionProps"
3
- :pageProps="{pageNum: 'pageNo',pageSize: 'pageSize',}" :options="columnInfo.moduleDefinition"
4
- :postFunc="postFunc" :postData="postData" :pathUrl="pathUrl" :valueProps="valueProps"
5
- :multiple="['3','4','5','6','7'].includes(val[optionProps.searchType]) || val.behaviorType==5"
6
- :disabled="[9,10,14,15].includes(parseInt(val[optionProps.searchType]))"
7
- @change="change('select')" clearable filterable placeholder="请选择"></BnSelect>
8
- </template>
9
-
10
- <script>
11
- export default {
12
- name: "selectVal",
13
- props: {
14
- modelValue: Object,
15
- optionProps: Object,
16
- // value的value如果是下拉或者多选这些,约束他们的value格式
17
- valueOptionProps: {
18
- default() {
19
- return {value:'code',label:'title'}
20
- }
21
- },
22
- columnInfo:Object,
23
- postData:Object,
24
- pathUrl:String,
25
- postFunc:Function,
26
- },
27
- data() {
28
- return {
29
- open: false,
30
- }
31
- },
32
- methods: {
33
- /**
34
- * 输入框change事件
35
- * */
36
- change(val) {
37
- this.$emit('onChange', 'string')
38
- }
39
- },
40
- computed: {
41
- //拷贝value的值,这样就可以避免直接修改props
42
- val: {
43
- get() {
44
- return this.modelValue;
45
- },
46
- set(val) {
47
- this.$emit("update:modelValue", val);
48
- },
49
- },
50
- valueProps(){
51
- let p = []
52
- for(let key in this.valueOptionProps){
53
- p.push(this.valueOptionProps[key])
54
- }
55
- return p.length?[...p,'id']:['code','title','id']
56
- }
57
- }
58
- }
59
- </script>
@@ -1,156 +0,0 @@
1
- <template>
2
- <el-autocomplete
3
- v-if="isUrlType"
4
- v-model="val[optionProps.value]"
5
- :fetch-suggestions="querySearch"
6
- clearable
7
- class="w-50"
8
- :type="['5','6','28','29'].includes(val[optionProps.searchType]) ? 'textarea' : 'text'" resize="none" :maxlength="200000"
9
- :rows="['5','6','28','29'].includes(val[optionProps.searchType])? 3 : 1"
10
- :placeholder="['5','6','28','29'].includes(val[optionProps.searchType])?'回车换行可插入多条':'请输入'"
11
- @select="handleSelect"
12
- />
13
- <el-input v-else class="filterInput" type="textarea" resize="none" :maxlength="200000" @focus="open = true"
14
- @blur="open = false"
15
- :placeholder="['5','6','28','29'].includes(val[optionProps.searchType])?'回车换行可插入多条':'请输入'"
16
- @change="change('string')" :rows="open && ['5','6'].includes(val[optionProps.searchType])? 3 : 1"
17
- :disabled="[9,10,14,15].includes(parseInt(val[optionProps.searchType]))"
18
- v-model="val[optionProps.value]" show-word-limit/>
19
- </template>
20
-
21
- <script>
22
- export default {
23
- inheritAttrs: false,
24
- name: "stringVal",
25
- props: {
26
- modelValue: Object,
27
- optionProps: Object,
28
- },
29
- data() {
30
- return {
31
- open: false,
32
- lastQueryValue: null,
33
- lastQueryResults: [],
34
- /** 最近一次 fetch 时的完整输入;null 表示尚未走过 querySearch */
35
- suggestionFullText: null,
36
- }
37
- },
38
- computed: {
39
- //拷贝value的值,这样就可以避免直接修改props
40
- val: {
41
- get() {
42
- return this.modelValue;
43
- },
44
- set(val) {
45
- this.$emit("update:modelValue", val);
46
- },
47
- },
48
- parsedDataExtra() {
49
- const dataExtra = this.modelValue?.extraInfo?.dataExtra || '';
50
- if (!dataExtra) return null;
51
- try {
52
- return JSON.parse(dataExtra);
53
- } catch (e) {
54
- return null;
55
- }
56
- },
57
- isUrlType() {
58
- return !!this.parsedDataExtra?.searchUrl;
59
- },
60
- dataExtraUrl() {
61
- return this.parsedDataExtra?.searchUrl || '';
62
- }
63
- },
64
- methods: {
65
- /**
66
- * 输入框change事件
67
- * */
68
- change() {
69
- // 去除开始和结尾的空格以及换行符
70
- this.val[this.optionProps.value] = this.val[this.optionProps.value].trim();
71
- this.$emit('onChange', 'string')
72
- },
73
- /**
74
- * 远程搜索建议
75
- */
76
- querySearch(queryString, cb) {
77
- // 每次拉建议时都记下完整文本,供 handleSelect 合并最后一行(不能读 v-model,选中后已被组件改成单项)
78
- this.suggestionFullText = queryString == null ? '' : String(queryString);
79
- // 多行模式:只取最后一行作为搜索关键词
80
- const lines = (queryString || '').split('\n');
81
- const keyword = lines[lines.length - 1].trim();
82
- if (!keyword) {
83
- this.lastQueryValue = null;
84
- this.lastQueryResults = [];
85
- cb([]);
86
- return;
87
- }
88
- if (this.lastQueryValue === keyword) {
89
- cb(this.lastQueryResults);
90
- return;
91
- }
92
- const postData = {
93
- ...(this.modelValue.postData || {}),
94
- column: this.modelValue.columnCode,
95
- keyword: keyword,
96
- pageNo: 1,
97
- pageSize: 50
98
- };
99
- const url = this.dataExtraUrl;
100
- fetch(url, {
101
- method: 'POST',
102
- headers: { 'Content-Type': 'application/json' },
103
- body: JSON.stringify(postData)
104
- }).then(r => r.json()).then(res => {
105
- this.applySuggestionResults(res, keyword, cb);
106
- }).catch(() => {
107
- this.lastQueryValue = keyword;
108
- this.lastQueryResults = [];
109
- cb([]);
110
- });
111
- },
112
- /** 与接口约定一致:code 假值 + data.results */
113
- applySuggestionResults(res, keyword, cb) {
114
- if (!res.code && res.data?.results) {
115
- const list = res.data.results.map(i => ({
116
- value: i.value || i.title || i.label || '',
117
- ...i,
118
- }));
119
- this.lastQueryValue = keyword;
120
- this.lastQueryResults = list;
121
- cb(list);
122
- } else {
123
- this.lastQueryValue = keyword;
124
- this.lastQueryResults = [];
125
- cb([]);
126
- }
127
- },
128
-
129
- /**
130
- * 选中下拉项
131
- */
132
- handleSelect(item) {
133
- // 多行:只换最后一行。选中时组件会先把 v-model 整段改成 item.value,故用 querySearch 里存的全文快照
134
- const current =
135
- this.suggestionFullText != null
136
- ? String(this.suggestionFullText)
137
- : String(this.val[this.optionProps.value] || '');
138
- const lines = current.split('\n');
139
- if (!lines.length) lines.push('');
140
- lines[lines.length - 1] = item.value ?? '';
141
- const merged = lines.join('\n');
142
- this.$nextTick(() => {
143
- this.val[this.optionProps.value] = merged;
144
- this.$emit('onChange', 'string');
145
- });
146
- }
147
- },
148
- }
149
- </script>
150
- <style lang="scss" scoped>
151
- .filterInput {
152
- :deep(.el-textarea__inner) {
153
- min-height: 32px !important;
154
- }
155
- }
156
- </style>