vue2-client 1.16.3 → 1.16.5

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,14 +1,16 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "WebSearch",
5
- "WebFetch(domain:context7.com)",
6
- "Bash(npm run lint)",
7
- "mcp__context7__resolve-library-id",
8
- "mcp__context7__get-library-docs"
9
- ],
10
- "deny": [],
11
- "ask": [],
12
- "defaultMode": "acceptEdits"
13
- }
14
- }
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "WebSearch",
5
+ "WebFetch(domain:context7.com)",
6
+ "Bash(npm run lint)",
7
+ "mcp__context7__resolve-library-id",
8
+ "mcp__context7__get-library-docs",
9
+ "WebFetch(domain:github.com)",
10
+ "Bash(npm run serve:*)"
11
+ ],
12
+ "deny": [],
13
+ "ask": [],
14
+ "defaultMode": "acceptEdits"
15
+ }
16
+ }
package/.env.revenue CHANGED
@@ -1,4 +1,4 @@
1
- VUE_APP_PUBLIC_PATH=/revenue-web
1
+ VUE_APP_PUBLIC_PATH=/
2
2
  VUE_APP_NAME=Admin
3
3
  VUE_APP_ROUTES_KEY=admin.routes
4
4
  VUE_APP_PERMISSIONS_KEY=admin.permissions
@@ -16,4 +16,3 @@ VUE_APP_WEB_CONFIG_KEY=admin.webconfig
16
16
  VUE_APP_API_BASE_URL=http://123.60.214.109:8405
17
17
  VUE_APP_SYSTEM_NAME=af-revenue
18
18
  VUE_APP_LOGIN_VERSION=V4
19
- VUE_APP_SINGLE_PAPER=TRUE
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.16.3",
3
+ "version": "1.16.5",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -56,6 +56,7 @@
56
56
  "nprogress": "^0.2.0",
57
57
  "qs": "^6.11.2",
58
58
  "regenerator-runtime": "^0.14.0",
59
+ "splitpanes": "^2.4.1",
59
60
  "videojs-contrib-hls": "^5.15.0",
60
61
  "viser-vue": "^2.4.8",
61
62
  "vue": "^2.7.14",
@@ -117,7 +117,7 @@ export default {
117
117
  // 生成地址串中省市区街道信息禁止修改
118
118
  readOnlyDivisions: false,
119
119
  // cur 位置
120
- curPosition: [108.878703, 34.223701],
120
+ curPosition: null,
121
121
  searchFlag: false,
122
122
  }
123
123
  },
@@ -153,6 +153,13 @@ export default {
153
153
  return { address: 'address', coords: 'coords' }
154
154
  }
155
155
  },
156
+ // 地图渲染初始值
157
+ address: {
158
+ type: Object,
159
+ default: () => {
160
+ return { }
161
+ }
162
+ },
156
163
  readOnly: {
157
164
  type: Boolean,
158
165
  default: false
@@ -182,8 +189,10 @@ export default {
182
189
  }, 200)()
183
190
  },
184
191
  initMap (aMap) {
192
+ const center = (this.address?.coords || '108.878703, 34.223701').split(',')
185
193
  this.map = new (aMap).Map('addressSearchCombobox_map', { // 设置地图容器id
186
194
  resizeEnable: true, // 是否监控地图容器尺寸变化
195
+ center: center, // 设置初始中心
187
196
  zoom: 10, // 初始化地图层级
188
197
  })
189
198
  this.geocoder = new (aMap).Geocoder({
@@ -438,18 +447,6 @@ export default {
438
447
  })
439
448
  }
440
449
  },
441
- attr: {
442
- handler (newValue) {
443
- console.log('监听事件触发:', { new: newValue })
444
- if (newValue.type === 'coordinateSearch') {
445
- this.addressInput = newValue.formDefault_lng_lat
446
- } else if (newValue.type === 'addressSearch') {
447
- this.addressInput = newValue.formDefault
448
- }
449
- },
450
- deep: true, // 深度监听对象内部变化
451
- immediate: true
452
- }
453
450
  }
454
451
  }
455
452
  </script>
@@ -35,11 +35,12 @@ defineExpose({
35
35
  </script>
36
36
 
37
37
  <template>
38
- <div class="h-tab-wrapper"
39
- :class="{ 'h-tab-has-top-margin': hasTopMargin,
40
- 'h-tab-style7': useStyle7,
41
- 'h-tab-cycle': useStyle7 && useCycle,
42
- 'h-tab-style8': useStyle8}">
38
+ <div
39
+ class="h-tab-wrapper"
40
+ :class="{ 'h-tab-has-top-margin': hasTopMargin,
41
+ 'h-tab-style7': useStyle7,
42
+ 'h-tab-cycle': useStyle7 && useCycle,
43
+ 'h-tab-style8': useStyle8}">
43
44
  <x-tab
44
45
  ref="xTabRef"
45
46
  v-bind="$attrs"
@@ -583,6 +583,9 @@ export default {
583
583
  if (item.formDefault === 'curUserId') {
584
584
  formData[item.model] = item.type === 'select' ? this.currUser.id : [this.currUser.id]
585
585
  }
586
+ } else if (['addressSearch'].includes(item.type)) {
587
+ formData[item.model] = item.formDefault
588
+ formData[`${item.model}_lng_lat`] = item.formDefault_lng_lat
586
589
  } else {
587
590
  formData[item.model] = item.formDefault
588
591
  }
@@ -463,7 +463,8 @@
463
463
  :emitFunc="emitFunc"
464
464
  :attr="attr"
465
465
  :read-only="readOnly"
466
- v-model="searchResult"
466
+ :searchResult="form[attr.model]"
467
+ :address="{ address: form[attr.model], coords: form[`${attr.model}_lng_lat`] }"
467
468
  :resultKeys="{ address: attr.model, coords: `${attr.model}_lng_lat` }"
468
469
  ref="addressSearchCombobox"
469
470
  searchResultType="Object"
@@ -1,14 +1,14 @@
1
1
  <template>
2
- <a-row type="flex" :gutter="{ xs: 8, sm: 10, md: 12, lg: 16 }">
3
- <a-col
4
- :xs="14"
5
- :sm="14"
6
- :md="12"
7
- :lg="9"
8
- :xl="6"
9
- :xxl="5"
10
- v-if="xTreeConfigName"
11
- :style="{ maxWidth: '400px'}">
2
+ <splitpanes
3
+ class="default-theme"
4
+ :horizontal="false"
5
+ @resized="storePaneSize"
6
+ >
7
+ <pane
8
+ :size="treeSize"
9
+ :min-size="15"
10
+ :max-size="40"
11
+ v-if="xTreeConfigName">
12
12
  <x-tree-pro
13
13
  :config-name="xTreeConfigName"
14
14
  :env="env"
@@ -17,14 +17,10 @@
17
17
  @treeOnChecked="treeOnChecked"
18
18
  ref="xtree"
19
19
  ></x-tree-pro>
20
- </a-col>
21
- <a-col
22
- :xs="xTreeConfigName ? 10 : 24"
23
- :sm="xTreeConfigName ? 10 : 24"
24
- :md="xTreeConfigName ? 12 : 24"
25
- :lg="xTreeConfigName ? 15 : 24"
26
- :xl="xTreeConfigName ? 18 : 24"
27
- :xxl="xTreeConfigName ? 19 : 24">
20
+ </pane>
21
+ <pane
22
+ :size="100 - treeSize"
23
+ >
28
24
  <a-skeleton :loading="loading" :paragraph="{ rows: 4 }"/>
29
25
  <a-row style="height: 12px" v-if="xTreeConfigName"></a-row>
30
26
  <div v-show="!loading">
@@ -118,9 +114,9 @@
118
114
  </a-empty>
119
115
  </template>
120
116
  </div>
121
- </a-col>
117
+ </pane>
122
118
  <UserInfoDetailManage ref="userInfo" @close="refresh(false)"/>
123
- </a-row>
119
+ </splitpanes>
124
120
  </template>
125
121
  <script>
126
122
  import XForm from '@vue2-client/base-client/components/common/XForm'
@@ -129,6 +125,8 @@ import XAddReport from '@vue2-client/base-client/components/common/XAddReport'
129
125
  import XTable from '@vue2-client/base-client/components/common/XTable'
130
126
  import XTree from '@vue2-client/base-client/components/common/XTree'
131
127
  import XImportExcel from '@vue2-client/base-client/components/common/XImportExcel'
128
+ import { Splitpanes, Pane } from 'splitpanes'
129
+ import 'splitpanes/dist/splitpanes.css'
132
130
  import {
133
131
  getConfigByName,
134
132
  getConfigByLogic,
@@ -151,7 +149,9 @@ export default {
151
149
  XTree,
152
150
  XAddForm,
153
151
  XAddReport,
154
- XImportExcel
152
+ XImportExcel,
153
+ Splitpanes,
154
+ Pane
155
155
  },
156
156
  provide () {
157
157
  return {
@@ -239,7 +239,8 @@ export default {
239
239
  table_selectedRows: [],
240
240
  // 数据只有一页时是否展示分页,true:展示,auto:隐藏
241
241
  showPagination: true,
242
- isMounted: false
242
+ isMounted: false,
243
+ treeSize: localStorage.getItem('CURD::' + this.xTreeConfigName + '::TreeSize') ?? 25
243
244
  }
244
245
  },
245
246
  computed: {
@@ -439,6 +440,9 @@ export default {
439
440
  getRealKeyData,
440
441
  getConfigByNameAsync,
441
442
  getConfigByName,
443
+ storePaneSize (treeSize) {
444
+ localStorage.setItem('CURD::' + this.xTreeConfigName + '::TreeSize', treeSize[0].size)
445
+ },
442
446
  customEvent (func, data) {
443
447
  this.$emit(func, data)
444
448
  },
@@ -456,14 +460,14 @@ export default {
456
460
 
457
461
  // 遍历 rows 的每一项,提取符合条件的数据
458
462
  rows.forEach(row => {
459
- const itemResult = {}
460
- Object.keys(row).forEach(key => {
461
- if (key.startsWith(prefix)) {
462
- const newKey = key.slice(prefix.length) // 去掉前缀
463
- itemResult[newKey] = row[key] // 添加到结果对象中
464
- }
465
- })
466
- result.push(itemResult) // 将处理后的项添加到结果数组中
463
+ const itemResult = {}
464
+ Object.keys(row).forEach(key => {
465
+ if (key.startsWith(prefix)) {
466
+ const newKey = key.slice(prefix.length) // 去掉前缀
467
+ itemResult[newKey] = row[key] // 添加到结果对象中
468
+ }
469
+ })
470
+ result.push(itemResult) // 将处理后的项添加到结果数组中
467
471
  })
468
472
 
469
473
  return result // 返回去掉前缀后的对象数组
@@ -471,17 +475,17 @@ export default {
471
475
 
472
476
  // 给数据区域添加主表数据,给的数据没有主表别名,放着时添加主表别名
473
477
  pushPrimaryData (rows) {
474
- const alias = this.realQueryConfig.tableAliasName // 获取主表的别名
475
- const prefix = `${alias}_` // 构建前缀
476
- const result = rows.map(row => {
477
- const itemResult = {}
478
- Object.keys(row).forEach(key => {
479
- itemResult[prefix + key] = row[key] // 复制原始数据
480
- })
481
- return itemResult // 返回添加了主表别名的数据
478
+ const alias = this.realQueryConfig.tableAliasName // 获取主表的别名
479
+ const prefix = `${alias}_` // 构建前缀
480
+ const result = rows.map(row => {
481
+ const itemResult = {}
482
+ Object.keys(row).forEach(key => {
483
+ itemResult[prefix + key] = row[key] // 复制原始数据
482
484
  })
483
- // 把结果添加到数据区
484
- this.getTableData().push(...result)
485
+ return itemResult // 返回添加了主表别名的数据
486
+ })
487
+ // 把结果添加到数据区
488
+ this.getTableData().push(...result)
485
489
  },
486
490
 
487
491
  // 设置固定查询条件,主表别名自动带
@@ -852,7 +856,7 @@ export default {
852
856
  * 设置表格数据
853
857
  */
854
858
  setTableData (data) {
855
- this.$refs.xTable.setTableData(data)
859
+ this.$refs.xTable.setTableData(data)
856
860
  },
857
861
  /**
858
862
  * 表单本地提交
@@ -943,3 +947,27 @@ export default {
943
947
  margin-bottom: 12px;
944
948
  }
945
949
  </style>
950
+ <style>
951
+
952
+ .splitpanes.default-theme .splitpanes__splitter {
953
+ border: 0;
954
+ width: 1rem;
955
+ position: relative;
956
+
957
+ &:before {
958
+ content: '';
959
+ position: absolute;
960
+ left: 50%;
961
+ top: 50%;
962
+ transform: translate(-50%, -50%);
963
+ width: 2px;
964
+ height: 30px;
965
+ border-radius: 1px;
966
+ }
967
+ }
968
+
969
+ .splitpanes.default-theme .splitpanes__pane {
970
+ overflow: visible;
971
+ background-color: transparent;
972
+ }
973
+ </style>
@@ -4,11 +4,12 @@
4
4
  title="示例表单"
5
5
  :queryParamsName="queryParamsName"
6
6
  :fixedAddForm="fixedAddForm"
7
+ :x-tree-config-name="xTreeConfigName"
7
8
  :externalSelectedRowKeys="selectedKeys"
8
9
  @action="action"
9
10
  @selectRow="selectRow"
10
11
  @columnClick="columnClick"
11
- serviceName="af-system"
12
+ serviceName="af-revenue"
12
13
  ref="xFormTable">
13
14
  </x-form-table>
14
15
  </a-card>
@@ -26,7 +27,9 @@ export default {
26
27
  data () {
27
28
  return {
28
29
  // 查询配置文件名
29
- queryParamsName: 'ceshiCRUD',
30
+ queryParamsName: 'address_management',
31
+ // 查询配置左侧tree
32
+ xTreeConfigName: 'addressType',
30
33
  // 新增表单固定值
31
34
  fixedAddForm: {},
32
35
  // 是否显示详情抽屉
@@ -221,7 +221,7 @@ export default {
221
221
  this.expandedKeys = this.expandedKeys.filter(item => item !== node[this.replaceFields.key])
222
222
  },
223
223
  highlightKeyword (label, keyword) {
224
- const maxLen = this.config.deepNodeMaxWidth
224
+ const maxLen = 12
225
225
 
226
226
  if (!keyword) {
227
227
  return maxLen && label.length > maxLen ? label.substring(0, maxLen) + '...' : label
@@ -14,9 +14,9 @@
14
14
  >
15
15
  <a-select-option v-for="item of resListCp" :key="item.value" :value="item.value">{{ item.label }}</a-select-option>
16
16
  </a-select>
17
- <!-- <template v-if="this.modeType !== 'readonly' && this.resId !== -1">-->
18
- <!-- <a-button icon="plus" @click="addRes"/>-->
19
- <!-- </template>-->
17
+ <!-- <template v-if="this.modeType !== 'readonly' && this.resId !== -1">-->
18
+ <!-- <a-button icon="plus" @click="addRes"/>-->
19
+ <!-- </template>-->
20
20
  </template>
21
21
  <a-radio-group
22
22
  v-show="showModeChoose"
@@ -32,15 +32,15 @@
32
32
  <a-col class="editor-action">
33
33
  <a-space>
34
34
  <template v-if="this.modeType !== 'readonly'">
35
- <!-- <a-button-->
36
- <!-- type="primary"-->
37
- <!-- v-if = "userTemplateVisible"-->
38
- <!-- @click="useTemplateData"-->
39
- <!-- >-->
40
- <!-- 使用-->
41
- <!-- </a-button>-->
35
+ <!-- <a-button-->
36
+ <!-- type="primary"-->
37
+ <!-- v-if = "userTemplateVisible"-->
38
+ <!-- @click="useTemplateData"-->
39
+ <!-- >-->
40
+ <!-- 使用-->
41
+ <!-- </a-button>-->
42
42
  <a-button type="primary" @click="Recording" v-if="canRecord" v-model="recording">
43
- {{recording? '停止' : '录音'}}
43
+ {{ recording? '停止' : '录音' }}
44
44
  </a-button>
45
45
  <a-button type="primary" @click="openRenameModal" v-if="this.resId !== -1">
46
46
  重命名
@@ -78,7 +78,7 @@
78
78
  <a-modal
79
79
  title="保存"
80
80
  :visible="saveVisible"
81
- :confirm-loading = "false"
81
+ :confirm-loading="false"
82
82
  @ok="handleSaveConfirm"
83
83
  @cancel="saveVisible = false"
84
84
  >
@@ -88,6 +88,7 @@ routerResource.XReportView = () => import('@vue2-client/pages/XReportView')
88
88
  routerResource.XReportGrid = () => import('@vue2-client/base-client/components/common/XReportGrid/XReportDemo')
89
89
 
90
90
  routerResource.XTab = () => import('@vue2-client/base-client/components/common/XTab/XTabDemo')
91
+ routerResource.addressManage = () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue')
91
92
 
92
93
  // 基础路由组件注册
93
94
  const routerMap = {
package/vue.config.js CHANGED
@@ -11,11 +11,11 @@ const productionGzipExtensions = ['js', 'css']
11
11
  const isProd = process.env.NODE_ENV === 'production'
12
12
 
13
13
  // v4 产品演示
14
- const v3Server = 'http://aote-office.8866.org:31567'
14
+ const v3Server = 'http://123.180.154.5:31467'
15
15
  // const gateway = 'http://192.168.50.67:31467'
16
16
  // const testUpload = 'http://123.60.214.109:8406'
17
17
  const OSSServerDev = 'http://192.168.50.67:30351'
18
- const revenue = 'http://aote-office.8866.org:31567'
18
+ const revenue = 'http://123.180.154.5:31467'
19
19
  // const revenue = 'http://127.0.0.1:31467'
20
20
  // const OSSServerProd = 'http://192.168.50.67:31351'
21
21
  // const testUploadLocal = 'http://127.0.0.1:9001'